WYSE-50 EMULATION IN MS-DOS KERMIT 3.14 22 Sept 1993 D R A F T CONTROL SEQUENCE HEX DESCRIPTION OF ACTION Control-E 05h returns string "MS-DOS KERMIT", if SET TERM ANSWERBACK is ON else sends nothing Control-G 07h sounds bell Control-H 08h cursor to left one column Control-I 09h cursor to right one tab stop Control-J 0ah cursor down one row (can scroll the screen) Control-K 0bh cursor up one row Control-L 0ch cursor right one column Control-M 0dh cursor to left margin Control-N 0eh unlocks keyboard, ignored Control-O 0fh locks keyboard, ignored Control-R 12h turns on controller printing Control-T 14h turns off controller printing Control-Z 1ah clears all unprotected cells to spaces Control-[ 1bh Escape, escape sequence introducer Control-^ 1eh cursor to home (upper left corner) Control-_ 1fh cursor to left margin and next row down Other Control codes are ignored. WYSE ESCAPE SEQUENCE DESCRIPTION OF ACTION (* = Not Supported) ESC report terminal ident, send 3 bytes "50" ESC ! attrib writes all unprotected cells with attribute code attrib (Blank attribute is ignored) attrib action 0 normal video 1 *blank 2 blink 3 *blank 4 reverse video 8 underscore 40h dim (attrib is a byte with these bits as components, using a bias of ASCII "0", 30h) ESC " *unlocks keyboard, ignored ESC # *locks keyboard, ignored ESC & turns on protected mode, autoscroll to off ESC ' turns off protected mode, autoscroll to on ESC ( turns off write protect mode ESC ) turns on write protect mode ESC * clears screen to nulls (Kermit uses spaces), protected mode to off ESC + clears screen to spaces, protected mode off ESC , clears screen to protected spaces, protect mode is off. (Kermit clears with unprotected spaces) ESC - nrc cursor to text segment n and row, col (Kermit supports only text segment 0) (r and c are a binary value plus 20h) ESC . code clear all unprotected cells which have char codes of "code". "code" is expressed in hex. ESC / sends to host the text segment and row, col in same format as ESC - nrc command ESC 0 clear all tab stops ESC 1 set tab stop at cursor position ESC 2 clear tab stop at cursor position ESC 4 *sends to host all unprotected cells from start of row ESC 5 *sends to host all unprotected cells from start of text ESC 6 *sends to host all cells from start of row ESC 7 *sends to host all cells from start of text ESC 8 write start of message char (STX, 02h) ESC 9 write end of message char (ETX, 03h) ESC : clear all unprotected cells to nulls (Kermit clears with spaces) ESC ; clear all unprotected cells to spaces ESC = rc cursor to row, col (for 80 columns only) (r and c are a binary value plus 20h) ESC ? sends to host the cursor address in the form rc CR (for 80 columns only) ESC @ *sends all unprotected cells from start of text to the auxillary port, terminates lines with CR LF NULL ESC A n attrib sets video attribute for a message field or for entire display (n = 0). Kermit supports only the entire display. ESC B *enter block mode ESC C *exit block mode to conversational mode ESC D x *change between half and full duplex ESC E insert row of spaces, bottom moves down ESC F text CR *enter message into message field ESC G attrib set video attribute for future operations ESC H x enter "graphics" char at cursor, x = 0..? for selected CP437 line drawing symbols (single shift). See Table below. ESC H Ctrl-B enter graphics-character mode (locking shift) ESC H Ctrl-C exit graphics-character mode (locking shift) ESC I cursor left to previous tab stop ESC J *activate alternate text segment ESC K *activate alternate text segment ESC L *send all chars unformatted to aux port ESC M send to host the char code at the cursor ESC N turns on no-scroll mode ESC O turns off no-scroll mode ESC P send all chars to auxillary port ESC Q insert a character, right part moves right ESC R delete a row, bottom moves up ESC S *sends a message unprotected ESC T erases all cells from cursor to end of row ESC U *turns on monitor mode (use SET DEBUG ON) ESC V sets cursor column to protected ESC W delete a character, right side moves left ESC X *turns off monitor mode ESC Y erase all cells from cursor to end of screen replacing them with spaces ESC ] *activates text segment 0 ESC ` n sets screen feature n n feature 0 cursor off 1 cursor on 2 steady block (PC cursor always blinks) 3 blinking line 4 steady line 5 blinking block A normal protect char (Kermit interprets these 6 reverse protect char as meaning protect all 7 dim protect char future characters) 8 *screen display off 9 *screen display on : 80 column screen ; 132 column screen <,=,>,?, and @ are scroll rates (unsupported) ESC a rr R ccc C move cursor to row and column (ASCII decimal) ESC b sends to host the cursor address in same form as ESC a above ESC i cursor right to next tab stop ESC j cursor up one row and begins scrolling at top row (Kermit can't make any sense of the latter part of this and stops cursor at top) ESC k *turn on local edit mode ESC l *turn on duplex edit mode ESC p sends all chars unformatted to auxillary port ESC q turns on insert mode ESC r turns off insert mode ESC s *sends a message ESC t erase from cusor to end of row, fill with nulls (Kermit always erases with spaces) ESC u turn off monitor mode ESC x n HSR *change screen format (split screen) ESC y erase from curosr to end of screen, fill with nulls (Kermit always erases with spaces) ESC z n text CR *enter msg into function key labels or into function key codes ESC z DEL *turns off shifted key label line ESC { cursor to home (upper left corner) ESC } *activates text segment 1 Wyse Key name Kermit Verb Wyse-50 code F1..F16 wyF1..wyF16 SOH CR where SOH is 01h and is @,A,B,C,D, E,F,G,H,I, J,K,L,M,N, O shift F1..F16 none as above but is `,a,b,c,d, e,f,g,h,i, j,k,l,m,n, o Uparrow uparr Control-K Rightarrow rtarr Control-L Leftarrow lfarr Control-H Downarrow dnarr Control-J WYSE GRAPHICS CHARACTERS When ESC H single or locking shifts are in effect, the following ASCII characters map to the following graphic (line/box-drawing) characters. These are available in PC Code Page 437, as well as in most other commonly used code pages including CP850, etc. Maps to ASCII PC char 0 48 194 Middle box top 1 49 192 Lower left box corner 2 50 218 Upper left box corner 3 51 191 Upper right box corner 4 52 195 Left middle box side 5 53 217 Lower right box corner 6 54 179 Center box bar vertical 7 55 178 Fill character heavy 8 56 197 Box intersection 9 57 180 Right middle box side : 58 196 Center box bar horizontal ; 59 177 Fill character medium < 60 205 Center box bar horizontal double = 61 193 Middle box bottom > 62 186 Center box vertical double ? 63 176 Fill character light WYSE-50 OPERATIONS NOT PRESENT IN MS-DOS KERMIT V3.14 . No function key labels, nor local or host message fields. . No erasing with the NUL character; space is used in all cases. . Video attribute Blank is ignored. . Keyboard verbs \kwyseFn (n=1..16) are defined, but not the shifted renditions. Definable function keys not implemented. . Split screens are ignored because insufficent information is available. . Printing is severely curtailed because much makes little sense to DOS systems. This matter requires further examination, and a lot clearer explanations of what should occur. . No block mode nor host controllable duplex. No local editing. . No host control of the keyboard. . No host-initiated transmission of screen contents or fields. . No host-controlled monitor mode (use Kermit's instead). . The escape sequences marked with "*" above are recognized but ignored. (End)