Dec 242017
 
RAT is a powerful context sensitive mouse menu driver which enables the user to take full advantage of any Microsoft-compatible mouse.
File XRAT.ZIP from The Programmer’s Corner in
Category File Managers
RAT is a powerful context sensitive mouse menu driver which enables the user to take full advantage of any Microsoft-compatible mouse.
File Name File Size Zip Size Zip Type
123.MNU 21598 2654 deflated
EXT.MNU 1067 418 deflated
MKRAT.EXE 23888 11944 deflated
RAT.EXE 22360 12383 deflated
README 26088 8338 deflated
SYMPH.MNU 8017 1253 deflated
TC.MNU 7555 1175 deflated
WP42.MNU 27824 3605 deflated
WP50.MNU 33706 4151 deflated

Download File XRAT.ZIP Here

Contents of the README file



RAT
Mouse Menu Driver
(C) Copyright 1989 Ronnie D. Tanner

RAT is a powerful context sensitive mouse driver which enables the user to
take full advantage of any Microsoft-compatible mouse. With RAT, the user
can make any program easier and faster to use without the need for keyboard
templates or memorizing complex key sequences. Not only that, but with RAT a
user can enhance any program by adding 'new' functions that can be performed
with one 'point and click' of the mouse. Functions that used to require
several key strokes can now be reduced to one press of a button.

Tired of using all those templates? One of the unique features of RAT is the
super easy 'pull down' menu. If you've ever tried using some of the menus
provided with your mouse, you've probably noticed that these menus are pretty
awkward to use, especially if you've ever sat down at a Macintosh or another
computer with a really good GUI (graphical user interface). The main problem
is that everything requires a click of one of the buttons. Therefore, if you
want to get to a sub-menu nested three levels down, you have to press the
button three or four times. You might as well use the keyboard! With a good
GUI, all you have to do is 'point' to the sub-menus and they pop up on the
screen. Then you press the button, or in some cases, just release the button
to activate the desired selection. These are 'pull down' menus and they are
much easier and faster to use.

One of the advantages of the text mode that most programs use on the
IBM-compatibles is the speed at which screen updates can be performed. One
of the disadvantages has always been that you can't implement a GUI in text
mode. Now RAT provides the next best thing. With RAT you can provide nested,
context-sensitive 'pull down' menus that will really enhance any text-based
applications program.

Provided with this demonstration program, are some mouse drivers for a few of
the most popular text-based programs. These menus were written using another
program, MKRAT. MKRAT is a mouse driver compiler that will allow a user to
develop custom mouse drivers for use with RAT. MKRAT uses a powerful set of
instructions that will allow anyone to create sophisticated pop-up mouse
menus quickly and easily.

The following source files are provided:

WP50.MNU - This is a menu for Word Perfect 5.0.

WP42.MNU - This is a menu for Word Perfect 4.2.

SYMPH.MNU - This is a menu for Symphony.

EXTENDED.MNU - This is a popup menu that gives the user access to
the extended IBM character set.

123.MNU - This is a menu for Lotus-123.

BEFORE YOU START

Now for some of the special features you need to know about before using RAT.
RAT is of course a memory-resident program, meaning that in order for it to
execute inside your application programs, it must reserve some of your memory
for itself. The amount of memory required is 64K. You probably won't have any
problems unless you have some other memory-resident programs like SideKick,
SuperKey, or ProKey running also. If you do have problems, one of the
resident programs will have to go or you will have to add additional memory.

Before you can use any of the provided menus, you must first compile the
menu source files (*.MNU) using MKRAT. To compile the desired menu driver
type:
MKRAT
where filename is for instance 123 or WP50, and so on.

MKRAT will then produce an output file with a '.BIN' extension which is
required by RAT.

When you want to use RAT, just type in 'RAT ' where 'menu
filename' is a menu file with the extension '.BIN'. You don't need to type
in the file extension. For example, to use 'WP50.BIN' just type 'RAT WP50'.

