MS-DOS Kermit reads scan codes from the PC BIOS (but if you are using
Windows, then all sorts of software layers are inserted between Kermit and
BIOS, so matters are somewhat more uncertain.
The BIOS reports one scan code for a numeric keypad key when Num Lock is
on, and a different code when Num Lock is off. All that MS-DOS Kermit is doing
is reading the scan codes from (what it thinks is) the BIOS.
To use the PC's numeric keypad as if it were a VT terminal's numeric keypad
in MS-DOS Kermit, you must make the appropriate key assignments, since they are
not made by default. By default, when Num Lock is not on, the keys have the
same assignments as the gray keys which have the same label (e.g. Home, End,
Left Arrow, etc), for the benefit of 88-key keyboards.
To make the desired key assignments, you can use the VT300.INI file in the
KEYBOARD subdirectory of the MS-DOS Kermit directory: You need the GOLD TSR to make the Num Lock key work like the DEC Gold key.
The GOLD TSR is found in the same directory as the VT300.INI file.
The rest of the commands in the VT300.INI file set up the function keys and
editing keys to be like the corresponding DEC VT220/320 keys.
But there is still one more piece to the puzzle. As noted, the VT keypad
can be in one of two modes: numeric or application. It is the responsibility
of the host application to send an escape sequence to put the keypad into the
appropriate mode before attempting to read keystrokes from it. But some
applications fail to do that and simply ASSUME that the keypad is in the right
mode. In many cases this assumption is wrong. So MS-DOS Kermit has a command
that lets you force the keypad into the desired mode:
32 How Does the Numeric Keypad Work?
This discussion applies to MS-DOS Kermit. The situation with Kermit 95 is
slightly different: In Kermit 95, the Num Lock key can be mapped directly and
the PC numeric keypad is mapped to the VT terminal numeric keypad by default.
take keyboard\vt300.ini
The pertinent commands from this file are:
set key \850 \kkp0 ; Keypad 0 (Numlock) Keypad 0
set key \338 \kkp0 ; Keypad 0 (Normal) Keypad 0
set key \847 \kkp1 ; Keypad 1 (Numlock) Keypad 1
set key \335 \kkp1 ; Keypad 1 (Normal) Keypad 1
set key \848 \kkp2 ; Keypad 2 (Numlock) Keypad 2
set key \336 \kkp2 ; Keypad 2 (Normal) Keypad 2
set key \849 \kkp3 ; Keypad 3 (Numlock) Keypad 3
set key \337 \kkp3 ; Keypad 3 (Normal) Keypad 3
set key \843 \kkp4 ; Keypad 4 (Numlock) Keypad 4
set key \331 \kkp4 ; Keypad 4 (Normal) Keypad 4
set key \844 \kkp5 ; Keypad 5 (Numlock) Keypad 5
set key \332 \kkp5 ; Keypad 5 (Normal) Keypad 5
set key \845 \kkp6 ; Keypad 6 (Numlock) Keypad 6
set key \333 \kkp6 ; Keypad 6 (Normal) Keypad 6
set key \839 \kkp7 ; Keypad 7 (Numlock) Keypad 7
set key \327 \kkp7 ; Keypad 7 (Normal) Keypad 7
set key \840 \kkp8 ; Keypad 8 (Numlock) Keypad 8
set key \328 \kkp8 ; Keypad 8 (normal) Keypad 8
set key \841 \kkp9 ; Keypad 9 (Numlock) Keypad 9
set key \329 \kkp9 ; Keypad 9 (Normal) Keypad 9
set key \334 \kkpminus ; Keypad + Keypad -
set key \2382 \kkpcoma ; ALT Keypad + Keypad ,
set key \851 \kkpdot ; Keypad . (Numlock) Keypad .
set key \339 \kkpdot ; Keypad . (normal) Keypad .
set key \4365 \Kkpenter ; Keypad Enter Keypad Enter
; F1 PF1 (default Kermit)
; Use GOLD.COM to make Num Lock work as PF1/Gold.
set key \325 \kPF1 ; This works with WPGGOLD.COM.
set key \4399 \kPF2 ; Keypad / PF2
set key \311 \kPF3 ; Keypad * PF3
set key \330 \kPF4 ; Keypad - PF4 Key
SET TERMINAL KEYPAD { APPLICATION, NUMERIC }
Kermit FAQ / Columbia University / kermit@kermitproject.org