home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / mskermit.tar.gz / mskermit.tar / msvibm.vt < prev    next >
Text File  |  1997-08-15  |  73KB  |  1,744 lines

  1. File MSVIBM.VT                                12 June 1994
  2.  
  3.         MS-DOS KERMIT 3.13 TERMINAL EMULATOR TECHNICAL SUMMARY
  4.  
  5. This file describes the text terminal emulator in the IBM PC version of
  6. MS-DOS Kermit.  See the file MSVIBM.TEK for details about the Tektronix
  7. graphics emulator.  This file is in three main sections:
  8.  
  9.   1. The VT320/VT102/VT52/Heath-19 Emulator
  10.   2. The DG DASHER D463 and D470 Emulator
  11.   3. Compose-Key Sequences
  12.  
  13.  
  14. 1. VT320/VT102/VT52/Heath-19 EMULATOR IN MS-DOS KERMIT IBM-PC, CODE SUMMARY
  15.  
  16.            VT320/VT102 keypads        Heath-19 and VT52 Keypads     
  17.               IBM keys                   IBM Keys                   
  18.    +------+------+------+------+  +------+------+-------+----------+
  19.    |  PF1 |  PF2 |  PF3 |  PF4 |  | Blue |  Red |  Grey | up arrow | - Vendor
  20.    |  F1  |  F2  |  F3  |  F4  |  |  F1  |  F2  |  F3   | up arrow | - Kermit
  21.    +------+------+------+------+  +------+------+-------+----------+
  22.    |  7   |  8   |  9   |  -   |  |  7   |  8   |  9    |down arrow|
  23.    |  F5  |  F6  |  F7  |  F8  |  |  F5  |  F6  |  F7   |down arrow|
  24.    +------+------+------+------+  +------+------+-------+----------+
  25.    |  4   |  5   |  6   |  ,   |  |  4   |  5   |  6    | rgt arrow|
  26.    |  F9  |  F10 |  SF1 |  SF2 |  |  F9  |  F10 |  SF1  | rgt arrow|
  27.    +------+------+------+------+  +------+------+-------+----------+
  28.    |  1   |  2   |  3   |  E   |  |  1   |  2   |  3    |left arrow|
  29.    |  SF3 |  SF4 |  SF5 |  n  S|  |  SF3 |  SF4 |  SF5  |left arrow|
  30.    +------+------+------+  t  F|  +------+------+-------+----------+
  31.    |  0------0   |  .   |  e  6|  |  0------0   |  .    |  Enter   |
  32.    |   SF7       |  SF8 |  r   |  |  SF7        |  SF8  |  SF6     |
  33.    +-------------+------+------+  +-------------+-------+----------+
  34.  
  35. SF1 means push Shift and F1 keys simultaneously
  36. ---------------------------------------------------------------------------
  37. Below, the acronyms CSI and SS3 stand for 8-bit control codes in an 8-bit
  38. environment or for their 7-bit equivalents "ESC [" and "ESC O", respectively.
  39. Command SET TERMINAL CONTROL {8-BIT | 7-BIT}, and an equivalent command from
  40. the host, determines the usage for output text; use of parity forces 7-bit
  41. mode.  CSI is decimal 155, SS3 is decimal 143.  Similarly, DCS is decimal 144
  42. or ESC P and ST is decimal 156 or ESC \.  APC is decimal 159 or ESC _.
  43. ---------------------------------------------------------------------------
  44. Codes sent by DEC and Heath arrow keys
  45. Key        Verb    IBM    VT320/VT102 mode    VT52/H19 mode
  46.             key    Cursor    Application    Cursor or Application
  47.  
  48. up        uparr    up    CSI A    SS3 A        ESC A
  49. down        dnarr    down    CSI B    SS3 B        ESC B
  50. right        rtarr    right    CSI C    SS3 C        ESC C
  51. left        lfarr    left    CSI D    SS3 D        ESC D
  52.  
  53. Codes sent by DEC editing keys, not preassigned to keys.
  54. Key        Verb        VT320 mode        VT102/VT52/H19 mode
  55.  
  56. Find        decFind        CSI 1 ~            these keys
  57. Insert Here    decInsert    CSI 2 ~             send nothing
  58. Remove        decRemove    CSI 3 ~
  59. Select        decSelect    CSI 4 ~
  60. Prev Screen    decPrev        CSI 5 ~
  61. Next Screen    decNext        CSI 6 ~            ~ is ASCII chart 7/14
  62.  
  63. Codes sent by DEC Numeric Keypad
  64. Key        Verb    IBM    ANSI VT320/VT102 mode    VT52/H19 mode
  65.             key    Numeric    Application    Numeric    Application
  66.  
  67. PF1/HF7/Blue   Gold,pf1 F1    SS3 P    SS3 P        ESC P    ESC P
  68. PF2/HF8/Red     pf2    F2    SS3 Q    SS3 Q        ESC Q    ESC Q
  69. PF3/HF9/Grey    pf3    F3    SS3 R    SS3 R        ESC R    ESC R
  70. PF4/HF1         pf4    F4    SS3 S    SS3 S        ESC S    ESC S
  71. 0        kp0    SF7    0    SS3 p        0    ESC ? p
  72. 1        kp1    SF3    1    SS3 q        1    ESC ? q
  73. 2        kp2    SF4    2    SS3 r        2    ESC ? r
  74. 3        kp3    SF5    3    SS3 s        3    ESC ? s
  75. 4        kp4    F9    4    SS3 t        4    ESC ? t
  76. 5        kp5    F10    5    SS3 u        5    ESC ? u
  77. 6        kp6    SF1    6    SS3 v        6    ESC ? v
  78. 7        kp7    F5    7    SS3 w        7    ESC ? w
  79. 8        kp8    F6    8    SS3 x        8    ESC ? x
  80. 9        kp9    F7    9    SS3 y        9    ESC ? y
  81. comma (,)    kpcoma    SF2    ,    SS3 l        ,    ESC ? l
  82. minus (-)    kpminus    F8    -    SS3 m        -    ESC ? m
  83. period (.)    kpdot    SF8    .    SS3 n        .    ESC ? n
  84. Enter        kpenter    SF6    CR or    SS3 M        CR or    ESC ? M
  85.                 CR LF    (newline on)    CR LF
  86.  (SFn means hold down Shift key while pressing Function key n.)
  87.  
  88. Codes sent by DEC LK201 keyboard function keys, not preassigned to PC keys
  89. Key name    Verb        VT320 mode        VT102/VT52/H19 mode
  90.  
  91. Hold Screen            nothing            nothing
  92. Print Screen            nothing            nothing
  93. Set-Up                nothing            nothing
  94. F4                nothing            nothing
  95. F5 (Break)            nothing            nothing
  96. F6        decF6        CSI 17 ~        nothing
  97. F7        decF7        CSI 18 ~        nothing
  98. F8        decF8        CSI 19 ~        nothing
  99. F9        decF9        CSI 20 ~        nothing
  100. F10        decF10        CSI 21 ~        nothing
  101. F11 (ESC)    decF11        CSI 23 ~        ESC
  102. F12 (BS)    decF12        CSI 24 ~        BS
  103. F13 (LF)    decF13        CSI 25 ~        LF
  104. F14        decF14        CSI 26 ~        nothing
  105. Help        decHelp        CSI 28 ~        nothing
  106. Do        decDo        CSI 29 ~        nothing
  107. F17        decF17        CSI 31 ~        nothing
  108. F18        decF18        CSI 32 ~        nothing
  109. F19        decF19        CSI 33 ~        nothing
  110. F20        decF20        CSI 34 ~        nothing
  111.  
  112. Note: F6 - F20 are DEC "User Definable Keys" which means their output can be
  113. redefined by the host (not by the terminal owner).  See below for method.
  114.  
  115. An often confusing item is knowing the mode of the auxillary keypad: numeric
  116. or application.  Digital Equipment Corporation designed the terminal to change
  117. modes only under command from the remote computer and not at all from the
  118. keyboard.  So the startup state is numeric/cursor mode, and reception of
  119. escape sequences "ESC [ ? 1 h" or "l" changes the mode.  Kermit verbs for the
  120. keypad and cursor keys generate the correct escape sequences appropriate to
  121. the current mode and terminal type.
  122.  
  123. A best attempt is made to safely test for the 101/102 key Enhanced keyboard
  124. and use it if present.  If it is present then the keyboard translator
  125. separates the individual arrow keys from those on the numeric keypad and also
  126. separates the asterisk and forward slash keys on the keypad from those on the
  127. regular typewriter keyboard.  These special Enhanced keyboard keys are
  128. reported as scan codes with 4096 added to the base scan code.
  129.  
  130.  OTHER IBM KEYS OPERATIONAL IN CONNECT MODE:
  131.  
  132.  IBM key         IBM Verb      Action
  133.  
  134.  Keypad Del                    Send ASCII Del code (rubout) \127
  135.  Backspace (<-)                Send ASCII Del code (rubout) \127  (BS is \8)
  136.  Keypad -        MODELINE      Toggle mode line on/off (only if Mode Line is
  137.                                enabled and not used by the host).
  138.  Alt -           TERMTYPE      Toggle between text and Tek terminal types.
  139.  Alt =           RESET         Clear screen and reset terminal emulator to
  140.                                starting (setup) state.
  141.  Alt b           BREAK         Send a BREAK signal
  142.  Alt h           HELP          Show drop down help menu (detailed below)
  143.  Alt s           STATUS        Show settings
  144.  Alt x           EXIT          Exit Connect mode, back to Kermit prompt
  145.  Alt n
  146.  
  147.  Home            HOMSCN        Roll screen up (text down) to beginning of
  148.                                 storage.
  149.  End             ENDSCN        Roll screen down (text up) to end of storage.
  150.  PgUp            UPSCN         Roll screen up (back, earlier) one screen.
  151.  PgDn            DNSCN         Roll screen down (forward, later) one screen.
  152.  Ctrl-PgUp       UPONE         Roll screen up one line.
  153.  Ctrl-PdDn       DNONE         Roll screen down one line.
  154.  
  155.  Control-PrtSc   PRTSCN        Toggle  on/off copying of received text to
  156.                                printer, "PRN" shows on far right of mode
  157.                                line when activated.
  158.  
  159.  Control-End     DUMP          Dump image of screen to a disk file or device.
  160.                                Default filename is KERMIT.SCN in the current
  161.                                directory. Use command SET DUMP to change the
  162.                                filename.  Screen images are appended to the
  163.                                file, separated by formfeeds. Graphics screens
  164.                    go to files TEKPLT<digit digit>.TIF.
  165.  
  166.  Shift-PrtSc     Standard DOS Print-screen, dump screen image to printer.
  167.  
  168.  unassigned      HOLDSCRN      DEC style Holdscreen, same as typing Control-S.
  169.  
  170.  ALT-N         NEXTSESSION   Change to next terminal session, only if using
  171.                     Kermit's internal TCP/IP protocol stack.
  172.  
  173.  ALT-X       NETHOLD       Place Network connections "on hold". This means
  174.                     interrupt the normal PC to host connection and
  175.                    invoke the external network control program
  176.                    interface for session management. Works with
  177.                    3Com(BAPI), Novell(NASI), UB-Net1, etc but not
  178.                    with Kermit's internal TCP/IP protocol stack.
  179.  
  180.  unassigned     RTONE        scroll screen right one column
  181.  unassigned     RTPAGE        scroll screen right by 20 columns
  182.  unassigned     LFONE        scroll screen left by one column
  183.  unassigned     LFPAGE        scroll screen left by 20 columns
  184.  
  185. "Alt -" means hold down Alt and type minus on the upper key rank.  This
  186. switches among the various kinds of emulation but does not change most
  187. operating parameters of the emulator. Follow a new selection with ALT = (verb
  188. RESET) to reset the emulator to the current type.
  189.  
  190. CONNECT ESCAPE COMMANDS:
  191.  
  192. Type the Kermit escape character (normally "^]"), then one of the keys below:
  193.                                                          (equivalent \Kverb)
  194.      ?   display this short list.                                HELP
  195.      0   send a null character.                                  NULL
  196.      A   send Telnet "Are You There" sequence
  197.      B   send a BREAK signal.                                    BREAK
  198.      C   close connect session & return to Kermit prompt.        EXIT
  199.      F   dump screen to filespec, default is KERMIT.SCN.         DUMP
  200.      H   hangup the phone or network connection                  HANGUP
  201.      I   send Telnet "Interrupt Process" sequence
  202.      L   send a Long BREAK signal                                LBREAK
  203.      M   toggle mode line on/off.                                MODELINE
  204.      P   push to DOS.                                            DOS
  205.      Q   quit (suspend) logging.                                 LOGOFF
  206.      R   resume logging.                                         LOGON
  207.      S   show status.                                            STATUS
  208.      Kermit escape character itself: send it to the host.
  209.  
  210. RESPONSES TO CHARACTERS RECEIVED BY THE VT/HEATH TERMINAL EMULATOR
  211.  
  212. Spaces shown between characters of escape sequences are there for ease of
  213. reading.  The actual sequences contain no spaces.  Unknown escape sequences
  214. are absorbed and ignored.
  215.  
  216. DEC VT320 and VT102 functions while in ANSI (non-VT52) mode, unsupported
  217. features are marked by an asterisk (*):
  218.  
  219. Control Codes in C0 (no high bit) Area:
  220.  
  221.  Name    ASCII    value
  222.      chart      hex keyboard            operation
  223.  NUL    0/0    00h   ^@    Ignored except during transparent printing
  224.  ENQ     0/5        05h   ^E        Answerback message (response: "MS-DOS KERMIT")
  225.  BEL    0/7    07h   ^G    Sound DEC style beep
  226.  BS    0/8    08h   ^H    Backspace, move cursor left one character
  227.  HT    0/9    09h   ^I    Horizontal tab, move cursor to next tabstop
  228.  LF    0/10    0ah   ^J    Linefeed, move cursor down one line
  229.  VT    0/11    0bh   ^K    Vertical Tab, treated as a line feed
  230.  FF    0/12    0ch   ^L    Formfeed, treated as a line feed
  231.  CR    0/13    0dh   ^M    Carriage return, move cursor to col 1
  232.  SO/LS1    0/14    0eh   ^N    Map character set in G1 to GL, locking shift
  233.  SI/LS0    0/15    0fh   ^O    Map character set in G0 to GL, locking shift
  234.  DC1    1/1    11h   ^Q    XON flow control, resume communication
  235.  DC3    1/3    13h   ^S    XOFF flow control, suspend communication
  236.  CAN    1/8    18h   ^X    Cancel escape & control sequence in progress
  237.  SUB    1/10    1ah   ^Z    Treated as a CAN
  238.  ESC    1/11    1bh   ^[    Escape, start escape seq, cancel any others
  239.  DEL    7/15    7fh   ^_    ignored except during transparent printing
  240.  
  241. All others are ignored.
  242.  
  243. Control Codes in C1 (high bit set) Area:
  244.  
  245. These are represented by ESC <code - 40h> in a 7-bit environment.  When
  246. Controls is set to 7-bit output the emulator emits the 7-bit version but still
  247. responds to reception of both 7- and 8-bit versions.  Only the VT220/320
  248. emulator responds to these 8-bit codes; other text terminal types receive the
  249. byte without the high bit and the result may be unexpected.  Please note that
  250. Kermit commands SET TERMINAL DISPLAY 8-bit or SET DISPLAY 8-bit are required
  251. to pass 8-bit codes to the VT320 terminal emulator; otherwise the high bit is
  252. removed with usually disconcerting results.  VMS presumes an 8-bit channel
  253. with VT300's.
  254.  
  255. Control codes in C1 (high bit set) Area:
  256.  
  257.  Name    ASCII    value
  258.      chart   8-bit 7-bit        operation
  259.  IND    8/4       84h   ESC D    Index, move cursor down one line, scrolls
  260.  NEL    8/5       85h   ESC E    Next line, like CR/LF, scrolls
  261.  HTS    8/8       88h   ESC H    Set Horizontal Tab at cursor's column
  262.  RI    8/13      8dh   ESC M    Reverse index, move cursor up one line,scrolls
  263.  SS2    8/14      8eh   ESC N    Map G2 to GL for next char only, single shift
  264.  SS3    8/15      8fh   ESC O    Map G3 to GL for next char only, single shift
  265.  DCS    9/0       90h   ESC P    Device Control String introducer
  266.  SPA    9/6    96h   ESC V    Start Protected Area (erasure protection)
  267.  EPA    9/7    97h   ESC W    End Protected Area
  268.  CSI    9/11      9bh   ESC [    Control Sequence Introducer
  269.  ST    9/12      9ch   ESC \    String Terminator
  270.  OSC    9/13      9dh   ESC ]    Operating System Command, consume through ST
  271.  PM    9/14      9eh   ESC ^    Privacy Message, consume through ST
  272.  APC    9/15      9fh   ESC _    Application Program Command, pass host text
  273.                  to Kermit as a macro (1024 bytes max) for
  274.                                 execution and then return to Connect mode.
  275.                                 Terminated by ST.
  276. All others are ignored
  277.  
  278. lease note the actions resulting from reception of OSC, PM, APC (and some CS
  279. commands): nothing shows on the screen until either:
  280.  
  281.      a) an ST arrives
  282.  or    b) another control sequence begins
  283.  or    c) the terminal emulator is reset (ALT =, keyboard verb RESET)
  284.  
  285. Line noise can occassionally generate these characters.
  286.  
  287.  Escape Seq     Mnemonic       Description of Action
  288.  
  289.  ESC ^L        n/a        Enter Tektronix sub-mode, clear Tek screen.
  290.                 (This is ignored if DISABLE TEK has been given)
  291.  ESC 1        n/a        Same as ESC ^L. (ESC 2 exits Tek mode.)
  292.                  ESC 1 and ESC 2 are removed from version 3.12
  293.                                 and later.
  294.  ESC 7        DECSC        Save cursor position, attributes, contents of
  295.                 char sets used as GL and GR, wrap flag,
  296.                 origin mode (DECOM), SS2/SS3 shifts.
  297.  ESC 8        DECRC        Restore cursor from previously saved position
  298.                 and information listed for DECSC
  299.  ESC # 3    DECDHL        Double height and width line, top half
  300.  ESC # 4    DECDHL        Double height and width line, bottom half
  301.  ESC # 5    DECSWL        Single height and width line
  302.  ESC # 6    DECDWL        Double width single height line
  303.  ESC # 8    DECALN        Screen alignment test, fill screen with E's
  304.  ESC ( <ident>    SCS        Designates 94 byte character set <ident> to G0
  305.  ESC ) <ident>    SCS        Designates 94 byte character set <ident> to G1
  306.  ESC * <ident>    SCS        Designates 94 byte character set <ident> to G2
  307.  ESC + <ident>    SCS        Designates 94 byte character set <ident> to G3
  308.  ESC - <ident>    SCS        Designates 96 byte character set <ident> to G1
  309.  ESC . <ident>    SCS        Designates 96 byte character set <ident> to G2
  310.  ESC / <ident>    SCS        Designates 96 byte character set <ident> to G3
  311.          <ident>    size    character set
  312.         A     94    UK-ASCII (ASCII, sharp sign 2/3 replaced by
  313.                  Sterling sign), strictly only when a VT102
  314.                  but permitted by Kermit also for VT220/VT320
  315.         A     96    ISO Latin-1 (default in G2, G3)
  316.         B     94    ASCII (default in G0, G1)
  317.         0     94    DEC Special Graphics (line drawing)
  318.         1     94/96    Kermit, ALT-ROM
  319.         2     94    DEC Special Graphics (line drawing)
  320.         %5     94    DEC Supplemental Graphics
  321.         <     94/96    User Preferred Supplemental Set*
  322.         >     94    DEC Technical set (from VT340's)
  323.         H     96    Hebrew-ISO (ISO 8859-8)
  324.         "4     94    Hebrew-7
  325.  * VT300 terminals give choice of ISO Latin-1 (96) or DEC Supplemental
  326.  
  327. Graphics (94) determined by a Setup menu selection or host command.  VT420
  328. Hebrew terminals add choices of Hebrew-ISO and Hebrew-7.  MS-DOS Kermit has
  329. DEC Supplemental Graphics as the startup UPSS character set.
  330.  
  331. If the size of the character set does not match the <ident> nothing happens.
  332. Startup defaults are ASCII in G0 and G1, ISO Latin-1 in G2 and G3, GL points
  333. to G0, GR points to G2.  Activating DEC National Replacement Characters maps
  334. the NRC set selected by SET TERMINAL CHARACTER-SET <country> into G0..G3.
  335. Single and Locking shifts, SS2, SS3, LS0 (SI), LS1 (SO), LS1R, LS2, LS2R, LS3,
  336. LS3R determine which set is mapped to the GLeft or GRight area.
  337.  
  338.  ESC <                Exit VT52 mode (to previous ANSI kind/VT320)
  339.  ESC =        DECKPAM        Enter numeric keypad application mode
  340.  ESC >        DECKNPNM    Enter numeric keypad numeric mode
  341.  ESC D          IND        Index, moves cursor down one line, can scroll
  342.  ESC E          NEL        Move cursor to start of line below, can scroll
  343.  ESC space F    S7C1T        Disable output of 8-bit controls, use 7-bit
  344.  ESC space G    S8C1T        Enable output of 8-bit control codes
  345.  ESC H          HTS        Set one horizontal tab at current position
  346.  ESC M          RI         Reverse Index, cursor up one line, can scroll
  347.  ESC N        SS2        Single Shift 2, map G2 to GL for next char only
  348.  ESC O        SS3        Single Shift 3, map G3 to GL for next char only
  349.  ESC P        DCS        Start Device Control String command (see below)
  350.  ESC V        SPA        Start protected area (erasure protection)
  351.  ESC W        EPA        End protected area
  352.  ESC Z        DECID        Identify terminal. Responses are
  353.                 VT320: CSI ? 63; 1; 2; 4; 6; 8; 9; 15 c
  354.                 VT102: CSI ? 6 c
  355.                 VT100: CSI ? 1 c
  356.                 VT52:  ESC / Z
  357.                 Heath-19: ESC / K
  358.  ESC \        ST        String Terminator of Device Control Strings
  359.  ESC ]        OSC        Operating System Command, ignored through ST
  360.  ESC ^        PM        Privacy Message, ignored through ST
  361.  ESC _        APC        Applications Program Command, ignored thru ST
  362.  ESC c          RIS         Reset terminal to initial state, hard reset
  363.  ESC n        LS2        Map character set in G2 to GL, locking shift
  364.  ESC o        LS3        Map character set in G3 to GL, locking shift
  365.  ESC |        LS3R        Map character set in G3 to GR, locking shift
  366.  ESC }        LS2R        Map character set in G2 to GR, locking shift
  367.  ESC ~        LS1R        Map character set in G1 to GR, locking shift
  368.  ESC [        CSI        Control Sequence Introducer, see list below
  369.  
  370.  Control Seq    Mnemonic    Description of Action
  371.  
  372.  CSI Pn @    ICH        Insert Pn spaces at and after cursor
  373.  CSI Pn A    CUU        Cursor up Pn lines, does not scroll
  374.  CSI Pn B    CUD        Cursor down Pn lines, does not scroll
  375.  CSI Pn C    CUF        Cursor forward, stays on same line
  376.  CSI Pn D    CUB        Cursor backward, stays on same line
  377.  CSI Pn E    CNL        Next-line (same as cr/lf), do Pn times
  378.  CSI Pn F    CPL        Previous-line (reverse index), do Pn times
  379.  CSI Pc G    CHA        ANSI Cursor to absolute column Pc
  380.  CSI Pr; Pc H    CUP        Set cursor to row, column (same as HVP)
  381.  CSI Pn I    CHI        Cursor forward Pn tabstops (Horizontal Index)
  382.  CSI Ps J    ED        Erase in display:
  383.                 0 = cursor to end of screen, inclusive
  384.                 1 = start of screen to cursor, inclusive
  385.                 2 = entire screen, reset lines to single
  386.                 width, cursor does not move. Note: terminal
  387.                 kinds ANSI-BBS and PT200 move cursor to home.
  388.  CSI ? Ps J    DECSED            Selective erase in display, Ps as for CSI Ps J
  389.                  but preserves protected characters
  390.  CSI Ps K    EL        Erase in line:
  391.                 0 = cursor to end of line, inclusive
  392.                 1 = start of line to cursor, inclusive
  393.                 2 = entire line, cursor does not move
  394.  CSI ? Ps K    DECSEL            Selective erase in line, Ps as for CSI Ps K
  395.                  but preserves protected characters
  396.  CSI Pn L    IL        Insert Pn lines preceding current line.
  397.  CSI Pn M    DL        Delete Pn lines from current downward, incl.
  398.  CSI Pn P    DCH        Delete Pn chars from cursor to left, incl.
  399.  CSI Pn; Pn R    CPR        Cursor report (row, column), sent by terminal
  400.                 Example: home position yields CSI 1; 1 R
  401.  CSI Pn X    ECH        Erase Pn chars at and to right of cursor
  402.  CSI Pn a    CUF        ANSI Cursor forward Pn columns
  403.  CSI Pn c    DA        Device Attributes request, see reports
  404.  CSI > Pn c    DA        Secondary Device Attributes req, see reports
  405.  CSI Pr d    CVA        ANSI Cursor to row Pr, absolute
  406.  CSI Pn e    CUD        ANSI Cursor down Pn rows
  407.  CSI Pr; Pc f    HVP        Set cursor to row, column (same as CUP)
  408.  CSI Ps g    TBC        Tabs clear, Ps: 0 = at this position, 3 = all
  409.  CSI Pn i    MC        Media Copy, see below
  410.  CSI Pa;...Pa h    SM        Set ANSI mode, see table below
  411.  CSI Pa;...Pa l SM        Reset ANSI mode, see table below
  412.         Pa    Mnemonic    Mode        Set (h)        Reset (l)
  413.     2    KAM           *Keyboard    locked        unlocked
  414.     3    CRM        Control codes    act upon    debug display
  415.     4    IRM        Insert        insert        replace
  416.     10    HEM        Horz editing    n/a        always reset
  417.     12    SRM        Local echo    off        on
  418.     20    LNM        New Line    lf=>cr/lf    lf=>lf
  419.  
  420.  CSI ? Ps;...;Ps h  SM        Set DEC mode, see table below
  421.  CSI ? Ps;...;Ps l  RM        Reset DEC mode, see table below
  422.          Ps     Mnemonic       Mode           Set (h)        Reset (l)
  423.          0                     error (ignored)
  424.          1      DECCKM         cursor keys    application    cursor/numeric
  425.          2      DECANM         ANSI          VT320/VT102    VT52
  426.          3      DECCOLM        Columns        +132 col       80 col
  427.          4      DECSCLM       *Scrolling      smooth         jump
  428.          5      DECSCNM        Screen, whole  reverse video  normal
  429.          6      DECOM          Origin         stay in margins ignore margins
  430.          7      DECAWM         Autowrap       on             off
  431.          8      DECARM        *Autorepeat     on             off
  432.          9      DECINLM       *Interlace      on             off
  433.          18     DECPFF         Printer term   Form Feed         none
  434.          19     DECPEX         Printer extent screen         scrolling region
  435.      25    DECTCEM           Cursor          visible         invisible
  436.          34     DECRLM         Writing        right to left  left to right
  437.      35    DECHEBM     +++Invoke macro:  KEYBOARDS      KEYBOARDR
  438.      36    DECHEM     ++++Hebrew encoding Multinational  Hebrew NRC
  439.          38     n/a            Graphics (Tek) ++graphics     text
  440.      42    DECNRCM           Nat Repl Char  enable         disable
  441.      66    DECNKM           Numeric keypad application    numeric
  442.      68    DECKBUM          *Typewriter     data process   typewriter
  443.                            + Horizontal scrolling. See comments on EGA boards.
  444.                           ++ Ignored if DISABLE TEK has been given.
  445.              +++ VT320 DEC supplements for Hebrew systems adapted
  446.                  from VT420-Hebrew terminals, invokes a new
  447.                  keyboard map. Kermit invokes macros above.
  448.             ++++ Macros TerminalR/S have been removed in v3.13.
  449.     (SET TERMINAL CHARACTER-SET <country> must be given to employ DEC
  450.     National Replacement Characters. Enabling NRCs replaces    G0..G3 chars
  451.     sets with the NRC set and disables 8-bit controls; disabling only
  452.     re-enables 8-bit controls.)
  453.  
  454.  CSI Pn i    MC        Printer controls (Media Copy)
  455.             Pn    
  456.             0    Print whole Screen
  457.             4    Exit printer controller (transparent print)
  458.             5    Enter printer controller (transparent print)
  459.  
  460. Transparent printing sends all output, except the CSI 4 i termination string,
  461. to the printer and not the screen, uses an 8-bit channel if no parity so NUL
  462. and DEL will be seen by the printer and by the termination recognizer code,
  463. and all translation and character set selections are bypassed.
  464.  
  465.  CSI ? Pn i    MC        DEC Printer controls (Media Copy)
  466.             Pn
  467.             1    Print line containing cursor
  468.             4    Exit autoprint (stop echoing to printer)
  469.             5    Enter autoprint (echo screen chars to printer)
  470.  
  471. Autoprint prints a final display line only when the cursor is moved off the
  472. line by an autowrap or LF, FF,    or VT (otherwise do not print the line).
  473.  
  474.  CSI Ps;...Ps m  SGR        Select graphic rendition
  475.                         Ps
  476.             0    all attributes off (#'s 1, 4, 5, 7, 8)
  477.                         1    bold, intensify foreground
  478.                         4    underscore (reverse video on IBM CGA/EGA)
  479.                         5    blink
  480.                         7    reverse video, per character
  481.             8    invisible, VT330/VT340
  482.             22    bold off, VT320
  483.             24    underline off, VT320
  484.             25    blinking off, VT320
  485.             27    reverse video off, VT320
  486.             28    invisible off, VT330/VT340
  487.                 non-DEC extensions: 30-37 = foreground color = 30 + colors
  488.                                     40-47 = background color = 40 + colors
  489.                                     colors: 1 = red, 2 = green, 4 = blue
  490.                                     VT220 and above only.
  491.          Note: CSI 0 m does NOT affect emulator screen colors.
  492.  
  493.  CSI Ps n    DSR        Device Status request, see reports
  494.  CSI ? Ps n    DECDSR        Device Status request, see reports
  495.  CSI ! p    DECSTR        Soft reset of terminal (keeps screen)
  496.  CSI Pa $ p    DECRQM        Report ANSI mode settings, see reports
  497.  CSI ? Pd $ p    DECRQM        Report DEC mode settings, see reports
  498.  CSI Pl; Pc " p    DECSCL        Set conformance level (set terminal type)
  499.     Pl    Pc    level selected   (also does a soft reset, not hard)
  500.     61    0    VT102, 7-bit controls (61 is otherwise VT100 level)
  501.     62    0 or 2    VT320, 8-bit controls (62 is otherwise VT200 level)
  502.     62    1    VT320, 7-bit controls
  503.     63    0 or 2     VT320, 8-bit controls (63 is otherwise VT300 level)
  504.     63    1    VT320, 7-bit controls
  505.     
  506.  CSI Ps;...;Ps q  DECLL        Load LEDs, Ps = 0 means clear LED #1-4. VT102
  507.                 Ps=1,2,3,4 sets LED # 1,2,3,4 on status line.
  508.  CSI Ps " q    DECSCA        Select Character Protection Attribute
  509.     Ps = 0,2 erasable by DECSED or DECSEL, 1 not erasable by these cmds.
  510.  CSI Pt; Pb r    DECSTBM        Set top and bottom scrolling margins, resp.
  511.                 CSI r resets margin to full screen.
  512.  CSI s                ANSI.SYS, save cursor state
  513.  CSI u                ANSI.SYS, restore cursor state
  514.  CSI Ps $ u    DECRQTSR    Terminal State or Color palette request
  515.  CSI & u    DECRQUPSS    User Preferred char set request, see reports
  516.  CSI Ps $ w    DECRQPSR    Presentation State request, see reports
  517.  CSI sol x    DECREQTPARM    Request terminal parameters, see reports
  518.  CSI 2; Ps y    DECST        VT102 Confidence test, exits status line
  519.  CSI 4; Ps;...Ps y DECTST    VT320 Confidence tests, exits status line
  520.  CSI Pn $ |    DECSCPP        VT340 Set columns per page (screen width)
  521.         Pn         logical width
  522.         0 or 80        80 columns
  523.         132        132 columns
  524.     In Kermit Pn values greater than 80 yield 132 columns, else 80 columns.
  525.     This is equivalent to CSI ? 3 h/l (h for 132 columns, l for 80 columns).
  526.  
  527.  CSI Ps $ }    DECSASD        Select active status display
  528.     Ps = 0 select main display
  529.     Ps = 1 select status line
  530.     Moves cursor to selected display area. This command will be ignored
  531.     unless the status line has been enabled by CSI 2 $ ~. When the status
  532.     line has been selected cursor remains there until the main display is
  533.     reselected by CSI 0 $ }.
  534.  
  535.  CSI Ps $ ~    DECSSDT        Select Status Line Type
  536.             Ps    meaning
  537.             0     no status line (empty)
  538.             1    indicator line (locally owned, Kermit default)
  539.             2    host-writable line
  540.  
  541.  Other extensions:
  542.  CSI 25; Pc f            VT320/VT102/H19 move cursor to 25th line.
  543.  CSI 25; Pc H            VT320/VT102/H19 move cursor to 25th line.
  544.                 Leave the same way as you went in.
  545.                 (These will disable Kermit's own status line.)
  546.  CSI Pn; Pn;..Pn ~  n/a        Kermit specific. Invoke Kermit macro PRODUCT
  547.                  and pass each parameter as a \%n argument
  548.                 to the macro. Intended for product specific
  549.                 startup and shutdown and similar operations
  550.                 which require exchanges of values. Nine
  551.                 parameters are supported. Macro PRODUCT must
  552.                 be supplied by the user.
  553.  
  554.  ESC ^L    and ESC 1    n/a    Enter Tektronix sub-mode, clear Tek screen.
  555.                 (This is ignored if DISABLE TEK has been given)
  556.  
  557. VT320 Report Requests and Responses:
  558.  
  559.  Request CSI c            primary device attributes (terminal ident)
  560.  Responses
  561.     CSI ? 63; 1; 2; 4; 6; 8; 9; 15 c VT320 (see below for parameters)
  562.     CSI ? 62; 1; 2; 4; 6; 8; 9; 15 c VT220
  563.     CSI ? 6 c            VT102    
  564.     CSI ? 1 c            VT100
  565.     ESC / Z                VT52, submode of VT320/VT102
  566.     ESC / K                VT52, when in Heath-19 mode
  567.         Pn    meaning 
  568.         1    132 columns
  569.         2    Printer port
  570.         3    ReGIS graphics
  571.         4    Sixel graphics
  572.         6    Selective erase
  573.         7    Soft character set (DRCS)
  574.         8    User-defined keys
  575.         9    National replacement character sets
  576.         13    Local editing mode
  577.         15    Technical character set
  578.         16    Locator device port
  579.         18    Windowing capability
  580.         19    Dual sessions
  581.         61    Operating level 1 (VT100)
  582.         62    Operating level 2 (VT200)
  583.         63    Operating level 3 (VT300 or VT200)
  584.  
  585.  Request  CSI > c        secondary device attributes
  586.  Response CSI > 24; 0; 0; 0 c        VT320, firmware version 0.0 (Kermit)
  587.  
  588.  Request  CSI 5 n        operating status
  589.  Response CSI 0 n            no malfunction
  590.  
  591.  Request  CSI 6 n        cursor position report
  592.  Request  CSI ? 6 n        same as CSI 6 n but for VT340s
  593.  Response CSI Pr; Pc R            Pr = row, Pc = column. Origin is 1,1
  594.  
  595.  Request  CSI ? 15 n        printer status
  596.  Response CIS ? 10 n            printer ready
  597.       or  CSI ? 11 n            printer is not ready
  598.  
  599.  Request  CSI ? 25 n        User Definable Key status
  600.  Response CSI ? 20 n            UDKs are unlocked (21 if locked)
  601.  
  602.  Request  CSI ? 26 n        keyboard dialect
  603.  Response CSI ? 27; Ps n    in MS Kermit this is controlled by
  604.                 command SET TERMINAL CHARACTER-SET <country>
  605.         Ps    Country            Ps    Country
  606.         1    North American/ASCII    9    Italian
  607.         2    British            13    Norwegian/Danish
  608.         8    Dutch            16    Portugese
  609.         6    Finnish            15    Spanish
  610.         14    French            12    Swedish
  611.         4    French Canadian        11    Swiss (German)
  612.         7    German            14      Hebrew
  613.  
  614.  Request  CSI 1 $ u        terminal state (wants entire machine state)
  615.  Response DCS 1 $ ST        MS Kermit does not upload this state info.
  616.  
  617.  Request  CSI 2; 2 $ u        Request VT340 color palette report DECRQTSR
  618.  Response is ESC P 2 $ s <palette 0>/<palette 1>/...<palette 15> ESC \
  619.         where <palette n> is the palette color in the RGB system -
  620.                 Pr; Pg; Pb      for red, green, and blue percentages, resp.
  621.                 black is 0; 0; 0
  622.                 bold black is 20; 20; 20
  623.                 dim (regular) hue is 40, bold hue is 80.
  624.     NOTE: this report is a very long string and may not be acceptable to
  625.           some communications channels (for example, Telnet).  Further, the
  626.           host may request a report in the HLS system; MS-DOS Kermit always
  627.           reports in the RGB system.
  628.  
  629.     Default VT340 color palettes are -
  630.      palette    b/w     color           palette  b/w     color
  631.      0 backgnd  black   black           8       dim grey dim grey (bold black)
  632.      1          white   bold blue       9       grey     blue
  633.      2          white   bold red        10      grey     red
  634.      3          white   bold green      11      grey     green
  635.      4          white   bold magenta    12      grey     magenta
  636.      5          white   bold cyan       13      grey     cyan
  637.      6          white   bold yellow     14      grey     yellow/brown
  638.      7 foregnd  grey    grey            15      white    white (bold)
  639.                 
  640.  
  641.  Request  DCS Ps $ p string ST    terminal restore state (downloads state info)
  642.  Response none required, ignored by MS Kermit.
  643.  
  644.  Request  CSI & u        request User Preferred Supplemental Set
  645.  Response DCS Ps ! u string ST
  646.     Ps is 0 for a 94 byte set, or 1 for a 96 byte set
  647.     string is the character set ident string ("A" for ISO Latin-1/96 or
  648.     "%5" for DEC Supplemental Graphics/94)
  649.  
  650.  Request  CSI 1 $ w        cursor information report
  651.  Response DCS 1 $ u Pr; Pc; Pp; Srend; Satt; Sflag; Pgl; Pgr; Scss; Sdesig ST
  652.     where     Pr is cursor row (counted from origin as 1,1)
  653.         Pc is cursor column
  654.         Pp is 1, video page, a constant for VT320s
  655.         Srend = 40h + 8 (rev video on) + 4 (blinking on)
  656.                  + 2 (underline on) + 1 (bold on)
  657.             Satt = 40h + 1     (selective erase on)
  658.         Sflag = 40h + 8 (autowrap pending) + 4 (SS3 pending)
  659.                 + 2 (SS2 pending) + 1 (Origin mode on)
  660.         Pgl = char set in GL (0 = G0, 1 = G1, 2 = G2, 3 = G3)
  661.         Pgr = char set in GR (same as for Pgl)
  662.         Scss = 40h + 8 (G3 is 96 char) + 4 (G2 is 96 char) 
  663.                 + 2 (G1 is 96 char) + 1 (G0 is 96 char)
  664.         Sdesig is string of character idents for sets G0...G3, with
  665.                 no separators between set idents.
  666.         If NRCs are active the set idents (all 94 byte types) are:
  667.         British        A    Italian        Y
  668.         Dutch        4    Norwegian/Danish ' (hex 60) or E or 6
  669.         Finnish        5 or C    Portuguese    %6 or g or L
  670.         French        R or f    Spanish        Z
  671.         French Canadian    9 or Q    Swedish        7 or H
  672.         German        K    Swiss        =
  673.         Hebrew        %=
  674.         (MS Kermit uses any choice when there are multiple)
  675.  
  676.  Request  CSI 2 $ w        tab stop report
  677.  Response DCS 2 $ u Pc;Pc;...Pc ST 
  678.     Pc are column numbers (from 1) where tab stops occur. Note the
  679.     separator "/" occurs in a real VT320 but should have been ";".
  680.  
  681.  Request DSC Ps $ t string ST    restore presentation state
  682.     Ps is 1 for cursor information,   in form of DCS 1 $ w report above
  683.           2 for tab stop information, in form of DCS 2 $ w report above
  684.  Response none, commands are executed to restore the indicated information;
  685.     an error may leave the emulator in an inconsistent state.
  686.  
  687.  Request  CSI Pa $ p        ask state of ANSI mode controls
  688.  Response CSI Pa; Ps $ y
  689.     where Pa is the single ANSI mode below
  690.  
  691.     Pa Mnemonic    meaning                Ps  state        
  692.     2   KAM     keyboard action (if locked)        0  unknown mode        
  693.     3   CRM     control representation (no debug)    1  set            
  694.     4   IRM     insert/replace mode (if insert mode)    2  reset        
  695.     10  HEM     horizontal editing (perm reset)    3  permanently set    
  696.     12  SRM     send/receive (local echo on)        4  permanently reset
  697.     20  LNM     newline (if newline on)
  698.  
  699.  Request  CSI ? Pd $ p        state of DEC modes
  700.  Response CSI Pd; Ps $ y
  701.     where Pd is a single DEC state below and Ps is a state value as above
  702.         Pd Mnemonic    meaning
  703.         1  DECCKM    cursor key mode (vs application mode)
  704.         2  DECANM    ANSI mode (vs VT52 submode)
  705.         3  DECCOLM    column (if 132 columns)
  706.         4  DECSCLM    if scrolling is smooth (vs jump)
  707.         5  DECSCNM    screen (if video is reversed)
  708.         6  DECOM    origin mode (if on)
  709.         7  DECAWM    autowrap (if on)
  710.         8  DECSRM    autorepeat keyboard (always on in Kermit)
  711.         18 DECPFF    print with Form Feed
  712.         19 DECPEX    print extent
  713.         25 DECTCEM    text cursor enabled
  714.         42 DECNRCM    DEC National Replacement Char set, if in use
  715.         66 DECNKM    numeric keypad (vs applications mode)
  716.         67 DECBKM    if backarrow sends BS or DEL (say DEL)
  717.         68 DECBUM    keyboard usage (say typewriter)
  718.  
  719.  Request  DCS $ q string ST    control function setting
  720.  Response DCS Ps $ r string ST
  721.     Ps is 0 for valid request, 1 for invalid request
  722.     Request string is one or two characters below saying which control
  723.     function is to be reported:
  724.         $}        select active status display
  725.         "q        set character attribute
  726.         "p        set conformance level
  727.         $~        set status line type
  728.         r        set top and bottom margins
  729.         m        set graphic rendition
  730.     The reponse string is the same as an incoming command which would
  731.     do that function except the leading CSI is omitted. The host is
  732.     obtaining a text string to be repeated back later with a CSI prefix
  733.     to restore the current state of the selected function. Example:
  734.     request  DCS $ q r ST    what are top/bottom margin settings?
  735.     response DCS 0 $ r 1; 24 r ST  which matches command  CSI 1; 24 r
  736.                ^-----^                                ^-----^
  737.  
  738.  Request  CSI & u        what is the User Preferred Supplemental Set
  739.  Response DCS Ps ! u string ST
  740.     where Ps is 0 for 94 byte character set, 1 for 96 byte set,
  741.           string is the letter code for the character set, either
  742.           "A" (96) for ISO Latin-1 or "%5" (94) for DEC Suppl Graphics.
  743.  
  744.  Request  DCS Ps ! u string ST     assign User Preferred Supplemnental Set
  745.         Ps and string are the same as for the CSI & u request above.
  746.  Response none
  747.  
  748.  Request  DCS Pc; Pl | Ky1/St1...Kyn/Stn ST    set User Definable Keys
  749.     Pc = 0 clear all UDK definitions before starting, = 1 clear one key.
  750.     Pl = 0 lock the keys, = 1 do not lock; MS Kermit never locks keys. 
  751.     Kyn/Stn are key identifier and definition string.  Form of Kyn is
  752.     two ASCII digits, 17-34, representing the DEC key number for DEC F6
  753.     through DEC F20; F6 = 17, etc as per keyboard table well above.
  754.     Stn is definition text written as a pair of hex characters per final
  755.     definition byte; upper or lower case A..F are the same.  Example:
  756.     DCS 1; Pl | 28/48656c70 ST  defines DEC key Help (verb decHelp)
  757.     as the four characters "Help" and does not erase all UDK definitions.
  758.     The lock indicator, Pl, is ignored by MS Kermit. 60 hex chars max.
  759.  Response: none
  760.  
  761.  Request  CSI sol x    DECREQTPARM Request terminal parameters, VT102 only
  762.  Response CSI sol; par; nbits; xspeed; rspeed; clkmul; flags x
  763.             DECREPTPARM Report of terminal parameters
  764.     sol
  765.     0    terminal can send unsolicited reports, supported as sol = 1
  766.     1    terminal reports only on request
  767.     2    this is a report (DECREPTPARM)
  768.     3    terminal reporting only on request
  769.     par = 1 none, 2 space, 3 mark, 4 odd, 5 even
  770.     nbits = 1 (8 bits/char), 2 (7 bits/char)
  771.     xspeed, rspeed = transmit and receive speed index:
  772.   0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128 correspond to speeds of
  773.   50,75,110,134.5,150,200,300,600,1200,1800,2000,2400,3600,4800,9600,19200,
  774.   and 38400 baud or above.
  775.     clkmul = 1 (clock rate multiplier is 16)
  776.     flags = 0-15 (Setup Block #5), always 0 here
  777.  
  778.  Request  DCS Ps; ...Ps { string ST    download or clear soft characters
  779.  Response none            not supported in MS Kermit VT320 emulator
  780.  
  781.  
  782. DEC VT52 Mode Functions
  783.  
  784.  Escape sequence        Description of action
  785.  
  786.  ESC 7                Save cursor position
  787.  ESC 8                Restore cursor position
  788.  ESC A                Cursor up
  789.  ESC B                Cursor down
  790.  ESC C                Cursor right
  791.  ESC D                Cursor left
  792.  ESC F                Enter graphics mode
  793.  ESC G                Exit graphics mode
  794.  ESC H                Cursor home
  795.  ESC I                Reverse line feed
  796.  ESC J                Erase to end of screen
  797.  ESC K                Erase to end of line
  798.  ESC V                Print cursor line
  799.  ESC X                Exit Printer Controller (transparent print)
  800.  ESC Y row column        Direct cursor address, offset from space
  801.  ESC W                Enter Printer Controller (transparent print)
  802.  ESC Z                Identify (response is ESC / Z)
  803.  ESC ^ (caret)            Enter autoprint mode (printer echoes screen)
  804.  ESC _ (underscore)        Exit autoprint mode
  805.  ESC ]                Print Screen
  806.  ESC =                Enter alternate keypad mode
  807.  ESC >                Exit alternate keypad mode
  808.  ESC <                Enter ANSI mode (changes to VT320 or VT102)
  809.  
  810. Heath-19 Functions while in Non-ANSI Mode
  811.  
  812.  Escape seq     Mnemonic       Description of action
  813.  
  814.  ESC A          HCUU           Cursor Up
  815.  ESC B          HCUD           Cursor Down
  816.  ESC C          HCUF           Cursor Forward, stays on same line
  817.  ESC D          HCUB           Cursor Backward, stays on same line
  818.  ESC E          HCD            Clear display
  819.  ESC F          HEGM           Enter Graphics mode
  820.  ESC G          HXGM           Exit Graphic mode
  821.  ESC H          HCUH           Cursor Home
  822.  ESC I          HRI            Reverse Index
  823.  ESC J          HEOP           Erase to end of page
  824.  ESC K          HEOL           Erase to end of line
  825.  ESC L          HIL            Insert line
  826.  ESC M          HDL            Delete line
  827.  ESC N          HDCH           Delete character
  828.  ESC O          HERM           Exit Insert Char mode
  829.  ESC Y row col  HDCA           Direct cursor addressing, offset from space
  830.  ESC Z          HID            Identify (response is ESC / K  which is a VT52)
  831.  ESC b          HBD            Erase Beginning of display
  832.  ESC j          HSCP           Save cursor position
  833.  ESC k          HRCP           Set cursor to saved position
  834.  ESC l          HEL            Erase entire line
  835.  ESC n          HCPR           Cursor Position Report request
  836.  ESC o          HEBL           Erase beginning of line
  837.  ESC p          HERV           Enter Reverse Video mode
  838.  ESC q          HXRV           Exit Reverse Video mode
  839.  ESC r Bn       HMBR          *Modify baud rate - not supported
  840.  ESC t          HEKS          *Enter Keypad shifted mode, not supported
  841.  ESC u          HXKS          *Exit Keypad shifted mode, not supported
  842.  ESC v          HEWA           Wrap around at end of line
  843.  ESC w          HXWA           Discard at end of line
  844.  ESC x Ps       HSM            Set Mode. See table below
  845.  ESC y Ps       HRM            Reset Mode. See table below
  846.  
  847.          Ps     Mnemonic       Mode            Set (x)        Reset (y)
  848.          1      HSM/HRM        25th line       enabled       +disabled
  849.          2                    *keyclick        off            on
  850.          3                    *holdscreen      enabled        disabled
  851.          4                     cursor type     block          underline
  852.          5                     cursor on/off   on             off
  853.          6                    *keypad-shifted  shifted        unshifted
  854.          7                     alt app keypad  enabled        disabled
  855.          8                     linefeed        lf=>cr/lf      lf=>lf
  856.          9                     newline mode    cr=>cr/lf      cr=>cr
  857.                               + disabling the 25th line also clears it
  858.  
  859.  ESC z          HRAM           Reset to power-up configuration
  860.  ESC =          HAKM           Enter Alternate Keypad mode
  861.  ESC >          HXAM           Exit Alternate Keypad mode
  862.  ESC <          HEAM           Enter ANSI mode (ESC [ stuff)
  863.  ESC @          HEIM           Enter Insert Character mode
  864.  ESC [          HEHS          *Enter Hold Screen mode, not supported
  865.  ESC \          HXHS          *Exit Hold Screen mode, not supported
  866.  ESC { and }    HEK, HDK      *Keyboard enable/disable, not supported
  867.  ESC ]          HX25          *Transmit 25th line, not supported
  868.  ESC #          HXMP          *Transmit page, not supported
  869.  
  870. Heath-19 Functions While in ANSI Mode
  871.  
  872.  Escape Seq     Mnenonic       Description of Action
  873.  
  874.  ESC [ Pn A    CUP        Cursor up Pn lines
  875.  ESC [ Pn B    CUD        Cursor down Pn lines
  876.  ESC [ Pn C    CUF        Cursor forward Pn columns
  877.  ESC [ Pn D    CUB        Cursor backward Pn columns
  878.  ESC [ Pr; Pc H    CUP        Cursor to absolute row, column
  879.  ESC [ Ps J    ED        Erase in Display, see DEC description
  880.  ESC [ Ps K    EL        Erase in Line, see DEC description
  881.  ESC [ Pn L    IL        Insert Pn lines at and below current line
  882.  ESC [ Pn M    DL        Delete Pn lines at and below current line
  883.  ESC [ Pn P    DCH        Delete Pn chars at and to right of cursor
  884.  ESC [ Pr; Pc f    HVP        Cursor to absolute row, column
  885.  ESC [ Ps h    SM        Set mode, see ESC x table above
  886.  ESC [ Ps l    RM        Reset mode, see ESC y table above
  887.  ESC [ Ps m    SGR        Set graphics rendition
  888.     Ps    operation
  889.     0    exit reverse video, per character
  890.     7    enter reverse video, per character
  891.     10    enter special graphics mode
  892.     11    exit special graphics mode
  893.  ESC [ 6 n    CPR        Cursor report request: returns ESC [ Pr; Pc R
  894.  ESC [ p    PXMT        *Transmit page, not supported
  895.  ESC [ q    PX25        *Transmit 25th line, not supported
  896.  ESC [ Ps r    PMBR        *Modify baud rate, not supported
  897.  ESC [ s    PSCP        Save cursor position & attributes
  898.  ESC [ u    PRCP        Restore cursor position & attributes
  899.  ESC [ z    PRAM        Reset to power-up configuration
  900.  ESC [ ? 2 h    PEHM        Revert to normal Heath-19 non-ANSI mode
  901.  ESC [ > Ps h    SM        Same as ESC x Ps
  902.  ESC [ > Ps l    RM        Same as ESC y Ps
  903.  
  904. Differences between a real VT320 and the emulator
  905.  
  906.  The emulator is extended by supporting several ANSI class control sequences:
  907.  CSI Pn E    CNL        Next-Line, Pn times
  908.  CSI Pc G    CHA        Cursor to column Pc, absolute
  909.  CSI Pn I    CHI        Cursor forward Pn tab stops
  910.  CSI Pn a    CUF        Cursor forward Pn columns
  911.  CSI Pr d    CVA        Cursor to row Pr, absolute
  912.  CSI Pn e    CUD        Cursor down Pn rows
  913.  
  914. The cursor can be placed on the status line by direct addressing such as
  915. CSI Pr; Pc H or CSI Pr; Pc f. Doing so does not invoke VT320 display area
  916. characteristics found with the formal VT320 method of CSI Ps $ }.
  917.  
  918. Sixel, soft characters, are not supported in text mode.
  919.  
  920. Full system report and download, CSI 1 $ u  and  DCS 1 $ string ST, are
  921. not supported.
  922.  
  923. User Definable Keys are not lockable.
  924.  
  925. The keyboard is not lockable.
  926.  
  927. Smooth scrolling is not supported.
  928.  
  929. Double wide and/or double high characters are supported as space fillers
  930. and/or a repeated line.
  931.  
  932. The DEC Technical character set occurs on VT340's but not on real VT320's.
  933.  
  934. Real VT320 terminals operate with 80x24 or 132x24 screen dimensions; the
  935. emulator supports whatever dimensions the user has constructed outside of
  936. MS Kermit.  However, the logical screen width will be set to 80 or 132 columns
  937. to match DEC terminals.  Also real VT300's have no screen rollback nor
  938. horizontal scrolling capability.
  939.  
  940.  Character sets:
  941.  
  942.  VT320        Character set storage areas
  943.         G0            G1, G2, and G3
  944.  -------------------------------    --------------------------------
  945.  Any 94 char set            Any 94 or 96 char set
  946.  ASCII ("B"/94) default         G1 default is ASCII ("B"/94),
  947.                     G2 and G3 defaults are
  948.                          ISO Latin-1 ("A"/96)
  949.  Special Graphics ("0"/94, "2"/94)    
  950.  Alt-Rom ("1"/94) (MS-DOS Kermit only)
  951.  Supplementary Graphics ("%5"/94)
  952.  Technical (">"/94) (from VT340)
  953.  User Preferred, UPSS, if Suppl Gr.    UPSS if ISO Latin-1 or Suppl Gr.
  954.                      DEC-Hebrew or Hebrew-ISO
  955.  
  956.  National Replacement Characters are forced into all sets when activated
  957.   by CSI ? 42 h but only if a <country> has been previously selected by
  958.   SET TERMINAL CHARACTER-SET <country>
  959.  
  960.  VT102        Character set storage areas
  961.     G0 and G1            G2 and G3
  962.  --------------------------------    ----------------------------------
  963.  ASCII ("B"/94) Default            ASCII ("B"/94) Default
  964.  Special Graphics ("0"/94, "2"/94)
  965.  Alt-Rom ("1"/94) (MS Kermit only)
  966.  Supplementary Graphics ("%5"/94)
  967.  Technical (">"/94) (from VT340)
  968.  National Replacement Characters    Always ASCII ("B"/94)
  969.   are selected and activated by
  970.   SET TERMINAL CHARACTER-SET <country>
  971.   and affect only G0 and G1.
  972.  
  973. [Note: there are several variations of DEC VT10x; the emulator comes closest
  974. to the VT102 as rendered in the DEC Rainbow computer.  A real VT320 in VT100
  975. mode removes access to G2 and G3; the VT102 has G2 and G3 holding ASCII.]
  976.  
  977. VT52 is used as a submode of a VT320 (default) or a VT102.  Only GL = G0 with
  978. ASCII is available. ESC F loads line drawing graphics, ESC G reloads ASCII.
  979.  
  980. Heath-19. Same as for VT52 in non-ANSI mode, but while in ANSI mode ESC [ 10 m
  981. and ESC [ 11 m duplicate the ESC F and ESC G operations.
  982.  
  983.  
  984. 2. DATA GENERAL DASHER D463 AND D470 TERMINALS, NATIVE MODE
  985.  
  986. Items marked with a * are not implemented in MS-DOS Kermit. XON/XOFF flow
  987. control should be set to outgoing only or none because these codes are 
  988. also used as D463/D470 commands.
  989.  
  990. Special D463/D470 Kermit command: 
  991.  
  992.     SET TERMINAL COMPRESSED-TEXT {GRAPHICS, TEXT-132}
  993.  
  994. The default is GRAPHICS, meaning compressed font characters are drawn as 5x14
  995. dot pattern cells in IBM PC graphics mode, simulating a text screen.  The
  996. compressed font used in Graphics mode is Code Page CP437 or CP850.  
  997. Alternatively, TEXT-132 means switch to 132 column EGA/VGA text mode and show
  998. all text with that font.  Graphics is considerably slower than Text and only 
  999. 128 character cells are available across the screen (640 dots / 128 yields 5 
  1000. dots per character cell including a separation dot).  If Text is commanded 
  1001. and the display adapter cannot be switched to 132 column mode then Graphics 
  1002. is implemented by default. Compressed fonts are available only on EGA/VGA
  1003. adapters and above, not on Monochrome, CGA, or Hercules.
  1004.  
  1005. Note on line drawing, RS L and the RS G series of commands.  The drawing
  1006. remains intact so long as the graphics screen is viewed.  It is not preserved
  1007. if the user returns to the Kermit prompt or switches to the text screen (the
  1008. ALT - hot key, keyboard verb \ktermtype).  The reason is the basic screen is
  1009. first drawn from the text screen and then line drawing dots are superimposed.
  1010. Leaving this screen means the text screen could change and thus a fresh
  1011. version of it will always overwrite the existing material.  It is not possible
  1012. to preserve the line drawings separately from the underlying simulated text
  1013. screen.  The Data General CEO_DRAW program provides a REFRESH command to
  1014. restore graphics images.
  1015.  
  1016. A Data General D463 terminal is a monochrome high resolution text and graphics
  1017. terminal, a D470 is a similar full color terminal.  The D470 has fewer screen
  1018. dots than the D463 and uses a smaller graphics crosshair.  A D463 graphics
  1019. screen is 800 dots across by 576 high, a D470 graphic screen is 640 across by
  1020. 480 high with 16 colors.  Aside from a few status reports and the graphics
  1021. details both terminals use the same core emulator.  ANSI mode is not supported
  1022. on either terminal; please use Kermit's VT320 instead.
  1023.  
  1024. When the display adapter is in graphics mode character fonts are
  1025. sought from the display adapter and, when Code Pages are active, from the
  1026. DOS Code Page file EGA.SYS.  Normal width characters can be drawn from that
  1027. file, but compressed characters will be shown from a CP850 font if the
  1028. current Code Page is other than CP437.  The DOS file EGA.SYS must be in
  1029. the current directory on along the PATH.  CGA, monochrome, and Hercules
  1030. video display adapters cannot use Code Pages; only EGA/VGA and above can.
  1031.  
  1032. A D463 terminal is a 7-bit device and Kermit removes the high bit of a byte
  1033. before passing it to the emulator. A D470, however, can use the high bit and
  1034. the Kermit command SET DISPLAY {7, 8} is effective for its emulation.
  1035.  
  1036. Special codes sent by DG keyboard function keys, not preassigned to PC keys
  1037.  
  1038.  DG Key name        Kermit Verb       D463/D470 Data General native mode
  1039.                  prefix  second character
  1040.  F1..F15              dgF1..dgF15       RS     q,r,s,t,u, v,w,x,y,z, {,|,},~,p
  1041.  shift F1..F15      dgSF1..dgSF15  RS    a,b,c,d,e, f,g,h,i,j, k,l,m,n,`
  1042.  control F1..F15    none       RS    1,2,3,4,5, 6,7,8,9,:, ;,<,=,>,0
  1043.  ctrl-shft F1..F15  none       RS    !,",#,$,%, &,',(,),*, +,comma,-,.,
  1044.                                  <space>
  1045.  C1..C4            dgC1..dgC4       RS     \,],^,_
  1046.  shift C1..C4        none       RS   X,Y,Z,[
  1047.  Uparrow        uparr       Control-W
  1048.  Rightarrow        rtarr       Control-X
  1049.  Leftarrow        lfarr       Control-Y
  1050.  Downarrow        dnarr       Control-Z
  1051.  Home            none       Control-H
  1052.  shift Uparrow        none       RS Control-W
  1053.  shift Rightarrow   none       RS Control-X
  1054.  shift Leftarrow    none       RS Control-Y
  1055.  shift Downarrow    none       RS Control-Z
  1056.  shift Home        none       RS Control-H
  1057.  Erase EOL        none       Control-K
  1058.  Erase Page        none       Control-L
  1059.  Cmd-Print        none       RS Control-U
  1060.  shift Cmd-Print    none       RS Control-A
  1061.  POINT            dgPoint       Full graphics cursor position report
  1062.  SPCL            dgSPCL       none, used as prefix for compounds
  1063.  NC            dgNC       none, toggles screen between Normal and
  1064.                     Compress fonts, same as if the host sent
  1065.                    RS F J or RS F K.
  1066.  
  1067. Mouse support: While in graphics mode a Microsoft-compatible mouse may be used
  1068. to control the graphics crosshair. The left mouse button sends the POINT
  1069. command, and the right button sends the dgF1 keyboard verb. The DG F1 key
  1070. frequently means "execute" to many utilities. On Data General keyboards POINT
  1071. is the key combination CMD CURSOR-TYPE.
  1072.  
  1073. Compound keys: See section at the end of this document.
  1074.  
  1075.  
  1076. RECEIVED CODES AND ACTIONS
  1077.  
  1078. Note: <n> is the lower four bits of a byte, <nn> is the lower four bits of
  1079. two consequetive bytes as high then low order portions of an 8-bit result.
  1080. Such input bytes may have anything in the upper four bits.
  1081.         
  1082.  Control Seq    Hex        Description of Action
  1083.  Control-@    00h        Used as data within a command
  1084.  Control-A    01h        Print form. Only bold characters in current 
  1085.                  window at cursor row and below, followed by 
  1086.                 sending a Control-F character to the host.
  1087.  Control-B    02h        Reverse video off
  1088.  Control-C    03h        Blink enable, affects only new chars in Kermit
  1089.  Control-D    04h        Blink disable, affects only new chars
  1090.  Control-E    05h        Read window address
  1091.                 Report is Control-_<col><row>  in binary
  1092.  Control-G    07h        Bell
  1093.  Control-H    08h        Window home, go upper left corner of window
  1094.  Control-I    09h        Tab horizontally
  1095.  Control-J    0Ah        Newline, can scroll window if Roll Mode is on,
  1096.                  else cursor wraps to upper left corner (Home).
  1097.                 Landing on a protected character yields a
  1098.                 cursor right operation.
  1099.  Control-K    0Bh        Erase cursor to end of line (stops on first
  1100.                  protected mode character)
  1101.  Control-L    0Ch        Erase window, cursor to window home
  1102.  Control-M    0Dh        Carriage return. Go to left margin. If that
  1103.                  character is protected then a cursor right
  1104.                 is performed.
  1105.  Control-N    0Eh        Blink on
  1106.  Control-O    0Fh        Blink off
  1107.  Control-P <col><row>    10h    Write window address, 255 is do not change.
  1108.                  Addresses are in unencoded binary.
  1109.  Control-Q    11h        Print window. All characters in current
  1110.                  window at cursor row and below, followed by
  1111.                 sending a Control-F character to the host.
  1112.  Control-R    12h        Roll Mode enable (default)
  1113.  Control-S    13h        Roll Mode disable
  1114.  Control-T    14h        Underscore on
  1115.  Control-U    15h        Underscore off
  1116.  Control-V    16h        Reverse video on
  1117.  Control-W    17h        Cursor up. Wraps top to bottom in the window.
  1118.                  Landing on a protected character yields a
  1119.                 cursor left operation.
  1120.  Control-X    18h        Cursor right. End of line wrap executes New
  1121.                  Line. Landing on a protected character repeats
  1122.                 the cursor right command (stops at start).
  1123.  Control-Y    19h        Cursor left. Start of line wrap executes a
  1124.                  cursor up at right margin. Repeats if a
  1125.                 protected mode character is encountered, and
  1126.                 stops at starting point if looping.
  1127.  Control-Z    1Ah        Cursor down, one line, same column. Wraps
  1128.                  in window bottom to top, landing on a
  1129.                 protected character yields a cursor right.
  1130.  Control-[    1Bh        Escape char 
  1131.  Control-\    1Ch        Dim on
  1132.  Control-]    1Dh        Dim off
  1133.  Control-^    1Eh        DG escape char (ASCII name RS)
  1134.  Control-_    1Fh        Used as data within a command
  1135.  
  1136.  
  1137.  DG Escape Seq                 Description of Action
  1138.  
  1139.  RS A <n>            Set foreground color (D470). A D463 uses this
  1140.                  only for polygon fill. Kermit uses D470 style.
  1141.                 <n> is a color code whose 4 lower bits mean:
  1142.                  0 = black, 1..8 = bold blue, green, cyan, red,
  1143.                       magenta, yellow, white, respectively, and
  1144.                  9 = dark grey, 10..16 = dim versions of above.
  1145.  RS B <n>            Set background color (D470). As above
  1146.  RS C                Read model id
  1147.                 Report is RS o # <m><x><y>
  1148.                 <m> is ASCII 6  (D463/D413)
  1149.                     or 44 decimal (D470)
  1150.                 <x> is 010CP000 binary byte
  1151.                     C = 0 if 7 bit, = 1 if 8 bit comms
  1152.                     P = 0 if not, = 1 if printer is available
  1153.                 <y> is 0101LLLL binary byte
  1154.                     LLLL is keyboard nationality
  1155.                     0010 Norwegian
  1156.                     0011 Swiss/French (French in Kermit)
  1157.                     0100 Swiss/German (Swiss in Kermit)
  1158.                     1010 French-Canadian
  1159.                     0110 Katakana (not implemented in Kermit)
  1160.                     1000 French-Canadian
  1161.                     1001 US English
  1162.                     1010 United Kingdom
  1163.                     1011 French
  1164.                     1100 German
  1165.                     1101 Swedish/Finnish
  1166.                     1110 Spanish
  1167.                     1111 Danish/Norwegian
  1168.  
  1169.  RS D                Reverse video on
  1170.  RS E                Reverse video off
  1171.  RS H                Scroll up
  1172.  RS I                Scroll down
  1173.  RS J                Insert character
  1174.  RS K                Delete character
  1175.  
  1176.  RS F 7 <nn>            *Select printer NRC
  1177.  RS F 8                *Display char generator contents, diagnostics
  1178.  RS F 9                Fill screen with grid, diagnostics
  1179.  RS F ? 0            Simulprint off (print and display together)
  1180.  RS F ? 1            Simulprint on  (print and display together)
  1181.  RS F ? 2            Print pass through off (transparent printing)
  1182.  RS F ? 3            Print pass through on (transparent printing)
  1183.  RS F ? 5            *Window bit dump
  1184.  RS F ? 6            *Form bit dump
  1185.  RS F ? 7            VT style autoprint off (whole line printing)
  1186.  RS F ? 8            VT style autoprint on (whole line printing)
  1187.  RS F ? :            Print Screen. All characters on the screen,
  1188.                  followed by sending a Control-F character 
  1189.                 to the host.
  1190.  RS F ; <command>        *Data trap mode, debugging (use SET DEBUG ON)
  1191.  RS F <                *Perform UART loopback, diagnostics
  1192.  RS F > <char>            Fill screen with character, diagnostics
  1193.  RS F A                Reset the terminal emulator
  1194.  RS F B <nn><n>..<nn><n>    Set Windows (each is full width of screen
  1195.                  and each scrolls h/v independently)
  1196.              <nn> number of lines in window (24 == full screen)
  1197.             <n>=0/1 normal/compressed (compress=graphics fake-text
  1198.                 or 132 columns, user selectable, in Kermit)
  1199.                 Command ends on 24 lines or on <00><n>.
  1200.                 Screen is auto centered. Cursor to screen home.
  1201.  RS F C <nn>            Scroll left <nn> columns (if Horiz scroll is
  1202.                  enabled)
  1203.  RS F D <nn>            Scroll right <nn> columns (ditto)
  1204.  RS F E                Erase screen, cursor to screen home, window
  1205.                  settings are preserved.
  1206.  RS F F                Erase unprotected characters from the cursor
  1207.                  position to the end of the window.
  1208.  RS F G                Screen home, go to upper left corner of screen.
  1209.                  Landing on a protected character yields a
  1210.                 cursor right operation.
  1211.  RS F H                Insert line, text moves down in window
  1212.  RS F I                Delete line, text moves up in window. If the
  1213.                  cursor is on a protected character a cursor
  1214.                 right command is executed.
  1215.  RS F J                Select normal spacing (80 column mode)
  1216.  RS F K                Select compressed spacing (132 column mode)
  1217.  RS F L                Protect on, applies to chars until Protect off,
  1218.  RS F M                Protect off
  1219.  RS F N <nnn><n><n>        Change attributes in current window
  1220.             <nnn> number of chars to change, starting at cursor
  1221.             <n> attributes to set
  1222.                 bit 3 dim
  1223.                 bit 2 reverse video
  1224.                 bit 1 underscore
  1225.                 bit 0 blink
  1226.             <n> attributes to reset, as above
  1227.             Both set and reset means toggle. 
  1228.  RS F O                Read horizontal scroll offset
  1229.                 Report is RS o : <nn>   where <nn> is window
  1230.                 horizontal scroll value (columns)
  1231.  RS F P <nn><nn>        Write screen attributes
  1232.             <nn> absolute screen column for cursor
  1233.             <nn> absolute screen row for cursor
  1234.  RS F Q <n>            Set cursor type
  1235.             <n>    cursor type
  1236.              0    disable/hide, and save current
  1237.              1    blinking 
  1238.              2    reverse video block (PC cursors always blink)
  1239.              3    blinking reverse video block
  1240.              4    underscore
  1241.              5    display cursor with saved attributes
  1242.  RS F R <char><dd>..<dd>    *Define character, 12 or 10 <dd> items, 
  1243.                   10x12 cell for D463, 8x10 for D470.
  1244.  RS F S <nn>            Select Character Set
  1245.             <nn>    character set
  1246.         00    keyboard language
  1247.         01    US ASCII
  1248.         02    UK ASCII (sharp sign # relaced by Pound Sterling)
  1249.         03    NRC French
  1250.         04    NRC German
  1251.         05    NRC Swedish/Finnish
  1252.         06    NRC Spanish
  1253.         07    NRC Danish/Norwegian
  1254.         08    NRC Swiss
  1255.         09    NRC Kata Kana (G0)    not supported in Kermit
  1256.         0E    DG International
  1257.         0F    Kata Kana (G1)        not supported in Kermit
  1258.         11    Line Drawing
  1259.         13    DG Special Graphics (CP437 GR)
  1260.         14    DEC Multinational
  1261.         15    DEC Special Graphics (line drawing)
  1262.         1D    Low PC Term (CP437 GL)
  1263.         1E    High PC Term (CP437 GR)
  1264.         1F    Latin1 (ISO 8859-1)
  1265.         20 et seq  soft fonts        not supported in Kermit
  1266.  
  1267.  RS F T <n>            *Set scroll rate
  1268.             <n>
  1269.             0    disable smooth scroll
  1270.             1    enable smooth scroll at 5 rows/sec
  1271.             2    enable smooth scroll at 10 rows/sec
  1272.  RS F U <n>            Select 7/8 bit operation
  1273.                 <n>, 0 = 7-bits, 1 = 8-bits in and out
  1274.  RS F V                Protect enable, permit protect on/off to work
  1275.  RS F W                Protect disable
  1276.  RS F X <nn><nn>        Set margins
  1277.             <nn>, first is left margin, second is right margin
  1278.             both in the range of 0 to 206, inclusive. Screen
  1279.             may be scrolled to make both margins visible (left
  1280.             margin dominates). Cursor moves to left margin.
  1281.  RS F Y <nn><nn><nn>        Set alternate margins, relative to current
  1282.             <nn> row to place cursor on, 0..24, wrt window top.
  1283.             <nn> column of new left margin, wrt permanent left.
  1284.             <nn> column of new right margin, wrt new left.
  1285.             255 value means do not change
  1286.                 Disables horizontal scrolling
  1287.  RS F Z                Restore normal margins, removes alt margins,
  1288.                  reenables horizontal scrolling
  1289.  RS F ]                Horizontal scroll disable
  1290.  RS F \                Delete line between margins (push up)
  1291.  RS F [                Insert line between margins (push up)
  1292.  RS F ^                Horizontal scroll enable (default)
  1293.  RS F _ <nn><nn>        Show columns (align window l/r to show text)
  1294.             <nn> left most col to display, 0..206
  1295.             <nn> right most col to display, 0..206
  1296.             Screen may be scrolled to make both margins visible 
  1297.             (left margin dominates).
  1298.  
  1299.  RS F `                Print Pass Through on (not transparent print)
  1300.  RS F a                Print Pass Through off
  1301.  RS F b                Read screen address (cursor position)
  1302.                 Report is RS o 8 <nn><nn>   for col,row
  1303.  RS F c <n><n><n><n>        *Set color map, D470. Use Kermit command
  1304.                  Set Terminal Color.
  1305.  RS F d                Read characters remining
  1306.                 Report is RS o 9 <high><low> (binary)
  1307.                 Always zero remaining in Kermit
  1308.  RS F e <n><n>            Reserve character (no action in Kermit, none
  1309.                  is needed.)
  1310.  RS F f <n>            Set keyboard language
  1311.             <n>
  1312.             0    set language to default (National)
  1313.             1    set language to GL=ASCII, GR=DG International
  1314.             2    set language to GL=ASCII, GR=Latin1 ISO 8859.1
  1315.  
  1316.  RS F h                *Push
  1317.  RS F i                *Pop
  1318.  RS F k <mode><key><length><string> *Host programmable function keys
  1319.  RS F m 0            *Read cursor contents, diagnostics
  1320.  RS F m 4            *Character loopback, diagnostics
  1321.  RS F m 5            *Hot key switch, dual emulation
  1322.  RS F m 6            *Read bit contents, diagnostics
  1323.  RS F r <n><pos><time>        *Set clock time
  1324.  RS F q <nn><nn>        *Deallocate character sets
  1325.  RS F s <n>            *Save/restore screen contents
  1326.                 <n> 0=save, 1=restore
  1327.  RS F t                Report screen size
  1328.                 Reports RS o <nn><nn><nn><nn><status>
  1329.                 rows, columns(207), rows in window, columns in 
  1330.                 window (right-left margins+1), status=70h
  1331.  RS F v    <r1><c1><r2><c2>    Read window contents
  1332.                 Reports chars in window from row1, col1
  1333.                 to row2, col2, without attributes
  1334.  RS F w                Read new model id
  1335.             Reports RS o w <class><service><rev><name><reserved>
  1336.             <class>    is 8        D460/D470 level
  1337.             <service> is 01
  1338.             <revision> is 00    firmware rev (Kermit = 0)
  1339.             <name> is "D463    "    (8 bytes)
  1340.                    or "D470    "    (for the D470 emulator)
  1341.             <reserved> is "    "    (4 bytes)
  1342.  
  1343.  RS F x <n>            Printer pass back to host
  1344.                 Reports RS R x 0 (mode cannot be set, Kermit)
  1345.  RS F z    <n>            Set 25th line mode
  1346.             <n>
  1347.             0    display status line
  1348.             1    put msg on line, msg is <nn>text
  1349.                 following this cmd
  1350.             2    *use as extra screen row
  1351.             3    blanked
  1352.  RS F { <nn><n>            Set model id <nn> and graphics ability <n>
  1353.  RS F } <n><n>            Named save/restore cursor
  1354.                 <n> sets memory number, 0..15, for save
  1355.                 <n> 0=save to memory, 1=restore from memory
  1356.                 Saves/restores cursor location and shape.
  1357.  RS F ~ <nn>            *Switch emulation mode, dual emulation
  1358.  
  1359.  RS G 0 <nnn><nnn><nnn><nnn><nnn>  Arc (center x, center y, radius, start 
  1360.                  angle, stop angle). Angle is deg CCW from
  1361.                 +x axis. <nnn> are "location arguments."
  1362.                 Manual is in error on this item. DG screen
  1363.                 coordinates of 0..799 (x), 0..574 (y) D463
  1364.                 or 0..639 (x), 0..479 (y) D470.
  1365.  RS G 1 <nnn><nnn><nnn><nnn><n>    Bar. Arguments are lower left x,y corner
  1366.                  width, height, and <n> for foreground (1)
  1367.                 or background (0) filling color.
  1368.  RS G 8 <loc_list><null>    Line drawing <loc_list> is list of x,y pairs
  1369.                  using "location arguments".
  1370.  RS G @                Cursor attributes. Report is
  1371.                  RS o , <crosshair> 0 <crosssize> <tracked>
  1372.                 where <crosshair> is 0 or 1 for off/on,
  1373.                 <crosssize> is 1 for D463 and 0 for D470,
  1374.                 <tracked> is 0, 2, 4 or 6 for tracked devices
  1375.                 of none, keyboard, mouse, both, respectively.
  1376.  RS G A                Graphics cursor reset (no cursor, no tracking)
  1377.  RS G B                Graphics cursor on
  1378.  RS G C                Graphics cursor off
  1379.  RS G H <n>            Graphics cursor track
  1380.                  <n> bit field,  0 for nothing
  1381.                         2 for keyboard arrow keys,
  1382.                         4 for mouse, default nothing
  1383.  RS G I <n>            *D470, set graphics crosshair (cursor) color.
  1384.                   Not implemented because Kermit uses XOR with
  1385.                  existing screen dots.
  1386.  RS G : <loc><null>        Polygon fill (non-intersecting polygon)
  1387.                  <loc> is up to 255 x,y pairs of sequential
  1388.                 vertices, in location argument format.
  1389.  RS G p 1 <offset><pat><null>    Set pattern for line drawings. Kermit supports
  1390.                  only a 16 bit pattern, and no offset editing.
  1391.  RS G ? |            Read cursor location. Reports
  1392.                  RS o | <space><xxxxx><space><yyyyy><CR>
  1393.                 D463 Manual is in error and says RS O | etc.
  1394.  RS G > | <nnn><nnn>        Set cursor location, graphics crosshair.
  1395.  
  1396.  RS H                Scroll up (in window). Window text moves up
  1397.                  one line, blank line is inserted at bottom.
  1398.                 Cursor remains fixed on screen unless it is
  1399.                 on a protected character, then a cursor right
  1400.                 is executed.
  1401.  RS I                Scroll down (in window). Window text moves
  1402.                  down one line, blank line is inserted at top,
  1403.                 cursor remains fixed on the screen.
  1404.  RS J                Insert character. Insert a space at the curror,
  1405.                  push right, lose excess. First protected 
  1406.                 character is temporary right margin.
  1407.  RS K                Delete character at cursor position, pull
  1408.                  left. First protected character is temporary
  1409.                 right margin.
  1410.  
  1411.  RS L <loc_list><null>        Line drawing. Same as RS G 8 above.
  1412.  
  1413.  RS N                Shift out (GLeft pointed to G1)
  1414.  
  1415.  RS O                Shift in (GLeft pointed to G0, default)
  1416.  
  1417.  RS P @ <n>            *Unix mode
  1418.                 <n>, 0 = enter, 1 = exit Unix mode
  1419.  RS R @ <nn>            *Set row length
  1420.  RS R A 0 <nn><n>        *Set split screen mode, dual emulation
  1421.  RS R A 1 <nn>            *Set first row to display, dual emulation
  1422.  RS R B <type><ff><cs><graph>    *Set Device Options
  1423.  RS R C <ss><rr>        *Field attributes
  1424.             <ss>=<nn> set, <rr>=<nn> reset
  1425.             bit 4    blank (invisible)
  1426.             bit 3    dim
  1427.             bit 2    reverse video
  1428.             bit 1    underscore
  1429.             bit 0    blink
  1430.             toggle if both set and reset
  1431.  RS R D <ss><rr>        *Page Attributes
  1432.             <ss>=<nn> set, <rr>=<nn> reset
  1433.             bit 3    dim
  1434.             bit 2    reverse video
  1435.             bit 1    underscore
  1436.             bit 0    blink
  1437.             toggle if both set and reset
  1438.  RS R E <n>            Double high/wide characters (as char blank)
  1439.              <n>
  1440.              0    normal row
  1441.              1    double wide
  1442.              2    double high top
  1443.              3    double high bottom
  1444.              4    double high top/double wide
  1445.              5    double high bottom/double wide
  1446.             (The D470 does not support RS R commands)
  1447. --------------------
  1448. D470 ANSI mode additions
  1449.  Control Seq    Hex        Description of Action
  1450.  Control-G    07h        Bell
  1451.  Control-H    08h        Backspace
  1452.  Control-J    0Ah        Newline, can scroll window if Roll Mode is on,
  1453.                  else cursor wraps to upper left corner (Home).
  1454.                 Landing on a protected character yields a
  1455.                 cursor right operation.
  1456.  Control-L    0Ch        Form Feed, treated as New Line
  1457.  Control-M    0Dh        Carriage return. Go to left margin. If that
  1458.                  character is protected then a cursor right
  1459.                 is performed.
  1460.  Control-N    0Eh        Shift out
  1461.  Control-O    0Fh        Shift in
  1462.  Control-Q    11h        XOFF flow control
  1463.  Control-S    13h        XON flow control
  1464.  Control-[    1Bh        Escape char
  1465.  SS2        8eh        Single shift 2
  1466.  SS3        8fh        Single shift 3
  1467.  DCS        90h        Device control sequence introducer
  1468.  CSI        9bh        Control sequence introducer
  1469.  ST        9ch        String (DCS) terminator
  1470.  
  1471.  ESC c                    Reset to initial state
  1472.  ESC D                    Index (can scroll screen upward)
  1473.  ESC E                    Next Line (LF)
  1474.  ESC M                    Reverse index (can scroll down)
  1475.  ESC N                    SS2
  1476.  ESC P                    DCS
  1477.  ESC O                    SS3
  1478.  ESC V                    Start protected area
  1479.  ESC W                    End protected area
  1480.  ESC \                    ST
  1481.  ESC Pg Pset                Select character set
  1482.              Pg is  ( ) * +  for G0..G3
  1483.     RS F S        Pset
  1484.     equiv        <space>0 .. <space>?  DRCB 1..16
  1485.             !0 .. !5    DRCB 17..22
  1486.             (all mapped to one set at the moment)
  1487.  
  1488.     00        0        keyboard language
  1489.     06        1        Spanish
  1490.     07        2        Danish/Norwegian
  1491.     08        3        Swiss
  1492.     0e        4        DGI
  1493.     10        5        WP/math/Greek
  1494.     11        6        Line Drawing
  1495.     100 (soft)    7        *Mosaics
  1496.     02        A        UK
  1497.     01        B        US
  1498.     05        H        Swedish/Finnish
  1499.     0f        I        *Katakana G1
  1500.     09        J        *Katakana G0
  1501.     04        K        German
  1502.     03        L        French
  1503.  
  1504.  CSI Pc @                Insert Pc spaces under cursor
  1505.  CSI Pc <space> @            Scroll left Pc columns
  1506.  CSI Pc A                Cursor up Pc rows
  1507.  CSI Pc <space> A            Scroll right Pc columns
  1508.  CSI Pc B                Cursor down Pc rows
  1509.  CSI Pc C                Cursor forward Pc columns
  1510.  CSI Pc D                Cursor backward Pc columns
  1511.  CSI row; col H                Cursor to row, column
  1512.  CSI Pc J                Erase in display (Pc = 0,1,2)
  1513.  CSI Pc K                Erase in line (Pc = 0,1,2)
  1514.  CSI Pc L                Insert Pc lines under cursor
  1515.  CSI Pc M                Delete Pc lines under cursor
  1516.  CSI Pc P                Delete Pc chars under cursor
  1517.  CSI Pc S                Scroll up Pc rows
  1518.  CSI Pc T                Scroll down Pc rows
  1519.  CSI row; col f                Cursor to row, column
  1520.  CSI Pc; Pc;.. h            Set mode
  1521.          Pc    mode
  1522.         1    guarded area transfer (for printing)
  1523.         6    erasure
  1524.         <0    roll
  1525.         <1    blink
  1526.         <2    horizontal scroll
  1527.         <3    DG ANSI mode
  1528.         <4    forms mode
  1529.         <5    margins mode
  1530.  CSI Pc i                Media copy (Pc= 0, <0, 4, 5)
  1531.  CSI mode; mode;... l            Reset mode (see Set mode above)
  1532.  CSI Pc; Pc;... m            Set graphic rendition
  1533.      Pc        action
  1534.     0        all visual attributes off
  1535.     2        dim on
  1536.     4        underscore on
  1537.     5        blink on
  1538.     7        reverse video on
  1539.     30 .. 37    bold foreground color (1=red, 2=green, 4=blue)
  1540.     38,39        ignored (reserved, default foreground color)
  1541.     40 .. 47    background color (always dim)
  1542.     48,49        ignored (reserved, default background color)
  1543.     >0 .. >7    dim foreground color
  1544.     =0 .. =7    background color (always dim)
  1545.  
  1546.  CSI Pc n                Device status report
  1547.                      Reports ESC [ 0 n  meaning ready
  1548.  CSI loc; width; height; color p    Draw bar
  1549.  CSI loc; radius; start; end <space> p    Draw arc
  1550.  CSI count; onvalue; offvalue q        Change attributes
  1551.  CSI <space> q                Read graphics cursor
  1552.  CSI <space> r                Read cursor attributes
  1553.  CSI Pc; set; num s            Read/Reserve characters
  1554.                      Reports 2000 chars available
  1555.  CSI color <space> s            *Graphics cursor color
  1556.  CSI Pc t                Read offset (Pc=0)/Show columns(Pc=1)
  1557.  CSI x; y <space> t            Write graphics cursor (to x,y)
  1558.  CSI row; col u                Screen position (RS F P style)
  1559.  CSI <space> u                Cursor (graphics) off
  1560.  CSI Pc; Pv; Pc; Pv;... v        Set parameters
  1561.      what    Pc        Pv
  1562.      defaults    0            *select defaults for below
  1563.      kbd lang    1        0    keyboard nationality char set in use
  1564.                 1    DGI (default
  1565.      7/8 bit    2        0    7-bit
  1566.                      1    8-bit
  1567.      cursor type 3        0    not displayed
  1568.                      1    blinking underscore
  1569.                 2    reverse video block
  1570.                 3    blinking reverse video block
  1571.      *scroll rate 4        0    jump
  1572.                      1    smooth, 5 bit rows/sec
  1573.                 2    smooth, 10 bit rows/sec
  1574.  
  1575.  CSI <space> v                Cursor (graphics) on
  1576.  CSI Pc; Pseries w            Set margins
  1577.          Pc = 0, exit alt temp margins
  1578.          Pc = 1, set absolute margins at left; right
  1579.         Pc = 2, set temp alt margins at row; left; right
  1580.  
  1581.  CSI <space> w                Cursor reset
  1582.  CSI x                    Read terminal configuration
  1583.  CSI Pc <space> x            Cursor track
  1584.  CSI n1; n2;...n16 y            Set print colors
  1585.  CSI n1; n2; n3; n4 <space> z        Set color map
  1586.  CSI <space> |                *Push
  1587.  CSI <space> }                *Pop
  1588.  
  1589.  
  1590.  DCS A <char><string of dd> ST        Define character
  1591.  DCS B <string of loc> ST        Draw line
  1592.  DCS C <offset><pattern> ST        Set Pattern (for line drawing)
  1593.  DCS D <string of nn n> ST        Set Windows
  1594.  DCS E <string of loc> ST        Draw polygon
  1595.  DCS F ST                Report failures
  1596.                  Report is DCS F ST  meaning no failures
  1597.  
  1598.  
  1599.  DG Key name        Kermit Verb       D470 Data General ANSI mode
  1600.                  prefix  second character
  1601.  F1..F15              dgF1..dgF15       ESC [ 01 z .. ESC [ 14 z   ESC [ 00 z
  1602.  C1..C4            dgC1..dgC4       ESC [ 20 z .. ESC [ 23 z
  1603.  Uparrow        uparr       ESC [ A
  1604.  Rightarrow        rtarr       ESC [ C
  1605.  Leftarrow        lfarr       ESC [ D
  1606.  Downarrow        dnarr       ESC [ B
  1607.  
  1608. --------------------
  1609.  
  1610. 3. COMPOSE-KEY SEQUENCES
  1611.  
  1612. Compose-key sequences are available for entering special characters during all
  1613. types of terminal emulation, as long as Kermit's TERMINAL CHARACTER-SET is
  1614. LATIN1, or (for DG terminal emulation) DG-INTERNATIONAL, or (for DEC terminal
  1615. emulation) DEC-MCS.
  1616.  
  1617. Keyboard verb \Kcompose or \KdgSPCL (synonyms) must be assigned to a key.
  1618. Press this key and then two more as illustrated in the following table
  1619. Hexadecimal output codes are shown below for each case; "n/a" means no output
  1620. is produced.
  1621.  
  1622. Case and order insensitive:
  1623.   Input pair        DG Int    Latin1    Graphic            
  1624.   ++            23h    n/a    #            
  1625.   AA            40h    n/a    @            
  1626.   ((            5Bh    n/a    [            
  1627.   // or /<        5Ch    n/a    \            
  1628.   ))            5Dh    n/a    ]            
  1629.   ^<space>        7Eh    n/a    ^            
  1630.   (-            7Bh    n/a    {            
  1631.   /^            7Ch    n/a    |            
  1632.   )-            7Dh    n/a    }
  1633.   <<            B1h    ABh    << (Left guillemot)
  1634.   0^ or *<space>    BCh    B0h    Degree, ring above
  1635.   +-            B6h    B1h    +-
  1636.   >>            B0h    BBh    >> (Right guillemot)
  1637.   SS            FCh    DFh    German double s (Ess-Zet)
  1638.   /U            A3h    B5h    Greek mu
  1639.   2^            A4h    B2h    2 superscript
  1640.   3^            A5h    B3h    3 superscript
  1641.   C/ or C|        A7h    A2h    Cent sign
  1642.   L- or L=        A8h    A3h    Pound Sterling  (L== is not supported)
  1643.   Y- or Y=        B5h    A5h    Yen sign
  1644.   SO or S! or S0    BBh    A7h    Paragraph sign
  1645.   XO or X0        A6h    A5h    Currency sign
  1646.   A-            A9h    A4h    Feminine ordinal
  1647.   CO or C0        ADh    A9h    Copyright sign
  1648.   PP or P!        B2h    B6h    Pilcrow sign
  1649.   .^            B9h    B7h    Middle dot
  1650.   O-            AAh    BAh    Masculine ordinal
  1651.   12            A2h    BDh    Fraction one-half
  1652.   !!            ABh    A1h    Inverted exclamation
  1653.   ??            ACh    BFh    Inverted query mark
  1654.   T-            AFh    n/a    Not equals sign
  1655.   TM            B3h    AEh    Trademark sign
  1656.   FF            B4h    n/a    Florin sign (DGI only)
  1657.   <=            B7h    n/a    Less than or equals sign (DGI only)
  1658.   >=            B8h    n/a    Greater than or equals sign (DGI only)
  1659.   ,-            A1h    ACh    Not sign
  1660.   ""            BDh    A8h    Diaeresis
  1661.   ''            BEh    B4h    Accent acute
  1662.   RO            AEh    AEh    Registered sign
  1663.   ||            n/a    A6h    Vertical broken bar
  1664.   --            n/a    ADh    Soft hyphen
  1665.   -^            n/a    AFh    Macron
  1666.   ,,            n/a    B8h    Cedilla
  1667.   34            n/a    BEh    Fraction three-fourths
  1668.   XX            n/a    D7h    Multiplication sign
  1669.   -:            n/a    F7h    Division sign
  1670.   1^            n/a    B9h    Superscript 1
  1671.   14            n/a    BCh    Fraction one-fourth
  1672.  
  1673. Case and order sensitive:
  1674.   Input pair        DG Int    Latin1    Graphic            
  1675.   EO            D7h    n/a    OE digraph
  1676.   AE            C6h    C6h    AE digraph
  1677.   ae            E6h    E6h    ae digraph
  1678.   ,C            C7h    C7h    Cedilla
  1679.   ,c            E7h    E7h    cedilla
  1680.   /O            D6h    D8h    O oblique stroke
  1681.   /o            F6h    F8h    o oblique stroke
  1682.   HT            n/a    DEh    Icelandic Thorn
  1683.   ht            n/a    FEh    Icelandic thorn
  1684.   -D            n/a    D0h    Icelandic Eth
  1685.   -d            n/a    F0h    Icelandic eth
  1686.  
  1687. Case sensitive, order insensitive:
  1688.   Input pair        DG Int    Latin1    Graphic            
  1689.   'A            C0h    C1h    A-acute
  1690.   'a            E0h    E1h     a-acute
  1691.   `A            C1h    C0h    A-grave
  1692.   `a            E1h    E0h    a-grave
  1693.   ^A            C2h    C2h    A-circumflex
  1694.   ^a            E2h    E2h    a-circumflex
  1695.   "A            C3h    C4h    A-diaeresis
  1696.   "a            E3h    E4h    a-diaeresis
  1697.   ~A            C4h    C3h    A-tilde
  1698.   ~a            E4h    E3h    a-tilde
  1699.   *A            C5h    C5h    A-ring
  1700.   *a            E5h    E5h    a-ring
  1701.   'E            C8h    C9h    E-acute
  1702.   'e            E8h    E9h    e-acute
  1703.   `E            C9h    C8h    E-grave
  1704.   `e            E9h    E8h    e-grave
  1705.   ^E            CAh    CAh    E-circumflex
  1706.   ^e            EAh    EAh    e-circumflex
  1707.   "E            CBh    CBh    E-diaeresis
  1708.   "e            EBh    EBh    e-diaeresis
  1709.   'I            CCh    CDh    I-acute
  1710.   'i            ECh    EDh    i-acute
  1711.   `I            CDh    CCh    I-grave
  1712.   `i            EDh    ECh    i-grave
  1713.   ^I            CEh    CEh    I-circumflex
  1714.   ^i            EEh    EEh    i-circumflex
  1715.   "I            CFh    CFh    I-diaeresis
  1716.   "i            EFh    EFh    i-diaeresis
  1717.   ~N            D0h    D1h    N-tilde
  1718.   ~n            F0h    F1h    n-tilde
  1719.   'O            D1h    D3h    O-acute
  1720.   'o            F1h    F3h    o-acute
  1721.   `O            D2h    D2h    O-grave
  1722.   `o            F2h    F2h    o-grave
  1723.   ^O            D3h    D4h    O-circumflex
  1724.   ^o            F3h    F4h    o-circumflex
  1725.   "O            D4h    D6h    O-diaeresis
  1726.   "o            F4h    F6h    o-diaeresis
  1727.   ~O            D5h    D5h    O-tilde
  1728.   ~o            F5h    F5h    o-tilde
  1729.   'U            D8h    DAh    U-acute
  1730.   'u            F8h    FAh    u-acute
  1731.   `U            D9h    D9h    U-grave
  1732.   `u            F9h    F9h    u-grave
  1733.   ^U            DAh    D8h    U-circumflex
  1734.   ^u            FAh    F8h    u-circumflex
  1735.   "U            DBh    DCh    U-diaeresis
  1736.   "u            FBh    FCh    u-diaeresis
  1737.   "Y            DDh    n/a    Y-diaeresis
  1738.   "y            FDh    FFh    y-diaeresis
  1739.   'Y            n/a    DDh    Y-acute
  1740.   'y            n/a    FDh    y-acute
  1741.   
  1742.  
  1743. (End of File MSVIBM.VT)
  1744.