patrick@chinet.chi.il.us (Patrick A. Townson) (06/24/89)
I've had a few letters from people asking for information on the Wyse 50 Escape Codes, but some of them did not tell me where to mail a copy of the book, so I decided to post the most common codes here, plus some other information. If you want a copy of the "Wyse 50 Quick Reference Guide" send a note to me as follows -- Patrick Townson 60690-1570 If you want to include a couple postage stamps or something, that will be fine. You will get back about a dozen xeroxed pages. This includes the two or three people who did supply me an address, since I seem to have lost them somehow. All these begin with ESCAPE, then immediatly press the next key, as listed below -- (space) Reports terminal ID to host. Sends '50 CR' ! Writes all unprotected character positions with a specified attribute code. This has a format of: ESC ! ATTR where ATTR is the desired attribute code. (See later in this message for these). " Unlocks the keyboard. Has to be sent by the host, since keyboard is locked, obviously. You can unlock the keyboard from your end by pressing the SET UP key. # Locks the keyboard. & Turns the protect submode on, and prevents auto-scroll operation. ' Turns the protect submode off, and allows auto-scroll operation. ( Turns the write-protect submode off. ) Turns the write-protect submode on. * Clears the screen to nulls. + Clears the screen to spaces. , Clears the screen to protected spaces. The protect sub-mode turns off. - Moves the cursor to a specified text segment. This s a multiple code sequence of: ESC - nrc, where n = the text segment number, 0 or 1 r = the row code c = the column code (Row and column codes explained later). . Clears all unprotected charcter positions with a specified character code. This has a format of ESC . CODE , where CODE = Ascii value. / Transmits the active text segment number and cursor address to host. 0 Clear all tab settings. 1 Set a tab stop on the line and at the column where the cursor is now. 2 Clear the tab stop at the place where the cursor is now. 4 Send all unprotected characters from start-of-row to host. 5 Send all unprotected characters from start-of-text to host. 6 Send all characters, protected or not from start-of-row to host. 7 Send all characters, protected or not from start-of-text to host. 8 Enter a start-of-message character (STX) 9 Enter an end-of-message character (ETX) : Clear all unprotected characters to nulls. ; Clear all unprotected characters to spaces. = Move cursor to a specified row and column on 80 column screen. This has a format of: ESC = rc where r and c are the row and column. (Row and column codes explained later). ? Transmits the cursor address for the active text segment of an 80 column screen only to the host. The format is: rc CR where r and c are the row and column codes. @ Send all unprotected characters from the start-of-text to the auxiliary port. Each row is terminated with CR LF NULL A Sets a video attribute for a specific message field or the entire application display area. The format is: ESC A n ATTR where n is the field code and ATTR is the attribute. (Attributes described later). B Places the terminal in block mode. C Places the terminal in conversation mode. D Selects full duplex or half duplex conversation modes. The format for this is: ESC D x where x = F for full duplex or H for half duplex. E Inserts a row of spaces from cursor to end of line. F Enters a message in the host message field. The format for this is: ESC F aaaa CR, where aaaa is a character string of up to 46 characters in 80 column mode or 100 characters in the 132 column mode. G Sets a video attribute within the application display area. The attribute occupies a space. The format for this is: ESC G ATTR where ATTR is the desired attriute. H Enters a graphic character at the cursor location. The format for this is: ESC H x where x is the graphic character code. (Explained later). I Move the cursor left to the previous tab stop. J Activates the alternate text segment, or window. K Also activates the alternate text segment, or window. L Send all characters unformatted to the auxiliary port. Attribute codes are sent as spaces. Row-end sequences are not sent. M The terminal will send the character at the cursor position to the host. N Turns the no-scroll submode on. O Turns the no-scroll submode off. P Send all characters, protected or unprotected to the auxiliary port, regardless of the mode setting. Q Insert a character where the cusor is now. Hit ESC Q, then the character. You will see a message at the top saying 'INSERT MODE' R Delete the row from the cursor to the end of the row. S Send a message to the host, unprotected. T Erase all characters on the screen. U Turns the monitor submode on. V Sets a protected column. W Delete the character where the cursor is now. Slide everything to the left by one column. X Turns the monitor submode off. Y Erase all characters from the cursor to the end of the active text segment, or window, and replace them with spaces. ] Activate text segment, or window 0. ` Set the screen features. The format for this is: ESC ` n where n is the screen feature code. (Described later). a Same as ESC = to move cursor to specified row and column. b Transmit the cursor address to the host for the current window. Much the same as ESC ? Note: Both ESC a and ESC b use a different format, and can be used for 132 column screen as well as 80 column, unlike ESC ?. The format for both is: ESC a rr R ccc C (or ESC b rr R ccc C) rr = the ASCII encoded decimal value of the row. R = the actual letter 'R' for row. ccc= the ASCII encoded decimal value of the column. C = the actual letter 'C' for column. i Move the cursor to the next tab stop to the right. j Move the cursor up one row, and causes scrol to begin at top row. k Turns local edit submode on. l (lower case L) Turns duplex edit submode on. p Same as ESC L, sending all characters unformatted to auxiliary port. q Turns insert submode on. r Turns insert submode off. s Sends a message to host. (Note: ESC S sends message to host unprotected) t Same as ESC T, by erasing to end of row, but replaces with nulls. u Same as ESC X. Turns monitor submode off. x Change screen display format for one window or two. The format is: ESC x 0 for a full screen 24 rows by (80 or 132) columns. ESC x 1 HSR for a horizontal split screen. HSR is the row code for the row number 2 to 24 on which the lower text segment, or bottom window starts. ESC ] then activates top segement or window. ESC } then activates lower segment or window. ESC { moves the cursor to the home position of whatever window is current. If in full screen mode, then ESC { goes to traditional home position. y Much like ESC Y, except after erasing from cursor to end of active window or text segment, replace them with nulls. (ESC Y gives spaces). z Enters a message into a selected function key label field or programs a user-defined sequence for a function key. There is a maximum of eight label fields, shiftable to 16 for an 80 column screen; and a maximum of 16 label fields, shiftable to 32 for a 132 column screen. In either case, this is the very bottom line, or 'status line' on the screen, sometimes known as line 25. The message format is: ESC z n aaaa CR where n is the field code and aaaa is a 7 character string. ESC z n CR clears a particular function key label field. ESC z DEL turns off the shifted function key labeling line. The function key prograqm format is: ESC z value SEQ DEL where value = the default value code and SEQ = the program sequence up to eight bytes. However there is a maximum of 256 bytes to be shared by all function keys; how you partition it (max 8 per key) is up to you. SCREEN FEATURE CODES: Send ESC ` n to set an option for a screen feature per the table below: 0 Cursor display off 8 Screen display off 1 Cursor display on * 9 Screen display on * 2 Steady block cursor : 80 column screen * 3 Blinking underline cursor < Smooth scroll @ 1 row per second 4 Steady underline cursor = Smooth scroll @ 2 rows per second 5 Blinking block cursor * > Smooth scrool @ 4 rows per second A Normal protect character ? Smooth scroll @ 8 rows per second 6 Reverse protect character @ Jump scroll * 7 Dim protect character * * indicates default, power up settings unless changed via the set up screen. Note: When switching from an 80 to a 132 column screen or vice versa, a delay of 100 milliseconds is required, to avoid loss of data. Blank the shifted and unshifted function key labeling lines when making the change, then re-establish them. After the change, you must move the cursor to the desired location. CURSOR ADDRESSING CODES Both the row and the column are addressed by ASCII characters. The offset is 31 characters *above* the desired value. For example, row 1 is known as the <space> key, which is ASCII 32. row 2 is known as the ! key, which is ASC 33. row 3 is known as the " key, which is ASC 34..... and so forth.....up to row 24, known as '7', which is ASC 56 The columns are known the same way, beginning with ASC 32 (space) and continuing for 79 more columns, through ASC 112, which is an 'o'. To get an address for 132 columns requires a different approach, and one that will work as an alternate for 80 columns as well -- Instead of ESC = followed by the offsetting ASCII symbols above, we can use ESC a, followed by the *actual ASCII encoded decimal value relative to home, one or two digits, followed by R, then one, two or three digits followed by C. Examples: ESC a 1 R 1 C would position the cursor at true home. ESC a 10 R 10 C would position the cursor at row ten, column ten. ESC a 24 R 132 C would put the cursor in the lower right corner. DISPLAY ATTRIBUTES An attribute is written into the current cursor location and occupies a space. Send ESC A n ATTR to set the display attribute for a message field, and send ESC G ATTR to set a display attribute for individual data. n = 0 Application Display Area 1 Function Key Labeling Line 2 Local Message Field 3 Host Mesage Field "Application display" is the main body of the screen. "Function Key Line" is line 25 at the bottom, entire line. "Local Message Field" is line 0 at the top, the leftmost 30 characters. "Host Message Field" is line 0 at the top, the rightmost 50/102 characters. Attributes Table: (space) Space code (Hex 20, decimal 32) 0 Normal 1 Blank (no display) 2 Blink 3 Blank 4 Reverse 5 Reverse and blank 6 Reverse and blink 7 Reverse, blink and blank 8 Underscore 9 Underscore and blank : Underscore and blink ; Underscore, blink and blank < Underscore and reverse = Underscore, reverse and blank > Underscore, reverse and blink ? Underscore, reverse, blink and blank p Dim q Dim and blank r Dim and blink s Dim, blank and blink t Dim and reverse u Dim, reverse and blank v Dim, reverse and blink w Dim, reverse, blink and blank x Dim and underscore y Dim, underscore and blank z Dim, underscore, and blink { Dim, underscore, blink and blank | Dim, underscore and reverse } Dim, underscore, reverse and blank ~ Dim, underscore, reverse and blink CONTROL CODES Press control with desired key using table below: @, A,B,C,D No action E Returns ACK if not busy F No action G Sounds the beeper (displays 'visual bell' if that function is turned on) H Backspaces the cursor (same as BACK SPACE) Left arrow does not erase I Tabs the cursor (same as TAB) J Moves the cursor down (The up/down/left/right arrows move the cursor K Moves the cursor up also, but without erasing or spacing or L Moves the cursor right causing line feeds and carriage returns) Note: YOU use the arrow keys. Host sends control codes to accomplish the same thing. Backspace and return are not the same thing. They cause erasure and new lines, etc. The arrows do not. M Moves the cursor to the far left position on the row. (Same as RETURN) Note: Whether the RETURN key sends only CR or sends LF/CR is detirmined by the configuration in the set up window. The 'enter' key on the numeric keypad *generally* functions like 'return' but there are some exceptions to this. N Unlock the keyboard. Must be sent by host. Can't do it from keyboard. O Locks the keyboard. P No action. Q Enables the transmitter; restarts flow (XON, etc) after a Control S. R Turns on Auxiliary Print; data displays. S Stops transmission to host. Restart with Control Q T Turn off Auxiliary Print. U,V,W,X,Y No action Z Clears all unprotected characters to spaces. (Like Control L in some places, clears screen, homes cursor). { or [ Initiates an ESCAPE sequence. Host uses this to start them. You could simply use the ESC key. } or ] No action. | or \ No action. ^ or ~ Move the cursor to home position. _ or DEL Move the cursor down one row to the far left position. Do not actually do a LF/CR, just put the cursor there. Notes: The cursor movement applies only to the active text segment or window. If the protect submode is on, the cursor skips over/around those characters. Except when the no scroll submode is on, if the cursor movement would result in the cursor leaving the active text segment, or window, then the text automatically scrolls up. GRAPHIC CHARACTERS Send ESC H x to display a graphic character. There are fifteen such characters, impossible to duplicate reliably in this message. The 'x' is a single digit from 0 through 9, or one of these other keys: 0,1,2,3,4,5,6,7,8,9 or : ; < = > ? That will put a graphics character where the cursor is located. The ESC H x takes up a space. Outputting to the printer will produce unpredictable results where the graphics characters are concerned. MISCELLANEOUS NOTES I have only typed in that part of the manual which deals with the WYSE 50 mode. There are many other pages of entries for the ADDS-VP, TVI 910-920-925 modes, and Hazeltine 1500 modes. Many of the above escape sequences are common to all these modes, but there are some other codes unique to the particular mode. Enter shift and 'set up' to get the setup window. Hitting 'set up' without the shift will usually unlock the terminal if it gets locked by accident. "Break" sends a break; but shift/break causes terminal to switch from conversation to block mode, or reverse. The 'print/send' key transmits out the Auxiliary port. 'Print' sends only the current screen window to the printer, then turns itself off. 'Send' starts feeding the auxiliary port and continues to do so until Control T is entered to close the auxiliary port. If you are operating in two window mode (per above ESC sequence for same) then the PAGE key flips between text segments. Finally: shift/spacebar turns the key clicker on or off. At least it is supposed to. Control/shift/1 turns on monitor mode also. In monitor mode, control characters are printed on the screen rather than being acted on. The '1' is the digit by that name on the *keypad* -- not the main keyboard. ============================================ I hope this basic outline of the terminal will help WYSE 50 owners without manuals figure out what to do. I will xerox the whole book if you give me a good reason to: i.e. postage to mail it back to you, etc. -- Patrick Townson patrick@chinet.chi.il.us / ptownson@bu-cs.bu.edu / US Mail: 60690-1570 FIDO: 115/743 / AT&T Mail: 529-6378 (!ptownson) / MCI Mail: 222-4956