WSKEY: WordStar Function Key and Numeric Keypad Implementation Dr. William C. Parke April, 1984 WSKEY is a machine language module which can by attached to the back of MicroPro's WordStar for CP/M-80. When in place, it will translate the function and numeric keypad key codes on the Heath/Zenith H/Z-19,29,89,90, and 100 series terminals and computers into user defined commands and strings to be interpreted by WordStar. If you have the latest CP/M-80 WordStar from Zenith (Version 3.3), your arrow keys already work, and the function keys generate the most often used control keys. However, simply having a single control code generated by a function key is not a great savings of keystrokes! It would be far more useful to have specific multistroke WordStar functions generated by a single function key. With WSKEY, you can do that. Moreover, it is not an internal patch in WordStar, so that it will not affect any special configurations or installations you have made. WSKEY hides on the backend of WordStar on disk. When WordStar is loaded, WSKEY gets control first, relocates a function and numeric key interceptor just under BDOS in high memory, then transfers control to WordStar. At this point, WordStar begins completely ignorant of any change made. However, console character requests made to BDOS are now check for function key action. WSKEY translates these requests to your custom configuration for these functions. On exit from WordStar, BDOS is returned to its original form and the 25th line display of the key functions is turned off as part of the warm boot sequence. The choice for the numeric keypad functions are taken from the very well-thought out conventions adopted by Pat Swayne (at the National HUG office) which he used in his program KEYMAP. With KEYMAP, you can configure the keys interactively from the operating system before entering any particular program. Pat uses the HOME key as a function "shift" key, so that each of the function and numeric keypad keys can be given a double purpose. The keypad itself is reserved for screen operations (cursor, line, page moves and FIND operations corresponding to the ^Q menu options in WordStar). If you will need interactive reprograming of the function keys, I strongly recommend Pat's KEYMAP. The special advantage of WSKEY is its small size (only 512 bytes take from WordStar's available space) and the fact that it loads and unloads automatically when WordStar is used. It can be used to configure the function and keypad keys on the H-19, Z-29, H- 89, and the Z-100 (under 8085 control) to generate any meaningful command string or often-used text line in WordStar. You may examine the function key and numeric keypad definitions in the file WSKEY.DEF. These definitions may be changed to your own commands using the patch table below. Also, on this disk, there are a series of SUB and HEX files which are ready to automatically patch your version of WordStar. The names taken for these files, WSKExxyy., correspond to the WordStar version and the terminal or computer you wish to use as the table below shows: WordStar Version 3.0 3.3 H-19, H/Z-89,90 WSKE3019. WSKE3319. H/Z-29, Z-100s WSKE3029. WSKE3329. Below is the procedure for adding WSKEY to your WordStar. 1. Pick the appropriate version of WSKExxyy.SUB for your computer and WordStar version. Substitute the value of xxyy in the steps below. 2. Copy to one disk the following files: WS.COM (Initialized, but without function keys) WSKExxyy.SUB WSKExxyy.HEX DDT.COM (from Digital Research distribution disk) EX.COM (an enhanced SUBMIT; contained herein) 3. From this disk, type: EX WSKExxyy. Your new version of WordStar, WSK.COM should now be ready to use. The twenty-fifth line will define the double functions of each function key. The numeric keypad which principly controls cursor and page moves, is logically and functionally laid out. However, you may wish to make a hard copy of the file WSKEY.DEF as reference. If you wish to redefine the command or ASCII string sent when a function key is pressed while in WordStar, patch WSK.COM at the locations given below with your own command string, up to 6 characters for f1 to f7, 12 characters for f8. The same number of characters can be used for the alternate functions. End each string with the high-order bit (parity bit) set. WordStar 3.0 Function Strings: Functions Addresses Functions Addresses f1 ^f1 3FEC 403E f5 ^f5 4004 4056 f2 ^f2 3FF2 4044 f6 ^f6 400A 405C f3 ^f3 3FF8 404A f7 ^f7 4010 4062 f4 ^f4 3FFE 4050 f8 ^f8 4016 4068 The twenty-fifth line display string begins at 4195. WordStar 3.3 Function Strings: Functions Addresses Functions Addresses f1 ^f1 46EC 473E f5 ^f5 4704 4756 f2 ^f2 46F2 4744 f6 ^f6 470A 475C f3 ^f3 46F8 474A f7 ^f7 4710 4762 f4 ^f4 46FE 4750 f8 ^f8 4716 4768 The twenty-fifth line display string begins at 4895.