VT320/VT102/VT52/Heath-19 Emulator in MS Kermit/IBM-PC 22 June 89 Code Summary VT320/VT102 keypads Heath-19 and VT52 Keypads IBM keys IBM Keys +------+------+------+------+ +------+------+-------+----------+ | PF1 | PF2 | PF3 | PF4 | | Blue | Red | Grey | up arrow | Vendor | F1 | F2 | F3 | F4 | | F1 | F2 | F3 | up arrow | Kermit +------+------+------+------+ +------+------+-------+----------+ | 7 | 8 | 9 | - | | 7 | 8 | 9 |down arrow| | F5 | F6 | F7 | F8 | | F5 | F6 | F7 |down arrow| +------+------+------+------+ +------+------+-------+----------+ | 4 | 5 | 6 | , | | 4 | 5 | 6 | rgt arrow| | F9 | F10 | SF1 | SF2 | | F9 | F10 | SF1 | rgt arrow| +------+------+------+------+ +------+------+-------+----------+ | 1 | 2 | 3 | E | | 1 | 2 | 3 |left arrow| | SF3 | SF4 | SF5 | n S| | SF3 | SF4 | SF5 |left arrow| +------+------+------+ t F| +------+------+-------+----------+ | 0------0 | . | e 6| | 0------0 | . | Enter | | SF7 | SF8 | r | | SF7 | SF8 | SF6 | +-------------+------+------+ +-------------+-------+----------+ SF1 means push Shift and F1 keys simultaneously --------------------------------------------------------------------------- Below, the acronyms CSI and SS3 stand for 8-bit control codes in an 8-bit environment or for their 7-bit equivalents "ESC [" and "ESC O", respectively. Command SET TERMINAL CONTROL {8-BIT | 7-BIT}, and an equivalent command from the host, determines the usage for output text; use of parity forces 7-bit mode. CSI is decimal 155, SS3 is decimal 143. Similarly, DCS is decimal 144 or ESC P and ST is decimal 156 or ESC \. --------------------------------------------------------------------------- Codes set by DEC and Heath arrow keys Key Verb IBM VT320/VT102 mode VT52/H19 mode key Cursor Application Cursor or Application up uparr up CSI A SS3 A ESC A down dnarr down CSI B SS3 B ESC B right rtarr right CSI C SS3 C ESC C left lfarr left CSI D SS3 D ESC D Codes sent by DEC editing keys, not preassigned to keys. Key Verb VT320 mode VT102/VT52/H19 mode Find decFind CSI 1 ~ these keys Insert Here decInsert CSI 2 ~ send nothing Remove decRemove CSI 3 ~ Select decSelect CSI 4 ~ Prev Screen decPrev CSI 5 ~ Next Screen decNext CSI 6 ~ ~ is ascii chart 7/14 Codes sent by DEC Numeric Keypad Key Verb IBM ANSI VT320/VT102 mode VT52/H19 mode key Numeric Application Numeric Application PF1/HF7/Blue Gold,pf1 F1 SS3 P SS3 P ESC P ESC P PF2/HF8/Red pf2 F2 SS3 Q SS3 Q ESC Q ESC Q PF3/HF9/Grey pf3 F3 SS3 R SS3 R ESC R ESC R PF4/HF1 pf4 F4 SS3 S SS3 S ESC S ESC S 0 kp0 SF7 0 SS3 p 0 ESC ? p 1 kp1 SF3 1 SS3 q 1 ESC ? q 2 kp2 SF4 2 SS3 r 2 ESC ? r 3 kp3 SF5 3 SS3 s 3 ESC ? s 4 kp4 F9 4 SS3 t 4 ESC ? t 5 kp5 F10 5 SS3 u 5 ESC ? u 6 kp6 SF1 6 SS3 v 6 ESC ? v 7 kp7 F5 7 SS3 w 7 ESC ? w 8 kp8 F6 8 SS3 x 8 ESC ? x 9 kp9 F7 9 SS3 y 9 ESC ? y comma (,) kpcoma SF2 , SS3 l , ESC ? l minus (-) kpminus F8 - SS3 m - ESC ? m period (.) kpdot SF8 . SS3 n . ESC ? n Enter kpenter SF6 CR or SS3 M CR or ESC ? M CR LF (newline on) CR LF (SFn means hold down Shift key while pressing Function key n.) Codes sent by DEC LK201 keyboard function keys, not preassigned to PC keys Key name Verb VT320 mode VT102/VT52/H19 mode Hold Screen nothing nothing Print Screen nothing nothing Set-Up nothing nothing F4 nothing nothing F5 (Break) nothing nothing F6 decF6 CSI 17 ~ nothing F7 decF7 CSI 18 ~ nothing F8 defF8 CSI 19 ~ nothing F9 defF9 CSI 20 ~ nothing F10 defF10 CSI 21 ~ nothing F11 (ESC) defF11 CSI 23 ~ ESC F12 (BS) decF12 CSI 24 ~ BS F13 (LF) decF13 CSI 25 ~ LF F14 decF14 CSI 26 ~ nothing Help decHelp CSI 28 ~ nothing Do decDo CSI 29 ~ nothing F17 defF17 CSI 31 ~ nothing F18 decF18 CSI 32 ~ nothing F19 defF19 CSI 33 ~ nothing F20 decF20 CSI 34 ~ nothing Note: F6 - F20 are DEC "User Definable Keys" which means their output can be redefined by the host (not by the terminal owner). See below for method. An often confusing item is knowing the mode of the auxillary keypad: numeric or application. Digital Equipment Corporation designed the terminal to change modes only under command from the remote computer and not at all from the keyboard. So the startup state is numeric/cursor mode, and reception of escape sequences "ESC [ ? 1 h" or "l" changes the mode. Kermit verbs for the keypad and cursor keys generate the correct escape sequences appropriate to the cur- rent mode and terminal type. A best attempt is made to safely test for the 101/102 key Enhanced keyboard and use it if present. If it is present then the keyboard translator separates the individual arrow keys from those on the numeric keypad and also separates the asterisk and forward slash keys on the keypad from those on the regular typewriter keyboard. These special Enhanced keyboard keys are reported as scan codes with 4096 added to the base scan code. OTHER IBM KEYS OPERATIONAL IN CONNECT MODE: IBM key IBM Verb Action Keypad Del Send ASCII Del code (rubout) \127 Backspace (<-) Send ASCII Del code (rubout) \127 (BS is \8) Keypad - MODELINE Toggle mode line on/off (only if Mode Line is enabled and not used by the host). Alt - TERMTYPE Toggle among H-19, VT52, VT100, VT320 types. Alt = RESET Clear screen and reset terminal emulator to starting (setup) state. Alt B BREAK Send a BREAK signal Alt H HELP Show drop down help menu (detailed below) Alt S STATUS Show settings Alt X EXIT Exit Connect mode, back to Kermit prompt Home HOMSCN Roll screen up (text down) to beginning of storage. End ENDSCN Roll screen down (text up) to end of storage. PgUp UPSCN Roll screen up (back, earlier) one screen. PgDn DNSCN Roll screen down (forward, later) one screen. Ctrl-PgUp UPONE Roll screen up one line. Ctrl-PdDn DNONE Roll screen down one line. Control PrtSc PRTSCN Toggle on/off copying of received text to printer, "PRN" shows on far right of mode line when activated. Control-End DUMP Dump image of screen to a disk file or device. Default filename is KERMIT.SCN in the current directory. Use command SET DUMP to change the filename. Screen images are appended to the file, separated by formfeeds. Shift-PrtSc Standard DOS Print-screen, dump screen image to printer. unassigned HOLDSCRN DEC style Holdscreen, same as typing Control-S. "Alt -" means hold down Alt and type minus on the upper key rank. This switches among the various kinds of emulation but does not change most operat- ing parameters of the emulator. CONNECT ESCAPE COMMANDS: Type the Kermit escape character (normally "^]"), then one of the keys below: (equivalent IBM Verb) ? display this short list. HELP 0 send a null character. NULL B send a BREAK signal. BREAK C close connect session & return to Kermit prompt. EXIT F dump screen to filespec, default is KERMIT.SCN. DUMP H hangup the phone or network connection HANGUP L send a Long BREAK signal LBREAK M toggle mode line on/off. MODELINE P push to DOS. DOS Q quit (suspend) logging. LOGOFF R resume logging. LOGON S show status. STATUS Kermit escape character itself: send it to the host. 1.17.3. Responses To Characters Received By the Terminal Emulator Spaces shown between characters of escape sequences are there for ease of read- ing. The actual sequences contain no spaces. Unknown escape sequences are absorbed and ignored. DEC VT320 and VT102 functions while in ANSI (non-VT52) mode, unsupported features are marked by an asterisk (*): Control codes in C0 (no high bit) area Name ASCII value chart hex keyboard operation NUL 0/0 00h ^@ ignored except during transparent printing ENQ 0/5 05h ^E *Answerback message (not supported) BEL 0/7 07h ^G Sound DEC style beep BS 0/8 08h ^H Backspace, move cursor left one character HT 0/9 09h ^I Horizontal tab, move cursor to next tabstop LF 0/10 0ah ^J Linefeed, move cursor down one line VT 0/11 0bh ^K Vertical Tab, treated as a line feed FF 0/12 0ch ^L Formfeed, treated as a line feed CR 0/13 0dh ^M Carriage return, move cursor to col 1 SO/LS1 0/14 0eh ^N Map character set in G1 to GL, locking shift SI/LS0 0/15 0fh ^O Map character set in G0 to GL, locking shift DC1 1/1 11h ^Q XON flow control, resume communication DC3 1/3 13h ^S XOFF flow control, suspend communication CAN 1/8 18h ^X Cancel escape & control sequence in progress SUB 1/10 1ah ^Z Treated as a CAN ESC 1/11 1bh ^[ Escape, start escape seq, cancel any others DEL 7/15 7fh ^_ ignored except during transparent printing All others are ignored Control codes in C1 (high bit set) area. These are replaced by ESC in a 7-bit environment, or when Controls is set to 7-bit output. Name ASCII value chart 8-bit 7-bit operation IND 8/4 84h ESC D Index, move cursor down one line, scrolls NEL 8/5 85h ESC E Next line, like CR/LF, scrolls HTS 8/8 88h ESC H Set Horizontal Tab at cursor's column RI 8/13 8dh ESC M Reverse index, move cursor up one line,scrolls SS2 8/14 8eh ESC N Map G2 to GL for next char only, single shift SS3 8/15 8fh ESC O Map G3 to GL for next char only, single shift DCS 9/0 90h ESC P Device Control String introducer CSI 9/11 9bh ESC [ Control Sequence Introducer ST 9/12 9ch ESC \ String Terminator OSC 9/13 9dh ESC ] Operating System Command, consume through ST PM 9/14 9eh ESC ^ Privacy Message, consume through ST APC 9/15 9fh ESC _ Applications Prog Command, consume through ST All others are ignored Escape Seq Mnemonic Description of Action ESC ^L Enter Tektronix sub-mode, clear Tek screen. (This is ignored if DISABLE TEK has been given) ESC 7 DECSC Save cursor position, attributes, contents of char sets used as GL and GR, wrap flag, origin mode (DECOM), SS2/SS2 shifts. ESC 8 DECRC Restore cursor from previously saved position and information listed for DECSC ESC # 3 DECDHL Double height and width line, top half ESC # 4 DECDHL Double height and width line, bottom half ESC # 5 DECSWL Single height and width line ESC # 6 DECDWL Double width single height line ESC # 8 DECALN Screen alignment test, fill screen with E's ESC ( SCS Designates 94 byte character set to G0 ESC ) SCS Designates 94 byte character set to G1 ESC * SCS Designates 94 byte character set to G2 ESC + SCS Designates 94 byte character set to G3 ESC - SCS Designates 96 byte character set to G1 ESC . SCS Designates 96 byte character set to G2 ESC / SCS Designates 96 byte character set to G3 size character set A 94 UK-ASCII (ASCII, sharp sign 2/3 replaced by Sterling sign), available only when a VT102 A 96 ISO Latin-1 (default in G2, G3) B 94 ASCII (default in G0, G1) 0 94 DEC Special Graphics (line drawing) 1 94/96 Kermit, ALT-ROM 2 94 DEC Special Graphics (line drawing) %5 94 DEC Supplemental Graphics < 94/96 User Preferred Supplemental Set* > 94 DEC Technical set (from VT340's) * VT300 terminals give choice of ISO Latin-1 (96) or DEC Supplemental Graphics (94) determined by a Setup menu selection or host command. MS Kermit has DEC Supplemental Graphics as the startup UPSS character set. If the size of the character set does not match the nothing happens. Startup defaults are ASCII in G0 and G1, ISO Latin-1 in G2 and G3, GL points to G0, GL points to G2. Activating DEC National Replacement Charactes maps the NRC set selected by SET TERMINAL CHARACTER-SET into G0..G3. Single and Locking shifts, SS2, SS3, LS0 (SI), LS1 (SO), LS1R, LS2, LS2R, LS3, LS3R determine which set is mapped to the GLeft or GRight area. ESC < Exit VT52 mode (to previous ANSI kind/VT320) ESC = DECKPAM Enter numeric keypad application mode ESC > DECKNPNM Enter numeric keypad numeric mode ESC D IND Index, moves cursor down one line, can scroll ESC E NEL Move cursor to start of line below, can scroll ESC sp F S7C1T Disable output of 8-bit controls, use 7-bit ESC sp G S8C1T Enable output of 8-bit control codes ESC H HTS Set one horizontal tab at current position ESC M RI Reverse Index, cursor up one line, can scroll ESC N SS2 Single Shift 2, map G2 to GL for next char only ESC O SS3 Single Shift 3, map G3 to GL for next char only ESC P DCS Start Device Control String command (see below) ESC Z DECID Identify terminal. Responses are VT320: CSI ? 63; 1; 2; 8; 9 c VT102: CSI ? 6 c VT52: ESC / Z Heath-19: ESC / K ESC \ ST String Terminator of Device Control Strings ESC ] OSC Operating System Command, ignored through ST ESC ^ PM Privacy Message, ignored through ST ESC _ APC Applications Program Command, ignored thru ST ESC c RIS Reset terminal to initial state, hard reset ESC n LS2 Map character set in G2 to GL, locking shift ESC o LS3 Map character set in G3 to GL, locking shift ESC | LS3R Map character set in G3 to GR, locking shift ESC } LS2R Map character set in G2 to GR, locking shift ESC ~ LS1R Map character set in G1 to GR, locking shift ESC [ CSI Control Sequence Introducer, see list below Control Seq Mnemonic Description of Action CSI Pn @ ICH Insert Pn spaces at and after cursor CSI Pn A CUU Cursor up Pn lines, does not scroll CSI Pn B CUD Cursor down Pn lines, does not scroll CSI Pn C CUF Cursor forward, stays on same line CSI Pn D CUB Cursor backward, stays on same line CSI Pn E CNL Next-line (same as cr/lf), do Pn times CSI Pn F CPL Previous-line (reverse index), do Pn times CSI Pc G CHA ANSI Cursor to absolute column Pc CSI Pr; Pc H CUP Set cursor to row, column (same as HVP) CSI Pn I CHI Cursor forward Pn tabstops (Horizontal Index) CSI Ps J ED Erase in display: 0 = cursor to end of screen, inclusive 1 = start of screen to cursor, inclusive 2 = entire screen, reset lines to single width, cursor does not move. CSI ? Ps J DECSED Selective erase in display, Ps as for CSI Ps J Not supported in MS Kermit CSI Ps K EL Erase in line: 0 = cursor to end of line, inclusive 1 = start of line to cursor, inclusive 2 = entire line, cursor does not move CSI ? Ps K DECSEL Selective erase in line, Ps as for CSI Ps K Not supported in MS Kermit CSI Pn L IL Insert Pn lines preceding current line. CSI Pn M DL Delete Pn lines from current downward, incl. CSI Pn P DCH Delete Pn chars from cursor to left, incl. CSI Pn; Pn R CPR Cursor report (row, column), sent by terminal Example: home position yields CSI 1; 1 R CSI Pn X ECH Erase Pn chars at and to right of cursor CSI Pn a CUF ANSI Cursor forward Pn columns CSI Pn c DA Device Attributes request, see reports CSI > Pn c DA Secondary Device Attributes req, see reports CSI Pr d CVA ANSI Cursor to row Pr, absolute CSI Pn e CUD ANSI Cursor down Pn rows CSI Pr; Pc f HVP Set cursor to row, column (same as CUP) CSI Ps g TBC Tabs clear, Ps: 0 = at this position, 3 = all CSI Pn i MC Media Copy, see below CSI Pa;...Pa h SM Set ANSI mode, see table below CSI Pa;...Pa l SM Reset ANSI mode, see table below Pa Mnemonic Mode Set (h) Reset (l) 2 KAM *Keyboard locked unlocked 3 CRM Control rep act upon debug display 4 IRM Insert insert replace 10 HEM Horz editing n/a always reset 12 SRM Local echo off on 20 LNM New Line cr=>cr/lf cr=>cr CSI ? Ps;...;Ps h SM Set DEC mode, see table below CSI ? Ps;...;Ps l RM Reset DEC mode, see table below Ps Mnemonic Mode Set (h) Reset (l) 0 error (ignored) 1 DECCKM cursor keys application cursor/numeric 2 DECANM ANSI VT320/VT102 VT52 3 DECCOLM Columns +132 col 80 col 4 DECSCLM *Scrolling smooth jump 5 DECSCNM Screen, whole reverse video normal 6 DECOM Origin stay in margins ignore margins 7 DECAWM Autowrap on off 8 DECARM *Autorepeat on off 9 DECINLM *Interlace on off 18 DECPFF Printer term Form Feed none 19 DECPEX Printer extent screen scrolling region 25 DECTCEM Cursor visible invisible 34 n/a Invoke macro: TERMINALS TERMINALR 38 n/a Graphics (Tek) ++graphics text 42 DECNRCM Nat Repl Char enable disable 66 DECNKM Numeric keypad application numeric 68 DECKBUM *Typewriter data process typewriter + See comments on EGA boards. ++ Ignored if DISABLE TEK has been given. (SET TERMINAL CHARACTER-SET must be given to employ DEC National Replacement Characters. Enabling NRCs replaces G0..G3 chars sets with the NRC set and disables 8-bit controls; disabling only re-enables 8-bit controls.) CSI Pn i MC Printer controls (Media Copy) Pn 0 Print whole Screen 4 Exit printer controller (transparent print) 5 Enter printer controller (transparent print) CSI ? Pn i MC DEC Printer controls (Media Copy) Pn 1 Print line containing cursor 4 Exit auto print (stop echoing to printer) 5 Enter autoprint (echo screen chars to printer) CSI Ps;...Ps m SGR Select graphic rendition Ps 0 all attributes off (#'s 1, 4, 5, 7) 1 bold, intensify foreground 4 underscore (reverse video on IBM CGA/EGA) 5 blink 7 reverse video, per character 22 bold off, VT320 24 underline off, VT320 25 blinking off, VT320 27 reverse video off, VT320 non-DEC extensions: 30-37 = foreground color = 30 + colors 40-47 = background color = 40 + colors colors: 1 = red, 2 = green, 4 = blue Transparent printing sends all output, except the CSI 4 i termination string, to the printer and not the screen, uses an 8-bit channel if no parity so NUL and DEL will be seen by the printer and termination recognizer code, and all translation and character set selections are bypassed. CSI Ps n DSR Device Status request, see reports CSI ! p DECSTR Soft reset of terminal (keeps screen) CSI Pa $ p DECRQM Report ANSI mode settings, see reports CSI ? Pd $ p DECRQM Report DEC mode settings, see reports CSI Pl; Pc " p DECSCL Set conformance level (set terminal type) Pl Pc level selected (also does a soft reset, not hard) 61 0 VT102, 7-bit controls (61 is otherwise VT100 level) 62 0 or 2 VT320, 8-bit controls (62 is otherwise VT200 level) 62 1 VT320, 7-bit controls 63 0 or 2 VT320, 8-bit controls (63 is otherwise VT300 level) 63 1 VT320, 7-bit controls CSI Ps;...;Ps q DECLL Load LEDs, Ps = 0 means clear LED #1-4. VT102 Ps=1,2,3,4 sets LED # 1,2,3,4 on status line. CSI Ps " q DECSCA Select Character Protection Attribute Ps = 0 erasable by DECSED or DECSEL, 1 not erasable by these cmds. Requires attribute bit per display char. Not supported by MS Kermit. CSI Pt; Pb r DECSTBM Set top and bottom scrolling margins, resp. CSI r resets margin to full screen. CSI Ps $ u DECRQTSR Terminal State request, see reports CSI & u DECRQUPSS User Preferred char set request, see reports CSI Ps $ w DECRQPSR Presentation State request, see reports CSI sol x DECREQTPARM Request terminal parameters, see reports CSI 2; Ps y DECST VT102 Confidence test, exits status line CSI 4; Ps;...Ps y DECTST VT320 Confidence tests, exits status line CSI Ps $ } DECSASD Select active status display Ps = 0 select main display Ps = 1 select status line Moves cursor to selected display area. This command will be ignored unless the status line has been enabled by CSI 2 $ ~. When the status line has been selected cursor remains there until the main display is reselected by CSI 0 $ }. CSI Ps $ ~ DECSSDT Select Status Line Type Ps meaning 0 no status line (empty) 1 indicator line (locally owned, Kermit default) 2 host-writable line Other extensions: CSI 25; Pc f VT320/VT102/H19 move cursor to 25th line. CSI 25; Pc H VT320/VT102/H19 move cursor to 25th line. Leave the same way as you went in. (These will disable Kermit's own status line.) ESC ^L Enter Tektronix sub-mode, clear Tek screen. (This is ignored if DISABLE TEK has been given) VT320 Report requests and responses Request CSI c primary device attributes (terminal ident) Responses CSI ? 63; 1; 2; 8; 9 c VT320 (132 col, printer, UDK, NRC) CSI ? 6 c VT102 ESC / Z VT52, submode of VT320/VT102 ESC / K VT52, when in Heath-19 mode Request CSI > c secondary device attributes Response CSI > 24; 0; 0; 0 c VT320, firmware version 0.0 (Kermit) Request CSI 5 n operating status Response CSI 0 n no malfunction Request CSI 6 n cursor position report Response CSI Pr; Pc R Pr = row, Pc = column. Origin is 1,1 Request CSI ? 15 n printer status Response CIS ? 10 n printer ready or CSI ? 11 n printer is not ready Request CSI ? 25 n User Definable Key status Response CSI ? 20 n UDKs are unlocked (21 if locked) Request CSI ? 26 n keyboard dialect Response CSI ? 27; Ps n in MS Kermit this is controlled by command SET TERMINAL CHARACTER-SET Ps Country Ps Country 1 North American/ASCII 9 Italian 2 British 13 Norwegian/Danish 8 Dutch 16 Portugese 6 Finnish 15 Spanish 14 French 12 Swedish 4 French Canadian 11 Swiss (German) 7 German Request CSI 1 $ u terminal state (wants entire machine state) Response DCS 1 $ ST MS Kermit does not upload this state info. Request DCS Ps $ p string ST terminal restore state (downloads state info) Response none required, ignored by MS Kermit. Request CSI & u request User Preferred Supplemental Set Response DCS Ps ! u string ST Ps is 0 for a 94 byte set, or 1 for a 96 byte set string is the character set ident string ("A" for ISO Latin-1/96 or "%5" for DEC Supplemental Graphics/94) Request CSI 1 $ w cursor information report Response DCS 1 $ u Pr; Pc; Pp; Srend; Satt; Sflag; Pgl; Pgr; Scss; Sdesig ST where Pr is cursor row (counted from origin as 1,1) Pc is cursor column Pp is 1, video page, a constant for VT320s Srend = 40h + 8 (rev video on) + 4 (blinking on) + 2 (underline on) + 1 (bold on) *Satt = 40h (Selective erase, not supported in MS Kermit) Sflag = 40h + 8 (autowrap pending) + 4 (SS3 pending) + 2 (SS2 pending) + 1 (Origin mode on) Pgl = char set in GL (0 = G0, 1 = G1, 2 = G2, 3 = G3) Pgr = char set in GR (same as for Pgl) Scss = 40h + 8 (G3 is 96 char) + 4 (G2 is 96 char) + 2 (G1 is 96 char) + 1 (G0 is 96 char) Sdesig is string of character idents for sets G0...G3, with no separators between set idents. If NRCs are active the set idents (all 94 byte types) are: Britsh A Italian Y Dutch 4 Norwegian/Danish ' (hex 60) or E or 6 Finnish 5 or C Portuguese %6 French R Spanish Z French Canadian 9 or Q Swedish 7 or H German K Swiss = (MS Kermit uses the first choice when there are multiple) Request CSI 2 $ w tab stop report Response DCS 2 $ u Pc;Pc;...Pc ST Pc are column numbers (from 1) where tab stops occur. Note the separator "/" occurs in a real VT320 but should have been ";". Request DSC Ps $ t string ST restore presentation state Ps is 1 for cursor information, in form of DCS 1 $ w report above 2 for tab stop information, in form of DCS 2 $ w report above Response none, commands are executed to restore the indicated information; an error may leave the emulator in an inconsistent state. Request CSI Pa $ p ask state of ANSI mode controls Response CSI Pa; Ps $ y where Pa is the single ANSI mode below Pa Mnemonic meaning Ps state 2 KAM keyboard action (if locked) 0 unknown mode 3 CRM control representation (no debug) 1 set 4 IRM insert/replace mode (if insert mode) 2 reset 10 HEM horizontal editing (perm reset) 3 permanently set 12 SRM send/receive (local echo on) 4 permanently reset 20 LNM newline (if newline on) Request CSI ? Pd $ p state of DEC modes Response CSI Pd; Ps $ y where Pd is a single DEC state below and Ps is a state value as above Pd Mnemonic meaning 1 DECCKM cursor key mode (vs application mode) 2 DECANM ANSI mode (vs VT52 submode) 3 DECCOLM column (if 132 columns) 4 DECSCLM if scrolling is smooth (vs jump) 5 DECSCNM screen (if video is reversed) 6 DECOM origin mode (if on) 7 DECAWM autowrap (if on) 8 DECSRM autorepeat keyboard (always on in Kermit) 18 DECPFF print with Form Feed 19 DECPEX print extent 25 DECTCEM text cursor enabled 42 DECNRCM DEC National Replacement Char set, if in use 66 DECNKM numeric keypad (vs applications mode) 67 DECBKM if backarrow sends BS or DEL (say DEL) 68 DECBUM keyboard usage (say typewriter) Request DCS $ q string ST control function setting Response DCS Ps $ r string ST Ps is 0 for valid request, 1 for invalid request Request string is one or two characters below saying which control function is to be reported: $} select active status display "q set character attribute "p set conformance level $~ set status line type r set top and bottom margins m set graphic rendition The reponse string is the same as an incoming command which would do that function except the leading CSI is omitted. The host is obtaining a text string to be repeated back later with a CSI prefix to restore the current state of the selected function. Example: request DCS $ q r ST what are top/bottom margin settings? response DCS 0 $ r 1; 24 r ST which matches command CSI 1; 24 r ^-----^ ^-----^ Request CSI & u what is the User Preferred Supplemental Set Response DCS Ps ! u string ST where Ps is 0 for 94 byte character set, 1 for 96 byte set string is the letter code for the character set, either "A" (96) for ISO Latin-1 or "%5" (94) for DEC Suppl Graphics. Request DCS Ps ! u string ST assign User Preferred Supplemnental Set Ps and string are the same as for the CSI & u request above. Request DCS Pc; Pl | Ky1/St1...Kyn/Stn ST set User Definable Keys Pc = 0 clear all UDK definitions before starting, = 1 clear one key. Pl = 0 lock the keys, = 1 do not lock; MS Kermit never locks keys. Kyn/Stn are key identifier and definition string. Form of Kyn is two ascii digits, 17-34, representing the DEC key number for DEC F6 through DEC F20; F6 = 17, etc as per keyboard table well above. Stn is definition text written as a pair of hex characters per final definition byte; upper or lower case A..F are the same. Example: DCS 1; Pl | 28/48656c70 ST defines DEC key Help (verb decHelp) as the four characters "Help" and does not erase all UDK definitions. The lock indicator, Pl, is ignored by MS Kermit. 60 hex chars max. Response none Request CSI sol x DECREQTPARM Request terminal parameters, VT102 only Response CSI sol; par; nbits; xspeed; rspeed; clkmul; flags x DECREPTPARM Report of terminal parameters sol 0 terminal can send unsolicited reports, supported as sol = 1 1 terminal reports only on request 2 this is a report (DECREPTPARM) 3 terminal reporting only on request par = 1 none, 2 space, 3 mark, 4 odd, 5 even nbits = 1 (8 bits/char), 2 (7 bits/char) xspeed, rspeed = transmit and receive speed index: 0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128 correspond to speeds of 50,75,110,134.5,150,200,300,600,1200,1800,2000,2400,3600,4800,9600,19200, and 38400 baud or above. clkmul = 1 (clock rate multiplier is 16) flags = 0-15 (Setup Block #5), always 0 here Request DCS Ps; ...Ps { string ST download or clear soft characters Response none not supported in MS Kermit VT320 emulator 1.17.4. DEC VT52 Mode Functions Escape sequence Description of action ESC 7 Save cursor position ESC 8 Restore cursor position ESC A Cursor up ESC B Cursor down ESC C Cursor right ESC D Cursor left ESC F Enter graphics mode ESC G Exit graphics mode ESC H Cursor home ESC I Reverse line feed ESC J Erase to end of screen ESC K Erase to end of line ESC V Print cursor line ESC X Exit Printer Controller (transparent print) ESC Y row column Direct cursor address, offset from space ESC W Enter Printer Controller (transparent print) ESC Z Identify (response is ESC / Z) ESC ^ (caret) Enter autoprint mode (printer echoes screen) ESC _ (underscore) Exit autoprint mode ESC ] Print Screen ESC = Enter alternate keypad mode ESC > Exit alternate keypad mode ESC < Enter ANSI mode (changes to VT320 or VT102) 1.17.5. Heath-19 Functions While in Non-ANSI Mode Escape seq Mnemonic Description of action ESC A HCUU Cursor Up ESC B HCUD Cursor Down ESC C HCUF Cursor Forward, stays on same line ESC D HCUB Cursor Backward, stays on same line ESC E HCD Clear display ESC F HEGM Enter Graphics mode ESC G HXGM Exit Graphic mode ESC H HCUH Cursor Home ESC I HRI Reverse Index ESC J HEOP Erase to end of page ESC K HEOL Erase to end of line ESC L HIL Insert line ESC M HDL Delete line ESC N HDCH Delete character ESC O HERM Exit Insert Char mode ESC Y row col HDCA Direct cursor addressing, offset from space ESC Z HID Identify (response is ESC / K which is a VT52) ESC b HBD Erase Beginning of display ESC j HSCP Save cursor position ESC k HRCP Set cursor to saved position ESC l HEL Erase entire line ESC n HCPR Cursor Position Report request ESC o HEBL Erase beginning of line ESC p HERV Enter Reverse Video mode ESC q HXRV Exit Reverse Video mode ESC r Bn HMBR *Modify baud rate - not supported ESC t HEKS *Enter Keypad shifted mode, not supported ESC u HXKS *Exit Keypad shifted mode, not supported ESC v HEWA Wrap around at end of line ESC w HXWA Discard at end of line ESC x Ps HSM Set Mode. See table below ESC y Ps HRM Reset Mode. See table below Ps Mnemonic Mode Set (x) Reset (y) 1 HSM/HRM 25th line enabled +disabled 2 *keyclick off on 3 *holdscreen enabled disabled 4 cursor type block underline 5 cursor on/off on off 6 *keypad-shifted shifted unshifted 7 alt app keypad enabled disabled 8 linefeed lf=>cr/lf lf=>lf 9 newline mode cr=>cr/lf cr=>cr + disabling the 25th line also clears it ESC z HRAM Reset to power-up configuration ESC = HAKM Enter Alternate Keypad mode ESC > HXAM Exit Alternate Keypad mode ESC < HEAM Enter ANSI mode (ESC [ stuff) ESC @ HEIM Enter Insert Character mode ESC [ HEHS *Enter Hold Screen mode, not supported ESC \ HXHS *Exit Hold Screen mode, not supported ESC { and } HEK, HDK *Keyboard enable/disable, not supported ESC ] HX25 *Transmit 25th line, not supported ESC # HXMP *Transmit page, not supported 1.17.6. Heath-19 Functions While in ANSI Mode Escape Seq Mnenonic Description of Action ESC [ Pn A CUP Cursor up Pn lines ESC [ Pn B CUD Cursor down Pn lines ESC [ Pn C CUF Cursor forward Pn columns ESC [ Pn D CUB Cursor backward Pn columns ESC [ Pr; Pc H CUP Cursor to absolute row, column ESC [ Ps J ED Erase in Display, see DEC description ESC [ Ps K EL Erase in Line, see DEC description ESC [ Pn L IL Insert Pn lines at and below current line ESC [ Pn M DL Delete Pn lines at and below current line ESC [ Pn P DCH Delete Pn chars at and to right of cursor ESC [ Pr; Pc f HVP Cursor to absolute row, column ESC [ Ps h SM Set mode, see ESC x table above ESC [ Ps l RM Reset mode, see ESC y table above ESC [ Ps m SGR Set graphics rendition Ps operation 0 exit reverse video, per character 7 enter reverse video, per character 10 enter special graphics mode 11 exit special graphics mode ESC [ 6 n CPR Cursor report request: returns ESC [ Pr; Pc R ESC [ p PXMT *Transmit page, not supported ESC [ q PX25 *Transmit 25th line, not supported ESC [ Ps r PMBR *Modify baud rate, not supported ESC [ s PSCP Save cursor position & attributes ESC [ u PRCP Restore cursor position & attributes ESC [ z PRAM Reset to power-up configuration ESC [ ? 2 h PEHM Revert to normal Heath-19 non-ANSI mode ESC [ > Ps h SM Same as ESC x Ps ESC [ > Ps l RM Same as ESC y Ps Differences between a real VT320 and the emulator The emulator is extended by supporting several ANSI class control sequences: CSI Pn E CNL Next-Line, Pn times CSI Pc G CHA Cursor to column Pc, absolute CSI Pn I CHI Cursor forward Pn tab stops CSI Pn a CUF Cursor forward Pn columns CSI Pr d CVA Cursor to row Pr, absolute CSI Pn e CUD Cursor down Pn rows The cursor can be placed on the status line by direct addressing such as CSI Pr; Pc H or CSI Pr; Pc f. Doing so does not invoke VT320 display area characteristics found with the formal VT320 method of CSI Ps $ }. Selective erasure character attribute is not supported. Sixel, soft characters, are not supported in text mode. Full system report and download, CSI 1 $ u and DCS 1 $ string ST, are not supported. User Definable Keys are not lockable. The keyboard is not lockable. Smooth scrolling is not supported. Double wide and/or double high characters are supported as space fillers and/or a repeated line. User Preferred Supplementary (character) Set, UPSS, is not selectable in the MS Kermit Set Term setup command repertory. Since the character sets under UPSS are ISO Latin-1 (96) and DEC Special Graphics (94) the host must first find which set is present so that it can be designated with the proper set size attribute. The host can also specify which set is under UPSS. All told, the user level Setup is not needed. The DEC Technical character set occurs on VT340's but not on real VT320's. When National Replacement Characters are selected from the DEC keyboard Setup menu and are activated by CSI ? 42 h outgoing keystrokes are mapped as well as incoming characters; the emulator acts on only incoming chars. Real VT300 terminals operate with 80x24 or 132x24 screen dimensions; the emulator supports whatever dimensions the user has constructed outside of MS Kermit. Also real VT300's have no screen rollback capability. Character sets: VT320 Character set storage areas G0 G1, G2, and G3 Any 94 char set Any 94 or 96 char set ASCII ("B"/94) default G1 default is ASCII ("B"/94), G2 and G3 defaults are ISO Latin-1 ("A"/96) Special Graphics ("0"/94, "2"/94) Alt-Rom ("1"/94) (MS Kermit only) Supplementary Graphics ("%5"/94) Technical (">"/94) (from VT340) User Preferred, UPSS, if Suppl Gr. UPSS if ISO Latin-1 or Suppl Gr. National Replacement Characters are forced into all sets when activated by CSI ? 42 h but only if a has been previously selected by SET TERMINAL CHARACTER-SET VT102 Character set storage areas G0 and G1 G2 and G3 ASCII ("B"/94) Default ASCII ("B"/94) Default Special Graphics ("0"/94, "2"/94) Alt-Rom ("1"/94) (MS Kermit only) Supplementary Graphics ("%5"/94) Technical (">"/94) (from VT340) National Replacement Characters Always ASCII ("B"/94) are selected and activated by SET TERMINAL CHARACTER-SET and affect only G0 and G1. [Note: there are several variations of DEC VT10x; the emulator comes closest to the VT102 as rendered in the DEC Rainbow computer. A real VT320 in VT100 mode removes access to G2 and G3; the VT102 has G2 and G3 holding ASCII.] VT52 is used as a sub mode of a VT320 (default) or a VT102. Only GL = G0 with ASCII is available. ESC F loads line drawing graphics, ESC G reloads ASCII. Heath-19. Same as for VT52 in non-ANSI mode, but while in ANSI mode ESC [ 10 m and ESC [ 11 m duplicate the ESC F and ESC G operations.