V102 / V103 programming values. Paul Green November, 1996 Updated August 1, 1997 These are the output codes recognized by the Stratus V102 and V103 terminals. The V102 is a TeleVideo 955 terminal. The V103 is a Link MC5 terminal running in TeleVideo 955 emulation mode. ctl E send the answerback message ctl G sound the terminal's bell ctl H move the cursor left 1 position ctl I move cursor forward to next typewriter or field tab stop ctl J line feed ctl K move the cursor up 1 line ctl L move the cursor right 1 position ctl M carriage return ctl N enable DTR modem port handshaking; disable X-ON/X-OFF ctl O enable X-ON/X-OFF modem port handshaking; disable DTR ctl Q enable transmission ctl R buffered bidirectional print mode on ctl S stop transmission ctl T buffered bidirectional print mode off ctl U Ps select a character from the multinational set Ps ctl V move the cursor down 1 line ctl W load the margin bell column ctl X clear current unprotected field and replace with replacement characters. Return cursor to beginning of field (protect mode on); or clear current tab field or whole line and move cursor to beginning of current tab field or line (protect mode off) ctl Z clear unprotected characters and replace with replacement characters ctl ^ move cursor to home position ctl _ new line (line feed/carriage return) esc ! 1 enable line lock esc ! 2 disable line lock esc " enable the keyboard esc # disable the keyboard esc $ special graphics mode on esc % special graphics mode off esc & protect mode on esc ' protect mode off esc ( write protect mode off esc ) write protect mode on esc * clear all characters and replace with null characters (reset protect and write protect modes) esc + 955 mode: clear all characters and replace with replacement characters (reset protect and write protect mode) 950 mode: clear unprotected characters and replace with replacement characters (do not reset write protect and protect modes) esc , 955 mode: clear unprotected characters and replace with write-protected space characters (reset protect mode) 950 mode: clear unprotected characters and replace with write-protected space characters (do not reset protect mode) esc - p r c send cursor to page p, row r, col c (cols 1-80) esc - p r ~ c send cursor to page p, row r, col c (cols 81-132) esc . Ps select cursor style where Ps is cursor style 0 cursor not displayed 1 blinking block cursor 2 steady block cursor 3 blinking underline cursor 4 steady underline cursor esc / read cursor's page, row, and col position esc 0 Ps p1 reprogram the SEND key (950 mode) where Ps is shift state 1 unshifted 2 shifted where p1 is value 4 esc 4 5 esc 5 6 esc 6 7 esc 7 S esc S s esc s esc 0 Ps p1 p2 p3 reprogram any individual key (955 mode) see table under esc | esc 1 create column of tab stops at the current column esc 2 clear typewriter tab stop at cursor location esc 3 clear all typewriter tab stops esc 4 send unprotected characters in cursor line up to and including cursor esc 5 send unprotected page up to and including cursor esc 6 send entire line up to and including cursor esc 7 send entire page up to and including cursor esc 8 data scrolls smoothly at 4 lines per second esc 9 data scrolls at the rate received esc : clear unprotected characters and replace with null characters esc ; clear unprotected characters and replace with replacement characters esc < keyclick off esc = r c send cursor to row r, col c (cols 1-80) in current page esc = r ~ c send cursor to row r, col c (cols 81-132) in current page esc > keyclick on esc ? read cursor's row and col position esc @ buffered copy print mode on esc A buffered copy print mode off esc B block mode on esc C return to previous conversational mode esc D H half duplex mode on esc D F full duplex mode on esc E insert a line of replacement characters on the current line esc F 0 select nonhidden attributes (space) esc F 1 select hidden attributes (no space) esc G Ps define visual attribute where Ps is the visual attribute 0 normal (default) video 1 invisible normal video 2 blink 3 invisible and blink 4 reverse current background 5 invisible and reverse 6 blink and reverse 7 invisible reverse and blink 8 underline 9 invisible and underline : blink and underline ; invisible and blink and underline < reverse and underline = invisible reverse and underline > reverse and blink and underline ? invisible reverse and blink and underline esc H w h define block graphics area esc I move cursor backward to previous typewriter or field tab stop esc J display the previous page esc K display the next page esc L print all unformatted page esc M send terminal's identification where the format is Len Message 11 V102R.O,m (v102, 955 mode) 6 R.O,m (v102, 950 mode) and R is the firmware revision level and O is the firmware revision sub-level and m is the memory size in Kbytes 0 2 Kbytes 1 4 Kbytes 2 8 Kbytes esc N enable page edit mode esc O enable line edit mode esc P print unprotected formatted page esc Q insert a replacement chraacter at the cursor position esc R delete current line and replace with replacement characters esc S send unprotected message between start of text (STX) and end of text (ETX) esc T erase from the cursor to end of line; replace with replacement characters esc U monitor mode on esc V run the self-text esc W delete character at cursor position esc X monitor mode off esc Y erase from the cursor to end of page; replace with replacement characters esc Z Ps send the information line contents where Ps is message selector 0 user message one 1 status line 2 user message two esc [ Pn @ insert Pn replacement characters starting at the cursor esc [ Pn A move the cursor up Pn lines (see bug hpt-32, below) esc [ Pn B move the cursor down Pn lines (see bug hpt-32, below) esc [ Pn C move the cursor right Pn positions (see bug hpt-32, below) esc [ Pn D move the cursor left Pn positionss (see bug hpt-32, below) esc [ H move the cursor to home position esc [ Pl ; Pc H address the cursor to line and col of the current page in decimal units esc [ Ps J erase in the page; replace with replacement characters where Ps is the effect code 0 from cursor to end of line/field or page 1 start of line/field or home position to cursor 2 entire (unprotected) line/field or page esc [ Pn K erase in the current line; replace with replacement characters esc [ Pn L insert Pn lines of replacement characters starting at the cursor line esc [ Pn M delete Pn lines, starting at cursor line, and replace with replacement characters esc [ Pn P delete Pn characters starting at the cursor position esc [ Pl ; Pc f address the cursor to line and col of the current page in decimal units esc [ 0 ; Ps i page print where Ps is the print code 0 formatted all 1 formatted unprotected 4 unformatted all 5 unformatted unprotected esc [ 6 n read cursor's line and col position in decimal units esc [ Pt ; Pb r define scrolling region esc [ 0 ; Pn v select character transmit delay rate where Pn is number of character delays per character transmitted valid range is 0-7 esc [ 1 ; Ps v select terminal handshaking protocol where Ps is the protocol 0 No protocol 1 X-ON/X-OFF protocol 2 DTR protocol 3 Both protocols esc [ 2 ; Ps v select receive buffer fill limit where Ps is the fill limit 0 fill limit 16 bytes 1 fill limit 32 bytes 2 fill limit 64 bytes 3 fill limit 128 bytes esc [ 3 ; Ps v assign display attribute to status line where Ps is the visual attribute code 0 normal 1 reverse 2 normal underline 3 reverse underline esc [ 4 ; Ps v select the contents of the top information line where Ps is the message selector 0 blank 1 status line 2 user message one 3 user message two esc [ 5 ; Ps v select the contents of the bottom information line where Ps is the message selector 0 blank 1 status line 2 user message one 3 user message two esc [ 6 ; Ps v select scroll rate where Ps is the scroll rate code 0 jump scroll 1 scroll display at 4 lines per second (normal) (v102) 2 scroll display at 2 lines per second (slow) 3 scroll display at 8 lines per second (fast) esc [ 7 ; Ps v select function key set where Ps is the function key set number 0 one 1 two esc [ 8 ; Ps v select screen saver time where Ps is the screen saver code 0 no screen saver 1 screen blanks after 10 minutes idle 2 screen blanks after 20 minutes idle 3 screen blanks after 30 minutes idle esc [ 9 ; Ps v select character set where Ps is the character set code 0 U.S. ASCII 1 U.K. ASCII esc [ 10 ; Ps v set programming compatibility mode where Ps is the compatibility mode code 0 955 mode 1 950 mode esc [ 1 ; Pn } display page Pn esc [ = 0 h transmission control on; terminal accepts X-ON/X-OFF from the host on the modem port esc [ = 0 l transmission control off; the terminal ignores X-ON/X-OFF from the host on the modem port, the v103 terminal accepts X-ON/X-OFF from the host on the aux port esc [ = 1 h select 8 data bits esc [ = 1 l select 7 data bits esc [ = 2 h select page attribute mode esc [ = 2 l select line attribute mode esc [ = 3 h select 132 column display esc [ = 3 l select 80 column display esc [ = 4 h margin bell on esc [ = 4 l margin bell off esc [ = 5 h select half-intensity mode esc [ = 5 l select full-intensity mode esc [ = 6 h received-CR mode on esc [ = 6 l received-CR mode off esc [ = 7 h end-of-line wrap mode on esc [ = 7 l end-of-line wrap mode off esc [ = 8 h keyboard repeat on esc [ = 8 l keyboard repeat off esc [ = 9 h DOWN key sends ctrl j esc [ = 9 l DOWN key sends ctrl v esc [ = 10 h save function key reprogramming in nonvolatile memory esc [ = 10 l do not save function key reprogramming in nonvolatile memory esc [ = 11 h enable SETUP key esc [ = 11 l disable SETUP key esc [ = 12 h enable ESC key esc [ = 12 l disable ESC key esc [ = 13 h enable CLEAR SPACE key esc [ = 13 l disable CLEAR SPACE key esc [ = 14 h enable BREAK key esc [ = 14 l disable BREAK key esc [ = 15 h page print flip on esc [ = 15 l page print flip off esc [ = 16 h select 50Hz screen refresh rate (v103) esc [ = 16 l select 60Hz screen refresh rate (v103) esc [ ? 6 n read cursor's page, line and col position in decimal units esc [ Pn | invoke a function key esc \ Ps define number of lines on each page where Ps is the lines per page code Lines Number of Pages Ps per page Four-page Memory Two-Page Memory 1 24 4 2 2 48 2 1 3 96 1 - esc ] Ps p1 ... p60 reprogram all editing keys esc ^ (text) ctl Y program answerback message (v103: up to 20 chars; v102: up to 16 chars) where (text) is the text to be returned esc _ p1 p2 (text) ctl M load text into a user message where p1 is the user message code 0 message field in status line 1 user message one 2 user message two where p2 is the effect code 0 clears the message before loading 1 writes over existing message esc ` buffered transparent print mode on esc a buffered transparent print mode off esc b light background with dark characters esc c local mode on esc d dark background with light characters esc e Ps load a replacement character esc f (text) ctl M load text into user message one; max of 78 chars in 80-column screen; 130 char in 132-column screen; first must be attribute esc g display user message one on the screen's bottom line esc h display the status line on the screen's bottom line esc i move cursor forward to next field tab stop (protect mode on) esc j reverse line feed esc k enable local editing key mode esc l enable duplex editing key mode esc m enable optional graphics firmware esc n turn screen on esc o turn screen off esc p Ps define the page print terminator esc q enable insert mode; disable replace mode esc r enable replace mode; disable insert mode esc s send whole message between start of text (STX) and end of text (ETX) esc t erase from the cursor to end of line; replace with null characters esc u monitor mode off esc v autopage mode on esc w autopage mode off esc x Ps p1 p2 reprogram delimiter characters where Ps is the delimiter code 0 field separator 1 end of line 2 start of protected field 3 end of protected field 4 message terminator and p1 and p2 are ASCII characters or NUL for no delimiter esc y erase from the cursor to end of page; replace with null characters esc z execute a user-installed program esc | p1 p2 (message) ctl Y reprogram a function key where p1 is the key code 950-Compatible p1 955-Compatible p1 Key Unshifted Shifted Unshifted Shifted F1 1 < 1 A F2 2 = 2 B F3 3 > 3 C F4 4 ? 4 D F5 5 @ 5 E F6 6 A 6 F F7 7 B 7 G F8 8 C 8 H F9 9 D 9 I F10 : E : J F11 ; F ; K F12 G L < L F13 H M = M F14 I N > N F15 J O ? O F16 K P @ P where p1 is, in both modes clear entire current function key set memory 0 load function keys in sequence; FS after each message where p2 is message destination 1 send message to computer 2 send message to terminal 3 send message to both computer and terminal and there is a maximum of 256 bytes for all reprogramming (v102) esc { p1 p2 p3 p4 set modem port operating parameters esc } p1 p2 p3 p4 set aux port operating parameters where p1 is baud rate 0 9600 baud rate 1 50 2 75 3 110 4 135 5 150 6 300 7 600 8 1200 9 1800 : 2400 ; 3600 < 4800 = 7200 > 9600 ? 19200 @ 38400 where p2 is stop bits 0 1 stop bit 1 2 stop bits where p3 is parity 0 no parity 1 odd (receive/transmit) parity 3 even (receive/transmit) parity 5 mark parity 7 space parity where p4 is word length 0 8 bit word length 1 7 bit word length esc ~ 0 reset terminal's operating values to factory default values esc ~ 1 reset terminal's operating values to nonvolatile memory values esc ~ 2 reset function keys to factory default values esc ~ 3 reset editing keys to factory default values esc del read cursor address in 80/132-column page (v103) KNOWN DIFFERENCES BETWEEN THE V102 AND V103 =================================== hpt-32 =================================== The v103 implementation of zero space attributes is not compatible with the v102 implementation. In particular, it does not remove them after doing relative cursor positioning. ---------------------------------- Comments ---------------------------------- Here is a test case for this problem. These sequences were generated by the opening screen of office.pm (which uses jyacc 5.03) in VOS Release 13.0 - 13.3.0. send_raw is a command that translates "esc" and "cr" (etc) to the appropriate control character. (The source code is on ftp.stratus.com). The output is in 3 sections, separated by "blank" lines. Lines 3-12 are a condensation of the characters that are sent by office when it starts up. Lines 14-15 ("M esc [44C...") are sent after the user hits the "down arrow" key once. This resets the highlighting on the "Mail" line and sets the highlighting on the "Filing" line (so far, so good). Line 17 ("F esc [1D...") is sent after the user hits the down arrow key again. It is supposed to reset the highlighting on the "Filing..." line and set it on the "Calendar..." line. The highlighting is NOT reset on the V103 (Link MC5 in TVI955 emulation mode). If you run this on a V102 (a real TVI955) the highlighting IS reset. See page 60 of the "Stratus Display Terminal Operator's Manual" for the V102 for a detailed explanation of how "no space" attributes are supposed to work. (This is the spiral-bound V102 manual that is really just a reprint of the TeleVideo 955 manual). 1 &echo no_command_lines 2 !send_raw &+ 3 esc [=2l esc F1 esc u &+ 4 esc . 0 &+ 5 esc * esc h &+ 6 esc =%W esc G0 esc [45D esc G4 Mail esc [13C &+ 7 '(send, read or process mail)' &+ 8 esc =&* Filing esc [11C &+ 9 '(view, edit or manipulate documents, PC files)' &+ 10 esc '=''*' Calendar esc [9C &+ 11 '(view calendars, schedule reminders, resources)' &+ 12 esc =%* &+ 13 &+ 14 M esc [44C ' ' &+ 15 esc =&i esc G0 esc [63D esc G4 &+ 16 &+ 17 F esc [1D F esc [62C ' ' esc [1B esc G0 esc [64D esc G4 The relative cursor positioning in the last line somehow confuses the emulator, so it fails to clear the nonembedded attributes, so the 2nd line ("Filing...") stays highlighted. If you change the last line to use absolute cursor positioning, then the attributes are properly reset: A17 F esc [1D F esc [62C ' ' esc [1B esc G0 esc [64D esc G4 changed to B17 F esc =&* F esc =&i ' ' esc [1B esc G0 esc [64D esc G4 FYI, the version of JYACC used by office in VOS 12 and before does not trip over this bug because it uses ESC G0 to reset the attributes. JYACC 5.03, in VOS 13 and up, just rewrites the graphic character as shown in line 17, above. --------------------------------- Avoidance ---------------------------------- This bug can be (and is) being avoided by commenting out all relative cursor position operations in the .ttp file. The avoidance for JYACC video (vid) files is to comment out the relative cursor positioning definitions (CUF,CUB,CUU,CUD). (end)