All of the menu programs except for 'EXTENDED.MNU' use the EXECUTE
instruction in order to autoexecute the particular application software for
which that menu program is written. If you choose not to use EXECUTE, then
you may remove or comment out that line and re-compile. Then, RAT will load
the driver into memory and then you can run, for instance, Word Perfect as
usual. When you exit Word Perfect, the mouse driver will still be loaded.
If you want to remove the mouse driver, simply type 'EXIT' at the DOS command
prompt and the mouse driver will be removed from memory. However, if you
execute RAT using the EXECUTE command, Word Perfect will be loaded and
executed by RAT. Then, when you exit Word Perfect, the mouse driver is also
exited. The only requirement for using EXECUTE is that the Word Perfect
program WP.EXE must either be in the current directory or it must appear in
the PATH environment variable. REMEMBER, this is true for any program that
uses EXECUTE to start your application program.

IF YOU HAVE TROUBLE, COPY RAT.EXE and (whatever).BIN TO THE SAME DIRECTORY
THAT CONTAINS YOUR APPLICATIONS PROGRAM.

Once you have loaded the mouse driver, use the right button of the mouse to
activate the menus. You must hold down the right button while you are making
selections. To activate sub-menus which are denoted by arrows, simply drag
the cursor over the arrow. To execute a command on the menu, simply press
the left button when the desired selection is highlighted while continuing to
hold down the right button. While the right button is released, some of the
drivers use the left button for special functions.

WP50.MNU left button toggles BLOCK on/off (ALT F4)
SYMPH.MNU,123.MNU left button selects a cell for Editing (F2)

You'll also notice that each level of the menu remembers your last selection
so that it is easy to repeat the last command. This is a 'sticky' cursor.
If you have the compiler, MKRAT, everything about the menus is programmable
like the screen colors and the cursor sensitivity. You may want to adjust
these parameters to fit you particular PC and tastes.

RAT will work with either Hercules monochrome video adapters or CGA
compatible adapters. Also, RAT can work with the older video cards that do
not have dual-port RAM. This type of card is indicated by "snow" that
appears on the screen when you activate the popup menus. The default setting
for RAT is to do direct screen access and if that causes "snow" on your
screen, you can add the following line to your AUTOEXEC.BAT file.

SET SNOW=OFF

This will cause RAT to sync up to the video adapter and eliminate the "snow".
This will result in slightly slower screen access. This command must be
executed BEFORE running RAT.

NOTES ON USING RAT WITH WORD PERFECT 5.0

The mouse driver for Word Perfect 5.0 assumes that you are using the Normal
fonts as selected from the Display Setup menu. If you are using any of the
other fonts such as Italic or Underline, the pop-up menus will give you
strange looking characters using the default colors. This is why the
highlight text color for WP50.MNU is LIGHTGRAY instead of the default color
YELLOW. If you decide you prefer to use YELLOW highlighted text instead, you
need to use the NORMAL font, then you can simply change the text colors used
for the pop-up menus using MKRAT. When using any font other than NORMAL
select your text colors from the following set:

Black Blue Green Cyan Red Magenta Brown Lightgray

Please know this! If you are upset at the situation created by using other
than NORMAL fonts, it is not a restriction caused by RAT! In order for Word
Perfect to use two font sets, one of the bits (intensity) in the screen
attribute byte is redefined to select either the NORMAL or the special font.
RAT can do nothing about it!

NOTES ON USING RAT WITH SYMPHONY

The mouse driver for Symphony provides access to all of the F9 and F10
functions and to some of the nested commands. When you are in the worksheet,
pressing the left button will be the same as pressing F2 where you may edit
the current cells contents. When you are in any of the sub-menus the left
button will server as the ENTER key by selecting the high-lighted selection.
In the main pop-up menu you can use CANCEL to return to the worksheet from
wherever you are in any of the sub-menus.

NOTES ON THE EXTENDED CHARACTER MENU

Included are both the source and the compiled files for a mouse driver that
will allow you to easily take advantage of the IBM extended character set
which is normally so hard to use. Use this program with your favorite text
editor and you can use the mouse for moving the cursor and for accessing the
extended character set.
NOW FOR THE BOTTOM LINE

