File LK250.HLP LK250 KEYBOARD UTILITY September 1993 MSULK2.COM and MSULKV.COM are a "device drivers" for the DEC LK250 and LK450 keyboards. This is a keyboard made by Digital Equipment Corporation (DEC) that can be substituted for IBM's keyboard on IBM PC/ATs and above, including PS/2s, and is also the keyboard used on the DEC VAXmate. MSULK2.COM is to be used on IBM equipment, MSULKV.COM is for the VAXmate. The technical requirement is a machine with a bidirectional keyboard interface (separate keyboard controller) and a BIOS Int 15H hook for "System Request". This program has no effect when run on original PCs and PC/XTs because those machines do not meet these requirements. Here's what the LK250 driver does: 1) It allows the keyboard to be switched from DEC to IBM mode and back under program control. This replaces the "Press Alt-Special" mechanism provided by DEC. 2) It allows programs which call it to manipulate the state of the keyboard. Currently, MS-DOS Kermit only does this to set/clear the Hold Screen LED, so that the user can tell if s/he's in Hold Screen mode. 3) It intercepts certain key scancodes which normally can't be seen (like Num Lock) so that they can be used as DEC functions. The LK250 driver controls the behavior of the top-row function keys and the two keypads on the right end of the keyboard. When the driver is active, it puts your LK250 keyboard into "DEC" mode, meaning that the legends on the keytops apply, rather than the blue labels on the front of the keys. The blue labels correspond to IBM keys and functions. If the driver is loaded, MS-DOS Kermit 3.0 and later will make use of it if you tell Kermit to SET KEY LK and then SET KEY CLEAR: MS-Kermit>set key lk MS-Kermit>set key clear The SET KEY LK command has no effect if the driver is not loaded. If the driver is loaded, this command sequence puts the keyboard into DEC mode during terminal emulation (CONNECT), and returns it to IBM mode whenever terminal emulation ends. During terminal emulation, the scan codes of the DEC keys are mapped to the MS-DOS Kermit keyboard verbs of the same name as the DEC keys, so the keyboard appears to work like the regular LK201 DEC keyboard found on the VT200 and 300 series terminals. Here's the list of assignments when the LK250 driver is active and the keyboard is in DEC mode: LK250 Key Assignment (Character or Kermit Verb) Space Bar \313 (see below) Compose Escape (\27) Main Keyboard Backspace DEL (\127) Shift-Backspace Backspace (\8) Return Carriage return (\13) Shift-Return Linefeed (\10) Tab Horizontal Tab (\9) F1 (Hold) \Kholdscrn Top Row Function Keys F2 (Print Screen) \Kprtscn F3 (Setup) (none) F4 (none) F5 (Break) \Kbreak F6 (Interrupt) \KdecF6 F7 (Resume) \KdecF7 F8 (Cancel) \KdecF8 F9 (Main Screen) \KdecF9 F10 (Exit) \KdecF10 F11 (ESC) \KdecF11 F12 (BS) \KdecF12 F13 (LF) \KdecF13 F14 (Insert/Overst) \KdecF14 F15 (Help) \KdecHelp F16 (Do) \KdecDo F17 \KdecF17 F18 \KdecF18 F19 \KdecF19 F20 \KdecF20 Find \KdecFind Cursor/select keypad (gray) Insert Here \KdecInsert Remove \KdecRemove Select \KdecSelect Prev \KdecPrev Next \KdecNext Up Arrow \Kuparr Left Arrow \Klfarr Right Arrow \Krtarr Down Arrow \Kdnarr PF1 (Gold) \Kgold Numeric keypad PF2 \Kpf2 PF3 \Kpf3 PF4 \Kpf4 Keypad 7 \Kkp7 Keypad 8 \Kkp8 Keypad 9 \Kkp9 Keypad - (Minus) \Kkpminus Keypad 4 \Kkp4 Keypad 5 \Kkp5 Keypad 6 \Kkp6 Keypad , (Comma) \Kkpcoma Keypad 1 \Kkp1 Keypad 2 \Kkp2 Keypad 3 \Kkp3 Keypad Enter \Kkpenter Keypad 0 \Kkp0 Keypad . (Period) \Kkpdot To install the driver, just type "msulk2" on IBM PCs and PS/2s, or "msulkv" on VAXmates (this assumes that MSULK2.COM or MSULKV.COM is in your current disk and directory or in your DOS path). You can also run the driver from your AUTOEXEC.BAT file if you want it to be active all the time. Version 3.13 of MS-DOS Kermit differs from earlier releases in differentiating the scan codes generated by the Space bar when pressed in conjunction with Shift, Ctrl, and/or Alt. On a regular PC keyboard, unmodified Space bar generates a scan code of \32 (which is, indeed, the ASCII code for Space), but on an LK250, the code \313 is generated. Thus, when using MS-DOS Kermit 3.13 with an LK250 keyboard, you must make (at least) the following key mapping: SET KEY \313 \32 ; Make space bar send Space You might also want to make separate mappings for Space bar combinations, for example: SET KEY \1337 \0 ; Ctrl-Spacebar sends NUL SET KEY \825 \32 ; Shift-Spacebar sends Space etc. For the VAXmate only, a set of key definitions is also required. Add these to your MSCUSTOM.INI file: SET KEY \326 \KPF3 ; PF3 Scrl Lock SET KEY \311 \KPF4 ; PF4 Prt Sc SET KEY \339 \Kkpdot ; KP . Delete SET KEY \338 \Kkp0 ; KP 0 Install SET KEY \335 \Kkp1 ; KP 1 End SET KEY \336 \Kkp2 ; KP 2 Down Arrow SET KEY \337 \Kkp3 ; KP 3 Page Down SET KEY \331 \Kkp4 ; KP 4 Left Arrow SET KEY \332 \Kkp5 ; KP 5 unused SET KEY \333 \Kkp6 ; KP 6 Right Arrow SET KEY \327 \Kkp7 ; KP 7 Home SET KEY \328 \Kkp8 ; KP 8 Up Arrow SET KEY \329 \Kkp9 ; KP 9 Page up SET KEY \330 \Kkpminus ; KP - - SET KEY \334 \Kkpcoma ; KP , + SET KEY \2494 \Kkpenter ; Alt-Enter SET KEY \389 \kdecfind ; Find or Home SET KEY \390 \kdecinsert ; Insert Here SET KEY \391 \kdecremove ; Remove SET KEY \392 \kdecselect ; Select or End SET KEY \393 \kdecprev ; Previous Screen SET KEY \394 \kdecnext ; Next Screen SET KEY \395 \Kuparr ; Up Arrow SET KEY \396 \Klfarr ; Left Arrow SET KEY \397 \Krtarr ; Right Arrow SET KEY \398 \Kdnarr ; Down Arrow SET KEY \315 \Kholdscrn ; F1 Toggle Hold Screen SET KEY \316 \Kprtscn ; F2 Print Screen; SET KEY \317 \Ktermtype ; F3 Toggle Toggle Terminal Type SET KEY \318 \Klogoff ; F4 Turn Session Logging Off SET KEY \319 \Kbreak ; F5 Break SET KEY \x140 \kdecf6 SET KEY \x141 \kdecf7 SET KEY \x142 \kdecf8 SET KEY \x143 \kdecf9 SET KEY \x144 \kdecf10 SET KEY \399 \kdecf11 SET KEY \400 \kdecf12 SET KEY \401 \kdecf13 SET KEY \402 \kdecf14 SET KEY \403 \kdechelp SET KEY \404 \kdecdo SET KEY \405 \kdecf17 SET KEY \406 \kdecf18 SET KEY \407 \kdecf19 SET KEY \408 \kdecf20 ; shift-return SET KEY \796 \13 ; shift-delete SET KEY \782 \127 The LK250 program was written in IBM PC assembly language and contributed to Kermit Distribution by Terry Kennedy, St. Peter's College, Jersey City, New Jersey, USA (TERRY@SPCVXA.SPC.EDU), December 1989. It was adapted to the VAXmate by Trevor Warwick, Digital Equipment Co, Reading, England (warwick@marvin.enet.dec.com). (End of File MSULK2.HLP)