Documentation for KACK v1.0
KACK is short for Key Accelerate & Click Key. It is a program
which speeds up the typematic rate of the keyboard and/or gives
a click each time pressing a key. Entering only `KACK' at the
command line gives you this message:
Usage: KACK /
/C for key Clicks
/n (1..4) keyspeed
/P x = tone period (100..10000)
/U unload from memory
Case of the argument is irrelevant. Some examples of usage:
KACK /1 gives lowest repeat rate (about 7.5cps).
KACK /4 gives fastest repeat rate (about 30cps).
KACK /C /4 as above plus making clicks.
KACK /C4p200 as above with higher tone
KACK /U remove from memory if resident.
The program goes resident if the click function (/C) is chosen.
No click is heard when a key is released, neither when pressing
a shift-key (Alt, Ctrl, LeftShift or RightShift). Changing type-
matic rate is only possible on an AT or better. The PC/XT hasn't
the 8042 keyboard processor which does this possible.
As a TSR, KACK will occupy only 160 bytes. This exceptional low
memory usage is accomplished by using assembly language and by
disposing most of the PSP. Most of this PSP area is of no use to
this program. Many textbooks warns agains modifying values below
5Ch, but the word at 5Ch (DOS function dispatched) is a left-
over from the CP/M days. I have found no program that rely on
this value. Certainly not this program. (BTW, PkLite 1.14 puts
the word 4B50h ('PK') at this location).
If you wish to use a similar technique when making TSRs, be sure
to leave the start of the PSP unchanged as this area is used for
restoring interrupt vectors when exiting the program. Consult
your technical literature for information on the PSP. The inter-
rupt list edited by Ralf Brown is an indispensable tool. Look
for INTER30?.ZIP or later on BBSes or at a shareware supplier.
The program also releases its environment block when going TSR.
Thus making the program invisible to memory mapping utilities
like MapMem or Manifest when running MS-DOS prior to MS-DOS 5.
To make the memory hole left by the environment block as small
as possible, reduce your environment as much as possible. If
installed in your AUTOEXEC.BAT place the call before your PATH
or PROMPT statement. If your are using 4DOS, a simple trick is
to put a `@' before `KACK'. This will reduce some environment
To unload the program enter `KACK /u' at the DOS prompt. This
frees the memory used (even if loaded high). If any TSR loaded
after KACK grabs the keyboard interrupt, unloading becomes impos-
sible. KACK will have no way of knowing the last owner of INT 9.
This is the only interrupt KACK is hooking. If the memory block
associated with KACK has become destroyed, execution halt with
an error message. See the source code in KACK.8 for details.
This program is released as FreeWare. Use the accompanied source
code with caution. You are free to modify it as you pleases, but
leave my name in as the originator of the code. The program has
undergone tests on several PCs with MS-DOS 3.2, MS-DOS 5.0 and
DR-DOS 6.0. No problems has been noted. If you have any problems
using KACK, or find any errors or incompatabilities please drop
me a message through one of the following channels:
InterNet: [email protected]
PolarNet: GISLE VANEM @YRO (for Norwegians mostly)
RIME conf: Software or shareware
ILink conf: Shareware & Reviews
Snail-Mail: Gisle Vanem, Breimyra 56
5091 Flaktveit, Bergen, NORWAY
9. July 1992