Once you use RAT enough to get used to it, you will probably come to
appreciate the large amount of work that went into creating this program and
it's companion program MKRAT. The reason for my creating RAT in the first
place was that I was not satisfied with any of the existing commercially
available mouse compilers and drivers. In my humble opinion, the programs
that come with any of the mouses that I have seen are very poor products that
really fail to unleash the full potential of the mouse. From my experiences
using other computer systems that make excellent use of the mouse, I have
tried to create a set of programs that gives users the same advantages that I
came to appreciate on systems like the Macintosh and the line of SUN
workstations. The most challenging aspect of creating RAT and MKRAT was the
need to allow RAT to be used with programs that were not designed to use a
mouse. I believe RAT to be very successful at providing this capability.
Enough said.

You are free (and encouraged) to distribute this demonstration program as
long as:
1. You Charge no Fee.
2. You do not modify any of the files in any way.
3. You provide ALL of the files, including this one.

This program will let you get the feel of RAT and if you find it useful for
your application, you may receive a registered copy for $20.

MKRAT will enable you to modify any of the ready-to-run programs to suit your
taste or easily create your own mouse drivers for any application. MKRAT is
easy to use and it uses plain english programming commands, unlike other menu
programs. Take a look at the source file for the extended character menu,
'EXTENDED.MNU'. That's how easy it is to create your own mouse driver.

Please consider that if you were buying this software commercially, you would
be paying at least twice the price. Also, there will be new mouse menus
created for RAT and those will be made available to registered owners FREE of
charge. Also, if the response to RAT warrants the effort, there will be an
even more powerful version of RAT and MKRAT in the near future.

When ordering, please specify either 3" or 5" diskettes. Make check
payable to:

Ronnie D. Tanner
10509 Woodland Drive
Greenville, TX 75401

Please allow 3-4 weeks for delivery. Also feel free to send any comments or
suggestions to the same address. If you have access to Compuserve, please
direct any comments to me at User ID# 73020,2114.


USING MKRAT and RAT

MKRAT will enable you to create your own custom mouse menus using 'plain
english' programming commands. There are a few simple rules to remember.

1. The menu driver only does anything when the mouse changes state by
either moving or by one of the buttons being pressed or released.

2. Every time the mouse changes state, ALL of the conditionals are
tested and if TRUE, executed IN ORDER. Therefore, if you have more
than one conditional block that is TRUE for a given state, each of
those will be executed in the order that they appear in the source
file.

3. When characters are TYPE'd into the keyboard buffer, they are not
seen by the applications program until all of the executionals have
been tested. In other words, you can't TYPE a keystroke into the
keyboard buffer and then execute the next command based on the
applications program reacting to that key until the next time the
mouse changes state.

In order to keep track of where the application program is, MKRAT allows you
to check for the presence of text anywhere on the screen using X,Y
coordinates. In order to facilitate your locating exactly where some text
appears on the screen, RAT has a built in capability that allows you to point
the mouse cursor to any location on the screen and it will display those X,Y
coordinates. Simply press 'ALT RIGHT SHIFT' when you have RAT loaded, and
then move the mouse cursor to the desired text that appears on the screen and
the coordinates for that text will appear in the upper left-hand corner of the
screen. When you are finished, simply press the left mouse button to de-
activate this feature. You can use EXT.MNU for this purpose in any
application program.

MKRAT User's Guide
September 8, 1989

MKRAT and RAT is a set of software tools for developing and using pop-up menu
drivers for Microsoft compatible mouse hardware. MKRAT is a menu compiler
that allows the user to generate a mouse menu driver for specific applications
using a convenient "macro" language. Once a menu definition file has been
created using any standard text editor, MKRAT is used to compile that ASCII
file into a binary file format for use by the program RAT.

The format for invoking MKRAT is:

MKRAT where 'source' is a text file
containing the user menu program.

'source' can be any filename with the extension .MNU such as MYPROG.MNU

The output file MYPROG.BIN will be created which can then be used in
conjunction with the program RAT.EXE.

To install a resident applications mouse menu, type:

RAT

where 'myprog' is the name of a compiled menu file in the form of:

'myprog'.BIN

To install a different menu program, you may repeat the above procedure and
the previous menu program will be replaced with 'myprog'.

The general format for source is as follows:



