************************************************************************* **** This document is intended to supplement the MS-DOS KERMIT Users Guide. It is the documentation for the extended DEC Rainbow version of MSKERMIT. ************************************************************************* **** By David L. Knoell, Basic American Food Company Vacaville, CA 95696 (707-446-2200) 1.11. DEC Rainbow Command Extensions and Enhancements SET TERMINAL Syntax: SET TERMINAL parameter [value] This command was not implemented on V 2.29 of the DEC Rainbow MSKERMIT, so there should be no conflict with previous versions. The DEC Rainbow has most of the SET TERMINAL parameters implemented via SET-UP mode and therefore available to the software through non-volatile memory. Parameters set through the standard DEC Rainbow SET-UP are honored in Kermit; and therefore, those functions are not duplicated in the SET TERMINAL command. The first group of parameters sets the terminal type to be emulated. This only determines the "answer-back" generated in response to a "who/what are you?" command from the host. The following sequences are recognized: Parameter --------NONE HEATH-19 VT100 VT102 VT125 VT220 VT52 Response Sequence ----------------<ESC>[?6c <ESC>/Z <ESC>[?4;2c <ESC>[?6c <ESC>[?12;7;1c <ESC>[?62;1;2;8c <ESC>/Z Special Status -------------VT102-d VT52-h VT100 VT102 VT125 VT220 VT52 **note- The terminal emulation software depends on the built-in firmware VT102/VT52 emulation to perform much but not all of the work. The above settings do not influence how transmitted/received sequences are parsed or responded to. The setting of the ANSI/VT52 firmware switch (via SET-UP or host software) is the controlling factor. These parameters have been provided primarily so that host software (VAX/VMS for example) will receive the response it needs. The tables in the modules MSXRB1x and MSYRB1x can be expanded to provide additional selections. The remaining SET TERMINAL parameters specify various operating modes within which you run the basic VT1XX/VT2XX emulator. AUTO-XON {ON, OFF} Sends a X-ON to the host when re-CONNECTing after once having escaped back to the "Kermit-MS>" prompt. This function is useful, since the serial buffers are cleared and reset during an escape back to kermit prompt level. Default is OFF. Tested and used with VAX/VMS system software. EIGHTBIT-MODE {ON, OFF} Enables transmission/receipt of true 8-bit characters while in terminal emulation mode. This is essential when supporting devices such as the DEC's LN03 laser printer using the DEC multi-national character set. The host system software should be made compatible with this function, for example: under VAX/VMS the command "$ SET TERMINAL/EIGHTBIT", should be used or else the terminal driver in VMS will strip/clear the eighth bit. There is no effect during file transfers since Kermit-MS knows when it's in transfer or terminal mode. Default is OFF. FUNCTION-KEYS {VT102, VT220} Set to VT102 (Default) the Rainbow's F11,F12,F13 keys transmit a (ESC), (BS),(LF) respectively. When set to VT220 they transmit and respond as VT220 level 2 (true VT220) keys and transmit the function key sequence normal for keys on the top row (ie. <ESC>[Pn~ where Pn is 23 for F11,24 for F12, and 25 for F13). The fact that both key definitions can co-exist even though the firmware does not support it, is accomplished with software within the emulator. This software is also used by the SET KEY function so that those three keys can actually have six different definitions. See Appendix B for the scan codes to use. LINE-MONITOR {ON, OFF} Sets the printer port to loop-back to the serial port when set ON. This function is very similar to a set-up function found in a VT240 called "Printer-to-Host". When set ON the interrupt service routines in the emulator handle the printer port interrupts as well as those from the serial port. In previous versions the interrupts from the printer port were passed back to MS-DOS for processing by the original interrupt service routines and still are, if this function is OFF (Default). There are no restrictions on using this setting even when doing a screen dump to printer or auto-print (print characters as they are received). When used in conjunction with the ANSI "printer-controller on" and MONITOR-MODE the Rainbow Kermit emulator becomes completly passive. In other words, data from the serial port is routed unparsed and untouched to the printer port while data received from the printer port (actually another serial port) is routed to the COMM serial port. When MONITOR-MODE is ON the traffic is displayed on the Rainbow's screen for review. The device on the printer port does not have to be a printer, in fact it could be another computer. The emulator currently supports X-ON/X-OFF from the printer port device only and the baud rate / parity settings are supported via SET-UP or SETPORT. The emulater has a 1K buffer for input but does not support X-ON/X-OFF flow control to the printer port. (note-MONITOR-MODE is a new Kermit Special function.) MONITOR-STYLE {PRINTABLE, VIDEO} Determines how control characters will be displayed when the emulator is placed in MONITOR-MODE. The default is VIDEO which displays carriage return, line feed, horz tab, vert tab, new line, and form feed as single characters from the VT100 special line drawing character set. The PRINTABLE parameter uses standard 2 or 3 character sequences enclosed in angle brackets "<>" (eg. <CR>,<FF> etc.). SAVE-SCREEN {ON, OFF} Determines the action taken when the screen is re-sized from 80 to 132 characters or 132 to 80 characters. If set ON, then the text currently visible on the screen is restored after the re-sizing. If OFF, then the DEC standard of clearing the screen and homing the cursor is done. The Default is OFF. This function does not operate when the screen size is changed via the firmware-driven SET-UP screen. It operates only during a software "SET/RESET SEQUENCE (<ESC>[?3h or <ESC>[?3l)" or via a special-function assigned to a key. SPECIAL-FUNCTIONS {ENABLED, DISABLED} ENABLEs (Default) the hard-coded Kermit special functions assigned to fixed keys. Example: Prev Screen key scrolls back one page in video memory. If DISABLED, all fixed key assignments are removed and the normal sequence for the key is transmitted. See the section on kermit special functions on how to assign the functions to keys. NEW and ENHANCED FEATURES 1.11.1 Keyboard Key Translations There are now 4 levels of key translations supported in this version of the emulator. The Function keys (grey) can be assigned (with some exceptions) to all 4 levels at the same time; definition currently defined is translated. LEVEL ------1 2 3 level 4 program TYPE of ASSIGNMENT ----------------------VT220 User Defined Keys Interactive "Hot Keys" Kermit SET KEY type Kermit pre-assigned however, only the highest level Level 1 is the highest level. ASCII Strings ------- SPECIAL FUNCTIONS Comments --------- ------------------ YES YES YES NO YES YES Down-line loaded In CONNECT mode Kermit command NO YES Hard-coded in Level 1: VT220 UDK's Since these key definitions are loaded via host driven software they are given the highest priority. See the section on VT220 Defined Keys for a full discussion. Also Appendix A. User Level 2: Interactive "Hot Keys" Any key (except Hold screen and Set-up) can be defined or redefined during CONNECT mode. The key can be assigned either to an Ascii string (255 characters max) or to a Special Function. In fact the key definition routines are themselves available as Special Functions. You can also cancel the current definition by assigning the key to an ascii string of null length. The routine provides menus and prompts so the process of defining a key is easy. The definitions are only valid for a given Kermit session, ie: if you exit to DOS they are lost. To make the assignment semi-permanent you can assign the keys via the SET KEY function in a KERMIT.INI file which is processed when you activate Kermit. Level 3: Kermit SET KEY This standard Kermit command has been enhanced to enable Special Functions to be assigned to keys. The scan code used indicates to the emulator that the definition is not an ascii string but rather a Special Function. You can calculate the Special Function scan code to be used by simply adding 4096 (decimal) to the scan code generated via the SHOW KEY command. Appendix B gives a complete list of all scan codes generated on a DEC Rainbow. When Kermit prompts for the key definition you simply supply the octal code assigned to each Special Function (\xxx where xxx is a 3-digit octal number). These octal numbers are assigned in sequence and as new functions are added they simply increase the number of valid functions available. Appendix C gives a list of vaild functions currently implemented. Level 4: Kermit pre-assigned Functions For compatibility with previous versions of MS-KERMIT these functions are currently hard-coded in the program as before. In addition several new functions have been added to the hard-coded list. Interactive HELP "Show all Keys" provides a seperate section in the display for these key definitions. Appendix D also gives a current list. Please note that you can "turn off" these pre-assigned function definitions via the "SET TERM SPECIAL-FUNCTIONS DISABLE" Kermit command. 1.11.2 VT220 User Defined Keys (UDK's) The User Defined Keys feature of the VT220 has been implemented with extensions. You do not have to be in VT220 mode for these keys to be down-loaded or used. A standard VT220 allows the keys F6 through F20 (including Help and Do) to be programmable via the DECUDK device control strings. They are invoked by typing the SHIFT-(function key). This implementation allows both the shift and also the un-shifted function keys to be downline loaded. In addition the editing keys (Find,Insert Here,Remove,Select,Prev Screen,Next Screen) may also be defined (both shifted and un-shifted). Please note that this is not DEC standard; so use with caution. The clear and lock parameters have also been implemented and all sequences work as described in Programmer Reference Manual (pg 4-37 thru 4-41) EK-VT220-RM-001. the VT220 DECUDK Device Control String Format DCS Pc;Pl | Ky1/st1;ky2/st2;......kyn/stn ST Where: DCS is the Control String Introducer (90 hex in 8-bit) or (<ESC>P in 7-bit) Pc is Clear Parameter (0 or none clear all keys before loading) (1 load new key values,clear old only if defined) Pl is Lock Parameter (0 or none lock against future redefinition) (1 do not lock against future redefinition) | Vert Bar Final character - characters between this character and the string terminator (ST) will be parsed by the emulator for definitions. Ky1 is a key code to be defined (see list below) / is a ascii slash used as a seperator St1 is a string of hex pairs which are the encoded contents of the key ; is a ascii semi-colon used to seperate multiple key definitions ST is the ansi String Terminator (9c hex in 8-bit) or (<ESC>\ in 7-bit) More information can be found in the VT220 Programmers Reference Manual mentioned above and by looking at the sample VAX Basic program provided in Appendix A. The following list of Key codes provides information on the extensions made to the standard VT220 codes. Leading zeros are required as the key code must be 2 ascii digits. In coding the Hex pairs you may use both upper and lower case alpha characters for the hex digits A-F (a-f). EXAMPLES: (a) To clear keys send the following string: (b) To lock keys send the following string: <DCS>0;1|<ST> <DCS>1;0|<ST> (c) To define key Shift/F20 as the string "PRINT" without clearing or locking any other keys you would: (1) Convert the text to Hex pairs: P = 50 hex R I N T = = = = 52 49 4E 54 hex hex or 4e hex hex (2) Compose the entire control sequence as follows: 8-bit mode - <DCS>1;1|34/5052494E54<ST> 7-bit mode - <ESC>P1;1|34/5052494E54<ESC>\ *note-the 34 preceeding the / is the UDK key code found in the following table Table of Key Codes for Use in Defining UDK's -------------------------------------------KEY NAME -------------F6-Interrupt F7-Resume F8-Cancel F9-Main Screen F10-Exit F11-(ESC) - VT220 only F12-(BS) - VT220 only VT220 F13-(LF) - VT220 only F14-Addtnl Options F15-Help F16-Do F17F18F19F20Find Insert Here Remove Select Prev Screen Next Screen (ESC) - VT100 only (BS) - VT100 only VT100 (LF) - VT100 only (shifted) KEY CODE -------17 * 18 * 19 * 20 * 21 * 23 * 24 * 25 26 28 29 31 32 33 34 01 02 03 04 05 06 07 08 09 * * * * * * * * (un-shifted) KEY CODE -------57 58 59 60 61 63 | active only if 64 | FUNCTION-KEYS 65 66 68 69 71 72 73 74 41 42 43 44 45 46 47 48 | has been set | active only if | FUNCTION-KEYS 49 | has been set * Indicates standard VT220 code. All others should be considered extentions. ----------The leading zeros in the Key Code (if any) are required----------- note- the VT100 only keys and the VT220 only keys can always be loaded regardless of the "SET TERMINAL FUNCTION-KEYS" setting. 1.11.3 Special Kermit Functions The following section describes the Kermit Special Functions currently available in this version of the emulator. The octal code (\xxx) assigned to each function is given. Many of the routines come in three versions: toggle, turn on, and turn off. They are grouped here by type of function and therefore the octol codes are not in sequence. Appendix C gives a complete list in numerical sequence. ------ SCREEN MANAGEMENT (SCROLL) ROUTINES \002 View \003 View \004 View \005 View possible \006 View char Prev Next Prev Next Screen (Scroll) Screen (Scroll) Line (Scroll) Line (Scroll) Screen Bottom | | | | Go Go Go Go back one screen if possible forward one screen if possible back a single line if possible forward a single line if | Re-position screen at last recvd ------ KERMIT SET TERMINAL ROUTINES \020 \021 MODE \022 Toggle Eight-bit Mode Turn on Eight-bit Mode | | same as SET TERMINAL EIGHTBIT- Turn off Eight-bit Mode | \026 \027 \030 Toggle Save Screen (80/132) Turn on Save Screen (80/132) Turn off Save Screen (80/132) | | same as SET TERMINAL SAVE-SCREEN | \101 \102 \103 Toggle Line Monitor Mode Turn on Line Monitor Mode Turn off Line Monitor Mode | | same as SET TERMINAL LINE-MONITOR | \105 Toggle Special Functions \106 Special Functions Disabled FUNCTIONS \107 Special Functions Enabled | | same as SET TERMINAL SPECIAL| \110 \111 KEYS \112 Toggle Function Key Mode Set Function Keys to VT220 | | same as SET TERMINAL FUNCTION- Set Function Keys to VT100 | ------ PRINT AND DUMP ROUTINES \000 Print Screen \114 Print Screen + Memory memory | Current full screen only | As above + to end of scroll \001 Dump Screen to Disk disk \113 Dump Screen + Memory to Disk memory | Similar to Print Screen but to | As above + to end of scroll \011 Print Current Line | Print line which has cursor on it \012 \013 \014 Toggle Print Recv Char Turn on Print Recv Char Turn off Print Recv Char | Send received characters to | the printer just as received | with no editing \015 Toggle Media Copy Printer \016 Turn on Media Copy turned on \017 Turn off Media Copy too. | Similar to ANSI Media Copy - \023 (off) \024 cursor \025 Toggle Auto-print | Simulates <CSI>?5i (on); <CSI>?4i Turn on Auto-print is Turn off Auto-print | If on, then print each line as | Controller on/off however if | with this rtn then must turn off | about to move to next line. ------ CONNECT MODE INTERACTIVE ROUTINES \007 \010 Send Break Send Break (long) | 275 ms Break | 2000 ms Break (2 sec) \031 Toggle Monitor Mode (debug) transmitted \032 Turn on Monitor Mode (debug) escapes. \033 Turn off Monitor Mode (debug) | Monitor mode (Debug) shows \061 Connect mode Help (menu) below: \070 Define Hot Key - Spl Function \071 Define Hot Key - Ascii String (255 max) \072 Show all Key Definitions sequence | Allows selection of functions | and received characters and | Rcvd=norm video;Xmit=rev video | Set any key to a special function | Set any key to an Ascii string | See definitions in priority \073 Show Special Status status/settings \104 Show Diagnostics & Internals | View current emulator \062 char + \063 char + \064 char + \065 log \066 log \067 exit + \074 char + Close (Prompt) | same as hitting kermit escape- Command Menu | same as hitting kermit escape- Push to DOS | same as hitting kermit escape- Quit Logging | if logging and Kermit C Kermit ? Kermit P Kermit | Current internal variables shown on: then quits Kermit Resume Logging | if logging and off: then resumes Kermit Exit to MS-DOS cr Kermit Status S | simulates a escape-char + c + | same as hitting kermit escape- \075 Hold-Screen (soft) Xon/Xoff + Lite | Simulates hold screen w/xon/xoff \076 Toggle the UDK Lock set/reset \077 Turn on (Lock) the UDK's \100 Turn off (Unlock) the UDK's | Allows the UDK lock to be \115 line\116 \117 Toggle Loop-Back Mode | This is same as doing both a Turn on Loop-Back Mode Turn off Loop-Back Mode | monitor and Media copy (printer | controller) at same time. | externally (as in a VT220 set-up) | current setting on special status ------ RAINBOW SET-UP ROUTINES \034 \035 the \036 Toggle Screen Size (80/132) Set Screen to 80 cols | | Same as SET-UP except it honors Set Screen to 132 cols | Save-Screen setting \037 Toggle Smooth Scroll \040 Turn on Smooth Scroll set/reset \041 Turn off Smooth Scroll | | Same as SET-UP uses ANSI \042 Toggle Screen Background \043 Screen Background Light set/reset \044 Screen Background Dark | | Same as SET-UP uses ANSI \045 Toggle Auto-repeat keys \046 Turn on Auto-repeat keys set/reset \047 Turn off Auto-repeat keys | | Same as SET-UP uses ANSI | | | \050 Toggle US/UK Char Set \051 Set US as Char Set set/reset \052 Set UK as Char Set default | | Same as SET-UP uses ANSI \053 Toggle Auto-wrap \054 Turn on Auto-wrap set/reset \055 Turn off Auto-wrap | | Same as SET-UP uses ANSI \056 Toggle New-line Mode \057 Turn on New-line Mode set/reset \060 Turn off New-line Mode | | Same as SET-UP uses ANSI \122 \123 set \124 Toggle Cursor Style (Und/Blk) Set Cursor Style to Block | | Same as SET-UP direct firmware Set Cursor Style to Underline | | Does not change current only | | ------ RAW FILE (ASCII) TRANSMIT FUNCTIONS \120 port Transmit File (Kermit.xmt) | file is opened and sent to serial | just as though it was keyed in. Note| this procedure will honor the setting | of the Kermit EOF flag. If set to ctrl | Z it will stop when found, else entire | file is sent. The user may key a ctrl | X to abort the transmission. \121 menu Set File Name for Raw Transmit | same as function from main help 1.11.4 Video Scroll Buffer Management The scroll buffer routines have been extensively re-worked and several features and improvements have been made. SIZE The maximum size of the video buffers has been increased to 20 pages. That works out to 480 lines of up to 132 characters of text. memory The is allocated on a line by line basis and required changes to the memory allocation portion of 2.29 kermit. This is caused by the fact that on a Rainbow a line of text can be 132 characters long, which is not a multiple of a MS-DOS paragraph (16 bytes). In order to maximize the screen memory available, the characters (text) are kept separate from the video attributes and have a separate segment address. This allows 64K for text and 64K for attribute storage yielding 480 lines of screen memory. SPEED Direct transfers from Video Memory to the scroll buffers been implemented. This saves an extra transfer through an intermediate memory buffer. The direct transfer is used only during normal receive character processing, not for scroll-back processing. has ATTRIBUTES This implementation provides for line attribute control as well as character video attributes. This is done by temporarily storing the line attribute in the high nibble of the first character of a line's video attribute. The line attribute uses only 3 bits and the character attribute uses only the low order 4 bits. ACCURACY Every attempt has been made to maintain the accuracy of the video scroll-back memory. If you scroll back and then a character is received from the host the emulator restores the screen to the proper place before putting the received character to the screen. Split screen (scrolling regions) are also handled as well as the origin mode (absolute vs. relative). BUGS The Rainbows hardware and firmware are very complex and a number of bugs in v2.29 were located and fixed. Smooth scroll coupled with auto-wrap was one problem which has been corrected. Apparently smooth scroll affects the ability of the firmware to maintain its wrappending flag accurately if the previous line is still moving when a new line tries to auto-wrap. The symptom of this problem is that multiple duplicate top lines are saved into scroll memory and several (more at slow scroll, less at fast scroll) characters which should have wrapped are lost. Protection has also been added so the scroll-back routines don't try to display lines they don't have. 1.11.5 Printer and Dump Support Complete support for all printer port functions has been included in this version of the emulator. The emulator now performs all of the same functions available through the Rainbow's "Terminal Mode" emulator. This includes support for the "PRINT EXTENT" and "PRINT TERM CHAR" which are settable via SET-UP or through host software (Ansi SET/RESET sequences). In addition, the emulator also supports the VT100 line drawing character set so that garbage does not get sent to the printer port. The method of implementation is the same as provided by DEC in the firmware's terminal emulation mode. It has been tested using video line monitors attached to the Rainbow's printer port. Video attributes are also processed so the net result is an accurate representation of what was on the screen at the time of the print/dump request. The Rainbow emulator assumes that the device attached to the printer port is a DEC compatible printer and issues the appropiate Ansi/DEC escape and control sequences. For printers, the video attributes of bold and underline will come out if the printer supports them. The reverse and blinking attributes, as well as the line attributes (double hi/wide), are also sent; however, most printers just ignore them. The screen dump to disk utilities have been integrated with the printer port support so that the same results are obtained. Dumping a complex screen to disk and then "playing it back" via the MS-DOS type command yields an exact duplicate of the original screen. The following VT100 Ansi compatible sequences are supported: Name ---- Mnemonic -------- Sequence -------- Print form feed on Print form feed off DECPFF DECPFF <ESC>[?18h <ESC>[?18l Print extent (Full screen) Print extent (Scrolling region) DECPEX DECPEX <ESC>[?19h <ESC>[?19l Media copy (Enter auto print) Media Copy (Exit auto print) MC MC <ESC>[?5i <ESC>[?4i Media Copy (Enter printer controller) Media Copy (Exit printer controller) MC MC <ESC>[5i <ESC>[4i Media Copy (Print screen) MC <ESC>[i or <ESC>[1i Media Copy (Print cursor line) MC <ESC>[?i or <ESC>[?1i notes: 1. The DECPFF and DECPEX sequences are used in MC (Print Screen) only. 2. Except for using DECPFF and DECPEX the Kermit Special Function "\000 Print Screen" is the same as MC (Print screen). 3. Kermit Special Function "\023,\024,\025 Auto-print" duplicate the Ansi compatible MC (Enter/Exit auto print) sequences. 4. Kermit Special Function "\011 Print Current Line" is the same as the Media Copy (Print cursor line). 5. Kermit Special Functions "\015,\016,\017 Media Copy" are similar to the Media Copy (Enter/Exit printer controller). The one difference is that if you use the Kermit function to "Enter", you must also use it to "Exit" printer controller mode. This is to allow all characters (including a possible Media Copy (exit printer controller) sequence) to be routed to the printer port. The Kermit Special Function "Media Copy" can be used to turn off a host generated media copy (enter printer controller) sequence. 6. Auto-print means that the line will be printed immediately before the cursor moves off the current line. 7. Printer-controller means that all characters (except x-on/xoff,nulls, DEL's, and <ESC>[?4i MC (exit printer controller)) will be passed without interpretation to the printer port. 1.11.6 Connect Mode Interactive Help The general form of this routine is a menu which allows a selection of five different functions. Each function is a completly independent routine which can be assigned individually to a key if desired. All routines overlay the top 15 lines of the current video display in reverse video and completly restore them when finished. The bottom line is always high-lighted and contains instructions for the current function. 1. display...... M A I N H E L P M E N U Select a Function: ----> Show all Key Definitions Set Interactive Hot Key to Special Function Set Interactive Hot Key to an Ascii String Show Special Interactive Status Show Kermit Diagnostics and Internals Set File Name for Raw Transmit -----------------------------------------------------------------------------<Select>/<Return> to SELECT; Up-arrow/Down-arrow to MOVE; space/<Exit> to EXIT ------------------------------------------------------------------------------ note - Only the arrow keys are used by this routine; however, the cursor is circular in nature and if positioned at the bottom item a down-arrow causes it to go to the top. If at the top and up-arrow then it goes to the bottom. When called the first time the arrow cursor is placed at the top menu selection; however, after the first call the cursor is re-positioned to the last menu item selected. It should be noted that this routine is selectable as a special function itself, as well as its five individual components. 1.11.6 Connect Mode Interactive Help (continued)....... Show all Key Definitions ------------------------------------------------VT-220 UDK Key Definitions -------------------------There are no Key Definitions for this Type or Shift/F9-Main Screen ==> [...........] F7-Resume ==> [...........] [...........] .. etc. -------------------------- "Hot Keys" Key Definitions -------------------------There are no Key Definitions for this Type or Shift/F9-Main Screen ==> [...........] Keypad PF1 ==> [...........] [...........] .. etc. ------------------------Kermit Set Key Definitions -------------------------There are no Key Definitions for this Type or Shift/F9-Main Screen ==> [...........] Keypad PF1 ==> [...........] [...........] .. etc. -------------------------Kermit Funtion Assignments -------------------------There are no Key Definitions for this Type or F2-Print Screen ==> [...........] Prev Screen ==> [...........] Ctrl/Prev Screen ==> [...........] .. etc. -----------------------------------------------------------------------------Space or <Exit> to EXIT; <Prev>/<Next> Screen or Up-arrow/Down-arrow to PAGE -----------------------------------------------------------------------------note - The key definitions are displayed in the priority sequence that they will be processed. The routine formats all definitions into pages and these pages are what you have control over viewing. The uparrow/prev-screen keys give backward paging and the down-arrow/next-screen keys allow forward paging. The top of the display has a message telling that it's on Page x of n Pages. Set Interactive Hot Key to Special Function ------------------------------------------- 1. prompt.... Press the Key you want to Define 2. display... Shift/Ctrl/Keypad PF3 or other description depending on which key is pressed 3. then display..... This Key Currently has No Definitions or This Key Currently Defined as Follows: As a VT220 UDK As a "Hot Keys" As a Set Key type As Kermit Function key key key key ---> ---> ---> ---> [....................key................... .................definitions............... ..................displayed................ ....................here..................] 4. then show function menu...... Select a Function: ---> [..........allowable................ ...........functions................ ...........displayed................ .............here................... ....................................] -----------------------------------------------------------------------------Use: up/dwn Arrows, Prv/Nxt Scrn to Move; cr or Select to Pick; Cancel to Quit -----------------------------------------------------------------------------note- The display size is limited, so a best effort attempt is made at displaying the current definitions for the selected key. If the screen will overflow a message is displayed and after hitting any key the routine resumes with a limited area for showing function choices. The minimum area is one line. The arrow keys operate a line at a time while the next/prev screen keys move whatever is the current display depth. The function menu does not wrap-around but will sound a beep if you try to go above the top or past the bottom. 1.11.6 Connect Mode Interactive Help (continued)....... Set Interactive Hot Key to an Ascii String -----------------------------------------1. prompt.... Press the Key you want to Define 2. display... Shift/Ctrl/Keypad PF3 or other description depending on which key is pressed 3. then display..... This Key Currently has No Definitions or This Key Currently Defined as Follows: As a VT220 UDK As a "Hot Keys" As a Set Key type As Kermit Function key key key key ---> ---> ---> ---> [....................key................... .................definitions............... ..................displayed................ ....................here..................] 4. then allow string entry......... Enter Key Definition ----> [........... enter definition..................... .................................................. ................................................] -----------------------------------------------------------------------------Use: <X] to ERASE; Ctrl-alpha key for CTL-CHAR; <Exit> to END; <Cancel> to QUIT -----------------------------------------------------------------------------note- The display size is limited so a best effort attempt is made at displaying the current definitions for the selected key. If the screen will overflow a message is displayed and after hitting any key the routine resumes with a limited area for a new definition. If you exceed the new definition area the key strokes are still being recorded but do not display. the maximium length of any single key definition is 255 characters. If you exceed that, the routine beeps until you hit <exit>, <cancel> or <X]. Any control characters entered will be high-lighted as a bright character. Show Special Interactive Status ------------------------------1. sample display...... LEFT SIDE: Default Ascii Character set Current G0 Character set Current G1 Character set Shift In/Shift Out Status Auto-repeat Keys Status Caps Lock Function Status New Line Mode Auto-wrap Mode Print Termination Char Print Screen Extent Save Screen (80/132) Mode Kermit Logging Status VT220 UDK Lock Status : : : : : : : : : : : : : US,UK or VT100 US,UK or VT100 US,UK or VT100 SI or SO Off or On Caps or Shift CR or CR/LF Off or On None or FF Scroll or Full Off or On Off or On Locked or Unlocked RIGHT SIDE: Terminal Type (responds as) h,VT52,VT102,VT220,VT125,VT100 Firmware Emulation Mode Eight Bit Mode Auto-Xon (connect) Mode Function Keys as Kermit Special Functions Line Monitor (Port B) Mode Media Copy (controller) Auto-print (line) Status Print Recvd Characters Monitor Mode (debug) Status Monitor Mode Display Style Insert/Replacement Mode : VT102-d,VT52: : : : : : : : : : : : VT52 or Ansi Off or On Off or On VT100+ or VT220 Enabled or Disabled Off or On Off or On Off or On Off or On Off or On Print or Video Replace or Insert -------------------------------------------------------------------------------------- Hit Any Key to Exit -------------------------------------------------------------------------------------This display provides additional information about the current (dynamic) status of the Rainbow emulator. This data is found in software switches within the emulator or in high memory (NVM and Video) which is accessed by the built-in ROM firmware. Show Kermit Diagnostics and Internals ------------------------------------1. sample display...... Scroll Buffers: Total Lines = 480 (20 Screens) Current: Top = 342 = 0 Key Buffers---: #Max #Now Max Used Avail VT220 Keys : 48 0 1024 0 1024 (X32)... 148 Hot Keys : 50 0 512 0 512 (.rtime)..... 0 Set Keys : 200 8 400 63 337 Buffered.......... 0 Bottom Diagnostics: Wait for Transmitter Receive Timeout Sent Chars Receive Error (framing)...... 0 Com Line : Sent receive..... 0 X-On : 6 flow..... 0 X-Off : 6 Error......... 0 Rcvd Typd ChlB Chan B (printer) 2 0 0 Receive Buffer Over- 5 0 0 Receive Parity Channel B Buffer Over- flow... 0 Scroll Region: 1;24 Origin Mode is Absolute -----------------------------------------------------------------------------<Cancel> key to Reset the Diagnostics - Any other Key to Exit -----------------------------------------------------------------------------The <Cancel> key will reset the Com Line all the (xon/xoff counts) as well as diagnostic variables. Most of the information however, the diagnostics need some further explanation: is obvious; Line 1- Wait for Transmitter (X32)... The count of the number of retries required in the software controlling the transmission of characters on port A. It is actually the number of times the software looped (divided by 32) waiting for the tranmitter ready bit to come on. A high number indicates that the emulator is spending time waiting to transmit. Line 2- Receive Timeout (.rtime)..... Can only happen during file tranfer, not in terminal mode. It indicates the host has x-off'ed us and the kermit receive timeout interval has expired without being x-on'ed by the host. In terminal mode the software buffers the remaining transmittable characters in a special circular output buffer. (see next line) Line 3- Sent Chars Buffered.......... Count of the total number of characters routed through the special output circular buffer. Host x-off is not the only reason we route through this buffer. Special care is given not to over-run a host input buffer and so if the receive buffer exceeds a certain threshold we route through the circular buffer. In addition a timing delay of approximately 3 mili-seconds is introduced between characters when transmitting either from the buffer or sending long strings. Line 4- Receive Error (framing)...... Indicates a framing or parity (hardware) error. Usually caused by mismatched speeds between the Rainbow and Host. Line 5- Chan B (printer) receive..... Indicates character traffic from printer port back to MS-DOS. Line 6- Receive Buffer Over-flow..... Over-run of receive buffer caused by host not responding to Xoff. Line 7- Receive Parity Error......... A software parity error detected; most likely caused by a mis-match between Host and Kermit's parity settings. Line 8- Channel B Buffer Over-flow... Indicates a buffer over-flow in line-monitor mode. Most likely caused by the device on the printer port (B) not responding to X-off. Set File Name for Raw Transmit -----------------------------1. display......... Current |--------------------------------------------------- ----| File Name: | Kermit.xmt | |------------------------------------------------------| |------------------------------------------------------| Enter File Name --> | | |------------------------------------------------------| Note: Enter Drive and/or Full Path Name to specify a file not in the Current Path (default or set by "CWD"). ----------------------------------------------------------------------------Use: <X] to Erase; <Exit> to End; <Cancel> to Quit ----------------------------------------------------------------------------- 2. Instructions: Type in a new file name. Do not end with a <CR>, instead use the <Exit> key. If the file can be located by DOS the following message is shown and the current name is updated. *** A New Current File Name has been Selected *** If the file is invalid the following message is shown and the old name remains unchanged. Can Not Find File using the Current Path 1.11.7 Improvements and Bug Fixes THE FOLLOWING IS A SUMMARY OF CHANGES MADE TO V2.29 of Kermit-MS Interrupt Service Routines The interrupt service routine have been completly re-written and tested. Several problems with flow-control (xon/xoff) have been corrected. If the transmitter is being held (host sent x-off) it is correct protocol to still send x-off to the host if the transmitter's receive buffer fills or if the user types a x-off. Another problem was that the receive buffer hi-water mark is detected within the interrupt service routine and it is not appropiate for the ISS to use an external routine to send a x-off (OUTCHR). This version sends the x-off directly from within the interrupt service routine. In addition to a hi-water point, this version implements a lo-water mark too. This prevents the receiver from x-on'ing the host too soon and improves throughput. Support was added so that Kermit can optionally control the printer port interrupts (see Line-monitor mode). A transmit circular buffer was added so that the routine does not hang on transmission of long character strings. A problem was caused by the host x-off'ing before the string had been completly sent. Transmission of buffered characters was also slowed down (terminal mode only) so as not to over-run a host's buffer control. Monitor Mode Monitor mode uses video attributes to distinguish various modes of operation. In general the following apply: NORMAL - Received Characters between BRITE - Parsed escape and control sequences REVERSE BRITE UNDERLINEBLINKING - Transmitted Characters Control Characters (Ascii col 0,1,8 and 9) Buffered in circular transmit buffer Trapped in Level 2 firmware buffer (response to report cursor position) In addition to characters received/transmitted, monitor mode also shows X-on's and X-off's received or transmitted. Monitor mode causes only a slight decrease in throughput as measured by the number of xand x-off's received and sent. This is due to direct manipulation of the video attribute byte in the firmware rather than using Ansi sequences. Most escape and control sequences are not actually done in monitor mode; however, as a convience some are (eg. UDK download). on's Escape and Control Sequences The emulator now has a complete Ansi escape/control parser which has been modeled after the Rainbow's own terminal emulation. The DEC manual "Rainbow 100+/100B Terminal Emulation Manual QV069-GZ" was the primary source for most of the design. Although all escape,control sequences and device control sequences are parsed, most are simply passed to the system firmware for actual exectuion. If monitor mode has been invoked, this process is different. In that case most sequences are just displayed and not sent to the firmware. There are some exceptions to this rule, especially those sequences handled by the emulator itself. An example is the VT220 UDK device control string which is handled the same in monitor mode as in regular terminal mode. Another example is the emulator's handling of the "Device Attributes (what are you)" request. In addition, those sequences which set internal translation flags such as "set keypad to application mode" work in monitor mode. In general, functions which effect the key translation modes execute, while those that effect the screen display (cursor position, graphic rendition, etc) do not execute in monitor mode. Video Attributes In order to improve VT220 compatibility, the video attributes are handled by the emulator directly. This has allowed the support of the following additions to the "select graphic rendition" sequences: (SGR) <ESC>[Ps;Ps....m Ps = = = = 22 24 25 27 Display Display Display Display normal intensity (bold off) not underline (underline off) not blinking (blinking off) positive image (reverse off) Emulation of VT2xx specific sequences The Rainbow uses firmware to support a "VT100 console" and so extensions to the sequences recognized by the emulator must be implemented in software. The following VT2xx sequences have been implemented: (ICH) Insert Characters - <CSI> Pn @ Insert Pn blank characters at the cursor position, with the character attributes set to normal. The cursor does not move and remains at the beginning of the inserted blank characters. A parameter of 0 or 1 causes one blank character to be inserted. Data on the line is shifted forward as in character insertion. (ECH) Erase Character - <CSI> Pn X Erases characters at the cursor position and the next n-1 characters. A parameter of 0 or 1 causes a single character to be erased. Character attributes are set to normal. No reformatting of data on the line occurs. The cursor remains in the same position. (DECSCA) Select Character Attributes - <CSI> Ps " q Select all subsequent characters to be "selective erasable" or "not selective erasable". Ps = 0 All attributes off (does not apply to SGR) = 1 Designate character as "non-erasable" by DECSEL/DECSED (attribute on) = 2 Designate character "erasable" by DECSEL/DECSED (attribute off) (DECSEL) Selective Erase in Line - <CSI> ? Ps K Similar to "Erase in line (EL)" except "erasable" characters only. Does not effect video line attributes or video character attributes. Ps = 0 or null Erases all "erasable" characters (DECSCA) from cursor to the end of line. = 1 Erases all "erasables" from beginning of line up to and including the current cursor position. = 2 Erases all "erasables" on the current line. (DECSED) Selective Erase in Display - <CSI> ? Ps J Similar to "Erase in display (ED)" except "erasable" characters only. Does not effect video line attributes or video character attributes. Ps = 0 or null Erases all "erasable" characters (DECSCA) from cursor to the end of display. = 1 Erases all "erasables" from beginning of display up to and including the current cursor position. = 2 Erases all "erasables" on the current display. (DECTCEM) Text Cursor Enable Mode - <CSI>?25h (Set) -or- <CSI>?25l (Reset) Set ( <CSI>?25h ) causes the cursor to be visible. Reset ( <CSI>?25l ) causes the cursor to not be visible. 1.11.8 Cautions and Future Enhancements Rainbow and the VAX This version has been tested and run under VAX/VMS V4.4 and several problems are known. In particular, using a port connected via a DMF32 adapter using the SYSGEN defaults causes strange side effects when transmitting long character strings. The DMF32 has a silo for received characters and a time-out parameter which is intended to minimize CPU interrupts. The time-out allows a minimum time to elapse before posting an interrupt and if transmitting at a fast rate (eg. 9600 baud) from a program such as Kermit, several characters accumulate in the silo before the CPU is notified. The standard type-ahead buffer in VMS is set to send x-off when less than 8 bytes remain in the type-ahead buffer; unfortunately a over-run. of the DMF32 silo can have more than enough to cause data Another problem is that the DMF32 has a speed error +5% when set to 19,200 baud. The Rainbow on the other hand uses a Intel 8274 multi-protocol serial controller with an error rate of -3% at 19,200 baud. The combined effect of these speed differences makes VAX to Rainbow communications at 19,200 baud impossible. This emulator was tested at 19,200 baud with VMS by telling the terminal driver in VMS to send two stop bits instead of one. As of now, there is no way of "locking" this into the driver and any VMS request (even SHOW TERMINAL) to the driver resets the stop bits to "normal". Additional Special Functions The process of adding additional special functions to the emulator is relatively easy. Addition of a routine to "raw transmit" a file is already underway. Most of the features required for such a function are already in this emulator (ie. circular transmit buffer). It may be useful to have a function to reset the terminal to some sort of standard conditions (as in VT220 reset function). VT52 mode No attempt has been made to operate the emulator in "true" VT52 mode. This means that the emulator acts like a VT1xx/VT2xx emulator regardless of the current firmware emulation mode (VT52/ANSI). If however, the firmware mode is set to VT52, then some VT1xx/VT2xx sequences won't be recognized by the firmware. Best advice is to run as a VT1xx/VT2xx if at all possible. Appendix A - VAX Basic example program to load and lock the VT220 UDK's pg A-1 10 ! external string function asc.hex declare word j declare declare declare declare string string string string constant constant constant constant dcs st start_it clear_it = = = = esc esc dcs dcs + + + + "P" "\" "1,1|" "0;1|" + st declare word constant max_keys = 48 dim Keys$(max_keys), Udef$(max_keys) ! ! shift/key F6 - Interrupt ! keys$(1)="17"\udef$(1)="" ! ! shift/key F7 - Resume ! keys$(2)="18"\udef$(2)="" ! ! shift/key F8 - Cancel ! keys$(3)="19"\udef$(3)="" ! ! shift/key F9 - Main Screen ! keys$(4)="20"\udef$(4)="" ! ! shift/key F10 - Exit ! keys$(5)="21"\udef$(5)="" ! ! shift/key F11 - (ESC) VT220 function keys only ! keys$(6)="23"\udef$(6)="" ! ! shift/key F12 - (BS) VT220 function keys only ! keys$(7)="24"\udef$(7)="" ! ! shift/key F13 - (LF) VT220 function keys only ! keys$(8)="25"\udef$(8)="" ! ! shift/key F14 - Addtnl Options ! keys$(9)="26"\udef$(9)="" ! ! shift/key F15 - Help ! keys$(10)="28"\udef$(10)="" ! ! shift/key F16 - Do ! keys$(11)="29"\udef$(11)="" ! ! shift/key F17 ! keys$(12)="31"\udef$(12)="" ! ! shift/key F18 ! keys$(13)="32"\udef$(13)="" ! ! shift/key F19 ! keys$(14)="33"\udef$(14)="" ! ! shift/key F20 ! keys$(15)="34"\udef$(15)="" ! ! shift/key Find ! keys$(16)="01"\udef$(16)="" ! ! shift/key Insert Here ! keys$(17)="02"\udef$(17)="" ! ! shift/key Remove ! keys$(18)="03"\udef$(18)="" ! ! shift/key Select ! keys$(19)="04"\udef$(19)="" ! ! shift/key Prev Screen ! keys$(20)="05"\udef$(20)="" ! ! shift/key Next Screen ! keys$(21)="06"\udef$(21)="" ! ! shift/key F11 - (ESC) VT100 function keys only ! keys$(22)="07"\udef$(22)="" ! ! shift/key F12 - (BS) VT100 function keys only ! keys$(23)="08"\udef$(23)="" ! ! shift/key F13 - (LF) VT100 function keys only ! keys$(24)="09"\udef$(24)="" ! ! key F6 - Interrupt ! keys$(25)="57"\udef$(25)="" ! ! key F7 - Resume ! keys$(26)="58"\udef$(26)="" ! ! key F8 - Cancel ! keys$(27)="59"\udef$(27)="" ! ! key F9 - Main Screen ! keys$(28)="60"\udef$(28)="" ! ! key F10 - Exit ! keys$(29)="61"\udef$(29)="" ! ! key F11 - (ESC) VT220 function keys only ! keys$(30)="63"\udef$(30)="" ! ! key F12 - (BS) VT220 function keys only ! keys$(31)="64"\udef$(31)="" ! ! key F13 - (LF) VT220 function keys only ! keys$(32)="65"\udef$(32)="" ! ! key F14 - Addtnl Options ! keys$(33)="66"\udef$(33)="" ! ! key F15 - Help ! keys$(34)="68"\udef$(34)="" ! ! key F16 - Do ! keys$(35)="69"\udef$(35)="" ! ! key F17 ! keys$(36)="71"\udef$(36)="" ! ! key F18 ! keys$(37)="72"\udef$(37)="" ! ! key F19 ! keys$(38)="73"\udef$(38)="" ! ! key F20 ! keys$(39)="74"\udef$(39)="" ! ! key Find ! keys$(40)="41"\udef$(40)="" ! ! key Inser Here ! keys$(41)="42"\udef$(41)="" ! ! key Remove ! keys$(42)="43"\udef$(42)="" ! ! key Select ! keys$(43)="44"\udef$(43)="" ! ! key Prev Screen ! keys$(44)="45"\udef$(44)="" ! ! key Next Screen ! keys$(45)="46"\udef$(45)="" ! ! key F11 - (ESC) VT100 function keys only ! keys$(46)="47"\udef$(46)="" ! ! key F12 - (BS) VT100 function keys only ! keys$(47)="48"\udef$(47)="" ! ! key F13 - (LF) VT100 function keys only ! keys$(48)="49"\udef$(48)="" ! ! Clear and unlock the UDK's "<ESC>P1;1|<ESC>\" ! print clear_it; ! ! Set any key which has data in the udef$ string associated with it. ! for j = 1 to 48 print start_it;keys$(j);"/";asc.hex(udef$(j));st; unless udef$(j)=="" next j ! ! Lock the keys against further re-definition and give sign-off ! print dcs+"1|"+st; print "VT220 user defined keys have been reset and locked" end 20 ! Function String Asc.hex (string a) Declare String ax,cx Declare Long sys_status,c,j,ml Declare Long Constant wid=2 External Long Function Ots$cvt_l_tz (long,string,long by value,long by value) asc.hex="" ml=len(a) Functionexit if ml <= 0 ax="" For j = 1 to ml cx=" " c=Ascii(seg$(a,j,j)) sys_status=Ots$cvt_l_tz(c,cx,wid,wid) ax = ax+cx Next j asc.hex = ax Functionend Appendix B pg B-1 Kermit Scan Codes for the DEC Rainbow .... Normal Scan codes .... ... Special Scan codes ... KeyShift Keyboard Key +Ctrl ------------Return 5645 Tab 5641 Space 5632 Delete <X] 5759 A 5633 B 5634 C 5635 D 5636 E 5637 F 5638 G 5639 H 5640 I 5641 J 5642 K 5643 L 5644 M 5645 N 5646 O 5647 P 5648 Q 5649 Shift Key- code Shift Ctrl +Ctrl code Shift Ctrl ---- ----- ---- ----- ---- ----- ---- 13 525 1037 1549 4109 4621 5133 9 521 1033 1545 4105 4617 5129 32 544 1024 1536 4128 4640 5120 127 639 1151 1663 4223 4735 5247 97 577 1025 1537 4193 4673 5121 98 578 1026 1538 4194 4674 5122 99 579 1027 1539 4195 4675 5123 100 580 1028 1540 4196 4676 5124 101 581 1029 1541 4197 4677 5125 102 582 1030 1542 4198 4678 5126 103 583 1031 1543 4199 4679 5127 104 584 1032 1544 4200 4680 5128 105 585 1033 1545 4201 4681 5129 106 586 1034 1546 4202 4682 5130 107 587 1035 1547 4203 4683 5131 108 588 1036 1548 4204 4684 5132 109 589 1037 1549 4205 4685 5133 110 590 1038 1550 4206 4686 5134 111 591 1039 1551 4207 4687 5135 112 592 1040 1552 4208 4688 5136 113 593 1041 1553 4209 4689 5137 --- R 114 594 1042 1554 4210 4690 5138 S 115 595 1043 1555 4211 4691 5139 T 116 596 1044 1556 4212 4692 5140 U 117 597 1045 1557 4213 4693 5141 V 118 598 1046 1558 4214 4694 5142 W 119 599 1047 1559 4215 4695 5143 X 120 600 1048 1560 4216 4696 5144 Y 121 601 1049 1561 4217 4697 5145 Z 122 602 1050 1562 4218 4698 5146 ~ or ` 96 638 1054 1566 4192 4734 5150 ! or 1 @ or 2 49 50 545 576 1024 1536 4145 4146 4641 4672 5120 # or 3 51 547 1051 1563 4147 4643 5147 $ or 4 52 548 1052 1564 4148 4644 5148 % or 5 53 549 1053 1565 4149 4645 5149 ^ or 6 54 606 1054 1566 4150 4702 5150 & or 7 55 550 1055 1567 4151 4646 5151 * or 8 56 554 1151 1663 4152 4650 5247 ( ) _ + { 9 0 = [ 57 58 45 61 91 552 553 607 555 635 1051 1563 4153 4154 4141 4157 4187 4648 4649 4703 4651 4731 5147 } or ] 93 637 1053 1565 4189 4733 5149 : or ; " or ' | or \ 59 39 92 570 546 636 1564 4155 4135 4188 4666 4642 4732 5148 > , . ? 60 44 46 47 574 556 558 575 1567 4156 4140 4142 4143 4670 4652 4654 4671 5151 5650 5651 5652 5653 5654 5655 5656 5657 5658 5662 5632 5659 5660 5661 5662 5663 5759 or or or or or 5659 5661 1052 5660 5663 or or or or < , . / 1055 Appendix B pg B-2 Kermit Scan Codes for the DEC Rainbow ..Normal Scan codes.. ..Special Scan Key- Key- codes.. Shift Shift Keyboard Key Base code Shift Ctrl +Ctrl code Shift Ctrl -------------- ---- ---- ----- ---- ----- ---- ----- ---- Print Screen 3 259 771 1283 1795 4355 4867 5379 F4 5 261 773 1285 1797 4357 4869 5381 F5 (Break) 101 357 869 1381 1893 4453 4965 5477 F6 (Interrupt) 7 263 775 1287 1799 4359 4871 5383 F7 (Resume) 9 265 777 1289 1801 4361 4873 5385 F8 (Cancel) 11 267 779 1291 1803 4363 4875 5387 F9 (Main Screen) 13 269 781 1293 1805 4365 4877 5389 F10 (Exit) 15 271 783 1295 1807 4367 4879 5391 F11 (ESC) VT100 27 27 539 1051 1563 4123 4635 5147 F12 (BS) VT100 8 8 520 1032 1544 4104 4616 5128 F13 (LF) VT100 5642 F14 (Addtnl Options) 5905 F15 (Help) 5888 F16 (Do) 5889 F17 5907 F18 5909 F19 5911 F20 5913 Find 5915 Insert Here 5917 Remove 5919 10 10 522 1034 1546 4106 4618 5130 17 273 785 1297 1809 4369 4881 5393 0 256 768 1280 1792 4352 4864 5376 1 257 769 1281 1793 4353 4865 5377 19 275 787 1299 1811 4371 4883 5395 21 277 789 1301 1813 4373 4885 5397 23 279 791 1303 1815 4375 4887 5399 25 281 793 1305 1817 4377 4889 5401 27 283 795 1307 1819 4379 4891 5403 29 285 797 1309 1821 4381 4893 5405 31 287 799 1311 1823 4383 4895 5407 +Ctrl ----5891 5893 5989 5895 5897 5899 5901 5903 5659 5640 Select 33 289 801 1313 1825 4385 4897 5409 Prev Screen 35 291 803 1315 1827 4387 4899 5411 Next Screen 37 293 805 1317 1829 4389 4901 5413 Up-Arrow 39 295 807 1319 1831 4391 4903 5415 Down-Arrow 41 297 809 1321 1833 4393 4905 5417 Right-Arrow 43 299 811 1323 1835 4395 4907 5419 Left-Arrow 45 301 813 1325 1837 4397 4909 5421 Keypad 0 47 303 815 1327 1839 4399 4911 5423 Keypad 1 50 306 818 1330 1842 4402 4914 5426 Keypad 2 53 309 821 1333 1845 4405 4917 5429 Keypad 3 56 312 824 1336 1848 4408 4920 5432 Keypad 4 59 315 827 1339 1851 4411 4923 5435 Keypad 5 62 318 830 1342 1854 4414 4926 5438 Keypad 6 65 321 833 1345 1857 4417 4929 5441 Keypad 7 68 324 836 1348 1860 4420 4932 5444 Keypad 8 71 327 839 1351 1863 4423 4935 5447 Keypad 9 74 330 842 1354 1866 4426 4938 5450 Keypad Dash 77 333 845 1357 1869 4429 4941 5453 Keypad Comma 80 336 848 1360 1872 4432 4944 5456 Keypad Period 83 339 851 1363 1875 4435 4947 5459 Keypad Enter 86 342 854 1366 1878 4438 4950 5462 Keypad PF1 89 345 857 1369 1881 4441 4953 5465 Keypad PF2 92 348 860 1372 1884 4444 4956 5468 Keypad PF3 95 351 863 1375 1887 4447 4959 5471 Keypad PF4 98 354 866 1378 1890 4450 4962 5474 F11 (ESC) VT200 104 360 872 1384 1896 4456 4968 5480 5921 5923 5925 5927 5929 5931 5933 5935 5938 5941 5944 5947 5950 5953 5956 5959 5962 5965 5968 5971 5974 5977 5980 5983 5986 5992 F12 (BS) VT200 107 363 875 1387 1899 4459 4971 5483 F13 (LF) VT200 110 366 878 1390 1902 4462 4974 5486 5995 5998 Appendix C - Numerical list of Kermit Special Function Codes Page C-1 Octal Code ----\000 \001 \002 \003 \004 \005 \006 \007 \010 \011 \012 \013 \014 \015 \016 \017 \020 \021 \022 \023 \024 \025 \026 \027 \030 \031 \032 \033 \034 \035 \036 \037 \040 \041 \042 \043 \044 \045 \046 \047 \050 \051 \052 \053 \054 \055 \056 Special Function Routine Description -----------------------------------Print Screen Dump Screen to Disk View Prev Screen (Scroll) View Next Screen (Scroll) View Prev Line (Scroll) View Next Line (Scroll) View Screen Bottom Send Break Send Break (long) Print Current Line Toggle Print Recv Char Turn on Print Recv Char Turn off Print Recv Char Toggle Media Copy Turn on Media Copy Turn off Media Copy Toggle Eight-bit Mode Turn on Eight-bit Mode Turn off Eight-bit Mode Toggle Auto-print Turn on Auto-print Turn off Auto-print Toggle Save Screen (80/132) Turn on Save Screen (80/132) Turn off Save Screen (80/132) Toggle Monitor Mode (debug) Turn on Monitor Mode (debug) Turn off Monitor Mode (debug) Toggle Screen Size (80/132) Set Screen to 80 cols Set Screen to 132 cols Toggle Smooth Scroll Turn on Smooth Scroll Turn off Smooth Scroll Toggle Screen Background Screen Background Light Screen Background Dark Toggle Auto-repeat keys Turn on Auto-repeat keys Turn off Auto-repeat keys Toggle US/UK Char Set Set US as Char Set Set UK as Char Set Toggle Auto-wrap Turn on Auto-wrap Turn off Auto-wrap Toggle New-line Mode \057 \060 \061 \062 \063 \064 \065 \066 \067 \070 \071 \072 \073 \074 \075 \076 \077 \100 \101 \102 \103 \104 \105 \106 \107 \110 \111 \112 \113 \114 \115 \116 \117 \120 \121 \122 \123 \124 Turn on New-line Mode Turn off New-line Mode Connect mode Help (menu) Kermit Close (Prompt) Kermit Command Menu Kermit Push to DOS Kermit Quit Logging Kermit Resume Logging Kermit Exit to MS-DOS Define Hot Key - Spl Function Define Hot Key - Ascii String Show all Key Definitions Show Special Status Kermit Status Hold-Screen (soft) Xon/Xoff Toggle the UDK Lock Turn on (Lock) the UDK's Turn off (Unlock) the UDK's Toggle Line Monitor Mode Turn on Line Monitor Mode Turn off Line Monitor Mode Show Diagnostics & Internals Toggle Special Functions Special Functions Disabled Special Functions Enabled Toggle Function Key Mode Set Function Keys to VT220 Set Function Keys to VT100 Dump Screen + Memory to Disk Print Screen + Memory Toggle Loop-Back Mode Turn on Loop-Back Mode Turn off Loop-Back Mode Transmit File (Kermit.xmt) Set File Name for Raw Transmit Toggle Cursor Style (Und/Blk) Set Cursor Style to Block Set Cursor Style to Underline Appendix D Page D-1 Kermit Pre-assigned (Hard-coded) Functions BY KEY: Octal Code ---- Special Function Description ---------------------------- \000 \012 Print Screen Toggle Print Recv Char \064 \062 \067 Kermit Push to DOS Kermit Close (Prompt) Kermit Exit to MS-DOS F5-Break Ctrl / F5-Break \007 \010 Send Break Send Break (long) Shift / F15-Help Ctrl / F15-Help Shift / Ctrl / F15-Help \061 \063 \031 Connect mode Help (menu) Kermit Command Menu Toggle Monitor Mode (debug) \001 \001 Dump Screen to Disk Dump Screen to Disk Prev Screen Ctrl / Prev Screen \002 \004 View Prev Screen (Scroll) View Prev Line (Scroll) Next Screen Shift / Next Screen Ctrl / Next Screen \003 \006 \005 View Next Screen (Scroll) View Screen Bottom View Next Line (Scroll) Shift / Up-Arrow Ctrl / Up-Arrow \004 \002 View Prev Line (Scroll) View Prev Screen (Scroll) Shift / Down-Arrow Ctrl / Down-Arrow \005 \003 View Next Line (Scroll) View Next Screen (Scroll) Shift / Right-Arrow \006 View Screen Bottom Shift / Keypad Enter Ctrl / Keypad Enter \000 \012 Print Screen Toggle Print Recv Char Key Name ---------Print Screen Ctrl / Print Screen Shift / F4 Ctrl / F4 Shift / Ctrl / F4 Shift / F16-Do Ctrl / F16-Do Appendix D Page D-2 Kermit Pre-assigned (Hard-coded) Functions BY FUNCTION: Key Name ---------- Octal Code ---- Special Function Description ---------------------------- Prev Screen Ctrl / Up-Arrow \002 \002 View Prev Screen (Scroll) View Prev Screen (Scroll) Next Screen Ctrl / Down-Arrow \003 \003 View Next Screen (Scroll) View Next Screen (Scroll) Ctrl / Prev Screen Shift / Up-Arrow \004 \004 View Prev Line (Scroll) View Prev Line (Scroll) Ctrl / Next Screen Shift / Down-Arrow \005 \005 View Next Line (Scroll) View Next Line (Scroll) Shift / Next Screen Shift / Right-Arrow \006 \006 View Screen Bottom View Screen Bottom Print Screen Shift / Keypad Enter \000 \000 Print Screen Print Screen Ctrl / Print Screen Ctrl / Keypad Enter \012 \012 Toggle Print Recv Char Toggle Print Recv Char \001 \001 Dump Screen to Disk Dump Screen to Disk \007 \010 Send Break Send Break (long) F4 F4 F4 F15-Help \064 \062 \067 \063 Kermit Kermit Kermit Kermit Shift / F15-Help \061 Connect mode Help (menu) Shift / Ctrl / F15-Help \031 Toggle Monitor Mode (debug) Shift / F16-Do Ctrl / F16-Do F5-Break Ctrl / F5-Break Shift Ctrl Shift / Ctrl Ctrl / / / / Push to DOS Close (Prompt) Exit to MS-DOS Command Menu