/* +++begin copyright+++ ******************************* */ /* */ /* STRATUS CONFIDENTIAL INFORMATION: CLASS II */ /* COPYRIGHT (c) 1987, 1988, 1989, 1994, 1996, 1997, */ /* 1999 Stratus Computer Systems S.à r.l. */ /* All Rights Reserved. */ /* */ /* This program contains confidential and proprietary */ /* information of Stratus Computer Systems S.à r.l. and */ /* any reproduction, disclosure, or use in whole or in */ /* part is expressly prohibited, except as may be */ /* specifically authorized by prior written agreement or */ /* permission of Stratus. */ /* */ /* +++end copyright+++ ********************************* */ /***********************************************************/ /* Despite the above stern warning, this information is */ /* publicly available by anonymous FTP from the official */ /* server "ftp.stratus.com". It is stored separately */ /* here for convenience. */ /***********************************************************/ /* Terminal Type: vt220 /* /* Beginning of modification history /* /* Modified 90-07-23 by Faith Senie to add erase-field to default input /* section, add $function input section (ttp-75, ttp-84). /* /* Modified 94-04-07 by Heesoon Kim to add program shift function keys /* to initial-string. /* /* Modified 96-09-24 by Paul Green to define aux-printer-x controls /* (cmd-1248), and to define more ANSI controls. /* Modified 96-11-12 by Paul Green to fix goto,window,* sequences /* (ttp-208). /* Modified 97-02-26 by Paul Green to comment-out back-tab stuff, /* since it is an extension real vt220s do not have. /* Modified 97-02-27 by Paul Green to fix ttp-210 (specific correct /* sequence to designate Latin-1 character sets into g1/g2/g3). /* Modified 97-02-27 by Paul Green to add 1*f10 as an escape key /* because real vt220 keyboards do not have an escape key. /* Modified 97-02-27 by Paul Green to delete obsolete $sos input section. /* Modified 97-03-10 by Paul Green to comment out inverse-video /* support since it looks so bad on the terminal. /* Modified 97-10-03 by Paul Green to fix ttp-211. /* Modified 98-02-10 by Richard Shuford for new-line option. /* Modified 99-10-14 by Pradip Gosalia to add back $sos input section (ttp-226) /* End of modification history /* Notes on the vt220 ttp and terminal: /* 0. This ttp is designed to support a REAL vt220 terminal. It has /* been tested on a REAL vt220 terminal. If it works with your /* vt220 terminal emulator, fine. If not, please check with a /* REAL vt220 terminal before changing it. /* 1. It supports only one page of memory. /* 2. There is no way to change the cursor format from the host. /* 3. Reverse-video operation does not produce a nice-looking screen. /* This is because there is 1 flavor of space (black) in normal /* video mode, but 2 flavors (dim-white and bright-white) in /* reverse video mode. (You can make white whiter in normal mode, /* but you can't make black blacker, so the terminal adjusts the /* background color). ANSI controls have no fast and easy way to /* clear-and-set-attributes. You can only have attributes on bytes /* you write. So, we end up with a dim background on the cells we /* have not written, and a bright background on cells that were /* written with high intensity...until the next clear. Sigh. /* /* If you want to use inverse-video support anyway, uncomment /* the lines that define set-black-on-white, set-white-on-black, /* and restore the blank-sig attribute on the dim attribute. Note /* that the last step has a performance impact. configuration iso-controls fixed-origin hex-notation-char ` undisplayable-notation-char sub setup 80x24 csi ? 3 l height 24 width 80 pages 1 setup 80x24x1 csi ? 3 l height 24 width 80 pages 1 setup 132x24 csi ? 3 h height 24 width 132 pages 1 setup 132x24x1 csi ? 3 h height 24 width 132 pages 1 character_translation 1-byte ascii ascii ascii 1-byte latin-1 latin-1 latin-1 initial-state-g0 ascii initial-state-g1 latin-1 initial-state-left g0 initial-state-right g1 input_translation ascii/1b csi 1 2 1 ~ output_translation invoke-g0-to-left si invoke-g1-to-left so invoke-g1-to-right esc ~ invoke-g2-to-left esc n invoke-g2-to-right esc } single-shift-g2 ss2 invoke-g3-to-left esc o invoke-g3-to-right esc | single-shift-g3 ss3 1-byte ascii /* note -- G0 can only be invoked g0 esc ( B /* to GL so as to avoid problems /* with space in GR ascii/1a sub 1-byte latin-1 g1 esc ) < /* DEC Supplemental Set g2 esc * < g3 esc + < latin-1/a4 not-supported latin-1/a6 not-supported latin-1/ac not-supported latin-1/ad not-supported latin-1/ae not-supported latin-1/af not-supported latin-1/b4 not-supported latin-1/b8 not-supported latin-1/be not-supported latin-1/d0 not-supported latin-1/d7 not-supported latin-1/de not-supported latin-1/f0 not-supported latin-1/f7 not-supported latin-1/fe not-supported latin-1/ff not-supported 1-byte special-graphics g1 esc ) 0 /* DEC Special Graphic g2 esc * 0 g3 esc + 0 line-graphics-page special-graphics display-block-page special-graphics /* /* FUNCTION KEY TEMPLATES - ACTUAL SIZE /* /* /* /* F6 F7 F8 F9 F10 F11 F12 F13 F14 /* +------+------+------+-------+------+-------+------+-------+------+-------+ /* |SHIFT |DISCRD|END OF|CLEAR |PATTRN| ESC |REPEAT| |COLUMN|BLANKS | /* | | | FILE | STATUS| | | LAST | | | | /* +------+------+------+-------+------+-------+------+-------+------+-------+ /* | | NAME | LINE-|STATUS |CHANGE| SAVE |INSERT|SCROLL | TAB | WORD | /* | | | FEED | | CASE | |DEFLT | | STOP | | /* +------+------+------+-------+------+-------+------+-------+------+-------+ /* /* HELP DO F17 F18 F19 F20 /* +------+-------+--------------+ +-------+------+-------+------+------+ /* |shift |DISPLAY| ENTER | | CYCLE |NO |REDIS- |INTER-|shift | /* | | FORM | | | BACK |PAUSE | PLAY | RUPT | | /* +------+-------+--------------+ +-------+------+-------+------+------+ /* | | HELP | MENU | | CYCLE |CANCEL|DISPLAY|INSERT| | /* | | | | | | | FORM |/OVLY | | /* +------+-------+--------------+ +-------+------+-------+------+------+ /* /* PF1 PF2 PF3 PF4 /* +-------+------+-------+ +------+------+-------+------+ /* | GO TO |INSERT|DELETE | |SEN- | LINE | PAGE |PARA- | /* | |SAVED | | | TENCE| | | GRAPH| /* +-------+------+-------+ +------+------+-------+------+ /* | MARK |PREV |NEXT | |MARKED|REGION|DEFINE |OVER- | /* | |SCREEN|SCREEN | | | -AL | SHORT.|STRIKE| /* +-------+------+-------+ +------+------+-------+------+ /* | | UP | | |SEARCH|REPEAT|SHORT- |UNDER-| /* | | | | | | | HAND | SCORE| /* | +------+ | +------+------+-------+------+ /* | LEFT | DOWN |RIGHT | |Funct |Funct |CASE- |ENTER | /* | | | | | 1 | 2 | LESS | | /* +-------+------+-------+ +------+------+-------+ | /* | WINDOW | QUERY | | /* | | | | /* +-------------+-------+------+ /* /* /* This terminal has only shift and unshift for the function keys; /* Ctrl is a no-op. keyboard shift-1 Shift f1-key PF1 ss3 P f2-key PF2 ss3 Q f3-key PF3 ss3 R f4-key PF4 ss3 S f6-key F6 csi 1 7 ~ *1 csi 1 1 7 ~ f7-key F7 csi 1 8 ~ *1 csi 1 1 8 ~ f8-key F8 csi 1 9 ~ *1 csi 1 1 9 ~ f9-key F9 csi 2 0 ~ *1 csi 1 2 0 ~ f10-key F10 csi 2 1 ~ /* *1 csi 1 2 1 ~ f11-key F11 csi 2 3 ~ *1 csi 1 2 3 ~ f12-key F12 csi 2 4 ~ *1 csi 1 2 4 ~ f13-key F13 csi 2 5 ~ *1 csi 1 2 5 ~ f14-key F14 csi 2 6 ~ *1 csi 1 2 6 ~ f15-key Help csi 2 8 ~ *1 csi 1 2 8 ~ f16-key Do csi 2 9 ~ *1 csi 1 2 9 ~ f17-key F17 csi 3 1 ~ *1 csi 1 3 1 ~ f18-key F18 csi 3 2 ~ *1 csi 1 3 2 ~ f19-key F19 csi 3 3 ~ *1 csi 1 3 3 ~ f20-key F20 csi 3 4 ~ *1 csi 1 3 4 ~ f21-key Find csi 1 ~ f22-key Insert_Here csi 2 ~ f23-key Remove csi 3 ~ f24-key Select csi 4 ~ f25-key Prev_Screen csi 5 ~ f26-key Next_Screen csi 6 ~ up-key Up csi A down-key Down csi B left-key Left csi D right-key Right csi C /* VOS runs with Application Mode always ON. /* Application Mode must be ON to get the following keypad definitions. misc-0-key Keypad_0 ss3 p misc-1-key Keypad_1 ss3 q misc-2-key Keypad_2 ss3 r misc-3-key Keypad_3 ss3 s misc-4-key Keypad_4 ss3 t misc-5-key Keypad_5 ss3 u misc-6-key Keypad_6 ss3 v misc-7-key Keypad_7 ss3 w misc-8-key Keypad_8 ss3 x misc-9-key Keypad_9 ss3 y misc-10-key Keypad_, ss3 l misc-11-key Keypad_- ss3 m misc-12-key Keypad_. ss3 n enter-key Enter ss3 M backspace-key %t %d %; X clear-to-end-of-line csi K clear-to-end-of-display csi J cursor-off csi ? 2 5 l cursor-on csi ? 2 5 h /* note; cursor fmt ignored. delete-chars csi P delete-mult-chars csi %d P delete-lines csi M delete-mult-lines csi %d M display-block a down csi B enter-insert-mode csi 4 h home-cursor csi f index ind initial-string csi ! p &+ /* soft reset csi 4 i &+ /* turn off printer csi ? 4 i &+ /* turn off auto print csi f csi J &+ /* home cursor, clear csi ? 7 l &+ /* reset autowrap csi 2 0 l &+ /* reset newline mode csi ? 2 5 h &+ /* cursor visible esc = &+ /* application keypad mode csi 1 m &+ /* turn on high inten dcs 1 ! u A st &+ /* select ISO Latin-1 dcs ; 1 | &+ /* program fn keys 1 7 / 9 B 3 1 3 1 3 7 7 E ; &+ /* 1*F6 csi 117~ 1 8 / 9 B 3 1 3 1 3 8 7 E ; &+ /* 1*F7 csi 118~ 1 9 / 9 B 3 1 3 1 3 9 7 E ; &+ /* 1*F8 csi 119~ 2 0 / 9 B 3 1 3 2 3 0 7 E ; &+ /* 1*F9 csi 120~ 2 1 / 9 B 3 1 3 2 3 1 7 E ; &+ /* 1*F10 csi 121~ 2 3 / 9 B 3 1 3 2 3 3 7 E ; &+ /* 1*F11 csi 123~ 2 4 / 9 B 3 1 3 2 3 4 7 E ; &+ /* 1*F12 csi 124~ 2 5 / 9 B 3 1 3 2 3 5 7 E ; &+ /* 1*F13 csi 125~ 2 6 / 9 B 3 1 3 2 3 6 7 E ; &+ /* 1*F14 csi 126~ 2 8 / 9 B 3 1 3 2 3 8 7 E ; &+ /* 1*F15 csi 128~ 2 9 / 9 B 3 1 3 2 3 9 7 E ; &+ /* 1*F16 csi 129~ 3 1 / 9 B 3 1 3 3 3 1 7 E ; &+ /* 1*F17 csi 131~ 3 2 / 9 B 3 1 3 3 3 2 7 E ; &+ /* 1*F18 csi 132~ 3 3 / 9 B 3 1 3 3 3 3 7 E ; &+ /* 1*F19 csi 133~ 3 4 / 9 B 3 1 3 3 3 4 7 E ; &+ /* 1*F20 csi 134~ st insert-chars csi @ insert-mult-chars csi %d @ insert-lines csi L insert-mult-lines csi %d L leave-insert-mode csi 4 l left csi D line-graphics _ m l k j m l k j n x q u t w v mult-down csi %d B mult-left csi %d D mult-right csi %d C mult-up csi %d A /* new-line nel new-line cr lf /* If the "nel" value for new-line causes scrolling problems, /* use the "cr lf" version by changing which line is commented out. /* This works around a bug in Kermit-95 versions 1.1.4 thru 1.1.15. position-cursor csi %i %d ; %d f reset-terminal csi ! p &+ /* soft reset csi 4 i &+ /* turn off printer csi ? 4 i &+ /* turn off auto print csi ? 7 l &+ /* reset autowrap csi 2 0 l &+ /* reset newline mode csi ? 2 5 h &+ /* cursor visible esc = &+ /* applcatn keypad mode csi 1 m /* turn on high inten restore-cursor esc 8 reverse-index ri right csi C save-cursor esc 7 /* set-black-on-white csi ? 5 h /* set reverse video /* set-cursor-invisible csi ? 2 5 l /* set-cursor-visible csi ? 2 5 h set-jump-scroll csi ? 4 l set-scrolling-region csi %i %d ; %d r set-smooth-scroll csi ? 4 h /* set-white-on-black csi ? 5 l /* reset reverse video up csi A attribute /* The blank-sig modifier of the dim attribute is commented-out because /* it is not needed when the terminal is only running in normal video /* mode. We have elected not to support inverse-video operation in /* the standard ttp because of the performance impact necessary to keep /* the screen accurate. /* dim mode status resettable %p1 param = 1 inverted blank-sig dim mode status resettable %p1 param = 1 inverted underline mode status resettable %p2 param = 4 blank-sig blink mode status resettable %p3 param = 5 reverse mode status resettable %p4 param = 7 blank-sig /* window-term does not need the blank attribute; leaving it out /* shortens the sequences sent to the terminal. (and there is no /* reverting sequence for blank anyway, so it is useless). /* blank mode status resettable %p5 param = 8 standout underline bright underline select-mode-attributes csi 0 %4( %t ; %c %; %) m /* Here is what set-mode-attributes is doing... /* /* csi output "csi". /* %{0} Push a 0 onto the stack. /* %Ps Pop stack into variable "s". /* s^=0 ==> semicolon needed. /* %4( Repeat 4 times. /* %Pm Get next arg into variable "m". /* m ==> next mode value /* %gm Push variable "m" onto stack. /* %t If "m" is ^= 0 then... /* %gs Push "s" onto the stack. /* %t If "s" ^= 0 /* ; output ";" /* %e Else /* %{1} %Ps Set "s" to 1. /* %; Endif /* %gm Push "m" onto the stack. /* %c Output value from top-of-stack. /* %; Endif /* %) End repeat. /* m Output ASCII "m". */ set-mode-attributes csi %{0} %Ps &+ %4( &+ %Pm &+ %gm %t &+ %gs %t ; %e %{1} %Ps %; &+ %gm %c &+ %; &+ %) m /* Here is what reset-mode-attributes is doing... /* /* csi output "csi". /* %{0} Push a 0 onto the stack. /* %Ps Pop stack into variable "s". /* s^=0 ==> semicolon needed. /* %4( Repeat 4 times. /* %Pm Get next arg into variable "m". /* m ==> next mode value /* %gm Push variable "m" onto stack. /* %t If "m" is ^= 0 then... /* %gs Push "s" onto the stack. /* %t If "s" ^= 0 /* ; output ";" /* %e Else /* %{1} %Ps Set "s" to "1". /* %; Endif /* 2 Output "2". /* %gm Push "m" onto the stack. /* %'1' Push ASCII code for '1' onto the stack. /* %= %t 2 If "m"=1 then Output ASCII code for 2. /* %e %gm %c Else Push "m" onto the stack. Output TOS. /* %; Endif /* %; Endif /* %) End repeat. /* m Output ASCII "m". reset-mode-attributes csi %{0} %Ps &+ %4( &+ %Pm &+ %gm %t &+ %gs %t ; %e %{1} %Ps %; &+ 2 &+ %gm %'1' %= &+ %t 2 &+ %e %gm %c &+ %; &+ %; &+ %) m /* END