REM This is a sample mouse menu source file
REM that gives a simple example for creating
REM you own mouse menu application programs.

text1(10,20);
'';
' Load Quit ';
' Save Dir ';
'';
endtext;

define right_button_pressed;
show(text1);
state=(2);
enddef;

define right_button_released;
hide(text1);
state=(1);
enddef;

define right_cursor (state=(1));
type(RARR);
enddef;

define left_cursor (state=(1));
type(LARR);
enddef;

REM --- Load definition ---

define left_button_pressed (state=(2),x=(2),y=(1));
action commands
.......
enddef;

REM --- Save definition ---

define left_button_pressed (state=(2),x=(2),y=(2));
action commands
.......
enddef;

....
......




The following commands are currently defined:

Definition Commands

DEFINE action (,,..);
action commands;
ENDDEF;

where definition command can be selected as any combination of the following:

MENU=(?)
STATE=(?)
X=(?)
Y=(?)
MATCH(x,y,'string')
MATCH_CURSOR('string')
MATCH_ATTRIBUTE(x,y,background_color)

where DEFINE begins the definition for a set of commands to be
executed when the specified action occurs. The optional parameters
STATE=(?),X=(?),Y=(?) can be used to qualify an event according to
the internal state variable 'STATE' and/or according the to starting
position of the hi-lighted menu item (cursor position) where 'X' is
the horizontal displacement from the left-most column of the pop-
up window and 'Y' is the vertical displacement from the top of the
pop-up window. The top left of the pop-up menu is at location
(0,0). Menu refers to the active menu, which is the last pop-up
text window activated using the 'show(textn)' command. If all of
the specified conditions are true, then the specified action
commands are executed.

'action' may be selected from the following:

right_button_pressed left_button_pressed
right_button_released left_button_released
right_cursor left_cursor
up_cursor down_cursor

'MENU' is an internal variable which is initialized to a value of
'0'. The value of this variable is changed whenever the 'show' or
'hide' command is executed (see below). The value of 'MENU' is set
to the current pop-up menu. A value of '1' indicates that TEXT1
is currently active. A value of '2' indicates that TEXT2 is
active, and so on. A value of '0' indicates that no pop-up menu
is currently active. DEFINE statements may be executed using the
value of 'MENU' as a conditional parameter as shown above. If 'MENU'
is omitted in a DEFINE statement, the value of 'MENU' becomes a
"don't care" and the value of 'MENU' will have no effect on whether
or not the DEFINE statement is executed.

'STATE' is an internal variable which is initialized to a value of
'1'. The value of this variable may be changed using the 'STATE='
command (see below). Then, DEFINE statements may be executed using
the value of 'STATE' as a conditional parameter as shown above. If
'STATE' is omitted in a DEFINE statement, the value of 'STATE' becomes
a "don't care" and the value of 'STATE' will have no effect on
whether or not the DEFINE statement is executed.

x and y are the current horizontal and vertical locations of the
selection cursor, respectively. Define statements may be
executed based on the current value of these variables. If x or y
are omitted, then it becomes a "don't care" and it's respective
value does not effect the execution of the DEFINE statement.

If specified, 'MATCH' will qualify event based the presence of
'string' at location x,y on the video display. If the ASCII
string 'string' is found, then event qualifies as TRUE and the
specified action commands are executed. Otherwise, no action is
taken.

If specified, 'MATCH_CURSOR ' will qualify event based the presence of
'string' at the location which is currently highlighted on the video display.
If the ASCII string 'string' is found, then event qualifies as TRUE and the
specified action commands are executed. Otherwise, no action is
taken.

If specified, 'MATCH_ATTRIBUTE' will qualify event based the background color
at the location x,y on the video display. If the background color matches
the color specified, then event qualifies as TRUE and the specified action
commands are executed. Otherwise, no action is taken.



TEXTn (x,y);
' text 1 ';
' text 2 ';
ENDTEXT;

where 'TEXTn' begins the definition for the text to be contained in
a pop-up menu window for menu # n. The parameters x and y, where x is
the horizontal displacement from the left-most column of the screen and
y is the vertical displacement from the top of the screen defines the
location of the pop-up menu. The maximum menu size is 25 lines of 80
characters (full screen). The maximum number of menus is based on the
number of characters used. The maximum number of characters that can be
used for all menus is 3500.


