home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / mskermit / msvrb2.txt < prev    next >
Text File  |  2020-01-01  |  78KB  |  1,711 lines

  1.  *****************************************************************************
  2.     This document is intended to supplement the MS-DOS KERMIT Users Guide.
  3.    It is the documentation for the extended DEC Rainbow version of MS-KERMIT.
  4.  *****************************************************************************
  5.  
  6.                 By David L. Knoell, Basic American Food Company
  7.                                     Vacaville, CA 95696  (707-446-2200)
  8.  
  9. 1.11.  DEC Rainbow Command Extensions and Enhancements
  10.  
  11. SET TERMINAL
  12.  
  13. Syntax: SET TERMINAL parameter [value]
  14.  
  15. This command  was  not  implemented  on  V 2.29 of the DEC Rainbow MS-KERMIT, so
  16. there should be no conflict with previous versions.  The DEC Rainbow has most of
  17. the SET TERMINAL parameters  implemented via SET-UP mode and therefore available
  18. to  the  software through non-volatile  memory.    Parameters  set  through  the
  19. standard  DEC  Rainbow SET-UP are honored  in  Kermit;    and  therefore,  those
  20. functions are not duplicated in the SET TERMINAL command.
  21.  
  22. The first group of parameters sets the  terminal type to be emulated.  This only
  23. determines  the  "answer-back" generated in response to a  "who/what  are  you?"
  24. command from the host.  The following sequences are recognized:
  25.  
  26.          Parameter        Response Sequence       Special Status
  27.          ---------        -----------------       --------------
  28.          NONE             <ESC>[?6c                  VT102-d      
  29.          HEATH-19         <ESC>/Z                    VT52-h
  30.          VT100            <ESC>[?4;2c                VT100
  31.          VT102            <ESC>[?6c                  VT102
  32.          VT125            <ESC>[?12;7;1c             VT125
  33.          VT220            <ESC>[?62;1;2;8c           VT220
  34.          VT52             <ESC>/Z                    VT52
  35.          
  36.   **note- The  terminal  emulation  software  depends  on  the built-in firmware
  37.           VT102/VT52 emulation  to  perform  much  but not all of the work.  The
  38.           above settings do not influence how transmitted/received sequences are
  39.           parsed or responded to.   The setting of the ANSI/VT52 firmware switch
  40.           (via  SET-UP or host software)  is  the  controlling  factor.    These
  41.           parameters have been provided primarily so that host software (VAX/VMS
  42.           for example) will receive the response it  needs.    The tables in the
  43.           modules  MSXRB1x  and  MSYRB1x can be expanded to  provide  additional
  44.           selections.          
  45.          
  46. The  remaining  SET  TERMINAL  parameters specify various operating modes within
  47. which you run the basic VT1XX/VT2XX emulator.
  48.  
  49. AUTO-XON {ON, OFF}
  50.         Sends a X-ON  to  the  host when re-CONNECTing after once having escaped
  51.         back to  the  "Kermit-MS>"  prompt.   This function is useful, since the
  52.         serial buffers are  cleared  and  reset  during an escape back to kermit
  53.         prompt level.  Default  is  OFF.    Tested  and used with VAX/VMS system
  54.         software.
  55.         
  56. EIGHTBIT-MODE {ON, OFF}
  57.         Enables transmission/receipt of true 8-bit  characters while in terminal
  58.         emulation mode.  This is essential  when  supporting devices such as the
  59.         DEC's  LN03 laser printer using the DEC  multi-national  character  set.
  60.         The host system software should be made compatible  with  this function,
  61.         for  example:    under  VAX/VMS  the command "$ SET  TERMINAL/EIGHTBIT",
  62.         should  be used or else the terminal driver in VMS will strip/clear  the
  63.         eighth bit.  There is  no  effect  during file transfers since Kermit-MS
  64.         knows when it's in transfer or terminal mode.  Default is OFF.
  65.         
  66.  
  67. FUNCTION-KEYS {VT102, VT220}
  68.         Set  to VT102 (Default) the Rainbow's F11,F12,F13 keys transmit a (ESC),
  69.         (BS),(LF)  respectively.  When set to VT220 they transmit and respond as
  70.         VT220 level  2  (true VT220) keys and transmit the function key sequence
  71.         normal for keys on the top row (ie.  <ESC>[Pn~ where Pn is 23 for F11,24
  72.         for F12, and 25  for  F13).    The  fact  that  both key definitions can
  73.         co-exist even though the firmware  does  not support it, is accomplished
  74.         with software within the emulator.   This  software  is also used by the
  75.         SET  KEY  function  so  that those three  keys  can  actually  have  six
  76.         different definitions.  See Appendix B for the scan codes to use.
  77.         
  78. LINE-MONITOR {ON, OFF}
  79.         Sets the printer port to loop-back to the serial port when set ON.  This
  80.         function is very similar to a set-up  function  found  in a VT240 called
  81.         "Printer-to-Host".  When set ON the interrupt service  routines  in  the
  82.         emulator handle the printer port interrupts as well as  those  from  the
  83.         serial port.  In previous versions the interrupts from the  printer port
  84.         were  passed  back  to  MS-DOS  for processing by the original interrupt
  85.         service  routines  and  still  are,  if  this function is OFF (Default).
  86.         There are no restrictions on using this setting even when doing a screen
  87.         dump to printer  or  auto-print (print characters as they are received).
  88.         When used in conjunction  with  the  ANSI  "printer-controller  on"  and
  89.         MONITOR-MODE the Rainbow Kermit emulator  becomes completly passive.  In
  90.         other words, data from the serial  port is routed unparsed and untouched
  91.         to the printer port while data received  from the printer port (actually
  92.         another  serial  port)  is  routed  to  the  COMM  serial  port.    When
  93.         MONITOR-MODE is ON the traffic is displayed on the  Rainbow's screen for
  94.         review.  The device on the printer port does not  have  to be a printer,
  95.         in  fact it could be another computer.  The emulator currently  supports
  96.         X-ON/X-OFF from the printer port device only and the baud rate /  parity
  97.         settings  are  supported  via  SET-UP or SETPORT.  The emulater has a 1K
  98.         buffer for  input  but  does  not support X-ON/X-OFF flow control to the
  99.         printer port. (note-MONITOR-MODE is a new Kermit Special function.)
  100.         
  101. MONITOR-STYLE {PRINTABLE, VIDEO}
  102.         Determines how control characters will be displayed when the emulator is
  103.         placed  in  MONITOR-MODE.   The default is VIDEO which displays carriage
  104.         return, line feed, horz tab, vert tab, new line, and form feed as single
  105.         characters from the  VT100  special  line  drawing  character  set.  The
  106.         PRINTABLE parameter uses standard 2 or 3 character sequences enclosed in
  107.         angle brackets "<>" (eg.  <CR>,<FF> etc.).  
  108.         
  109. SAVE-SCREEN {ON, OFF}
  110.         Determines the action taken when  the  screen is re-sized from 80 to 132
  111.         characters or 132  to 80 characters.  If set ON, then the text currently
  112.         visible on the screen is restored after the re-sizing.  If OFF, then the
  113.         DEC standard of clearing the  screen and homing the cursor is done.  The
  114.         Default is OFF.  This function  does not operate when the screen size is
  115.         changed via the firmware-driven SET-UP screen.   It operates only during
  116.         a  software  "SET/RESET  SEQUENCE  (<ESC>[?3h  or <ESC>[?3l)" or  via  a
  117.         special-function assigned to a key.
  118.         
  119. SPECIAL-FUNCTIONS {ENABLED, DISABLED}
  120.         ENABLEs (Default) the  hard-coded  Kermit  special functions assigned to
  121.         fixed keys.    Example:   Prev Screen key scrolls back one page in video
  122.         memory.  If  DISABLED,  all  fixed  key  assignments are removed and the
  123.         normal sequence for the  key  is transmitted.  See the section on kermit
  124.         special functions on how to assign the functions to keys.
  125.  
  126.  
  127.  
  128. NEW and ENHANCED FEATURES              
  129.         
  130.  
  131. 1.11.1 Keyboard Key Translations
  132.  
  133.  
  134. There are now  4  levels  of  key  translations supported in this version of the
  135. emulator.  The Function keys (grey)  can  be  assigned (with some exceptions) to
  136. all 4 levels at the same time;    however,  only  the  highest  level definition
  137. currently defined is translated.  Level 1 is the highest level.
  138.  
  139.  
  140.                                       ASCII    SPECIAL
  141.    LEVEL  TYPE of ASSIGNMENT        Strings  FUNCTIONS  Comments
  142.    -----  -----------------------   -------  --------- ---------------------
  143.      1    VT220 User Defined Keys      YES       NO    Down-line loaded
  144.      2    Interactive "Hot Keys"       YES      YES    In CONNECT mode
  145.      3    Kermit SET KEY type          YES      YES    Kermit command level
  146.      4    Kermit pre-assigned           NO      YES    Hard-coded in program
  147.      
  148.  
  149. Level 1: VT220 UDK's
  150.          Since  these  key definitions are loaded via host driven software  they
  151.          are given the highest priority.  See the section on VT220  User Defined
  152.          Keys for a full discussion.  Also Appendix A.
  153.          
  154. Level 2: Interactive "Hot Keys"         
  155.          Any  key  (except  Hold screen and Set-up) can be defined or re-defined
  156.          during CONNECT mode.  The key can be assigned either to an Ascii string
  157.          (255  characters  max)  or  to  a Special Function.  In  fact  the  key
  158.          definition routines are themselves available as Special Functions.  You
  159.          can also cancel the current definition by assigning the key to an ascii
  160.          string of null length.    The routine provides menus and prompts so the
  161.          process of defining a key  is easy.  The definitions are only valid for
  162.          a given Kermit session, ie:  if you exit to DOS they are lost.  To make
  163.          the assignment semi-permanent you can assign the  keys  via the SET KEY
  164.          function  in  a KERMIT.INI file which is processed  when  you  activate
  165.          Kermit.
  166.          
  167. Level 3: Kermit SET KEY
  168.          This  standard  Kermit  command  has  been  enhanced  to enable Special
  169.          Functions to be assigned to keys.  The scan code used  indicates to the
  170.          emulator  that  the  definition  is  not  an  ascii string but rather a
  171.          Special Function.   You can calculate the Special Function scan code to
  172.          be used by  simply adding 4096 (decimal) to the scan code generated via
  173.          the SHOW KEY command.    Appendix  B  gives a complete list of all scan
  174.          codes generated on a DEC  Rainbow.    When  Kermit  prompts for the key
  175.          definition you simply supply the octal  code  assigned  to each Special
  176.          Function  (\xxx where xxx is a 3-digit  octal  number).    These  octal
  177.          numbers are assigned in sequence and as new  functions  are  added they
  178.          simply  increase the number of valid functions available.   Appendix  C
  179.          gives a list of vaild functions currently implemented.
  180.          
  181. Level 4: Kermit pre-assigned Functions
  182.          For  compatibility  with previous versions of MS-KERMIT these functions
  183.          are currently hard-coded in the program as before.  In addition several
  184.          new functions have been added to the hard-coded list.  Interactive HELP
  185.          "Show all Keys"  provides  a  seperate section in the display for these
  186.          key definitions.  Appendix  D  also  gives a current list.  Please note
  187.          that you can "turn off" these pre-assigned function definitions via the
  188.          "SET TERM SPECIAL-FUNCTIONS DISABLE" Kermit command. 
  189.  
  190.  
  191. 1.11.2 VT220 User Defined Keys (UDK's)
  192.        
  193. The User Defined Keys feature of the VT220 has been implemented with extensions.
  194. You do not have to be in VT220 mode for these keys to be down-loaded or used.  A
  195. standard VT220 allows the keys F6 through F20  (including  Help  and  Do)  to be
  196. programmable via the DECUDK device control strings.  They  are invoked by typing
  197. the  SHIFT-(function key).  This implementation allows both the shift  and  also
  198. the  un-shifted  function keys to be downline loaded.  In addition  the  editing
  199. keys  (Find,Insert  Here,Remove,Select,Prev  Screen,Next  Screen)  may  also  be
  200. defined (both shifted and un-shifted).    Please  note  that  this  is  not  DEC
  201. standard;  so use with caution.    The  clear and lock parameters have also been
  202. implemented  and  all  sequences  work  as described  in  the  VT220  Programmer
  203. Reference Manual (pg 4-37 thru 4-41) EK-VT220-RM-001.
  204.  
  205. DECUDK Device Control String Format
  206.  
  207.   DCS   Pc;Pl  |  Ky1/st1;ky2/st2;......kyn/stn   ST
  208.   
  209.  Where: DCS is the Control String Introducer (90 hex in 8-bit) or
  210.                                              (<ESC>P in 7-bit)
  211.         Pc is Clear Parameter (0 or none clear all keys before loading)
  212.                               (1 load new key values,clear old only if defined)
  213.         Pl is Lock  Parameter (0 or none lock against future redefinition)
  214.                               (1 do not lock against future redefinition)
  215.         |  Vert Bar Final character - characters between this character and
  216.                                       the string terminator (ST) will be
  217.                                       parsed by the emulator for definitions.
  218.         Ky1 is a key code to be defined (see list below)                   
  219.         /   is a ascii slash used as a seperator
  220.         St1 is a string of hex pairs which are the encoded contents of the key
  221.         ;   is a ascii semi-colon used to seperate multiple key definitions
  222.         ST  is the ansi String Terminator (9c hex in 8-bit) or
  223.                                           (<ESC>\ in 7-bit)
  224.                                           
  225. More  information  can  be  found  in  the  VT220 Programmers  Reference  Manual
  226. mentioned  above  and  by looking at the sample VAX Basic  program  provided  in
  227. Appendix  A.    The  following  list  of Key codes provides information  on  the
  228. extensions made to the standard VT220 codes.  Leading zeros are required  as the
  229. key code must be 2 ascii digits.  In coding the Hex pairs you may use both upper
  230. and lower case alpha characters for the hex digits A-F (a-f).
  231.  
  232. EXAMPLES:
  233.  
  234.    (a) To clear keys send the following string:  <DCS>0;1|<ST>
  235.   
  236.    (b) To lock keys send the following string:  <DCS>1;0|<ST>
  237.    
  238.    (c) To define key Shift/F20 as the string "PRINT" without clearing or locking
  239.        any other keys you would:
  240.   
  241.       (1) Convert the text to Hex pairs:
  242.           P = 50 hex
  243.           R = 52 hex
  244.           I = 49 hex
  245.           N = 4E or 4e hex
  246.           T = 54 hex
  247.           
  248.       (2) Compose the entire control sequence as follows:
  249.    
  250.             8-bit mode - <DCS>1;1|34/5052494E54<ST>
  251.                
  252.             7-bit mode - <ESC>P1;1|34/5052494E54<ESC>\
  253.        
  254. *note-the 34 preceeding the / is the UDK key code found in the following table
  255.  
  256.  
  257.             Table of Key Codes for Use in Defining UDK's
  258.             --------------------------------------------
  259.  
  260.                              (shifted)     (un-shifted)
  261.      KEY NAME                 KEY CODE       KEY CODE
  262.    --------------             --------       --------
  263.    F6-Interrupt                  17 *           57
  264.    F7-Resume                     18 *           58
  265.    F8-Cancel                     19 *           59
  266.    F9-Main Screen                20 *           60
  267.    F10-Exit                      21 *           61
  268.    F11-(ESC) - VT220 only        23 *           63   |   active only if 
  269.    F12-(BS)  - VT220 only        24 *           64   | FUNCTION-KEYS VT220
  270.    F13-(LF)  - VT220 only        25 *           65   |    has been set      
  271.    F14-Addtnl Options            26 *           66
  272.    F15-Help                      28 *           68
  273.    F16-Do                        29 *           69
  274.    F17-                          31 *           71
  275.    F18-                          32 *           72
  276.    F19-                          33 *           73
  277.    F20-                          34 *           74
  278.    Find                          01             41
  279.    Insert Here                   02             42
  280.    Remove                        03             43
  281.    Select                        04             44
  282.    Prev Screen                   05             45
  283.    Next Screen                   06             46
  284.    (ESC) - VT100 only            07             47   |   active only if   
  285.    (BS)  - VT100 only            08             48   | FUNCTION-KEYS VT100
  286.    (LF)  - VT100 only            09             49   |    has been set       
  287.                                                       
  288.                                     * Indicates standard VT220 code. All others
  289.                                       should be considered extentions.
  290.  
  291.  
  292.  ----------The leading zeros in the Key Code (if any) are required------------
  293.  
  294.  
  295.  
  296.     note- the VT100 only keys and the VT220 only keys can always  be
  297.           loaded regardless of the "SET TERMINAL FUNCTION-KEYS" setting. 
  298.           
  299.  
  300. 1.11.3 Special Kermit Functions
  301.  
  302. The following section describes the Kermit Special Functions currently available
  303. in this  version  of  the  emulator.    The  octal  code (\xxx) assigned to each
  304. function is given.    Many of the routines come in three versions:  toggle, turn
  305. on, and turn off.    They are grouped here by type of function and therefore the
  306. octol codes are not in  sequence.  Appendix C gives a complete list in numerical
  307. sequence.
  308.  
  309. ------ SCREEN MANAGEMENT (SCROLL) ROUTINES
  310.  
  311.  \002  View Prev Screen (Scroll)      | Go back one screen if possible
  312.  \003  View Next Screen (Scroll)      | Go forward one screen if possible
  313.  \004  View Prev Line (Scroll)        | Go back a single line if possible
  314.  \005  View Next Line (Scroll)        | Go forward a single line if possible
  315.  \006  View Screen Bottom             | Re-position screen at last recvd char
  316.  
  317.  
  318. ------ KERMIT SET TERMINAL ROUTINES
  319.  
  320.  \020  Toggle Eight-bit Mode          | 
  321.  \021  Turn on Eight-bit Mode         | same as SET TERMINAL EIGHTBIT-MODE
  322.  \022  Turn off Eight-bit Mode        |
  323.  
  324.  \026  Toggle Save Screen (80/132)    |
  325.  \027  Turn on Save Screen (80/132)   | same as SET TERMINAL SAVE-SCREEN
  326.  \030  Turn off Save Screen (80/132)  |
  327.  
  328.  \101  Toggle Line Monitor Mode       |
  329.  \102  Turn on Line Monitor Mode      | same as SET TERMINAL LINE-MONITOR
  330.  \103  Turn off Line Monitor Mode     |
  331.  
  332.  \105  Toggle Special Functions       |
  333.  \106  Special Functions Disabled     | same as SET TERMINAL SPECIAL-FUNCTIONS
  334.  \107  Special Functions Enabled      |
  335.  
  336.  \110  Toggle Function Key Mode       |
  337.  \111  Set Function Keys to VT220     | same as SET TERMINAL FUNCTION-KEYS
  338.  \112  Set Function Keys to VT100     |
  339.  
  340.  
  341. ------ PRINT AND DUMP ROUTINES
  342.  
  343.  \000  Print Screen                   | Current full screen only    
  344.  \114  Print Screen + Memory          | As above + to end of scroll memory
  345.  
  346.  \001  Dump Screen to Disk            | Similar to Print Screen but to disk
  347.  \113  Dump Screen + Memory to Disk   | As above + to end of scroll memory  
  348.  
  349.  \011  Print Current Line             | Print line which has cursor on it
  350.  
  351.  \012  Toggle Print Recv Char         | Send received characters to
  352.  \013  Turn on Print Recv Char        | the printer just as received
  353.  \014  Turn off Print Recv Char       | with no editing
  354.  
  355.  \015  Toggle Media Copy              | Similar to ANSI Media Copy - Printer
  356.  \016  Turn on Media Copy             | Controller on/off however if turned on
  357.  \017  Turn off Media Copy            | with this rtn then must turn off too.
  358.  
  359.  \023  Toggle Auto-print              | Simulates <CSI>?5i (on); <CSI>?4i (off)
  360.  \024  Turn on Auto-print             | If on, then print each line as cursor is
  361.  \025  Turn off Auto-print            | about to move to next line. 
  362.  
  363. ------ CONNECT MODE INTERACTIVE ROUTINES
  364.  
  365.  \007  Send Break                     |  275 ms Break
  366.  \010  Send Break (long)              | 2000 ms Break (2 sec)
  367.  
  368.  \031  Toggle Monitor Mode (debug)    | Monitor mode (Debug) shows transmitted
  369.  \032  Turn on Monitor Mode (debug)   | and received characters and escapes.
  370.  \033  Turn off Monitor Mode (debug)  | Rcvd=norm video;Xmit=rev video
  371.  
  372.  \061  Connect mode Help (menu)       | Allows selection of functions below:
  373.  \070  Define Hot Key - Spl Function  | Set any key to a special function
  374.  \071  Define Hot Key - Ascii String  | Set any key to an Ascii string (255 max)
  375.  \072  Show all Key Definitions       | See definitions in priority sequence
  376.  \073  Show Special Status            | View current emulator status/settings
  377.  \104  Show Diagnostics & Internals   | Current internal variables shown
  378.  
  379.  \062  Kermit Close (Prompt)          | same as hitting kermit escape-char + C
  380.  \063  Kermit Command Menu            | same as hitting kermit escape-char + ?
  381.  \064  Kermit Push to DOS             | same as hitting kermit escape-char + P
  382.  \065  Kermit Quit Logging            | if logging and  on: then quits log
  383.  \066  Kermit Resume Logging          | if logging and off: then resumes log
  384.  \067  Kermit Exit to MS-DOS          | simulates a escape-char + c + exit + cr
  385.  \074  Kermit Status                  | same as hitting kermit escape-char + S
  386.  
  387.  \075  Hold-Screen (soft) Xon/Xoff    | Simulates hold screen w/xon/xoff + Lite
  388.  
  389.  \076  Toggle the UDK Lock            | Allows the UDK lock to be set/reset
  390.  \077  Turn on (Lock) the UDK's       | externally (as in a VT220 set-up)
  391.  \100  Turn off (Unlock) the UDK's    | current setting on special status
  392.  
  393.  \115  Toggle Loop-Back Mode          | This is same as doing both a line-
  394.  \116  Turn on Loop-Back Mode         | monitor and Media copy (printer
  395.  \117  Turn off Loop-Back Mode        | controller) at same time.
  396.  
  397.  
  398. ------ RAINBOW SET-UP ROUTINES
  399.  
  400.  \034  Toggle Screen Size (80/132)    |
  401.  \035  Set Screen to 80 cols          | Same as SET-UP except it honors the
  402.  \036  Set Screen to 132 cols         |        Save-Screen setting
  403.  
  404.  \037  Toggle Smooth Scroll           |
  405.  \040  Turn on Smooth Scroll          | Same as SET-UP uses ANSI set/reset
  406.  \041  Turn off Smooth Scroll         |
  407.  
  408.  \042  Toggle Screen Background       |
  409.  \043  Screen Background Light        | Same as SET-UP uses ANSI set/reset
  410.  \044  Screen Background Dark         |
  411.  
  412.  \045  Toggle Auto-repeat keys        |
  413.  \046  Turn on Auto-repeat keys       | Same as SET-UP uses ANSI set/reset
  414.  \047  Turn off Auto-repeat keys      |
  415.  
  416.  \050  Toggle US/UK Char Set          |
  417.  \051  Set US as Char Set             | Same as SET-UP uses ANSI set/reset
  418.  \052  Set UK as Char Set             | Does not change current only default
  419.  
  420.  \053  Toggle Auto-wrap               |
  421.  \054  Turn on Auto-wrap              | Same as SET-UP uses ANSI set/reset
  422.  \055  Turn off Auto-wrap             |
  423.  
  424.  \056  Toggle New-line Mode           |
  425.  \057  Turn on New-line Mode          | Same as SET-UP uses ANSI set/reset
  426.  \060  Turn off New-line Mode         |
  427.  
  428.  \122  Toggle Cursor Style (Und/Blk)  |
  429.  \123  Set Cursor Style to Block      | Same as SET-UP direct firmware set
  430.  \124  Set Cursor Style to Underline  |
  431.  
  432. ------ RAW FILE (ASCII) TRANSMIT FUNCTIONS
  433.  
  434.  \120  Transmit File (Kermit.xmt)     | file is opened and sent to serial port
  435.                                       | just as though it was keyed in. Note-
  436.                                       | this procedure will honor the setting
  437.                                       | of the Kermit EOF flag. If set to ctrl
  438.                                       | Z it will stop when found, else entire
  439.                                       | file is sent.  The user may key a ctrl
  440.                                       | X to abort the transmission.
  441.                                       
  442.  \121  Set File Name for Raw Transmit | same as function from main help menu
  443.  
  444.  
  445. 1.11.4 Video Scroll Buffer Management
  446.  
  447. The scroll buffer  routines have been extensively re-worked and several features
  448. and improvements have been made.
  449.  
  450.  
  451. SIZE
  452.         The maximum size of the video buffers has  been  increased  to 20 pages.
  453.         That works out to 480 lines of up to 132 characters of text.  The memory
  454.         is allocated on a line by line basis and required  changes to the memory
  455.         allocation portion of 2.29 kermit.  This is caused by the fact that on a
  456.         Rainbow  a  line  of  text  can be 132 characters long, which is  not  a
  457.         multiple  of  a  MS-DOS  paragraph (16 bytes).  In order to maximize the
  458.         screen memory  available,  the  characters (text) are kept separate from
  459.         the video attributes  and  have a separate segment address.  This allows
  460.         64K for text and  64K for attribute storage yielding 480 lines of screen
  461.         memory.
  462.  
  463.      
  464. SPEED
  465.         Direct transfers from Video  Memory  to  the  scroll  buffers  has  been
  466.         implemented.   This saves an  extra  transfer  through  an  intermediate
  467.         memory buffer.  The direct transfer  is  used only during normal receive
  468.         character processing, not for scroll-back processing.
  469.         
  470.  
  471. ATTRIBUTES
  472.         This  implementation  provides  for line attribute control  as  well  as
  473.         character  video attributes.  This is done by  temporarily  storing  the
  474.         line  attribute  in the high nibble of the first character of  a  line's
  475.         video attribute.  The line attribute uses only 3 bits and the  character
  476.         attribute uses only the low order 4 bits.
  477.            
  478.  
  479. ACCURACY
  480.         Every attempt  has  been  made  to  maintain  the  accuracy of the video
  481.         scroll-back memory.  If you scroll back and then a character is received
  482.         from the host the  emulator  restores  the  screen  to  the proper place
  483.         before putting the received character  to  the  screen.    Split  screen
  484.         (scrolling  regions)  are  also  handled as  well  as  the  origin  mode
  485.         (absolute vs.  relative).
  486.            
  487.  
  488. BUGS
  489.         The Rainbows hardware and firmware are very complex and a number of bugs
  490.         in v2.29 were  located  and fixed.  Smooth scroll coupled with auto-wrap
  491.         was one problem which  has  been  corrected.    Apparently smooth scroll
  492.         affects the ability of the  firmware  to  maintain its wrap-pending flag
  493.         accurately if the previous line is still moving when a new line tries to
  494.         auto-wrap.  The symptom of this problem  is  that multiple duplicate top
  495.         lines are saved into scroll  memory  and  several  (more at slow scroll,
  496.         less at fast scroll) characters which  should  have  wrapped  are  lost.
  497.         Protection has also been added so the  scroll-back routines don't try to
  498.         display lines they don't have.
  499.  
  500.  
  501.  
  502. 1.11.5 Printer and Dump Support
  503.  
  504.  
  505. Complete  support  for  all printer port functions has  been  included  in  this
  506. version of the emulator.  The emulator now performs  all  of  the same functions
  507. available through the Rainbow's "Terminal Mode" emulator.  This includes support
  508. for the "PRINT EXTENT" and "PRINT TERM CHAR" which are settable  via  SET-UP  or
  509. through host  software  (Ansi  SET/RESET  sequences).  In addition, the emulator
  510. also supports the  VT100 line drawing character set so that garbage does not get
  511. sent to the printer  port.  The method of implementation is the same as provided
  512. by DEC in the firmware's  terminal  emulation  mode.    It has been tested using
  513. video line monitors attached to the  Rainbow's  printer  port.  Video attributes
  514. are also processed so the net result  is  an accurate representation of what was
  515. on the screen at the time of the  print/dump  request.    The  Rainbow  emulator
  516. assumes that the device attached to the printer port is a DEC compatible printer
  517. and issues the appropiate Ansi/DEC escape and control sequences.   For printers,
  518. the video attributes of bold and underline will come out if the printer supports
  519. them.    The  reverse  and  blinking attributes, as well as the line  attributes
  520. (double  hi/wide), are also sent;  however, most printers just ignore them.  The
  521. screen dump to disk utilities have been integrated with the printer port support
  522. so that the  same  results  are  obtained.  Dumping a complex screen to disk and
  523. then "playing it back"  via the MS-DOS type command yields an exact duplicate of
  524. the original screen. 
  525.  
  526. The following VT100 Ansi compatible sequences are supported:
  527.  
  528. Name                                   Mnemonic   Sequence
  529. ----                                   --------   --------
  530.  
  531. Print form feed on                     DECPFF     <ESC>[?18h
  532. Print form feed off                    DECPFF     <ESC>[?18l
  533.  
  534. Print extent (Full screen)             DECPEX     <ESC>[?19h
  535. Print extent (Scrolling region)        DECPEX     <ESC>[?19l 
  536.  
  537. Media copy (Enter auto print)          MC         <ESC>[?5i
  538. Media Copy (Exit auto print)           MC         <ESC>[?4i
  539.  
  540. Media Copy (Enter printer controller)  MC         <ESC>[5i
  541. Media Copy (Exit printer controller)   MC         <ESC>[4i
  542.  
  543. Media Copy (Print screen)              MC         <ESC>[i or <ESC>[1i 
  544.  
  545. Media Copy (Print cursor line)         MC         <ESC>[?i or <ESC>[?1i
  546.  
  547. notes:
  548.     1. The DECPFF and DECPEX sequences are used in MC (Print Screen) only.
  549.     2. Except for using DECPFF and DECPEX the Kermit Special Function "\000
  550.        Print Screen" is the same as MC (Print screen).
  551.     3. Kermit Special Function "\023,\024,\025 Auto-print" duplicate the Ansi
  552.        compatible MC (Enter/Exit auto print) sequences.
  553.     4. Kermit Special Function "\011 Print Current Line" is the same as the    
  554.        Media Copy (Print cursor line).
  555.     5. Kermit Special Functions "\015,\016,\017 Media Copy" are similar to the  
  556.        Media Copy (Enter/Exit printer controller).    The one difference is that
  557.        if you use the Kermit function to "Enter", you must also use it to "Exit"
  558.        printer controller mode.  This is to  allow  all  characters (including a
  559.        possible Media Copy (exit printer controller) sequence) to  be  routed to
  560.        the printer port.  The Kermit Special Function "Media  Copy"  can be used
  561.        to  turn  off  a  host  generated  media copy (enter printer  controller)
  562.        sequence.
  563.     6. Auto-print means that the line will be printed immediately before the   
  564.        cursor moves off the current line.
  565.     7. Printer-controller means that all characters (except x-on/x-off,nulls,
  566.        DEL's, and <ESC>[?4i MC (exit printer controller)) will be passed 
  567.        without interpretation to the printer port.
  568.  
  569.  
  570. 1.11.6 Connect Mode Interactive Help
  571.  
  572. The general form of this routine is a menu which  allows  a  selection  of  five
  573. different  functions.   Each function is a completly independent  routine  which
  574. can be assigned  individually to a key if desired.  All routines overlay the top
  575. 15 lines of the  current  video  display  in reverse video and completly restore
  576. them  when finished.  The  bottom  line  is  always  high-lighted  and  contains
  577. instructions for the current function.
  578.  
  579.  
  580.  
  581. 1. display......
  582.  
  583.  
  584.              M A I N   H E L P   M E N U
  585.  
  586.  
  587.  
  588.  
  589. Select a Function:
  590.  
  591.  
  592.              ---->  Show all Key Definitions
  593.  
  594.  
  595.                     Set Interactive Hot Key to Special Function
  596.  
  597.  
  598.                     Set Interactive Hot Key to an Ascii String
  599.  
  600.  
  601.                     Show Special Interactive Status
  602.  
  603.  
  604.                     Show Kermit Diagnostics and Internals
  605.  
  606.  
  607.                     Set File Name for Raw Transmit
  608.  
  609.  
  610.  
  611.  
  612. -------------------------------------------------------------------------------
  613.  <Select>/<Return> to SELECT; Up-arrow/Down-arrow to MOVE; space/<Exit> to EXIT
  614. -------------------------------------------------------------------------------
  615.  
  616.  
  617.  
  618.  
  619. note - Only  the arrow keys are used by  this routine;  however, the  cursor  is
  620.        circular  in  nature  and  if positioned at the bottom item a  down-arrow
  621.        causes it to go to the top.  If at the top  and  up-arrow then it goes to
  622.        the bottom.  When called the first time the arrow cursor is placed at the
  623.        top menu selection;    however,  after  the  first  call  the  cursor  is
  624.        re-positioned to the last  menu  item  selected.  It should be noted that
  625.        this routine is selectable as  a  special function itself, as well as its
  626.        five individual components.
  627.  
  628.  
  629. 1.11.6 Connect Mode Interactive Help (continued).......
  630.  
  631.  
  632.                            Show all Key Definitions
  633.                            ------------------------
  634.  
  635.  
  636.         --------------------------
  637.         VT-220 UDK Key Definitions   
  638.         --------------------------
  639.    There are no Key Definitions for this Type        
  640.                    or
  641.     Shift/F9-Main Screen ==> [...........]             
  642.                F7-Resume ==> [...........] 
  643.                              [...........] .. etc.
  644.  
  645.     
  646.         --------------------------
  647.         "Hot Keys" Key Definitions   
  648.         --------------------------
  649.    There are no Key Definitions for this Type        
  650.                    or
  651.     Shift/F9-Main Screen ==> [...........]             
  652.               Keypad PF1 ==> [...........] 
  653.                              [...........] .. etc.
  654.  
  655.     
  656.         -------------------------
  657.         Kermit Set Key Definitions   
  658.         --------------------------
  659.    There are no Key Definitions for this Type        
  660.                    or
  661.     Shift/F9-Main Screen ==> [...........]             
  662.               Keypad PF1 ==> [...........] 
  663.                              [...........] .. etc.
  664.  
  665.     
  666.         --------------------------
  667.         Kermit Funtion Assignments 
  668.         --------------------------
  669.     There are no Key Definitions for this Type        
  670.                    or
  671.          F2-Print Screen ==> [...........]             
  672.              Prev Screen ==> [...........] 
  673.         Ctrl/Prev Screen ==> [...........] .. etc.
  674.  
  675.  
  676.  
  677. -------------------------------------------------------------------------------
  678.   Space or <Exit> to EXIT; <Prev>/<Next> Screen or Up-arrow/Down-arrow to PAGE
  679. -------------------------------------------------------------------------------
  680.  
  681.  
  682. note - The key definitions are displayed in the priority sequence that they will
  683.        be processed.  The routine formats all  definitions  into pages and these
  684.        pages are what you have control over viewing.    The up-arrow/prev-screen
  685.        keys  give  backward  paging  and  the  down-arrow/next-screen keys allow
  686.        forward paging.  The top of the display has a  message  telling that it's
  687.        on Page x of n Pages.
  688.  
  689.  
  690.                      Set Interactive Hot Key to Special Function
  691.                      -------------------------------------------
  692.  
  693. 1. prompt....  Press the Key you want to Define
  694.  
  695.  
  696. 2. display...  Shift/Ctrl/Keypad PF3 or other description depending on
  697.  
  698.                                               which key is pressed
  699. 3. then display.....
  700.  
  701.  
  702. This Key Currently has No Definitions
  703.              or
  704. This Key Currently Defined as Follows:
  705.  
  706.      As a VT220 UDK key ---> [....................key...................
  707.     As a "Hot Keys" key ---> .................definitions...............
  708.   As a Set Key type key ---> ..................displayed................
  709.  As Kermit Function key ---> ....................here..................]
  710.  
  711.  
  712. 4. then show function menu......
  713.  
  714.  
  715. Select a Function:
  716.                    [..........allowable................
  717.                    ...........functions................
  718.             --->   ...........displayed................
  719.                    .............here...................
  720.                    ....................................]
  721.  
  722.  
  723. -------------------------------------------------------------------------------
  724. Use: up/dwn Arrows, Prv/Nxt Scrn to Move; cr or Select to Pick; Cancel to Quit
  725. -------------------------------------------------------------------------------
  726.  
  727.  
  728. note- The display size is limited,  so  a  best  effort  attempt    is  made  at
  729.       displaying  the  current  definitions for the selected key.  If the screen
  730.       will overflow a message is displayed and after hitting any key the routine
  731.       resumes with a  limited  area  for  showing function choices.  The minimum
  732.       area is one line.    The  arrow  keys  operate  a line at a time while the
  733.       next/prev screen keys move whatever  is  the  current  display depth.  The
  734.       function menu does not wrap-around but  will sound a beep if you try to go
  735.       above the top or past the bottom. 
  736.       
  737.  
  738.  
  739. 1.11.6 Connect Mode Interactive Help (continued).......
  740.  
  741.  
  742.                       Set Interactive Hot Key to an Ascii String
  743.                       ------------------------------------------
  744.  
  745.  
  746. 1. prompt....  Press the Key you want to Define
  747.  
  748.  
  749. 2. display...  Shift/Ctrl/Keypad PF3 or other description depending on
  750.  
  751.                                               which key is pressed
  752. 3. then display.....
  753.  
  754.  
  755. This Key Currently has No Definitions
  756.              or
  757. This Key Currently Defined as Follows:
  758.  
  759.      As a VT220 UDK key ---> [....................key...................
  760.     As a "Hot Keys" key ---> .................definitions...............
  761.   As a Set Key type key ---> ..................displayed................
  762.  As Kermit Function key ---> ....................here..................]
  763.  
  764.  
  765. 4. then allow string entry.........
  766.  
  767.  
  768.   Enter Key Definition ----> [........... enter definition.....................
  769.                              ..................................................
  770.                              ................................................]
  771.  
  772.  
  773.  
  774. -------------------------------------------------------------------------------
  775. Use: <X] to ERASE; Ctrl-alpha key for CTL-CHAR; <Exit> to END; <Cancel> to QUIT
  776. -------------------------------------------------------------------------------
  777.  
  778.  
  779. note- The display size is limited so a best effort attempt is made at displaying
  780.       the current definitions for the selected key.  If the screen will overflow
  781.       a message is displayed and after hitting  any key the routine resumes with
  782.       a limited area for a new definition.   If  you  exceed  the new definition
  783.       area the key strokes are still being recorded but  do  not  display.   the
  784.       maximium length of any single key definition is 255 characters.    If  you
  785.       exceed that, the routine beeps until you hit <exit>, <cancel> or <X].  Any
  786.       control characters entered will be high-lighted as a bright character.
  787.       
  788.  
  789.  
  790.                        Show Special Interactive Status
  791.                        -------------------------------
  792.  
  793. 1. sample display......
  794.  
  795. LEFT SIDE:
  796.  
  797.       Default Ascii Character set : US,UK or VT100
  798.          Current G0 Character set : US,UK or VT100
  799.          Current G1 Character set : US,UK or VT100
  800.         Shift In/Shift Out Status : SI or SO
  801.           Auto-repeat Keys Status : Off or On
  802.         Caps Lock Function Status : Caps or Shift
  803.                     New Line Mode : CR or CR/LF
  804.                    Auto-wrap Mode : Off or On
  805.            Print Termination Char : None or FF
  806.               Print Screen Extent : Scroll or Full
  807.         Save Screen (80/132) Mode : Off or On
  808.             Kermit Logging Status : Off or On
  809.             VT220 UDK Lock Status : Locked or Unlocked
  810.  
  811.  
  812.  
  813.  
  814. RIGHT SIDE:
  815.  
  816.       Terminal Type (responds as) : VT102-d,VT52-h,VT52,VT102,VT220,VT125,VT100
  817.           Firmware Emulation Mode : VT52 or Ansi
  818.                    Eight Bit Mode : Off or On
  819.           Auto-Xon (connect) Mode : Off or On
  820.                  Function Keys as : VT100+ or VT220
  821.          Kermit Special Functions : Enabled or Disabled
  822.        Line Monitor (Port B) Mode : Off or On
  823.           Media Copy (controller) : Off or On
  824.          Auto-print (line) Status : Off or On
  825.            Print Recvd Characters : Off or On
  826.       Monitor Mode (debug) Status : Off or On
  827.        Monitor Mode Display Style : Print or Video
  828.           Insert/Replacement Mode : Replace or Insert
  829.  
  830.  
  831.  
  832. -------------------------------------------------------------------------------
  833.                  --------- Hit Any Key to Exit ---------  
  834. -------------------------------------------------------------------------------
  835.  
  836. This display provides additional information about the current (dynamic)  status
  837. of the Rainbow emulator.  This data is found in  software  switches  within  the
  838. emulator  or in high memory (NVM and Video) which is accessed  by  the  built-in
  839. ROM firmware.
  840.  
  841.  
  842.  
  843.                     Show Kermit Diagnostics and Internals
  844.                     -------------------------------------
  845.  
  846. 1. sample display......
  847.  
  848. Scroll Buffers: Total Lines = 480 (20 Screens) Current: Top = 342  Bottom = 0
  849.  
  850. Key Buffers---: #Max #Now  Max Used Avail   Diagnostics:
  851.    VT220 Keys :   48    0 1024    0  1024     Wait for Transmitter (X32)... 148
  852.      Hot Keys :   50    0  512    0   512     Receive Timeout (.rtime)..... 0
  853.      Set Keys :  200    8  400   63   337     Sent Chars Buffered.......... 0
  854.                                               Receive Error (framing)...... 0
  855.      Com Line :  Sent  Rcvd  Typd  ChlB       Chan B (printer) receive..... 0
  856.          X-On :     6     2     0     0       Receive Buffer Over-flow..... 0
  857.         X-Off :     6     5     0     0       Receive Parity Error......... 0
  858.                                               Channel B Buffer Over-flow... 0
  859.  Scroll Region: 1;24 Origin Mode is Absolute 
  860.  
  861. -------------------------------------------------------------------------------
  862.     <Cancel> key to Reset the Diagnostics - Any other Key to Exit
  863. -------------------------------------------------------------------------------
  864.  
  865. The <Cancel> key will reset the Com Line  (xon/xoff  counts)  as well as all the
  866. diagnostic  variables.   Most  of  the  information  is  obvious;  however,  the
  867. diagnostics need some further explanation:
  868.  
  869. Line 1- Wait for Transmitter (X32)...
  870.         The count of the  number of retries required in the software controlling
  871.         the transmission of characters on  port A.  It is actually the number of
  872.         times the software looped (divided by  32)  waiting  for  the tranmitter
  873.         ready bit to come on.  A  high  number  indicates  that  the emulator is
  874.         spending time waiting to transmit.
  875. Line 2- Receive Timeout (.rtime).....
  876.         Can only happen during file tranfer, not in terminal mode.  It indicates
  877.         the  host  has  x-off'ed us and the kermit receive timeout interval  has
  878.         expired  without  being  x-on'ed  by  the  host.    In terminal mode the
  879.         software buffers  the  remaining  transmittable  characters in a special
  880.         circular output buffer.  (see next line)
  881. Line 3- Sent Chars Buffered..........
  882.         Count of the  total  number  of  characters  routed  through the special
  883.         output circular buffer.   Host  x-off  is  not  the only reason we route
  884.         through this buffer.  Special care is given not to over-run a host input
  885.         buffer and so if the receive buffer exceeds a certain threshold we route
  886.         through  the  circular  buffer.    In  addition    a   timing  delay  of
  887.         approximately  3  mili-seconds  is  introduced  between  characters when
  888.         transmitting either from the buffer or sending long strings.
  889. Line 4- Receive Error (framing)......
  890.         Indicates a framing or parity (hardware) error.  Usually caused by mis-
  891.         matched speeds between the Rainbow and Host.
  892. Line 5- Chan B (printer) receive.....
  893.         Indicates character traffic from printer port back to MS-DOS.
  894. Line 6- Receive Buffer Over-flow.....
  895.         Over-run of receive buffer caused by host not responding to X-off.
  896. Line 7- Receive Parity Error.........
  897.         A software parity  error  detected; most  likely  caused  by a mis-match
  898.         between Host and Kermit's parity settings.
  899. Line 8- Channel  B  Buffer  Over-flow...
  900.         Indicates a buffer over-flow in line-monitor mode.   Most  likely caused
  901.         by the device on the printer port (B) not responding  to X-off.
  902.  
  903.  
  904.  
  905.                               Set File Name for Raw Transmit
  906.                               ------------------------------       
  907.  
  908. 1. display.........
  909.  
  910.  
  911.           Current    |-------------------------------------------------------|
  912.          File Name:  | Kermit.xmt                                            |
  913.                      |-------------------------------------------------------|
  914.  
  915.  
  916.  
  917.  
  918.                      |-------------------------------------------------------|
  919.  Enter File Name --> |                                                       |
  920.                      |-------------------------------------------------------|
  921.  
  922.              Note: Enter Drive and/or Full Path Name to specify a file not in
  923.                    the Current Path (default or set by "CWD").
  924.  
  925.  
  926.  
  927.  
  928. ------------------------------------------------------------------------------
  929.            Use:  <X] to Erase;   <Exit> to End;    <Cancel> to Quit
  930. ------------------------------------------------------------------------------
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937. 2. Instructions:
  938.                  Type in a new file name. Do not end with a <CR>, instead use
  939.                  the <Exit> key. If the file can be located by DOS the following
  940.                  message is shown and the current name is updated.
  941.                  
  942.                          *** A New Current File Name has been Selected ***
  943.                  
  944.                  If the file is invalid the following message is shown and the
  945.                  old name remains unchanged.
  946.                  
  947.                         Can Not Find File using the Current Path 
  948.  
  949.  
  950. 1.11.7 Improvements and Bug Fixes
  951.  
  952.    THE FOLLOWING IS A SUMMARY OF CHANGES MADE TO V2.29 of Kermit-MS
  953.  
  954. Interrupt Service Routines
  955.         The interrupt service routine have been completly re-written and tested.
  956.         Several  problems  with flow-control (xon/xoff) have been corrected.  If
  957.         the transmitter  is  being held (host sent x-off) it is correct protocol
  958.         to still send  x-off  to  the  host  if the transmitter's receive buffer
  959.         fills or if the  user  types  a  x-off.    Another  problem was that the
  960.         receive buffer hi-water mark is  detected  within  the interrupt service
  961.         routine and it is not appropiate  for the ISS to use an external routine
  962.         to send a x-off (OUTCHR).    This  version sends the x-off directly from
  963.         within the interrupt service routine.   In addition to a hi-water point,
  964.         this version implements a lo-water mark too.  This prevents the receiver
  965.         from x-on'ing the host too soon and improves  throughput.    Support was
  966.         added so that Kermit can optionally control the printer  port interrupts
  967.         (see Line-monitor mode).  A transmit circular buffer was added  so  that
  968.         the routine does not hang on transmission of long character strings.   A
  969.         problem  was  caused  by  the  host x-off'ing before the string had been
  970.         completly sent.  Transmission  of  buffered  characters  was also slowed
  971.         down (terminal mode only) so as not to over-run a host's buffer control.
  972.         
  973. Monitor Mode
  974.         Monitor mode uses video attributes to distinguish  between various modes
  975.         of operation.  In general the following apply:
  976.  
  977.          NORMAL   - Received Characters                      
  978.          BRITE    - Parsed escape and control sequences    
  979.         
  980.          REVERSE  - Transmitted Characters 
  981.          BRITE    - Control Characters (Ascii col 0,1,8 and 9)
  982.          UNDERLINE- Buffered in circular transmit buffer
  983.          BLINKING - Trapped in Level 2 firmware buffer (response to report
  984.                                                         cursor position) 
  985.        
  986.         In addition to characters received/transmitted, monitor mode also  shows
  987.         X-on's and X-off's received or transmitted.  Monitor mode  causes only a
  988.         slight  decrease in throughput as measured by the number of  x-on's  and
  989.         x-off's  received and sent.  This is due to direct manipulation  of  the
  990.         video  attribute  byte in the firmware rather than using Ansi sequences.
  991.         Most escape and control sequences are not actually done in monitor mode;
  992.         however, as a convience some are (eg.  UDK download). 
  993.         
  994. Escape and Control Sequences
  995.         The emulator now  has  a  complete  Ansi escape/control parser which has
  996.         been modeled after the Rainbow's own terminal emulation.  The DEC manual
  997.         "Rainbow 100+/100B Terminal Emulation Manual  QV069-GZ"  was the primary
  998.         source for most of the design.    Although  all escape,control sequences
  999.         and device control sequences are parsed, most  are  simply passed to the
  1000.         system firmware for actual exectuion.  If monitor mode has been invoked,
  1001.         this  process  is  different.    In that case most  sequences  are  just
  1002.         displayed and not sent to the firmware.  There are  some  exceptions  to
  1003.         this  rule,  especially  those sequences handled by the emulator itself.
  1004.         An example  is  the VT220 UDK device control string which is handled the
  1005.         same in monitor  mode  as  in regular terminal mode.  Another example is
  1006.         the  emulator's handling of  the  "Device  Attributes  (what  are  you)"
  1007.         request.  In addition, those  sequences  which  set internal translation
  1008.         flags such as "set keypad to application mode" work in monitor mode.  In
  1009.         general, functions which effect the key translation modes execute, while
  1010.         those  that  effect  the  screen  display  (cursor  position,    graphic
  1011.         rendition, etc) do not execute in monitor mode.
  1012.  
  1013. Video Attributes
  1014.         In order to  improve  VT220  compatibility,  the  video  attributes  are
  1015.         handled by  the  emulator directly.  This has allowed the support of the
  1016.         following additions to  the  "select graphic rendition" sequences:
  1017.  
  1018.     (SGR) <ESC>[Ps;Ps....m       
  1019.     
  1020.                 Ps = 22 Display normal intensity (bold off)
  1021.                    = 24 Display not underline (underline off)
  1022.                    = 25 Display not blinking (blinking off)
  1023.                    = 27 Display positive image (reverse off)
  1024.  
  1025. Emulation of VT2xx specific sequences
  1026.         The Rainbow uses firmware to support a "VT100 console" and so extensions
  1027.         to the sequences recognized by  the  emulator  must  be  implemented  in
  1028.         software.  The following VT2xx sequences have been implemented:
  1029.         
  1030.    (ICH) Insert Characters - <CSI> Pn @ 
  1031.          Insert Pn blank characters at the cursor position, with  the  character
  1032.          attributes set to normal.  The cursor does not move  and remains at the
  1033.          beginning  of  the  inserted blank characters.  A parameter of 0  or  1
  1034.          causes one blank character to be inserted.  Data on the line is shifted
  1035.          forward as in character insertion.
  1036.  
  1037.    (ECH) Erase Character - <CSI> Pn X
  1038.          Erases characters at the cursor position  and  the next n-1 characters.
  1039.          A  parameter  of  0  or 1 causes  a  single  character  to  be  erased.
  1040.          Character attributes are set to normal.  No reformatting of data on the
  1041.          line occurs.  The cursor remains in the same position.
  1042.         
  1043. (DECSCA) Select Character Attributes - <CSI> Ps " q
  1044.          Select  all  subsequent  characters to be "selective erasable" or  "not
  1045.          selective erasable".
  1046.             Ps = 0 All attributes off (does not apply to SGR)
  1047.                = 1 Designate character as "non-erasable" by DECSEL/DECSED
  1048.                    (attribute on)
  1049.                = 2 Designate character "erasable" by DECSEL/DECSED
  1050.                    (attribute off)
  1051.                    
  1052. (DECSEL) Selective Erase in Line - <CSI> ? Ps K
  1053.          Similar  to  "Erase  in  line  (EL)" except "erasable" characters only.
  1054.          Does not effect video line attributes or video character attributes.
  1055.  
  1056.             Ps = 0 or null Erases all "erasable" characters (DECSCA) from cursor
  1057.                    to the end of line.  
  1058.                = 1 Erases all "erasables" from beginning of line up to and 
  1059.                    including the current cursor position.
  1060.                = 2 Erases all "erasables" on the current line.
  1061.  
  1062. (DECSED) Selective Erase in Display - <CSI> ? Ps J
  1063.          Similar  to  "Erase in display (ED)" except "erasable" characters only.
  1064.          Does not effect video line attributes or video character attributes.
  1065.  
  1066.             Ps = 0 or null Erases all "erasable" characters (DECSCA) from cursor
  1067.                    to the end of display.  
  1068.                = 1 Erases all "erasables" from beginning of display up to and 
  1069.                    including the current cursor position.
  1070.                = 2 Erases all "erasables" on the current display.
  1071.             
  1072. (DECTCEM) Text Cursor Enable Mode - <CSI>?25h (Set) -or- <CSI>?25l (Reset)   
  1073.           Set   ( <CSI>?25h ) causes the cursor to be visible. 
  1074.           Reset ( <CSI>?25l ) causes the cursor to not be visible. 
  1075.  
  1076.  
  1077. 1.11.8 Cautions and Future Enhancements
  1078.  
  1079. Rainbow and the VAX
  1080.         This version  has  been  tested  and  run under VAX/VMS V4.4 and several
  1081.         problems are known.    In particular, using a port connected via a DMF32
  1082.         adapter using the SYSGEN  defaults  causes  strange  side  effects  when
  1083.         transmitting long character strings.   The DMF32 has a silo for received
  1084.         characters and a time-out parameter which  is  intended  to minimize CPU
  1085.         interrupts.  The time-out allows a minimum time to elapse before posting
  1086.         an interrupt and if transmitting at a fast  rate (eg.  9600 baud) from a
  1087.         program such as Kermit, several characters accumulate in the silo before
  1088.         the CPU is notified.  The standard type-ahead buffer in  VMS  is  set to
  1089.         send  x-off  when  less  than  8 bytes remain in the type-ahead  buffer;
  1090.         unfortunately  the DMF32 silo can have more than enough to cause a  data
  1091.         over-run.    Another problem is that the DMF32 has a speed error of  +5%
  1092.         when  set  to  19,200 baud.  The Rainbow on the other hand uses a  Intel
  1093.         8274 multi-protocol serial controller  with  an  error  rate  of  -3% at
  1094.         19,200 baud.  The combined  effect  of these speed differences makes VAX
  1095.         to Rainbow communications at 19,200 baud  impossible.  This emulator was
  1096.         tested at 19,200 baud with VMS by telling the terminal  driver in VMS to
  1097.         send  two  stop bits instead of one.  As of now,  there  is  no  way  of
  1098.         "locking"  this into the driver and any VMS request (even SHOW TERMINAL)
  1099.         to the driver resets the stop bits to "normal". 
  1100.  
  1101. Additional Special Functions
  1102.         The process of adding additional special functions  to  the  emulator is
  1103.         relatively easy.  Addition of a routine to  "raw  transmit"  a  file  is
  1104.         already underway.  Most of the features required for such a function are
  1105.         already  in this emulator (ie.  circular transmit buffer).   It  may  be
  1106.         useful to have a function to reset the terminal to some sort of standard
  1107.         conditions (as in VT220 reset function).
  1108.  
  1109. VT52 mode
  1110.         No  attempt  has  been made to operate the emulator in "true" VT52 mode.
  1111.         This means that the emulator acts like a VT1xx/VT2xx emulator regardless
  1112.         of the current firmware  emulation  mode  (VT52/ANSI).   If however, the
  1113.         firmware mode is set to  VT52,  then some VT1xx/VT2xx sequences won't be
  1114.         recognized by the firmware.  Best  advice  is to run as a VT1xx/VT2xx if
  1115.         at all possible.
  1116.  
  1117. Appendix A - VAX Basic example program to load and lock the VT220 UDK's   pg A-1
  1118.  
  1119.  
  1120. 10      !
  1121.         external string function asc.hex
  1122.  
  1123.         declare word j
  1124.  
  1125.         declare string constant dcs      = esc + "P" 
  1126.         declare string constant st       = esc + "\"
  1127.         declare string constant start_it = dcs + "1,1|"
  1128.         declare string constant clear_it = dcs + "0;1|" + st
  1129.  
  1130.         declare word constant max_keys = 48
  1131.         
  1132.         dim Keys$(max_keys), Udef$(max_keys)
  1133.  
  1134.         !
  1135.         ! shift/key F6 - Interrupt
  1136.         !
  1137.         keys$(1)="17"\udef$(1)=""
  1138.  
  1139.         !
  1140.         ! shift/key F7 - Resume
  1141.         !
  1142.         keys$(2)="18"\udef$(2)=""
  1143.  
  1144.         !
  1145.         ! shift/key F8 - Cancel
  1146.         !
  1147.         keys$(3)="19"\udef$(3)=""
  1148.  
  1149.         !
  1150.         ! shift/key F9 - Main Screen
  1151.         !
  1152.         keys$(4)="20"\udef$(4)=""
  1153.  
  1154.         !
  1155.         ! shift/key F10 - Exit
  1156.         !
  1157.         keys$(5)="21"\udef$(5)=""
  1158.  
  1159.         !
  1160.         ! shift/key F11 - (ESC) VT220 function keys only
  1161.         !
  1162.         keys$(6)="23"\udef$(6)=""
  1163.  
  1164.         !
  1165.         ! shift/key F12 - (BS) VT220 function keys only
  1166.         !
  1167.         keys$(7)="24"\udef$(7)=""
  1168.  
  1169.         !
  1170.         ! shift/key F13 - (LF) VT220 function keys only
  1171.         !
  1172.         keys$(8)="25"\udef$(8)=""
  1173.  
  1174.         !
  1175.         ! shift/key F14 - Addtnl Options
  1176.         !
  1177.         keys$(9)="26"\udef$(9)=""
  1178.  
  1179.         !
  1180.         ! shift/key F15 - Help
  1181.         !
  1182.         keys$(10)="28"\udef$(10)=""
  1183.  
  1184.         !
  1185.         ! shift/key F16 - Do
  1186.         !
  1187.         keys$(11)="29"\udef$(11)=""
  1188.  
  1189.         !
  1190.         ! shift/key F17 -
  1191.         !
  1192.         keys$(12)="31"\udef$(12)=""
  1193.  
  1194.         !
  1195.         ! shift/key F18 -
  1196.         !
  1197.         keys$(13)="32"\udef$(13)=""
  1198.  
  1199.         !
  1200.         ! shift/key F19 -
  1201.         !
  1202.         keys$(14)="33"\udef$(14)=""
  1203.  
  1204.         !
  1205.         ! shift/key F20 -
  1206.         !
  1207.         keys$(15)="34"\udef$(15)=""
  1208.  
  1209.         !
  1210.         ! shift/key Find
  1211.         !
  1212.         keys$(16)="01"\udef$(16)=""
  1213.  
  1214.         !
  1215.         ! shift/key Insert Here
  1216.         !
  1217.         keys$(17)="02"\udef$(17)=""
  1218.  
  1219.         !
  1220.         ! shift/key Remove
  1221.         !
  1222.         keys$(18)="03"\udef$(18)=""
  1223.  
  1224.         !
  1225.         ! shift/key Select
  1226.         !
  1227.         keys$(19)="04"\udef$(19)=""
  1228.  
  1229.         !
  1230.         ! shift/key Prev Screen
  1231.         !
  1232.         keys$(20)="05"\udef$(20)=""
  1233.  
  1234.         !
  1235.         ! shift/key Next Screen
  1236.         !
  1237.         keys$(21)="06"\udef$(21)=""
  1238.  
  1239.         !
  1240.         ! shift/key F11 - (ESC) VT100 function keys only
  1241.         !
  1242.         keys$(22)="07"\udef$(22)=""
  1243.  
  1244.         !
  1245.         ! shift/key F12 - (BS) VT100 function keys only
  1246.         !
  1247.         keys$(23)="08"\udef$(23)=""
  1248.  
  1249.         !
  1250.         ! shift/key F13 - (LF) VT100 function keys only
  1251.         !
  1252.         keys$(24)="09"\udef$(24)=""
  1253.  
  1254.         !
  1255.         ! key F6 - Interrupt
  1256.         !
  1257.         keys$(25)="57"\udef$(25)=""
  1258.  
  1259.         !
  1260.         ! key F7 - Resume
  1261.         !
  1262.         keys$(26)="58"\udef$(26)=""
  1263.  
  1264.         !
  1265.         ! key F8 - Cancel
  1266.         !
  1267.         keys$(27)="59"\udef$(27)=""
  1268.  
  1269.         !
  1270.         ! key F9 - Main Screen
  1271.         !
  1272.         keys$(28)="60"\udef$(28)=""
  1273.  
  1274.         !
  1275.         ! key F10 - Exit
  1276.         !
  1277.         keys$(29)="61"\udef$(29)=""
  1278.  
  1279.         !
  1280.         ! key F11 - (ESC) VT220 function keys only
  1281.         !
  1282.         keys$(30)="63"\udef$(30)=""
  1283.  
  1284.         !
  1285.         ! key F12 - (BS) VT220 function keys only
  1286.         !
  1287.         keys$(31)="64"\udef$(31)=""
  1288.  
  1289.         !
  1290.         ! key F13 - (LF) VT220 function keys only
  1291.         !
  1292.         keys$(32)="65"\udef$(32)=""
  1293.  
  1294.         !
  1295.         ! key F14 - Addtnl Options
  1296.         !
  1297.         keys$(33)="66"\udef$(33)=""
  1298.  
  1299.         !
  1300.         ! key F15 - Help
  1301.         !
  1302.         keys$(34)="68"\udef$(34)=""
  1303.  
  1304.         !
  1305.         ! key F16 - Do
  1306.         !
  1307.         keys$(35)="69"\udef$(35)=""
  1308.  
  1309.         !
  1310.         ! key F17 -
  1311.         !
  1312.         keys$(36)="71"\udef$(36)=""
  1313.  
  1314.         !
  1315.         ! key F18 -
  1316.         !
  1317.         keys$(37)="72"\udef$(37)=""
  1318.  
  1319.         !
  1320.         ! key F19 -
  1321.         !
  1322.         keys$(38)="73"\udef$(38)=""
  1323.  
  1324.         !
  1325.         ! key F20 -
  1326.         !
  1327.         keys$(39)="74"\udef$(39)=""
  1328.  
  1329.         !
  1330.         ! key Find
  1331.         !
  1332.         keys$(40)="41"\udef$(40)=""
  1333.  
  1334.         !
  1335.         ! key Inser Here
  1336.         !
  1337.         keys$(41)="42"\udef$(41)=""
  1338.  
  1339.         !
  1340.         ! key Remove
  1341.         !
  1342.         keys$(42)="43"\udef$(42)=""
  1343.  
  1344.         !
  1345.         ! key Select
  1346.         !
  1347.         keys$(43)="44"\udef$(43)=""
  1348.  
  1349.         !
  1350.         ! key Prev Screen
  1351.         !
  1352.         keys$(44)="45"\udef$(44)=""
  1353.  
  1354.         !
  1355.         ! key Next Screen
  1356.         !
  1357.         keys$(45)="46"\udef$(45)=""
  1358.  
  1359.         !
  1360.         ! key F11 - (ESC) VT100 function keys only
  1361.         !
  1362.         keys$(46)="47"\udef$(46)=""
  1363.  
  1364.         !
  1365.         ! key F12 - (BS) VT100 function keys only
  1366.         !
  1367.         keys$(47)="48"\udef$(47)=""
  1368.  
  1369.         !
  1370.         ! key F13 - (LF) VT100 function keys only
  1371.         !
  1372.         keys$(48)="49"\udef$(48)=""
  1373.  
  1374.         !
  1375.         ! Clear and unlock the UDK's "<ESC>P1;1|<ESC>\"
  1376.         !
  1377.         print clear_it;
  1378.  
  1379.  
  1380.         !
  1381.         ! Set any key which has data in the udef$ string associated with it.
  1382.         !
  1383.         for j = 1 to 48
  1384.           print start_it;keys$(j);"/";asc.hex(udef$(j));st; unless udef$(j)==""
  1385.         next j
  1386.  
  1387.         !
  1388.         ! Lock the keys against further re-definition and give sign-off
  1389.         !
  1390.         print dcs+"1|"+st;
  1391.         print "VT220 user defined keys have been reset and locked"
  1392.  
  1393.   end
  1394. 20      !
  1395.    Function String Asc.hex (string a)
  1396.    Declare String ax,cx
  1397.    Declare Long sys_status,c,j,ml
  1398.    Declare Long Constant wid=2
  1399.    External Long Function Ots$cvt_l_tz (long,string,long by value,long by value)
  1400.         asc.hex=""
  1401.         ml=len(a)
  1402.           Functionexit if ml <= 0
  1403.         ax=""
  1404.          For j = 1 to ml
  1405.           cx="  "
  1406.           c=Ascii(seg$(a,j,j))
  1407.           sys_status=Ots$cvt_l_tz(c,cx,wid,wid)
  1408.           ax = ax+cx
  1409.          Next j
  1410.         asc.hex = ax
  1411.         Functionend
  1412.  
  1413.  
  1414. Appendix B -      Kermit Scan Codes for the DEC Rainbow                  pg B-1
  1415.  
  1416.                    .... Normal Scan codes ....   ... Special Scan codes ...
  1417.                     Key-                Shift     Key-                Shift
  1418.     Keyboard Key    code  Shift   Ctrl  +Ctrl     code  Shift   Ctrl  +Ctrl
  1419.     ------------    ----  -----   ----  -----     ----  -----   ----  -----
  1420.           Return      13    525   1037   1549     4109   4621   5133   5645
  1421.              Tab       9    521   1033   1545     4105   4617   5129   5641
  1422.            Space      32    544   1024   1536     4128   4640   5120   5632
  1423.       Delete <X]     127    639   1151   1663     4223   4735   5247   5759
  1424.                A      97    577   1025   1537     4193   4673   5121   5633
  1425.                B      98    578   1026   1538     4194   4674   5122   5634
  1426.                C      99    579   1027   1539     4195   4675   5123   5635
  1427.                D     100    580   1028   1540     4196   4676   5124   5636
  1428.                E     101    581   1029   1541     4197   4677   5125   5637
  1429.                F     102    582   1030   1542     4198   4678   5126   5638
  1430.                G     103    583   1031   1543     4199   4679   5127   5639
  1431.                H     104    584   1032   1544     4200   4680   5128   5640
  1432.                I     105    585   1033   1545     4201   4681   5129   5641
  1433.                J     106    586   1034   1546     4202   4682   5130   5642
  1434.                K     107    587   1035   1547     4203   4683   5131   5643
  1435.                L     108    588   1036   1548     4204   4684   5132   5644
  1436.                M     109    589   1037   1549     4205   4685   5133   5645
  1437.                N     110    590   1038   1550     4206   4686   5134   5646
  1438.                O     111    591   1039   1551     4207   4687   5135   5647
  1439.                P     112    592   1040   1552     4208   4688   5136   5648
  1440.                Q     113    593   1041   1553     4209   4689   5137   5649
  1441.                R     114    594   1042   1554     4210   4690   5138   5650
  1442.                S     115    595   1043   1555     4211   4691   5139   5651
  1443.                T     116    596   1044   1556     4212   4692   5140   5652
  1444.                U     117    597   1045   1557     4213   4693   5141   5653
  1445.                V     118    598   1046   1558     4214   4694   5142   5654
  1446.                W     119    599   1047   1559     4215   4695   5143   5655
  1447.                X     120    600   1048   1560     4216   4696   5144   5656
  1448.                Y     121    601   1049   1561     4217   4697   5145   5657
  1449.                Z     122    602   1050   1562     4218   4698   5146   5658
  1450.           ~ or `      96    638   1054   1566     4192   4734   5150   5662
  1451.           ! or 1      49    545                   4145   4641
  1452.           @ or 2      50    576   1024   1536     4146   4672   5120   5632
  1453.           # or 3      51    547   1051   1563     4147   4643   5147   5659
  1454.           $ or 4      52    548   1052   1564     4148   4644   5148   5660
  1455.           % or 5      53    549   1053   1565     4149   4645   5149   5661
  1456.           ^ or 6      54    606   1054   1566     4150   4702   5150   5662
  1457.           & or 7      55    550   1055   1567     4151   4646   5151   5663
  1458.           * or 8      56    554   1151   1663     4152   4650   5247   5759
  1459.           ( or 9      57    552                   4153   4648
  1460.           ) or 0      58    553                   4154   4649
  1461.           _ or -      45    607                   4141   4703
  1462.           + or =      61    555                   4157   4651
  1463.           { or [      91    635   1051   1563     4187   4731   5147   5659
  1464.           } or ]      93    637   1053   1565     4189   4733   5149   5661
  1465.           : or ;      59    570                   4155   4666
  1466.           " or '      39    546                   4135   4642
  1467.           | or \      92    636   1052   1564     4188   4732   5148   5660
  1468.           > or <      60    574                   4156   4670
  1469.           , or ,      44    556                   4140   4652
  1470.           . or .      46    558                   4142   4654
  1471.           ? or /      47    575   1055   1567     4143   4671   5151   5663
  1472.  
  1473. Appendix B -      Kermit Scan Codes for the DEC Rainbow                  pg B-2
  1474.  
  1475.                               ..Normal Scan codes..     ..Special Scan codes..
  1476.                               Key-             Shift    Key-             Shift
  1477.         Keyboard Key  Base    code Shift  Ctrl +Ctrl    code Shift  Ctrl +Ctrl
  1478.       --------------  ----    ---- -----  ---- -----    ---- -----  ---- -----
  1479.         Print Screen     3     259   771  1283  1795    4355  4867  5379  5891
  1480.                   F4     5     261   773  1285  1797    4357  4869  5381  5893
  1481.           F5 (Break)   101     357   869  1381  1893    4453  4965  5477  5989
  1482.       F6 (Interrupt)     7     263   775  1287  1799    4359  4871  5383  5895
  1483.          F7 (Resume)     9     265   777  1289  1801    4361  4873  5385  5897
  1484.          F8 (Cancel)    11     267   779  1291  1803    4363  4875  5387  5899
  1485.     F9 (Main Screen)    13     269   781  1293  1805    4365  4877  5389  5901
  1486.           F10 (Exit)    15     271   783  1295  1807    4367  4879  5391  5903
  1487.      F11 (ESC) VT100    27      27   539  1051  1563    4123  4635  5147  5659
  1488.       F12 (BS) VT100     8       8   520  1032  1544    4104  4616  5128  5640
  1489.       F13 (LF) VT100    10      10   522  1034  1546    4106  4618  5130  5642
  1490. F14 (Addtnl Options)    17     273   785  1297  1809    4369  4881  5393  5905
  1491.           F15 (Help)     0     256   768  1280  1792    4352  4864  5376  5888
  1492.             F16 (Do)     1     257   769  1281  1793    4353  4865  5377  5889
  1493.                  F17    19     275   787  1299  1811    4371  4883  5395  5907
  1494.                  F18    21     277   789  1301  1813    4373  4885  5397  5909
  1495.                  F19    23     279   791  1303  1815    4375  4887  5399  5911
  1496.                  F20    25     281   793  1305  1817    4377  4889  5401  5913
  1497.                 Find    27     283   795  1307  1819    4379  4891  5403  5915
  1498.          Insert Here    29     285   797  1309  1821    4381  4893  5405  5917
  1499.               Remove    31     287   799  1311  1823    4383  4895  5407  5919
  1500.               Select    33     289   801  1313  1825    4385  4897  5409  5921
  1501.          Prev Screen    35     291   803  1315  1827    4387  4899  5411  5923
  1502.          Next Screen    37     293   805  1317  1829    4389  4901  5413  5925
  1503.             Up-Arrow    39     295   807  1319  1831    4391  4903  5415  5927
  1504.           Down-Arrow    41     297   809  1321  1833    4393  4905  5417  5929
  1505.          Right-Arrow    43     299   811  1323  1835    4395  4907  5419  5931
  1506.           Left-Arrow    45     301   813  1325  1837    4397  4909  5421  5933
  1507.             Keypad 0    47     303   815  1327  1839    4399  4911  5423  5935
  1508.             Keypad 1    50     306   818  1330  1842    4402  4914  5426  5938
  1509.             Keypad 2    53     309   821  1333  1845    4405  4917  5429  5941
  1510.             Keypad 3    56     312   824  1336  1848    4408  4920  5432  5944
  1511.             Keypad 4    59     315   827  1339  1851    4411  4923  5435  5947
  1512.             Keypad 5    62     318   830  1342  1854    4414  4926  5438  5950
  1513.             Keypad 6    65     321   833  1345  1857    4417  4929  5441  5953
  1514.             Keypad 7    68     324   836  1348  1860    4420  4932  5444  5956
  1515.             Keypad 8    71     327   839  1351  1863    4423  4935  5447  5959
  1516.             Keypad 9    74     330   842  1354  1866    4426  4938  5450  5962
  1517.          Keypad Dash    77     333   845  1357  1869    4429  4941  5453  5965
  1518.         Keypad Comma    80     336   848  1360  1872    4432  4944  5456  5968
  1519.        Keypad Period    83     339   851  1363  1875    4435  4947  5459  5971
  1520.         Keypad Enter    86     342   854  1366  1878    4438  4950  5462  5974
  1521.           Keypad PF1    89     345   857  1369  1881    4441  4953  5465  5977
  1522.           Keypad PF2    92     348   860  1372  1884    4444  4956  5468  5980
  1523.           Keypad PF3    95     351   863  1375  1887    4447  4959  5471  5983
  1524.           Keypad PF4    98     354   866  1378  1890    4450  4962  5474  5986
  1525.  
  1526.      F11 (ESC) VT200   104     360   872  1384  1896    4456  4968  5480  5992
  1527.       F12 (BS) VT200   107     363   875  1387  1899    4459  4971  5483  5995
  1528.       F13 (LF) VT200   110     366   878  1390  1902    4462  4974  5486  5998
  1529.  
  1530.  
  1531. Appendix C - Numerical list of Kermit Special Function Codes          Page C-1
  1532.  
  1533.             Octal                                                      
  1534.              Code   Special Function Routine Description            
  1535.             -----   ------------------------------------             
  1536.           
  1537.              \000   Print Screen                        
  1538.              \001   Dump Screen to Disk             
  1539.              \002   View Prev Screen (Scroll)       
  1540.              \003   View Next Screen (Scroll)       
  1541.              \004   View Prev Line (Scroll)         
  1542.              \005   View Next Line (Scroll)         
  1543.              \006   View Screen Bottom              
  1544.              \007   Send Break                      
  1545.              \010   Send Break (long)               
  1546.              \011   Print Current Line              
  1547.              \012   Toggle Print Recv Char          
  1548.              \013   Turn on Print Recv Char         
  1549.              \014   Turn off Print Recv Char        
  1550.              \015   Toggle Media Copy               
  1551.              \016   Turn on Media Copy              
  1552.              \017   Turn off Media Copy             
  1553.              \020   Toggle Eight-bit Mode           
  1554.              \021   Turn on Eight-bit Mode          
  1555.              \022   Turn off Eight-bit Mode         
  1556.              \023   Toggle Auto-print               
  1557.              \024   Turn on Auto-print              
  1558.              \025   Turn off Auto-print             
  1559.              \026   Toggle Save Screen (80/132)     
  1560.              \027   Turn on Save Screen (80/132)    
  1561.              \030   Turn off Save Screen (80/132)   
  1562.              \031   Toggle Monitor Mode (debug)     
  1563.              \032   Turn on Monitor Mode (debug)    
  1564.              \033   Turn off Monitor Mode (debug)   
  1565.              \034   Toggle Screen Size (80/132)     
  1566.              \035   Set Screen to 80 cols           
  1567.              \036   Set Screen to 132 cols          
  1568.              \037   Toggle Smooth Scroll            
  1569.              \040   Turn on Smooth Scroll           
  1570.              \041   Turn off Smooth Scroll          
  1571.              \042   Toggle Screen Background        
  1572.              \043   Screen Background Light         
  1573.              \044   Screen Background Dark          
  1574.              \045   Toggle Auto-repeat keys         
  1575.              \046   Turn on Auto-repeat keys        
  1576.              \047   Turn off Auto-repeat keys       
  1577.              \050   Toggle US/UK Char Set           
  1578.              \051   Set US as Char Set              
  1579.              \052   Set UK as Char Set              
  1580.              \053   Toggle Auto-wrap                
  1581.              \054   Turn on Auto-wrap               
  1582.              \055   Turn off Auto-wrap              
  1583.              \056   Toggle New-line Mode            
  1584.              \057   Turn on New-line Mode           
  1585.              \060   Turn off New-line Mode                        
  1586.              \061   Connect mode Help (menu)        
  1587.              \062   Kermit Close (Prompt)           
  1588.              \063   Kermit Command Menu             
  1589.              \064   Kermit Push to DOS              
  1590.              \065   Kermit Quit Logging             
  1591.              \066   Kermit Resume Logging           
  1592.              \067   Kermit Exit to MS-DOS           
  1593.              \070   Define Hot Key - Spl Function   
  1594.              \071   Define Hot Key - Ascii String   
  1595.              \072   Show all Key Definitions        
  1596.              \073   Show Special Status             
  1597.              \074   Kermit Status                   
  1598.              \075   Hold-Screen (soft) Xon/Xoff     
  1599.              \076   Toggle the UDK Lock             
  1600.              \077   Turn on (Lock) the UDK's        
  1601.              \100   Turn off (Unlock) the UDK's     
  1602.              \101   Toggle Line Monitor Mode        
  1603.              \102   Turn on Line Monitor Mode       
  1604.              \103   Turn off Line Monitor Mode      
  1605.              \104   Show Diagnostics & Internals    
  1606.              \105   Toggle Special Functions        
  1607.              \106   Special Functions Disabled      
  1608.              \107   Special Functions Enabled       
  1609.              \110   Toggle Function Key Mode        
  1610.              \111   Set Function Keys to VT220      
  1611.              \112   Set Function Keys to VT100      
  1612.              \113   Dump Screen + Memory to Disk    
  1613.              \114   Print Screen + Memory           
  1614.              \115   Toggle Loop-Back Mode           
  1615.              \116   Turn on Loop-Back Mode          
  1616.              \117   Turn off Loop-Back Mode         
  1617.              \120   Transmit File (Kermit.xmt)
  1618.              \121   Set File Name for Raw Transmit
  1619.              \122   Toggle Cursor Style (Und/Blk)
  1620.              \123   Set Cursor Style to Block
  1621.              \124   Set Cursor Style to Underline
  1622.  
  1623. Appendix D -      Kermit Pre-assigned (Hard-coded) Functions          Page D-1
  1624.  
  1625.  
  1626.                              BY KEY:
  1627.  
  1628.                               Octal
  1629.                 Key Name      Code   Special Function Description
  1630.                ----------     ----   ----------------------------
  1631.   
  1632.                Print Screen   \000   Print Screen                      
  1633.         Ctrl / Print Screen   \012   Toggle Print Recv Char           
  1634.  
  1635.        Shift / F4             \064   Kermit Push to DOS               
  1636.         Ctrl / F4             \062   Kermit Close (Prompt)            
  1637. Shift / Ctrl / F4             \067   Kermit Exit to MS-DOS            
  1638.  
  1639.                F5-Break       \007   Send Break                        
  1640.         Ctrl / F5-Break       \010   Send Break (long)                
  1641.  
  1642.        Shift / F15-Help       \061   Connect mode Help (menu)         
  1643.         Ctrl / F15-Help       \063   Kermit Command Menu              
  1644. Shift / Ctrl / F15-Help       \031   Toggle Monitor Mode (debug)      
  1645.  
  1646.        Shift / F16-Do         \001   Dump Screen to Disk                
  1647.         Ctrl / F16-Do         \001   Dump Screen to Disk               
  1648.  
  1649.                Prev Screen    \002   View Prev Screen (Scroll)         
  1650.         Ctrl / Prev Screen    \004   View Prev Line (Scroll)            
  1651.  
  1652.                Next Screen    \003   View Next Screen (Scroll)         
  1653.        Shift / Next Screen    \006   View Screen Bottom                
  1654.         Ctrl / Next Screen    \005   View Next Line (Scroll)            
  1655.  
  1656.        Shift / Up-Arrow       \004   View Prev Line (Scroll)           
  1657.         Ctrl / Up-Arrow       \002   View Prev Screen (Scroll)          
  1658.  
  1659.        Shift / Down-Arrow     \005   View Next Line (Scroll)           
  1660.         Ctrl / Down-Arrow     \003   View Next Screen (Scroll)          
  1661.  
  1662.        Shift / Right-Arrow    \006   View Screen Bottom                 
  1663.  
  1664.        Shift / Keypad Enter   \000   Print Screen                      
  1665.         Ctrl / Keypad Enter   \012   Toggle Print Recv Char            
  1666.  
  1667. Appendix D -      Kermit Pre-assigned (Hard-coded) Functions          Page D-2
  1668.  
  1669.  
  1670.                            BY FUNCTION:
  1671.  
  1672.                              Octal
  1673.                 Key Name      Code   Special Function Description
  1674.                ----------     ----   ----------------------------
  1675.   
  1676.                Prev Screen    \002   View Prev Screen (Scroll)         
  1677.         Ctrl / Up-Arrow       \002   View Prev Screen (Scroll)          
  1678.  
  1679.                Next Screen    \003   View Next Screen (Scroll)         
  1680.         Ctrl / Down-Arrow     \003   View Next Screen (Scroll)          
  1681.  
  1682.         Ctrl / Prev Screen    \004   View Prev Line (Scroll)            
  1683.        Shift / Up-Arrow       \004   View Prev Line (Scroll)           
  1684.  
  1685.         Ctrl / Next Screen    \005   View Next Line (Scroll)            
  1686.        Shift / Down-Arrow     \005   View Next Line (Scroll)           
  1687.  
  1688.        Shift / Next Screen    \006   View Screen Bottom                
  1689.        Shift / Right-Arrow    \006   View Screen Bottom                 
  1690.  
  1691.                Print Screen   \000   Print Screen                      
  1692.        Shift / Keypad Enter   \000   Print Screen                      
  1693.  
  1694.         Ctrl / Print Screen   \012   Toggle Print Recv Char           
  1695.         Ctrl / Keypad Enter   \012   Toggle Print Recv Char            
  1696.  
  1697.        Shift / F16-Do         \001   Dump Screen to Disk                
  1698.         Ctrl / F16-Do         \001   Dump Screen to Disk               
  1699.  
  1700.                F5-Break       \007   Send Break                        
  1701.         Ctrl / F5-Break       \010   Send Break (long)                
  1702.  
  1703.        Shift / F4             \064   Kermit Push to DOS               
  1704.         Ctrl / F4             \062   Kermit Close (Prompt)            
  1705. Shift / Ctrl / F4             \067   Kermit Exit to MS-DOS            
  1706.         Ctrl / F15-Help       \063   Kermit Command Menu              
  1707.  
  1708.        Shift / F15-Help       \061   Connect mode Help (menu)         
  1709.  
  1710. Shift / Ctrl / F15-Help       \031   Toggle Monitor Mode (debug)      
  1711.