Control Codes for Televideo Character-Cell Video Terminals and Their Emulations ////////////////////////////////////////////////////////////////////////////// The Televideo 955 (also known as TVI955) was a popular character-cell video-display terminal during the early 1980s. However, its control codes were a proprietary set (that is, not following the ANSI X3.64 standard), and the terminal does not have the ability to properly interpret and act upon ANSIX3.64-type control codes. A consequence of this lack is that an actual TVI955 cannot emulate a DEC VT100. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stratus Computer used Televideo-style terminals with its fault-tolerant VOS systems for many years. The programming manual for the Stratus V103 terminal, mostly compatible with a Televideo 955, is available here: http://www.cs.utk.edu/~shuford/terminal/r242-00_v103_prog.pdf.gz ////////////////////////////////////////////////////////////////////////////// Newsgroups: comp.terminals Path: utkcs2!darwin.sura.net!europa.asd.contel.com!uunet!comp.vuw.ac.nz !canterbury.ac.nz!phys169 Message-ID: <1992Apr23.112004.4789@csc.canterbury.ac.nz> References: <1992Apr18.060736.29498@noose.ecn.purdue.edu> <1992Apr22.174647.4783@csc.canterbury.ac.nz> Summary: Control codes/Escape sequences for TVI905 to TVI950 Expires: 22 May 1992 11:23:06 +1200 Organization: University of Canterbury, Christchurch, New Zealand Keywords: Programming TVI950, TVI910, TVI912, TVI920, TVI914, TVI924, TVI925 Date: 23 Apr 1992 11:20:03 +1200 From: phys169@csc.canterbury.ac.nz Subject: Televideo control code table (was Re: TVI950) In article <1992Apr22.174647.4783@csc.canterbury.ac.nz>, phys169@csc.canterbury.ac.nz writes: > > Hope the following is useful... NOTE that the 914/924 columns are NOT > complete, they take a heck of a lot of typing, but there's probably enough > there to get the magnitude of the difference. I might follow up with a > more complete table some day. Well, there were a few mistakes in it (like ESC B), as well as the 914 & 924 columns not being finished. Here's an updated version, but I don't have good references for the TVI925 & 905, so if anyone can post corrections that would be very nice. The only Televideo source for the 925 I had was a little glossy titled "The Value Leaders", which seems *very* wrong in places. I still might follow with tables for other popular terminals, like the Wyse and Qume and DG series. The VT series has already been done by others, of course, but I might post my collection (including differences betweem other ANSI implementations, such as Heath/Zenith, TVI970 and Data General). If anyone wants to cut out the following and stick it on some anonymous ftp site, that is fine with me, but please keep my e-mail address on it so I can be told of any errors or omissions. *** CONTROL CODES FOR: TVI950 910 912 920 914 924 925 905 ^E ENQ (Send ID msg) y ^G Beep y y y y y y y y ^H Cursor Left y y y y y y y y ^I Tab y y y y y y y y ^J Line Feed y y y y y y y y ^K Cursor Up y y y y y y y y ^L Cursor Right y y y y y y y y ^M Carriage Return y y y y y y y y ^N Disable ^S/^Q y y y y y ^O Enable ^S/^Q y y y y y ^R Enable P3<->P4 y y y y ^T Disable P3<->P4 y y y y ^V Cursor Down y y y y ^X Clear unprot field y y ^Z Clear Unprot. y y y y y y y y ^^ Home y y y y y y y y ^_ NewLine y y y y y y y y ESC ^B insert Ctrl-B (STX) y y ESC ^C insert Ctrl-C (ETX) y y ESC ESC Display "EC" symbol y ESC ! 1 Linelock this line y ESC ! 2 Clear all locks y ESC " Unlock keyboard y y y y y y y y ESC # Lock keyboard y y y y y y y y ESC $ Graphics mode on y y y ESC % Graphics mode off y y y ESC & Protect mode on y y y y y y y ESC ' Protect mode off y y y y y y y ESC ( W-Prot off & dim y dim y y y y y y ESC ) W-Prot on & bold y bold y y y y y y ESC * Clear all to nulls y y y y y ? ESC * 0 Clear all to nulls y y ESC * 1 Clear all to spaces y y ESC * 2 Clear unprot to nulls y y ESC * 3 Clear unprot to spaces y y ESC + Clear unprot to ic* y y y y ESC , Clear all to dim sp y y y ESC - Move to page/row/col y y y ESC . Toggle cursor on/off y y y ESC . 0 Invisible cursor y y y ESC . 1 Blinking block cursor y y y ESC . 2 Steady block cursor y y y y y ESC . 3 Blinking underline y y y y y ESC . 4 Steady underline y y y y y ESC / Report Cursor p/r/c y y y ESC 0 0 Program Shift-Send key y ESC 0 1 Program Send key y ESC 0 @ Program Home key y ESC 0 P Program Send key y y ESC 0 p Program shift-Send key y y ESC 0 s Program shift-ENTER key y ESC 1 Set tab stop y y y y ESC 2 Clear tab stop y y y y ESC 3 Clear all tab stops y y y y ESC 4 Send unprot from BOL y y y ESC 5 Send unprot from BOP y y y ESC 6 Send all from BOL y y y ESC 7 Send all from BOP y y y ESC 8 Smooth scroll mode on y ESC 8 0 Jump scroll mode on y ESC 8 1 Smooth scroll mode on y ESC 9 Jump scroll mode on y ESC : Clear unprot to null y ? ? ESC ; Clear unprot to ic* y y y ? ? ESC < Keyclick off y y ESC < 0 Keyclick off y y ESC < 1 Keyclick on y y ESC > Keyclick on y y ESC = Move to row/column y y y y y y y y ESC ? Report row/column y y y y y y y y ESC @ Copy-print mode on y y y y y ESC A Copy-print mode off y y y y y ESC B Block mode on/conv off y y y y ESC C Conversation mode on y y y y ESC D H Half duplex, Block off y y y ESC D F Full duplex, Block off y y y ESC E Insert a line y y y y y y y ESC F Display control char y ESC F Define block of attr. y ESC F Load status msg ? ESC G 0 Reset video attributes y y y y y y ESC G 1 Blank video attribute y y y y y y ESC G 2 Blank video attribute y y y y y y ESC G 4 Blank video attribute y y y y y y ESC G 8 Blank video attribute y y y y y y ESC H Auto scroll on/off y ESC H Define block graph. area y ESC I Back tab y y ? ? y y ESC J Back page y y y ESC K Next page y y y ESC L Unformatted Print Page y ESC L Send data to hidden cursor y ESC M Transmit terminal ID y y y ESC N PageEdit mode on y ESC N 0 PageEdit mode off y ESC N 1 PageEdit mode on y ESC O PageEdit mode off y ESC P Print page, show next y y ESC P 0 Print formatted page y y ESC P 1 Print form. unprot. page y y ESC P 3 Print formatted page y y ESC P 4 Print unformatted page y y ESC P 5 Print unform. unprot. page y y ESC P 7 Print unformatted page y y ESC Q Insert a character y y y y y y y ESC R Delete the line y y y y y y y ESC S Send unprot message y y y y y ESC S 1 Send unprot from BOL y y ESC S 3 Send all from BOL y y ESC S 5 Send unprot from BOP y y ESC S 7 Send all from BOP y y ESC S 9 Send unprot text STX->ETX y y ESC S ; Send text from STX to ETX y y ESC S ? Send form y y ESC T Erase to EOL with ic* y y y y y y ESC U Monitor mode on y y y y y y y y ESC V Start self test y y y y y ESC W Delete a character y y y y y y y ESC X Monitor mode off y y y y y y y y ESC Y Clear to EOP with ic* y y y y y y ? ESC Z 0 Report User line y y y y ESC Z 1 Report Status line y y y y ESC Z 2 Report Setup lines y ESC [ Move to row y ESC ] Move to column y ESC ] 0 Program unshift. edit keys y ESC ] 1 Program shifted edit keys y ESC \ 1 24 lines/logical page y y ESC \ 2 48 lines/logical page y y ESC \ 3 96 lines/logical page y y ESC ^ Program answerback msg y ESC ^ Start blink attribute y y ESC _ Define scrolling region y ESC _ Start blank attribute y y ESC ` Buffered print mode on y y y y y ? ESC a Buffered print off y y y y y ? ESC b Screen black on white y y y ESC d Screen white on black y y y ESC e Load insert character y ESC f Load user line y y ESC g 25th line is User line y ESC g Assign log. attr. to field y ESC h 25th line is Status y ESC i Field tab y y y y y ? ESC j Reverse linefeed y ESC j Reverse video attr. y y ESC k Normal background attr. y y ESC k Local edit mode y y y ESC k 0 Duplex edit mode y y ESC k 1 Local edit mode y y ESC l Duplex Edit mode y y y ESC l Start underline attr. y y ESC m End underline attr. y y ESC n 0 Screen On y y ESC n 1 Screen Off y y ESC o 0 Logical attribute mode on y ESC o 1 Logical attribute mode on y ESC p Report NVRAM contents y ESC q End blink/blank y y ESC q Insert mode on y ESC r Insert mode off y ESC s Send message all y y y y y ESC s Define 25th line y ESC t Erase to EOL, nulls y y y y y y ? ESC u Monitor mode off y y y y ? ESC v Autopage on y y ESC v 0 Autopage off y ESC v 1 Autopage on y ESC w Autopage off y y ESC x 0 Set field delimiter y y ? ESC x 1 Set line delimiter y y y y ? ESC x 2 Set start prot delim. y y ? ESC x 3 Set end prot delimiter y y ? ESC x 4 Set screen delimiter y y y y ? ESC y Erase to EOP, nulls y y y y y ? ? ESC z Call User PROM y ESC { Set main (P3) port y ? ESC { 0 Set main (comp) port y ESC { 1 Set printer port baud etc y ESC | Program function keys y y y ESC } Set printer (P4) port y ? ? ESC ~ 0 Reset terminal y y ESC ~ 1 Reset to factory def. y y Notes: The TVI925 and 905 columns probably have a lot of mistakes, the other columns might have a few too! (hopefully not too many) ESC G sets video attributes based on flags, so ESC G 6 would be reverse blink; on most oldish ADM/Wyse/TVI/QVT terminals this attribute takes up one character position on the screen; this is optional on some (e.g. ADM 12) On the TVI914/924 they never take a space. The 914/924 allows dim to be set (e.g. ESC G space is DIM, ESC G " is blink dim). BOL = Beginning of line BOP = Beginning of page EOL = End of line ic* = whatever insert character is set to, space by default. A TVI950 lets you define what the space charecter is, on most other terminals it is always a space (ASCII 32). Mark Aitchison, University of Canterbury, New Zealand. (usual disclaimers apply, plus a big E & O E). ////////////////////////////////////////////////////////////////////////////// Newsgroups: comp.terminals Path: utkcs2!stc06.ctd.ornl.gov!fnnews.fnal.gov!uwm.edu!newsfeeds.sol.net !feed1.news.erols.com!howland.erols.net!sol.ctr.columbia.edu !news.columbia.edu!watsun.cc.columbia.edu!jaltman Date: 4 Mar 1997 20:38:19 GMT Organization: Columbia University Message-ID: <5fi17r$86h$1@apakabar.cc.columbia.edu> References: <5fhpp2$sfk@felix.seas.gwu.edu> From: jaltman@watsun.cc.columbia.edu (Jeffrey Altman) Subject: Re: Televideo 955 In article <5fhpp2$sfk@felix.seas.gwu.edu>, Robert Graves wrote: : : Can anyone on this newsgroup tell me if a Televideo 955 can be used in : place of a Televideo 950? Is a 955 just a 950 with additional control : characters? Thanks for the help. The answer is 'no'. While the 955 has a "950 mode", it does NOT make it compatible with a 950. It only makes the command structure similar. Jeffrey Altman * Sr.Software Designer * Kermit-95 for Win32 and OS/2 The Kermit Project * Columbia University 612 West 115th St #716 * New York, NY * 10025 * (212) 854-1344 http://www.columbia.edu/kermit/k95.html * kermit-support@columbia.edu ////////////////////////////////////////////////////////////////////////////// Newsgroups: comp.terminals Message-ID: <6g075r$98c$1@apakabar.cc.columbia.edu> References: <891338185.237.0.nnrp-06.c2de32c9@news.demon.co.uk> <01bd5db2$5f596d60$dbb95bc0@bernie.turbosoft.com.au> Date: 2 Apr 1998 14:26:03 GMT From: Jeffrey Altman Subject: Re: TVI 950 Emulation First, Dave Rowland wrote: > > Can anyone help me find a terminal that has TVI 950 emulation installed > as standard? Then, in article <01bd5db2$5f596d60$dbb95bc0@bernie.turbosoft.com.au>, Bernie Snoek wrote: : : Hello Dave, : Try looking at www.turbosoft.com.au, there is a very good implementation of : this emulator there. The download is large, but the product is very : complete, you will find the 950 as a personality of the 955. But the 950 personality of the 955 is a very different creature than a 950. The 950 personality really only means that the escape sequences used are *parsed* the same way as the 950. The *functionality* of the sequences are different. -- Jeffrey Altman * Sr.Software Designer * Kermit-95 for Win32 and OS/2 The Kermit Project * Columbia University 612 West 115th St #716 * New York, NY * 10025 http://www.kermit-project.org/k95.html * kermit-support@kermit-project.org ////////////////////////////////////////////////////////////////////////////// Newsgroups: comp.sys.stratus Path: utkcs2!stc06.ctd.ornl.gov!fnnews.fnal.gov!uwm.edu!vixen.cso.uiuc.edu !howland.erols.net!news.mathworks.com!newsgate.duke.edu !news-relay.ncren.net!relay.ga.unc.edu!lrc!info-stratus-gate!list Message-ID: <199708011835.OAA16555@mailhub.stratus.com> Date: Fri, 1 Aug 1997 13:06 edt From: Paul_Green@vos.stratus.com Subject: RE: Stratus V103 Terminal This is a rather subtle point, but as long as people are discussing the differences between the Stratus V102 and V103 terminals, I realized that I had not updated ftp://ftp.stratus.com/pub/vos/doc/reference/tvi955.txt to describe a known difference between the real V102 (which is a TeleVideo 955) terminal and the TVI955 emulation running on the V103 (which is a Link MC-5): Relative cursor positioning on the V103 doesn't reset non-embedded (no-space) attributes. I have updated the file to acknowledge this. I ran into this while creating the ttp and vid files for the new V105 terminal. JYACC 5.03 (in VOS 13 and up) sends relative cursor-positioning sequences if they are defined; previous versions did not. The workaround, which you can see in the VOS ttp and JYACC vid files for the V103, is not to use relative cursor positioning at all. Bottom line: You are not going crazy if you think there are differences between the V102 and V103. But they are minor and easy to avoid. Thanks. PG -- Paul Green | Mail: Paul_Green@stratus.com Senior Technical Consultant | Voice: +1 508-460-2557 FAX: +1 508-460-0397 Stratus Computer, Inc. | Video: PictureTel/AT&T by request. Marlboro, MA 01752 | Disclaimer: I speak for myself, not Stratus. ////////////////////////////////////////////////////////////////////////////// Newsgroups: comp.terminals NNTP-Posting-Host: saltmine.radix.net User-Agent: tin/1.4.4-20000803 ("Vet for the Insane") (UNIX) (SunOS/5.8 (sun4u)) Message-ID: References: Date: 12 Jul 2002 23:49:23 GMT From: Thomas Dickey Subject: Re: Question about tvi955 cursor coordinates Shangwu Qi wrote: > Hello, > I am working on an automation interactive program with a tvi955 terminal. > The tvi955 reference says that ESC sequence "ESC = row col" sets cursor to > the position (row, col) on screen. But I got different row and column > numbers from the server to set cursor. For instance, "ESC=#7" sets cursor on > (3, 23) coordinate of screen. It seems there is a mapping (35,55) => (3,23), > i.e. host_xy - 32 = screen_xy. > Could someone help me to explain this? Any response is appreciated. The 32 is an ASCII space. Characters from space through tilde (~) are printable, so the mapped cursor string (except for the ESC) consists of printable characters as well. That avoids conflict with other control characters such as ESC. -- Thomas E. Dickey http://dickey.his.com/ ftp://dickey.his.com/ ////////////////////////////////////////////////////////////////////////////// Newsgroups: comp.terminals References: <11s033v8sjg4f57@corp.supernews.com> Message-ID: <11s8mqhjnl2nibb@corp.supernews.com> Date: Wed, 11 Jan 2006 01:11:45 -0000 From: Thomas Dickey Subject: Re: Help needed with Televideo terminal... Dustin L. Smous wrote: > > Right now, I'm using the termcap/terminfo entry for the 955, it seems to > be the most compatable - and that isn't saying much. I'll reply and > attach the entry I modified, if I can find it... ok. What I got from the url I mentioned is that the 905 is a small subset of the 955 - so many of the features should be discarded. You can test features using ncurses' tack program (but that does require some practice to see problems). Just to get an idea, try running tack on a terminal that is working properly. >> http://www.cs.utk.edu/~shuford/terminal/televideo_codes_news.txt [this file!] -- Thomas E. Dickey http://invisible-island.net/ ftp://invisible-island.net/ //////////////////////////////////////////////////////////////////////////////