Action Commands

SHOW(textn);

where 'SHOW' will display the previously defined pop-up menu TEXTn
where n may be 1 thru 99. When a pop-up menu is active, the
selection cursor will automatically be positioned to the
appropriate text word in the text definition according to the
movement of the mouse. The cursor will appear in the form of a
high-lighted block of text. Therefore, each menu selection in the
pop-menu should be a single text word such as 'Quit' or 'Load'.
Each must be separated by at least one space and no text may
appear in the first or last line of the menu or in the first or
last column.


EXECUTE(filename);

where 'filename' is an executable file to be executed at load time.
'filename' must either reside in the current directory or in a directory
specified in the PATH environment variable. Upon exiting 'filename', RAT
will automatically be unloaded from memory. Only 1 EXECUTE instruction
may be specified per menu program.

HIDE(textn);

where 'HIDE' will de-activate the pop-up menu TEXTn where TEXTn has
been activated by a previous SHOW(TEXTn). Also, if 'ALL' is substituted
for 'textn', then all active pop-up menus will be de-activated.

STATE=(num);

where 'STATE=(num)' will set the internal state variable 'STATE' to
the value num. DEFINE statements may then execute based on the
value of 'STATE'. Initially, 'STATE' is set to a value of '1';

TYPE(key)

where 'TYPE' will insert the scancode for the key specified by 'key'.
See Table I for a list of keys which are supported. 'key' may also
be a string of up to 10 alpha-numeric characters enclosed in single
quotes.

example:

TYPE('HELLO');

SPEED(x,y);

where 'SPEED' will set the sensitivity of the mouse x and y motion.
The default values are x = 8, y = 16. The lower the number, the
MORE sensitive or FASTER the cursor motion will be. The range of
values for x and y is 1-99;

REM text

where 'REM' will indicate that this line in the source file is to be
ignored by the compiler. Use this for comment lines.

Some special characters to be aware of when defining the main text for a
menu.

'<' - this character will be translated to the IBM special
character left arrow (ASCII 27).

'>' - this character will be translated to the IBM special
character right arrow (ASCII 26).

'_' - the underscore character will be translated to ASCII 255 and
will be displayed as a space on the screen. This is to allow
menu selections to have more than one word per highlighted
selection. Remember! Normally, spaces indicate the seperation
of highlighted selections.

For example:

'Save File' would be interrpreted as 2 seperate selections.

'Save_File' on the other hand, will be treated as one selection
and both words will be highlighted.


TABLE I - Keys recognized by TYPE


F1 SHFTF1 ALTF1 CTLF1
F2 SHFTF2 ALTF2 CTLF2
F3 SHFTF3 ALTF3 CTLF3
F4 SHFTF4 ALTF4 CTLF4
F5 SHFTF5 ALTF5 CTLF5
F6 SHFTF6 ALTF6 CTLF6
F7 SHFTF7 ALTF7 CTLF7
F8 SHFTF8 ALTF8 CTLF8
F9 SHFTF9 ALTF9 CTLF9
F10 SHFTF10 ALTF10 CTLF10

CTLA ALTA DARR
CTLB ALTB UARR
CTLC ALTC RARR
CTLD ALTD LARR
CTLE ALTE HOME
CTLF ALTF END
CTLG ALTG PGUP
CTLH ALTH PGDN
CTLI ALTI INSERT
CTLJ ALTJ DELETE
CTLK ALTK CR
CTLL ALTL ESC
CTLM ALTM TAB
CTLN ALTN SHFTAB
CTLO ALTO CTLDARR
CTLP ALTP CTLUARR
CTLQ ALTQ CTLRARR
CTLR ALTR CTLLARR
CTLS ALTS CTLEND
CTLT ALTT CTLPGUP
CTLU ALTU CTLPGDN
CTLV ALTV CTLINSERT
CTLW ALTW CTLDELETE
CTLX ALTX ALTINSERT
CTLY ALTY ALTDELETE
CTLZ ALTZ


 December 24, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)