============================== REDEFINING KEYS IN JABBER v1.1 ============================== Using the following information the keys used in JABBER can be redefined using a sector editor. JABBER.EXE contains a table of keys and their commands. By changing the key part of the table you can customize JABBER to your own keyboard preferences. There are seven tables: MENU1, SELK1, FILEK, EDITK, SUBM1, SUBM2, SUBM3, SUBM4, and SUBM5. MENU1 is the main table which is used while viewing a message. SELK1 is the selection table which is used during menus (Conference List, etc). FILEK supplements the SELK1 table for the QWK file selection menu, it contains only the functions for deleting packets, shelling to DOS, and the extern DOS shells. EDITK is the table used by the internal editor. SUBM1, SUBM2 are sub-menus used for ^K and ^Q functions in the internal editor. SUBM3, SUBM4, and SUBM5 are not used at this time. A HEX dump of the MENU1 table is below. The table will always begin with a the length of the string, 5 in this case, and the string "MENU1". The next word is the length of the table in double-words. So, in the example, the length of the table is x0049 double-words in hex or 73 double-words in decimal. The rest of the table is made of double-word entries in the format of KEY/COMMAND. In the first entry, "41 00 25 02", the x0041 is the key which is an 'A' and the x0225 is the command which is CaptureFile, JABBER's internal name for the Append command. (Note: when a word is stored it is stored low byte followed by high byte which is why the bytes are in reverse order in the table. Keep this in mind while modifying the tables.) To change the key for this command to 'Z' change "41 00" to "54 00". Now when the 'Z' key is used the Append command will be executed. At the end of the table some entries have been left empty, "00 00 00 00", so duplicate keys for the same command can be set up. For example, instead of replacing the 'A' with 'Z' for the Append command, the 'Z' key could be setup to do the Append command too. Just change one of the empty entries to "54 00 25 02". - 1 - Example Hex Dump of MENU1 Table ------------------------------- 05 4D 45 4E 55 31 49 00 - 41 00 25 02 42 00 44 02 .MENU1I.A.%.B.D. 43 00 30 02 46 00 40 02 - 47 00 41 02 4D 00 13 02 C.0.F.@.G.A.M... 4E 00 42 02 52 00 21 02 - 53 00 03 02 54 00 11 02 N.B.R.!.S...T... 57 00 43 02 56 00 15 02 - 58 00 12 02 18 00 12 02 W.C.V...X....... 51 00 17 02 2F 00 70 02 - 4C 00 70 02 2C 00 74 02 Q.../.p.L.p.,.t. 2E 00 75 02 3C 00 74 02 - 3E 00 75 02 5A 00 27 02 ..u.<.t.>.u.Z.'. 00 19 28 02 2D 00 32 02 - 2B 00 33 02 20 00 34 02 ..(.-.2.+.3. .4. 3D 00 33 02 0D 00 33 02 - 12 00 23 02 00 4F 35 02 =.3...3...#..O5. 00 47 36 02 09 00 3E 02 - 00 0F 3D 02 00 4B 32 02 .G6...>...=..K2. 00 4D 33 02 00 73 37 02 - 00 74 38 02 00 52 20 02 .M3..s7..t8..R . 00 53 24 02 00 51 3B 02 - 00 49 3C 02 00 48 39 02 .S$..Q;..I<..H9. 00 50 3A 02 00 1E 26 02 - 00 2E 31 02 00 21 14 02 .P:...&...1..!.. 00 13 22 02 00 1F 02 02 - 00 2D 01 02 00 22 60 02 .."......-..."`. 00 26 71 02 00 14 61 02 - 00 10 18 02 14 00 63 02 .&q...a.......c. 00 3C 16 02 00 3D 16 02 - 00 3E 16 02 00 3F 16 02 .<...=...>...?.. 00 40 16 02 00 41 16 02 - 00 42 16 02 00 43 16 02 .@...A...B...C.. 00 44 16 02 00 3B 10 02 - 00 81 04 02 00 00 00 00 .D...;.......... 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 - 00 00 00 00 ............ The rest of the tables are just like this, except they begin with the strings: SELK1, FILEK, EDITK, SUBM1, and SUBM2 (remember SUBM3, SUBM4, and SUBM5 are not used currently). The internal editor table, EDITK, can switch to the SUBM1 and SUBM2 tables. This is to for double key commands, such as ^KR which does the EditBlkRead command. The ^K key table entry in the EDITK1 table looks like "0B 00 01 01". The x0101 is the SubMenuOne command, which tells the internal editor to look the next key up in SUBM1 table. SUBM1 will only be used for next key-- after that the internal editor will go back to the EDITK table. - 2 - If you want to change the key for a specific command the following procedure should be followed. 1) Look up the code for the command you want in the Command List. 2) Loop up the code of the new key in the Key List. 3) Make a backup the JABBER.EXE file. 4) Load JABBER.EXE into your sector editor. 5) Find the string of the table you want to edit: MENU1, SELK1, FILEK, EDITK1, SUBM1, or SUBM2. 6) Find the code of the command you got from the Command List. 7) Change the key for that command to code you got from the Key List. 8) Save JABBER and exit your sector editor. 9) Run JABBER and try out the new key. MENU1 & SELK command List ------------------------- All commands codes are listed in low byte followed by high byte format. These command codes should appear in the table exactly as shown below. *NoAction = 00 02 Use this for making a key do nothing. If a key is assigned to NoAction JABBER will not even display the "F1-HELP" message. *Quit = 01 02 Exit Jabber. Default key ALT-X. *DOSShell = 02 02 Shell to DOS using the SWAP parameter. Default key ALT-S. DOSShellSwap = 03 02 Shell to DOS using the opposite of the SWAP parameter. Default key S. *HelpKey = 10 02 Bring up the HELP screen. Default key F1. Titles = 11 02 Bring up the titles list for a conference. Default key T. Rot13 = 12 02 ROT13 the current message. Default keys X and CTRL-X. LogMsg = 13 02 Logs the current message to the LOGFILE. Default key M. - 3 - NewQWKFile = 14 02 Brings up the QWK file selection menu. Default key ALT-F. ViewMessage = 15 02 Views the current message with JABBER's internal ANSI driver. Default key V. OrderSelect = 16 02 Select the sort order. Default key Q. GrabTagline = 17 02 Steal a tagline. Default key ALT-Q. Input = 20 02 Insert a new message. Default key INS. Reply = 21 02 Reply to a message. Default key R. ReplyInput = 22 02 Reply to a message with header modification. Default key ALT-R. ReplyInputSwa = 23 02 Reply to message with opposite QUOTE_REPLY. Default key CTRL-R. ReplyDelete = 24 02 Delete a reply. Default key DEL. CaptureFile = 25 02 Append to SAVEFILE. Default key A. CaptureFName = 26 02 Append to a inputted filename. Default key ALT-A. DisplayReply = 27 02 Flip between a message and its reply. Default key Z. PrintMessage = 28 02 Print current message. Default key ALT-P. ConfChange = 30 02 Bring up conference list with messages. Default key C. ConfChangeLon = 31 02 Bring up complete conference list. Default key ALT-C. MsgBack = 32 02 Go to previous message. Default key Left Arrow. MsgForward = 33 02 Go to next message. Default key Right Arrow. MsgDownFwrd = 34 02 Page current message down or go to next message if at end of message. Default key SPACE BAR. MsgEnd = 35 02 Go to end of message. Default key END. MsgHome = 36 02 Go to top of message. Default key HOME. ConfBack = 37 02 Go to previous conference. Default key CTRL LEFT ARROW. - 4 - ConfForward = 38 02 Go to next conference. Default key CTRL RIGHT ARROW. ScrollDown = 39 02 Scroll message down a line. Default key UP ARROW. ScrollUp = 3A 02 Scroll message up a line. Default key DOWN ARROW. *PageDown = 3B 02 Page message down. Default key PGDN. *PageUp = 3C 02 Page message up. Default key PGUP. ScrollRight = 3D 02 Scroll message to the right. Default key SHIFT TAB. ScrollLeft = 3E 02 Scroll message to the left. Default key TAB. NewFiles = 40 02 Display NEWFILES.DAT. Default key F. GoodbyeFile = 41 02 Display GOODBYE file. Default key G. NewsFile = 42 02 Display NEWS file. Default key N. WelcomeFile = 43 02 Display WELCOME file. Default key W. BulletinFile = 44 02 Bring up BULLETINS menu. Default key B. *SelectHome = 50 02 Move selection bar to first menu entry on the screen. Default key HOME. *SelectEnd = 51 02 Move selection bar to last menu entry on the screen. Default key END. *SelectLeft = 52 02 Move selection bar to the left. Default key LEFT ARROW. *SelectRight = 53 02 Move selection bar to the right. Default key RIGHT ARROW. *SelectUp = 54 02 Move selection bar to the up. Default key UP ARROW. *SelectDown = 55 02 Move selection bar to the down. Default key DOWN ARROW. *SelectSave = 56 02 Select current item on the menu. Default keys ENTER and PLUS. *SelectEsc = 57 02 Exit menu without making a selection. Default key ESC. - 5 - **DeleteFile = 58 02 Delete file on the QWK file selection menu. Default key DEL. EditorConfig = 60 02 Load and edit configuration file. Default key ALT-G. EditorTwit = 61 02 Load and edit Twit file. Default key ALT-T. EditorTagLine = 63 02 Load and edit Tagline file. Default key CTRL- T. SearchConf = 70 02 Look up text in current conference. Default keys L and /. SearchGlobal = 71 02 Look up text in all conferences. Default key ALT-L. SearchBack = 72 02 Find previous look up match. Default keys < and COMMA. SearchForward = 73 02 Find next look up match. Default key > and PERIOD. *Extern1 = 91 02 Execute external DOS shell one. No Default key. *Extern2 = 92 02 Execute external DOS shell two. Default key F2. *Extern3 = 93 02 Execute external DOS shell three. Default key F3. *Extern4 = 94 02 Execute external DOS shell four. Default key F4. *Extern5 = 95 02 Execute external DOS shell five. Default key F5. *Extern6 = 96 02 Execute external DOS shell six. Default key F6. *Extern7 = 97 02 Execute external DOS shell seven. Default key F7. *Extern8 = 98 02 Execute external DOS shell eight. Default key F8. *Extern9 = 99 02 Execute external DOS shell nine. Default key F9. *Extern10 = 9A 02 Execute external DOS shell ten. Default key F10. - 6 - Commands with a single asterisk are the only commands allowed in the SELK table. Commands with a double asterisk are allowed only in the SELK table and only work from the QWK file selection menu. EDITK, SUBM1, and SUBM2 command list ------------------------------------ All command codes are listed in low byte followed by high byte format. These command codes should appear in the table exactly as shown below. SubMenuOne = 01 01 Switch to SUBM1 for the next key. Default key CTRL-K. SubMenuTwo = 02 01 Switch to SUBM2 for the next key. Default key CTRL-Q. Extern1 = 91 02 Execute external DOS shell one. No Default key. Extern2 = 92 02 Execute external DOS shell two. Default key F2. Extern3 = 93 02 Execute external DOS shell three. Default key F3. Extern4 = 94 02 Execute external DOS shell four. Default key F4. Extern5 = 95 02 Execute external DOS shell five. Default key F5. Extern6 = 96 02 Execute external DOS shell six. Default key F6. Extern7 = 97 02 Execute external DOS shell seven. Default key F7. Extern8 = 98 02 Execute external DOS shell eight. Default key F8. Extern9 = 99 02 Execute external DOS shell nine. Default key F9. Extern10 = 9A 02 Execute external DOS shell ten. Default key F10. EditQuit = 01 03 Exit editor. Default key ALT-X. EditSave = 02 03 Save file. Default key D on SUBM1. - 7 - EditHelp = 03 03 Bring up help screen. Default key F1. EditDOS = 04 03 Shell to DOS. Default key ALT-S. EditColorChar = 05 03 Bring up color chart. Default key ALT-Z. EditSplit = 21 03 Toggle split screen mode. Default key ALT-W. EditSwitch = 22 03 Toggle between files. Default key ALT-N. EditWindow1 = 23 03 Go to first file. Default key ALT-1. EditWindow2 = 24 03 Go to second file. Default key ALT-2. EditBarUp = 25 03 Move split screen bar up. Default key ALT-U. EditBarDown = 26 03 Move split screen bar down. Default key ALT-N. EditClipCopy = 41 03 Copy block into buffer. Default key ALT-C. EditClipCut = 42 03 Cut block into buffer. Default key ALT-V. EditClipPaste = 43 03 Paste buffer into file. Default key ALT-F. EditAddQuote = 60 03 Add the default QUOTE string the current paragraph. Default key ALT-R. EditReformat = 61 03 Reformat current paragraph. Default key ALT-F. EditSearch = 62 03 Search for text. Default key F in SUBM2. EditSearchRep = 63 03 Search and replace text. Default key A in SUBM2. EditSearchNex = 64 03 Find next search or search/replace match. Default key CTRL-L. EditBlkStart = 81 03 Start a block. Default key B in SUBM1. EditBlkEnd = 82 03 End a block. Default key K in SUBM1. EditBlkClear = 83 03 Turn off block. Default key H in SUBM1. EditBlkMove = 84 03 Move a block. Default key V in SUBM1. EditBlkCopy = 85 03 Copy a block. Default key C in SUBM1. EditBlkRead = 86 03 Read a file. Default key R in SUBM1. EditBlkWrite = 87 03 Write block to a file. Default key W in SUBM1. EditBlkDelete = 88 03 Delete a block. Default key Y in SUBM1. - 8 - EditBlkRot13 = 89 03 ROT13 a block. Default key / in SUBM1. EditUp = A1 03 Move cursor up. Default key UP ARROW. EditDown = A2 03 Move cursor down. Default key DOWN ARROW. EditPrevPage = A3 03 Page file up. Default key PGUP. EditNextPage = A4 03 Page file down. Default key PGDN. EditTopFile = A5 03 Go to top of file. Default key CTRL-PGUP. EditBottomFil = A6 03 Go to bottom of file. Default key CTRL-PGDN. EditTopScr = A7 03 Go to top of screen. Default key CTRL-HOME. EditBottomScr = A8 03 Go to bottom of screen. Default key CTRL-END. EditLeft = A9 03 Move cursor left. Default key LEFT ARROW. EditRight = B0 03 Move cursor right. Default key RIGHT ARROW. EditLeftEnd = B1 03 Go to end of line. Default key END. EditRightEnd = B2 03 Go to beginning of line. Default key HOME. EditWordLeft = B3 03 Go to previous word. Default key CTRL-A. EditWordRight = B4 03 Go to next word. Default key CTRL-F. EditTab = B5 03 Go to next tab stop. Default key TAB. EditDelete = C0 03 Delete character at cursor. Default key DEL. EditDelLine = C1 03 Delete current line. Default key CTRL-Y. EditDelWord = C2 03 Delete current word. Default key CTRL-T. EditBackspace = C3 03 Move cursor left and delete character. Default key BACKSPACE. EditInsertLin = C4 03 Insert line at cursor. Default key CTRL-N. EditInsertRou = C6 03 Insert PCRELAY route information. Default key CTRL-R. - 9 - Key List -------- All key codes are listed in low byte followed by high byte format. These key codes should appear in the table exactly as shown below. A = 41 00 CTRL-A = 01 00 ALT-A = 00 1E B = 42 00 CTRL-B = 02 00 ALT-B = 00 30 C = 43 00 CTRL-C = 03 00 ALT-C = 00 2E D = 44 00 CTRL-D = 04 00 ALT-D = 00 20 E = 45 00 CTRL-E = 05 00 ALT-E = 00 12 F = 46 00 CTRL-F = 06 00 ALT-F = 00 21 G = 47 00 CTRL-G = 07 00 ALT-G = 00 22 H = 48 00 CTRL-H = 08 00 ALT-H = 00 23 I = 49 00 CTRL-I = 09 00 ALT-I = 00 17 J = 4A 00 CTRL-J = 0A 00 ALT-J = 00 24 K = 4B 00 CTRL-K = 0B 00 ALT-K = 00 25 L = 4C 00 CTRL-L = 0C 00 ALT-L = 00 26 M = 4D 00 CTRL-M = 0D 00 ALT-M = 00 32 N = 4E 00 CTRL-N = 0E 00 ALT-N = 00 31 O = 4F 00 CTRL-O = 0F 00 ALT-O = 00 18 P = 50 00 CTRL-P = 10 00 ALT-P = 00 19 Q = 51 00 CTRL-Q = 11 00 ALT-Q = 00 10 R = 52 00 CTRL-R = 12 00 ALT-R = 00 13 S = 53 00 CTRL-S = 13 00 ALT-S = 00 1F T = 54 00 CTRL-T = 14 00 ALT-T = 00 14 U = 55 00 CTRL-U = 15 00 ALT-U = 00 16 V = 56 00 CTRL-V = 16 00 ALT-V = 00 2F W = 57 00 CTRL-W = 17 00 ALT-W = 00 11 X = 58 00 CTRL-X = 18 00 ALT-X = 00 2D Y = 59 00 CTRL-Y = 19 00 ALT-Y = 00 15 Z = 5A 00 CTRL-Z = 1A 00 ALT-Z = 00 2C F1 = 00 3B SHIFT-F1 = 00 54 CTRL-F1 = 00 5E ALT-F1 = 00 68 F2 = 00 3C SHIFT-F2 = 00 55 CTRL-F2 = 00 5F ALT-F2 = 00 69 F3 = 00 3D SHIFT-F3 = 00 56 CTRL-F3 = 00 60 ALT-F3 = 00 6A F4 = 00 3E SHIFT-F4 = 00 57 CTRL-F4 = 00 61 ALT-F4 = 00 6B F5 = 00 3F SHIFT-F5 = 00 58 CTRL-F5 = 00 62 ALT-F5 = 00 6C F6 = 00 40 SHIFT-F6 = 00 59 CTRL-F6 = 00 63 ALT-F6 = 00 6D F7 = 00 41 SHIFT-F7 = 00 5A CTRL-F7 = 00 64 ALT-F7 = 00 6E F8 = 00 42 SHIFT-F8 = 00 5B CTRL-F8 = 00 65 ALT-F8 = 00 6F F9 = 00 43 SHIFT-F9 = 00 5C CTRL-F9 = 00 66 ALT-F9 = 00 70 F10 = 00 44 SHIFT-F10 = 00 5D CTRL-F10 = 00 67 ALT-F10 = 00 71 SPACE = 20 00 : = 3A 00 { = 7B 00 ! = 21 00 ; = 3B 00 | = 7C 00 " = 22 00 < = 3C 00 } = 7D 00 # = 23 00 EQUAL = 3D 00 ~ = 7E 00 $ = 24 00 > = 3F 00 % = 25 00 ? = 40 00 & = 26 00 @ = 41 00 ' = 27 00 ( = 28 00 [ = 5B 00 ) = 29 00 \ = 5C 00 - 10 - * = 2A 00 ] = 5D 00 + = 2B 00 ^ = 5E 00 , = 2C 00 _ = 5F 00 - = 2D 00 ` = 60 00 . = 2E 00 / = 2F 00 BACK SPACE = 08 00 TAB = 09 00 SHIFT-TAB = 00 0F ENTER = 0D 00 ESCAPE = 1B 00 UP ARROW = 00 48 DOWN ARROW = 00 50 HOME = 00 47 CTRL-HOME = 00 77 END = 00 4F CTRL-END = 00 75 LEFT ARROW = 00 4B CTRL-LEFT ARROW = 00 73 RIGHT ARROW = 00 4D CTRL-RIGHT ARROW = 00 74 PGUP = 00 49 CTRL-PGUP = 00 84 PGDN = 00 51 CTRL-PGDN = 00 76 INS = 00 52 CTRL-INS = 00 40 DEL = 00 53 CTRL-DEL = 00 60 1 = 31 00 ALT-1 = 00 78 2 = 32 00 ALT-2 = 00 79 3 = 33 00 ALT-3 = 00 7A 4 = 34 00 ALT-4 = 00 7B 5 = 35 00 ALT-5 = 00 7C 6 = 36 00 ALT-6 = 00 7D 7 = 37 00 ALT-7 = 00 7E 8 = 38 00 ALT-8 = 00 7F 9 = 39 00 ALT-9 = 00 80 0 = 30 00 ALT-0 = 00 81 JABBER makes no distinct between UPPER and LOWER case characters. The keys listed are probably not ALL the keys which JABBER can recognize but these will work. Currently JABBER can not accept keys with two codes like GRAY keys, etc. - cottleston - - 11 -