home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carousel Volume 2 #1
/
carousel.iso
/
comdore
/
64apps
/
diverkey.bny
/
KINST
< prev
next >
Wrap
Text File
|
1987-03-27
|
39KB
|
1,143 lines
Diversi-Key(tm)
By Bill Basham
Copyright 1987 DSR, Inc.
Version 0.3 (test)
INSTRUCTIONS
PLEASE COPY THIS DISK AND GIVE IT TO EVERYONE YOU KNOW!
It is legal to copy and distribute this disk. However, to legally
use the Diversi-Key program on this disk, you must send payment
within 2 weeks. Please send $45 directly to:
DSR, Inc.
34880 Bunker Hill
Farmington, MI 48018-2728
You will receive a user support number, and a new disk with the
latest version of Diversi-Key. Your honesty will help us distribute
future programs in this same, low-cost way.
********
INTRODUCTION
********
Diversi-Key is a keyboard macro utility for the Apple //gs, which can
be used to automate the keyboard input for most programs which run on
the //GS.
You install Diversi-[ey permanently into the //gs expansion memory,
where it stays available while you run other programs (such as
Appleworks). Your other programs run normally, until you activate
Diversi-Key by holding down the "option" key on the //gs keyboard.
While holding down the option key, the next keys you press are
interpreted as a "Macro" call. When you call a macro, Diversi-Key
takes over your keyboard, and rapidly types a pre-defined sequence of
keystrokes for you. You'll find that Diversi-Key greatly increases
the power and utility of your other programs.
When you hold down the option key, your program will pause
temporarily, and resume when you let the option key up. You can
press the option key to stop the program any time, i.e. to read a
screen message which is scrolling by. Whenever the option key is
down, you will see an inverse "K" in the upper right corner of the
text screen (when in text mode only).
Diversi-Key requires an Apple //gs with at least 512K. The Apple
//gs comes with 256K, so you must buy a memory card with at least
256K, which plugs into the //gs memory expansion slot.
********
INSTALLATION
********
Diversi-Key is installed automatically when you boot the Diversi-Key
disk. You only boot this disk once, at power on. The Diversi-Key
program is actually a binary file named "DIVKEY". Diversi-Key may be
installed under ProDOS or DOS 3.3 with:
BRUN DIVKEY
Once Diversi-Key is installed, it stays in memory permanently until a
power off re-boot. That is, Diversi-Key stays installed even if you
reboot with open-apple-ctrl-reset.
ERRORS: When you BRUN DIVKEY, you will hear a "beep" if the
installation was unsuccessful. The usual reason for this is that you
tried to install Diversi-Key again, when it was already installed.
You also get this error if you don't have a //gs memory expansion
card, or if there is no memory available to install Diversi-Key. If
this occurs, try installing Diversi-Key from a power-off boot.
Note: To avoid the beep, POKE 0,0.
NO RESPONSE? If Diversi-Key ever stops working, particularly after
booting a new program, try pressing the "flush" key sequence:
open-apple_control_delete (Flush key sequence)
The Diversi-Key disk contains a pre-defined set of macros in a file
names "MACRO", which are installed when you boot the DIversi-Key
disk. You can also install them from BASIC with:
BRUN MACRO
The Diversi-Key program comes on a 5.25 ProDOS floppy disk. We
recommend you boot this disk when you power on, to install
Diversi-Key. You can then boot from the 3.5 drive with "PR#5".
You can also use the Apple //gs system utility program to transfer
all of the Diversi-Key files to a newly formatted 3.5 inch disk.
Note: When using Diversi-Key with Diversi-Cache, you should install
Diversi-Cache FIRST.
********
COLD REBOOT
********
You can remove Diversi-Key by turning the power switch off for 10
seconds or so, but this will eventually wear out the switch. You can
simulate a power-off re-boot as follows:
1. Hold OPEN-APPLE_SHIFT_CONTROL keys down (3 keys).
2. Press and release RESET key.
3. Wait for 2 beeps.
4. Release OPEN-APPLE_SHIFT_CONTROL keys.
This will remove Diversi-Key, and clear your Ramdisk (if any).
********
CALLING MACROS
********
Macros in Diversi-Key are numbered from 1 to 9999. There are two
tivfurunt ways to call the same macro. You can call a macro by
number by holding down the option key, and entering the macro number
on the numeric KEYPAD. This is called a "Keypad Macro". You can
also call a macro by holding the option key down, and pressing any
keyboard key. This is called a "Keyboard Macro".
********
KEYPAD MACROS
********
To call a keypad macro, hold the option key down and type the macro
number on the numeric keypad. The macro is triggered when you press
the keypad <enter> key, or let up the option key. Press the keypad
<clear> key if0yu0mqku qn0errr> 0Dyvursi=Kuy0dysplqys q {eypad
macro as [nnnn], where nnnn is a number from 1 to 9999. Some keypad
macros are: [0124], [0001], [9047].
********
KEYBOARD MACROS
********
Triggering a keypad macro requires more than one keystroke, and
numbers are hard to remember. To get around these problems, you may
also trigger macros with single-keystrokes on the KEYBOARD. You do
this by holding down the option key, and pressing any keyboard key,
that is, any key not on the numeric keypad. The macro is triggered
immediately when you hit the keyboard key. Be sure to let up the
option key, to allow the program to continue after the macro is
completed.
Diversi-Key displays a keyboard macro as: [k], where "k" is any
keyboard key. Here are some keyboard macro examples: [N], [$], [1].
Note that [1] is a keyboard macro triggered by pressing "1" on the
keyboard. [0001] is a keypad macro, triggered by pressing "1<enter>"
on the numeric keypad.
There are 96 possible keyboard macros, which correspond to keypad
macros numbered from 0 to 95. Each keyboard macro corresponds to its
ASCII equivalent keypad macro. For example, the "A" key is an ASCII
65. Therefore [A] is the same as [0065].
Note that lowercase keyboard macros are converted to uppercase. That
is, [a] is the same as [A]. For keyboard keys with ASCII values from
96 through 127, subtract ASCII 32 to find the keypad equivalent
(converts to lowercase).
Keypad macros [0096] to [0099] have no keyboard macro equivalent.
********
REDEFINING THE KEYBOARD
********
You can re-define the entire keyboard by entering:
[xx/] where xx=0..99
That is, hold the option key down, enter a number from 0 to 99 on the
numeric keypad, and press the numeric keypad "/" key.
When you do this, the keyboard macros will now correspond to keypad
macros [xx00] to [xx95] instead of [0000] to [0095].
For example, when you enter [02/], then [A] triggers macro [0265]
instead of macro [0065].
You can use this feature when you switch programs, since your macro
definitions will be very specific to each program. For example, you
might enter [00/] for running Appleworks, and [01/] for programming
in BASIC. Thus, you can keep up to 100 sets of keyboard macro
definitions in memory at one time, in each 32K macro file.
********
SPECIAL MACROS
********
Diversi-Key contains 100 pre-defined "special" macros, which are
always available, and cannot be modified. You call a special macro
by holding the option key down, and entering a number from 1 to 99 on
the numeric keypad. Then, hit the keypad "." to trigger the special
macro (instead of <enter>). Special macros are displayed as follows:
[nn.] where nn=0 to 99
Special macro [00.] calls the "control panel". If you hold the
option key down, and hit the keypad "." (without entering a number),
the effect is the same as pressing OPEN-APPLE_CONTROL_ESCAPE.
Other special macros functions are described throughout these
instructions. For a list of all special macros, see the reference
section.
********
BOOTING PRODOS FROM 5.25 DISKS
********
The ProDOS boot routine from 5.25 floppy disks fails if interrupts
are active, as is the case with Diversi-Key. If you boot your 5.25
ProDOS disks with control-open-apple-reset, you won't have a problem.
However, to boot a ProDOS 5.25 disk with PR#6, you must first enter
special macro [10.] to de-activate Diversi-Key. When the disk
finishes booting, press ctrl-open-apple-delete to re-activate.
This problem does NOT occur with 3.25 disk, hard disks, or DOS 3.3
disks.
********
DEFINING A MACRO
********
You can define a new macro, or edit an existing macro definition at
any time. To define a keypad macro, enter the macro number on the
keypad, followed by the keypad "=":
[nnnn=] where nnnn=0..9999
To define a keyboard macro, hold the option key down, press the
keypad "=", followed by the keyboard key you want to define.
[=k] where k is any keyboard key
When you enter macro define mode, the current definition for this
macro, if any, will appear on the top line of the screen. The macro
definition begins with:
[nnnn=k] where nnnn is keypad macro number you are defining, and k is
its keyboard macro key equivalent (if any). For example:
[0065=A]
You define the macro by typing it on the keyboard. When finished,
press the keypad <enter> key to accept, or the keypad <clear> key to
cancel. Note that the first time you press <clear> it clears any
definition you have typed, if any. Press <clear> again to exit macro
define mode without changing anything.
While defining a macro, you can call another keyboard macro by
holding the option key down when you press the keyboard key. The
status of the open-apple key (up or down), is saved in the macro
definition, which is especially useful with Appleworks.
During the macro definition, the following keypad keys have special
functions:
Keypad Key Function
* Delete last character entered
- Move cursor back 1
+ Move cursor forward 1
<clear> Cancel definition
<enter> Accept definition
= End of macro definition, comments follow (optional)
/ Enter special macro functions
The keypad "/" key is used to enter keypad macro calls, special macro
calls, and all the other special macro functions described later. To
call keypad macros enter:
/nnnn<return> where nnnn is keypad macro number 1..9999
To enter a special macro call:
/xx.<return> where xx is special macro number 00..99
********
SCREEN DISPLAY DURING MACRO DEFINITIONS
********
As you type your macro definition, each character is displayed on the
top line of the screen. If you hold the open apple key down while
typing a character, the character appears as {k} where "k" is the
character. Open-Apple A is shown as {A}, for example. Other display
features are as follows:
[k] keyboard macro call
[nnnn] keypad macro call
[xx.] special macro call
<A> control key / <A>..<Z>
{A} open apple key down
| end of macro, beginning of comments
The arrow keys, tab, escape, delete, and return are printed as
follows:
<left> <right> <down> <up> <tab> <esc> <del> <ret>
Combinations of keys produce the following, for example:
{<tab>} means open-apple-<tab> pressed
[<tab>] call keyboard macro key <tab>
Other special functions are displayed between [ ] brackets as
described later.
********
PRINTING MACRO DEFINITIONS
********
Diversi-Key has a very flexible way of displaying the definitions in
your current macro file. It types the definitions as a macro!
You can use this feature to type a list of all your macro definitions
into a word processing file. For example, to see all the built-in
macro definitions, boot Appleworks and enter the word processor with
an empty file. Hold the option key down, and press the keypad "-"
key twice:
This will type in the definitions for macros 1 to 9999 into your word
processor, regardless of which word processor you are using.
In the following display options, the "-" key is the one on the
keypad:
-- Displays all macro definitions
-nnnn- Displays all definitions starting with keypad macro nnnn
nnnn- Displays keypad macro nnnn only
-k Displays keypad macro "k"
-<@> <@> is ctrl-@ / Displays all current keyboard macros
Note: Diversi-Key may pause for up to 12 seconds when displaying
macros, as it searches for undefined macro numbers.
Comments: You can put comments at the end of your macro definitions
by pressing the keypad "=", followed by the comment. When displaying
comments, i.e. with keypad --, Diversi-Key sends these comments as
actual keystrokes. That is, a <ret> in a macro definition is sent as
the 5 characters, "<ret>", during display. A <ret> in a comment, is
sent as a real single keystroke carriage return, during display only.
This allows you to send formatting commands in comments, to make them
easier to read. For example, the built-in comments all start with
<ret> space, to indent them on the next line.
********
FLUSH: CTRL_OPEN-APPLE_DELETE :THE PANIC BUTTON!
********
If you trigger the wrong macro, or hit keypad -- by mistake,
Diversi-Key may go merrily along typing bad keystrokes for some time.
Fortunately, you can stop Diversi-Key at any time by typing the FLUSH
key sequence. To do this, hold down the control and open-apple keys,
and then press the delete key. Try this whenever Diversi-Key seems
to be acting "stangely", i.e. not working.
********
MACRO FILES
********
Diversi-Key macro files are saved on disk as binary files. You then
BRUN the file to load it into memory for use. The Diversi-Key disk
contains a standard file named "MACRO" which contains the pre-defined
macro definitions for Appleworks (and other programs). To load this
file, enter:
BRUN MACRO
When you do this, the macro definitions on disk in the MACRO file
will replace the current macros in memory. However, you may keep up
to 10 different macro files in memory at once, each with up to 9999
macros in 32K memory.
Macro files in memory are numbered from 0 to 9. Normally, you will
only use file #0. To switch to a new macro file number, hold the
option key down, and press the keypad keys "=+n", where n is a keypad
digit from 0 to 9.
For example, to load a second macro file named "MAC2" and still
preserve the exisiting macros, enter
=+1 (keypad keys with option key down)
BRUN MAC2
To switch back to the original macro file, enter "=+0" (keypad-option
key down).
Finally, to release the memory allocated for the second macro file,
if necessary, enter "=-*1" (keypad-option key down).
We anticipate that you may someday buy commercial programs with
custom Diversi-Key macro files included.
********
SAVING MACRO FILES
********
You can save your current macros in a file, either under ProDOS or
DOS 3.3. To do this, you must first enter BASIC, and get to the
Applesoft prompt, which is a:
]
One way to do this is to choose "BASIC.SYSTEM" from the //GS program
launcher or desktop.
When you see this prompt, enter special macro [1.][2.]. That is,
hold the option key down, and press the 4 keypad keys "1.2." without
letting the option key up.
Diversi-Key will type the word "BSAVE" for you, and wait for you to
enter a file name. Type the name of the macro file you want to save,
and hit <return>. Diversi-Key will finish the BSAVE command for you.
You may now reboot. Under ProDOS, you can return to the launcher by
typing "BYE<return>".
WARNING!!!!
Never enter [1.][2.] while executing a program. Doing this will
crash the program (and possibly the whole system). Be sure you see
the Applesoft prompt "]" before entering [1.][2.].
********
CONVERTING TO SYSTEM FILES
********
You can convert your macro files to system files, in order to load
them from a menu manager program, as follows:
First CATALOG your disk and note the length of the MACRO file.
BLOAD MACRO,A$1000
POKE 4098,0
CREATE SMACRO,TSYS
BSAVE SMACRO,A$1000,Lxxxxx where xxxx is the length from the CATALOG
You can do this with any macro file, not just "MACRO".
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Advanced Features
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++
TIME AND DATE
++++++++
As you know, the Apple //GS contains a built-in clock, which
Diversi-Key can read. Special macros [77.] through [99.] may be used
to print the time and date in almost any format. See the special
macro reference list towards the end of these instructions for a
description of each special macro function.
For example, to print the date, define a macro which contains the
following special macro calls:
[99.] [93.],19[94.]
To print the current time, use the following in a macro definition:
[95.]:[96.] [91.]M
++++++++
COUNTER
++++++++
Macros [70.] through [74.] allow you to print an incrementing
counter, up to 8-digits. The counter starts out at "1". Macro [70.]
prints the current counter, and increments it.
You may set the counter directly from the keyboard by entering
option-keypad nnnn+, shown as [nnnn+] in the reference. To set the
counter to 210, enter
210+ (on keypad, option key down)
You can also set the counter from within a macro, with special macro
function /C (/ is the keypad "/" key). During a macro definition,
enter:
/Cnnnnnnnn<ret> where nnnnnnnn is 0 to 99999999
See the special macro function reference section below for more
information.
++++++++
KEYBOARD INPUT DURING A MACRO
++++++++
Three different special macro functions allow you to stop in the
middle of a macro, and enter keystrokes directly. They are the /P,
/K, and /S functions.
When you are defining a macro, enter /P to pause the macro execution
at that point. When you execute the macro, Diversi-Key will stop
when it hits the /P function. It continues as soon as you press any
keyboard key. The keyboard key is ignored.
/K is the same as /P, except the key you type is sent as part of the
macro.
/S lets you type a series of keystrokes from the keyboard, in the
middle of executing a macro. The macro continues when you hit
<return>. The <return>0kuypruss ys0N_T0sunt.
?S{ 8wxere0"{"0is qny {eyboard key) is the same as /S, except the
macro will continue when you press the "k" key, instead of the
<return> key.
++++++++
DISPLAYING MESSAGES (PROMPTING)
++++++++
Special macro [15.] puts a message on the top line of the screen, or
[16.] puts the message on the bottom line (text mode only). Macro
[14.] removes the message.
You define the message with the /D (display) function in a macro
definition. The display message may be up to 79 characters
(80-column screen) or 39 characters (40-column screen). You end the
display message with open-apple delete, {<del>}.
Control keys in a display message are displayed as their
corresponding mousetext (or flashing) characters. {} keys
(open-apple down) in a message are shown as inverse characters.
The display message overwrites whatever is on the screen> 0Txe0<te|>cxarastur0i~ q }essqgu wi|l0s{ip vur0o~e0ssrue~ shqrqcter, i.e. not
overwrite it.
An example use of a display message is as follows:
/D<return> {H}{i}{t}{ }{a}{n}{y}{ }{k}{e}{y}{<del>}[15.][Pause][14.]
This displays "Hit any key" in inverse letters on the top line of the
screen, waits for a keypress, and removes the message (try this in
80-column mode for correct inverse lowercase).
++++++++
REPEAT FUNCTION
++++++++
The repeat function allows you to repeat part of a macro from 2 to
253 times. You mark the beginning of the section to repeat with:
/Rnnn where nnn=2..253
Then, enter the section you want to repeat. Mark the end of the
repeat section with the /E function. For example, the following will
type "HI " 5 times:
/R5<return>HI /E<return>
If you enter this as macro definition [<ret>] or [0013], the screen
display shows this:
[0013=<ret>][A-Repeat:005]Hi [End-A]
The "A" in the Repeat and End functions signify nest level "A".
Diversi-Key allows you to nest Repeats, as long as each Repeat has a
corresponding End. An example of this is:
[0013=<ret>][A-Repeat:002]Hey [B-Repeat:005]Hi [End-B][End-A]
When you execute this macro, it prints:
Hey Hi Hi Hi Hi Hi Hey Hi Hi Hi Hi Hi
++++++++
LIST FUNCTION
++++++++
The /L (LIST) function allows you to call a different macro each time
it is executed. The format is:
/Lxxx,nnnn
where "nnnn" is any starting keypad macro number 0..9999, and "xxx"
is the number of keypad macros in the list. For example /L3,1000 is
displayed as:
[List:3,1000]
The first time this function is executed, it calls macro [1000]. The
next time, it calls [1001], then [1002]. Since there are 3 macros in
the list, it then goes back to [1000] again.
Macro [76.] sets a flag to reset the next list function executed, to
the first macro in the list (sets list counter to 0).
The "/Z" (Zlist) function "zeros" all list counters until its
corresponding "End" statement.
++++++++
IF/WHILE FUNCTIONS
++++++++
The IF/WHILE functions are for advanced programmers with assembly
language experience. The format of these functions is:
/Ixx/xxxx=yy (IF)
/Wxx/xxxx=yy (WHILE)
Values are hexadecimal digits 0..9 or A..F (uppercase), where xx/xxxx
is the bank and address to test, and yy is the byte to compare it
with. The "=" condition may be replaced with the following tests:
= equal
<> not equal
<= less than or equal
< less than
>= greater than or equal
> greater than
& AND (true if xx/xxxx AND yy <>0)
~& not AND
Each IF and WHILE statement must have a corresponding END statement.
If the condition tests FALSE, then Diversi-Key skips to the END
statement.
If the condition is TRUE, Diversi-Key continues executing right after
the IF/WHILE statement, without skipping anything.
The WHILE statement repeats everything up to its END statement, as
long as the condition is TRUE.
Since the IF/WHILE functions use absolute hexadecimal locations,
you'll need to know the internals of the program you are using. Some
locations for Appleworks 2.0 are:
00/10F1 =0 insert / <>0 strikeover cursor
00/10F5 character at cursor
00/0014 Horiz. cursor position
00/0015 Vert. cursor position
After Diversi-Key sends a character, the program may not have time to
process it before the next IF/WHILE test. This is because
Diversi-Key is interrupt driven. To be sure of an accurate test,
then, the character sent immediately before the test must not affect
the test. It is useful to have a "dummy" character to send for this
purpose, which does not affect the program. In Appleworks, sending
two open-apple E's, {E}{E}, has no effect, for example.
You can test some of the internal variables in Diversi-Key with the
IF/WHILE statements. To do this, you use an address in bank 7F, or
start your comparison byte with a "?".
7F/00xx or ?xx xx = internal variable number
For example, special variable #12 is the "Tick Count", which
increments every 1/60th second. You can clear the tick count with
[21.]. The following macro types "HI" 5 times, every 2 seconds.
[0095=<del>][A-Repeat:005][21.][B-While:7F/0012<78][Null][End-B]Hi [End-A]
Note that IF/WHILE statements may be nested, just like REPEAT.
The [Null] statement, entered as "/N", allows the program to continue
executing during a REPEAT or WHILE loop which is not sending any
keystrokes. The [Null] forces Diversi-Key to return to the calling
program for one interrupt cycle.
Note that the program will run very slowly while Diversi-Key is in
this kind of loop. You can speed up the program execution during a
"null" loop with special macro [61.] before the start of the loop.
This slows down the Diversi-Key interrupt rate (and also disables
type-ahead during the macro). To speed Diversi-Key back up to normal
after the loop, use macro [60.].
++++++++
SLOWING DIVERSI-KEY DOWN / PROGRAM COMPATIBILITY PROBLEMS
++++++++
Diversi-Key sends its keystrokes just like you had typed them. That
is, they appear at $C000, the normal keyboard location. This is how
Diversi-Key can work with any program.
Unfortunately, some programs throw away keystrokes if you type too
fast. This is never necessary, but many programmers are in the habit
of doing it. Diversi-Key automatically corrects this problem in
Appleworks 2.0, and Pascal 1.3, by patching these programs in memory
when they appear.
For other programs, your only hope is to slow down Diversi-Key,
(unless you can figure out how to patch them). Macros [61.] through
[67.] slow down Diversi-Key ([67.] is slowest), and macro [60.]
restores normal speed.
Note that when you slow down Diversi-Key, you lose the ability to
type ahead during a macro. Diversi-Key automatically slows down when
you enter the control panel, so that's why you can't type ahead
there.
This problem only shows up with machine language programs, so if you
know some machine language, you can try to patch the problem away.
Typically, the problem is caused by clearing the keyboard strobe at
$C010 unecessarily, usually as follows:
LDA $C010 (NOT NEEDED, CHANGE TO NOP/NOP/NOP)
GETKEY LDA $C000
BPL GETKEY
STA $C010 (NEEDED)
You can use the //GS monitor to find references to $C010 as follows:
BLOAD program
CALL -151
\10 C0\<800.9600P
++++++++
USING THE MOUSE
++++++++
Diversi-Key allows you to program your mouse to send macro
keystrokes. You activate the mouse with the special macro: [51.]
With the mouse activated, you can send a total of 10 different macros
from the mouse. When the program starts, the mouse movements will
send the following macros:
With mouse button up:
[<P>] left mouse motion
[<Q>] right mouse motion
[<R>] down mouse motion
[<S>] up mouse motion
[<T>] sent when mouse button goes from down to up
With mouse button down:
[<V>] left mouse motion
[<W>] right mouse motion
[<X>] down mouse motion
[<Y>] up mouse motion
[<Z>] sent when mouse button goes from up to down
You can re-assign these mouse macros with the /B (BMOUSE) and /M
(MOUSE) special functions. For example:
/B/<A> will assign the mouse button down macros to be [<A>} through
[<E>]. /M/<A> does the same for the mouse button up.
/B1000 will assign the mouse button down macros to be keypad macro
numbers 1000 to 1004, and similarly for /M1000.
To use the mouse, first enter [51.] to enable it. Then, hold down
the option key, and move the mouse, or press the mouse button. The
mouse is only active when the option key is down.
While holding the option key down, you can press the control key to
enable the one way mouse function. With the control key down, mouse
left-right motion is ignored. With the control key up, mouse up-down
motion is ignored. If you prefer, you can use the control key to
convert mouse left/right motion into up/down motion. Enter [54.] to
enable this feature.
You can lower the mouse sensitivity with [55.] for horizontal, or
[56.] for vertical. You can enter these macros up to 255 times for
minimum sensitivity (use repeat function).
Macro [57.] insruases the ability of the mouse to type ahead. Each
time you call [57.], can typeahead one more macro call. You can
increase typeahead 255 times.
If you define mouse motion to do cursor movement keystrokes, then the
typeahead behaves as follows:
With no typeahead, the cursor moves in the same direction the mouse
moves. When you stop mouse movement, cursor movement stops. If you
move the mouse faster than the cursor can follow, nothing changes.
With full typeahead, the mouse can get ahead of the cursor. If you
move the mouse rapidly, the cursor will eventually catch up to the
mouse. The cursor keeps moving after you stop moving the mouse.
With typeahead, the location of the mouse on the table corresponds to
the location the cursor will eventually reach on the screen.
After you start moving the mouse, you can no longer trigger macros
from the keyboard. You'll notice that the inverse "K" in the upper
right corner disappears during mouse movements. Let up the option
key for an instant to get the "K" to re-appear, and allow macro
triggering from the keyboard again. This feature is included to
avoid pausing the program during mouse movements.
When using the mouse for a long time, you can enter [45.] to change
the "trigger" key to <caps lock>, to avoid of having to hold down the
<option> key all the time. To cancel, enter [40.].
With Diversi-Key, the mouse becomes an extremely flexible tool which
can be used in any program, if desired.
=================================================================
OTHER INFORMATION
=================================================================
*** Licensing Information ***
Although Diversi-Key is copyrighted, DSR allows copying and
distribution of the program subject to the following restrictions:
1. Anyone receiving a copy of Diversi-Key must send a $45 license
fee directly to DSR, Inc. within 2 weeks.
2. Any company, club, or individual may charge up to $5.00 for
distributing copies of Diversi-Key, provided it is clear that an
additional $45 fee must be sent directly to DSR.
Publishers:
Unlike Diversi-DOS and Diversi-Cache, we do not license Diversi-Key
to be included with other programs. However, we do encourage you to
include a custom Diversi-Key macro file on your disks, specific for
your program. We hope you will recommend that your customurs rter
Tiversi-Key directly from us, in order to use this file.
Multiple Computers:
Each additional computer license fee is $45, up to a maximum of $250
for all the computers owned by a company (or school district).
*** User Support ***
Your user support number entitles you to talk directly to the
programmer, Bill Basham. Please write if possible, or call:
313 553-9460 between 3 and 5 PM Eastern time.
*** Diversi-Cache ***
Diversi-Cache dramatically increases the I/O speed of the Apple Disk
3.5, under any operating system (ProDOS, Pascal, DOS 3.3).
Diversi-Cache speeds up the Disk 3.5 in two ways. First of all,
whenever the system reads a block, Diversi-Cache actually reads an
entire track. This triples the speed of disk reads, and doubles the
speed of ProDOS writes.
Secondly, Diversi-Cache allows you to allocate a cache memory buffer
from 0 to 800K in size. Whenever the system reads a block,
Diversi-Cache saves it in the cache buffer. If the system asks for
this block again, it comes out of memory at "Ramdisk" speed.
Diversi-Cache only speeds up the Apple Disk 3.5 designed for the
Apple //gs, and will not affect the speed of the older Apple //c
compatible UniDisk 3.5.
*** Diversi-Copy ***
Diversi-Copy(tm) is the fastest and easiest way to make back-up
copies of your 3.5 and 5.25 disks. Diversi-Copy will use all
available memory in an Apple //gs, //e, //c, or II+ compatible to
allow 1-pass copying with a single drive.
Diversi-Copy was chosen as inCider magazine's "Editors' Choice". It
is the best copy program available, for both 5.25 and 3.25 drive
copying.
*** How to Order ***
To order, please send your check to:
DSR, Inc.
34880 Bunker Hill
Farmington, MI 48018-2728
The cost of our programs is as follows:
Diversi-DOS $30
Diversi-Copy $30
Diversi-Cache $35
Diversi-Key $45
We only sell our programs by mail-order, and will notify you of
future program updates which you may purchase for $5 each.
-----------------------------------------------------------------
REFERENCE
-----------------------------------------------------------------
--------
CONVERTING DIVKEY TO A SYSTEM FILE
--------
You can convert Diversi-Key to a system file, so you can run it
directly from a menu selection program. To do this, first run
BASIC.SYSTEM. Then CATALOG the Diversi-Key disk and note the length
of the DIVKEY file. Then, enter the following:
CREATE SDIVKEY,TSYS,A$2000
BLOAD DIVKEY
BSAVE SDIVKEY,TSYS,A$2000,Lxxxxx (where xxxxx is length of DIVKEY file)
--------
MOVING DIVKEY TO DOS 3.3
--------
First, boot DOS 3.3 and format a disk with:
INIT HELLO
Then, boot ProDOS again and enter:
BLOAD DIVKEY
Put in your new DOS 3.3 formatted disk
PR#6
BSAVE DIVKEY,A$2000,Lxxxxx (where xxxxx is length of DIVKEY file).
--------
USING DIVERSI-KEY: SUMMARY
--------
Executing a macro: Hold down option key and enter:
[] means keypad keys
[nnnn] let up option key executes macro nnnn
[nnnn<enter>] executes macro nnnn 1..9999
[nn.] executes special macro nn 0..99
[nn/] assigns macro's nn00 to nn95 to keyboard keys
nn= 1..99
nn00..nn95 ASCII keys 0..95 (upper/lowercase)
nn95 = ascii 127 = delete
[cccc+] sets counter to value cccc 0.9999
[nnnn-] send definition for keypad macro nnnn
[-]k send definition for keyboard macro k
[-<@>] send definitions for all keyboard macros A..Z etc.
[-nnnn-] send definitions for macro's nnnn..9999
[--] send definitions for ALL macro's 0001..9999
use these to type macro definitions into a word processor
for review and later editing
--------
DEFINING MACROS
--------
Start definition: [] means keypad keys
[nnnn=] defines keypad macro nnnn
or
[=]k defines option-k macro where k is keyboard key
During <definition>
Start with old definition on screen
[-] means backspace
[+] means forward space
[*] means delete (as in Appleworks)
[clear] means cancel definition
[enter] means accept definition
[k] means call nested macro for keyboard key "k"
[=] means end of macro, start of comments
[/] means call special function
end with [enter]
--------
SPECIAL FUNCTIONS
--------
/nnnn call nested macro nnnn
/nn. call special macro nn.
/K enter and send keystroke
/P pause until keystroke, ignore it
/S enter string until <ret> hit / don't send <ret>
/S<key> enter string until <key> hit / don't send <key>
/Rnnn repeat nnn times, nnn=2..254
/Wbb/aaaa=tt While conditional
/Ibb/aaaa=tt If conditional / values are HEX
/E end / for Repeat,If,While
/N null
/Cnnnnnnnn set counter (8 digits)
/Lxxx,nnnn do xxx macro's in list starting with macro nnnn
xxx=1..255 / nnnn=1..9999
/Z zero list counters
/Mnnnn Mouse button up macros start with [nnnn]
/Bnnnn Mouse button down macros start with [nnnn]
/M/k Mouse button up macros start with [k]
/B/k Mouse button down macros start with [k]
/D Begin display message / end with {<del>}
Special IF/WHILE conditions.
Address: 7F/00xx Test special location xx
Compare byte: ?xx
?0 CVAL: Value at last IF/WHILE address
Macro [75.] moves CVAL to CVAL1 / CVAL1 to CVAL2 / CVAL2 to CVAL3
?1 CVAL1
?2 CVAL2
?3 CVAL3
?4 MOUSE / <>0 means mouse is ON
?5 Y sensitivity
?6 X sensitivity
?7 MRPT typeahead amount for mouse
?8 FFLAG format flag byte / default is 0 / bits ON as follows:
80- UPPER CASE
40- 24-Hour Clock
20- Lead space
10- Abbrev. ASCII month/weekday
8 - Lead 0 or Space ON
?9 STACKP stack pointer / >0 means nested macro
The following are set with [20.] macro
?A WEEKDAY / 1-SUN 1..7
?B MONTH-1 0..11
?C DAY-1 0..30
?D YEAR 0..99
?E HOUR 0..23
?F MIN 0..59
?10 SEC 0..59
?11 OLDMOD / C025 register before last macro keystroke sent
?12 TICK count low byte / 60 HZ increment
?13 TICK count hi byte
?14 KGOT / Hi bit is OA status / Last key pressed during /S,/K or /P
--------
DISPLAY DURING MACRO DEFINITION
--------
<left> ctrl-H
<tab>0 0ctr|-Y
<dw~>0 strl=J<up> ctrl-K
<ret> ctrl-M
<right> ctrl-U
<esc> ctrl-[
<X> ctrl-X or other ctrl keys
{A} open-apple A
{<X>} open-apple ctrl-X
[nnnn=k] defining macro nnnn / which is keyboard key k
[nnnn] call keypad macro nnnn
[nn.] call special macro nn
[k] call keyboard macro k
[Key] insert keystroke
[Pause] pause until keystroke
[String <ret>] insert keystrokes until <ret>
[A-Repeat:12] repeat 12 times / nest level A
[A-If 00/0000=00] IF conditional, nest level A
[A-While 00/0000=00] WHILE REPEAT nest level A
[End-A] END nest level A
[Count=cccccccc] set counter to cccc
[List:003,1000] alternate macro's 1000,1001,1002
[A-Zlist] Zero list counters until End-A
[Mouse:1000] mouse macro [1000]
[Mouse:<V>] mouse macro [<V>]
[Bmouse:1000] mouse button down macro [1000]
[Display] start of message to display / ends with {<del>}
| end of macro definition, start of comments
--------
SPECIAL MACROS call with [nn.]
--------
[01.] - Lead-in for [2.]
[02.] - 1.2. means BSAVE macro file / must be in BASIC ] mode
[10.] - 10. means turn off Diversi-Key. FLUSH keys turn back on
May be needed before booting ProDOS on a 5.25 disk with PR#
[11.] - Turns on Diversi-Key again
ALSO clears KGOT to 0 / last key pressed yn0mqcro[12>]0-0Tur~ so|or fv
[13.] - Turn color on
[14.] - Turn Prompting Display off
[15.] - Turn Display on / top line (set display message with /D)
[16.] - Turn Display on / bottom line
[20.] - Force new time computation
[21.] - Clear Tick Counter
[40.] - Option key triggers macro (normal)
[41.] - OA trigger
[42.] - Option-OA trigger
[43.] - Option-Shift trigger
[44.] - OA-Shift trigger
[45.] - Caps Lock trigger (Use for handicapped or easier mouse)
[46.] - Beeps ON
[47.] - Beeps OFF
[48.] - Sound Volume normal
[49.] - Sound Volume OFF
[50.] - MOUSE OFF
[51.] - Mouse on / max sens. / no typeahead / 2-way mode
saves old mouse status FIRST
[52.] - Disable X (horizontal) mouse action
[53.] - Disablu Y
[54.] - Use X for Y with one-way mouse
[55.] - Decrease X sensitivity
[56.] - Decrease Y sensitivity
[57.] - Increase typeahead
[58.] - Restore old mouse status
[59.] - MOUSE SPECIAL MACRO / Don't use
[60.] - High-speed macros with typeahead / normal
[61.]to[67.] - Slow down macros /no typeahead / [67.] is slowest
[68.] - Allow interrupts during macro (normal)
[69.] - Disable interrupts during macro
[70.] - Print counter & INC
[71.] - DEC counter
[72.] - INC counter
[73.] - Clear counter to 1 / # dig to 0 (no leading 0's or spaces)
[74.] - INC # digits in counter (2..8) to give leading 0's or spaces
[75.] - Save CVAL to CVAL1, etc. (see IF/WHILE section)
[76.] - Reset next LIST pointer to first macro in list
[77.] - SAVE Format
[78.] - RESTORE Format
[79.] - RESET Format to defaults (* below)
Format options for time/date
[80.]*- Lead 0,Space OFF (*=default)
[81.] - Lead ON
[82.] - 0 lead char
[83.]*- Space lead char
[84.]*- 12-Hour clock format
[85.] - 24-Hour clock format
[86.]*- Full ASCII weekday and month
[87.] - Abbrev. ASCII weekday and month
[88.]*- Send macros upper/lowercase
[89.] - Send all macros in upper case only
Date and time macros / print current clock information
Clock is read only when a macro is triggered manually
Use [20.] to force clock re-read if needed
[90.]-Weekday, 1..7 / 1=Sunday
[91.]-A OR P (M)
[92.]-Month 1..12
[93.]-Day 1..31
[94.]-Year 0..99
[95.]-Hour 0..23 or 1..12
[96.]-Minute 0.59
[97.]-Second 0..59
[98.]-Weekday ASCII / i.e. "Sunday" or "Sun."
[99.]-Month ASCII /i.e. "January" or "Jan."
--------
Appleworks
--------
The file "MACRO" which installs automatically when you boot the
Diversi-Key disk, contains a set of pre-defined macros for use with
Appleworks 2.0. Rather than list these macros here, we suggest that
you put them into an Appleworks file and use Appleworks to print them
out. The macros are all commented, showing what each one does.
After you install Diversi-Key and "MACRO", boot Appleworks 2.0 and
open a new word processing file (from scratch). Then hold the option
key down and enter:
[--] (keypad "-" twice)