From 4aed2c8219774f5d797760606b8489a92ddc5163 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- konsole/doc/Konsole2.Requirements | 141 + konsole/doc/Makefile.am | 5 + konsole/doc/More/Ansi_esc.txt | 77 + konsole/doc/More/Eterm.ref | 508 +++ konsole/doc/More/ansi.sys.txt | 355 ++ konsole/doc/More/ansix364.txt | 322 ++ konsole/doc/More/dec_vt100_codes.txt | 166 + konsole/doc/More/iowa_vt100_news.txt | 255 ++ konsole/doc/More/k95vtnttn.html | 184 + konsole/doc/More/rxvt-ref.html | 1281 +++++++ konsole/doc/More/swedish_vt102_codes.txt | 413 +++ konsole/doc/More/villanova-vt100-esc-codes.txt | 389 ++ konsole/doc/More/vt100_codes_news.txt | 970 +++++ konsole/doc/More/vt100_colorized_termcap.txt | 438 +++ konsole/doc/More/vt100_numeric_keypad.txt | 202 + konsole/doc/More/vt100_reference_card.txt | 215 ++ konsole/doc/More/vt100_scroll_region.txt | 124 + konsole/doc/More/vt100_setup.txt | 170 + konsole/doc/More/vttest.html | 205 ++ konsole/doc/More/xterm.codes | 206 ++ konsole/doc/README.first | 4 + konsole/doc/VT100/Makefile.am | 3 + konsole/doc/VT100/MoreText | 98 + konsole/doc/VT100/Table.Codes | 1879 ++++++++++ konsole/doc/VT100/Table.Graphic | 32 + konsole/doc/VT100/Table.VT52 | 40 + konsole/doc/VT100/awk.table.graphic | 30 + konsole/doc/VT100/cmds.pro | 61 + konsole/doc/VT100/db.trans | 190 + konsole/doc/VT100/db2.pl | 49 + konsole/doc/VT100/genDocument | 257 ++ konsole/doc/VT100/genPl.pl | 300 ++ konsole/doc/VT100/genTC.pl | 434 +++ konsole/doc/VT100/konsole1.gif | Bin 0 -> 1582 bytes konsole/doc/VT100/konsole2.gif | Bin 0 -> 1813 bytes konsole/doc/VT100/t.pl | 17 + konsole/doc/VT100/techref.html | 4681 ++++++++++++++++++++++++ konsole/doc/VT100/vt100.gif | 401 ++ konsole/doc/color-schema | 114 + konsole/doc/framework | 33 + konsole/doc/histBuffer | 24 + konsole/doc/konsole.Doxyfile | 10 + konsole/doc/missing.codes | 89 + konsole/doc/missing.keys | 124 + konsole/doc/mkDocs | 6 + 45 files changed, 15502 insertions(+) create mode 100644 konsole/doc/Konsole2.Requirements create mode 100644 konsole/doc/Makefile.am create mode 100644 konsole/doc/More/Ansi_esc.txt create mode 100644 konsole/doc/More/Eterm.ref create mode 100644 konsole/doc/More/ansi.sys.txt create mode 100644 konsole/doc/More/ansix364.txt create mode 100644 konsole/doc/More/dec_vt100_codes.txt create mode 100644 konsole/doc/More/iowa_vt100_news.txt create mode 100644 konsole/doc/More/k95vtnttn.html create mode 100644 konsole/doc/More/rxvt-ref.html create mode 100644 konsole/doc/More/swedish_vt102_codes.txt create mode 100644 konsole/doc/More/villanova-vt100-esc-codes.txt create mode 100644 konsole/doc/More/vt100_codes_news.txt create mode 100644 konsole/doc/More/vt100_colorized_termcap.txt create mode 100644 konsole/doc/More/vt100_numeric_keypad.txt create mode 100644 konsole/doc/More/vt100_reference_card.txt create mode 100644 konsole/doc/More/vt100_scroll_region.txt create mode 100644 konsole/doc/More/vt100_setup.txt create mode 100644 konsole/doc/More/vttest.html create mode 100644 konsole/doc/More/xterm.codes create mode 100644 konsole/doc/README.first create mode 100644 konsole/doc/VT100/Makefile.am create mode 100644 konsole/doc/VT100/MoreText create mode 100644 konsole/doc/VT100/Table.Codes create mode 100644 konsole/doc/VT100/Table.Graphic create mode 100644 konsole/doc/VT100/Table.VT52 create mode 100644 konsole/doc/VT100/awk.table.graphic create mode 100644 konsole/doc/VT100/cmds.pro create mode 100644 konsole/doc/VT100/db.trans create mode 100755 konsole/doc/VT100/db2.pl create mode 100755 konsole/doc/VT100/genDocument create mode 100755 konsole/doc/VT100/genPl.pl create mode 100755 konsole/doc/VT100/genTC.pl create mode 100644 konsole/doc/VT100/konsole1.gif create mode 100644 konsole/doc/VT100/konsole2.gif create mode 100755 konsole/doc/VT100/t.pl create mode 100644 konsole/doc/VT100/techref.html create mode 100644 konsole/doc/VT100/vt100.gif create mode 100644 konsole/doc/color-schema create mode 100644 konsole/doc/framework create mode 100644 konsole/doc/histBuffer create mode 100644 konsole/doc/konsole.Doxyfile create mode 100644 konsole/doc/missing.codes create mode 100644 konsole/doc/missing.keys create mode 100755 konsole/doc/mkDocs (limited to 'konsole/doc') diff --git a/konsole/doc/Konsole2.Requirements b/konsole/doc/Konsole2.Requirements new file mode 100644 index 000000000..19cbd72fc --- /dev/null +++ b/konsole/doc/Konsole2.Requirements @@ -0,0 +1,141 @@ +[Konsole2.Requirements] + +The current state of konsole asks for a redesign. + +While lower level material, especially the emulation +comes out to be very stable over the years, the upper +level level shifts because of new uses and fulfilled +wishes. + +These cannot be implemented by evolutionary modification +but require complete redesign/rewrites. + +This file is to collect requirements and ideas for this. + +- Here are some candidates ----------------------------- + +- proper partification + + While konsole became a proper platform for terminal + oriented working, fine integration with the desktop + did not happen yet. + +- connection/disconnect session to/from individual windows + +- gui style configuration for $KDEDIR/share/apps/konsole/* + +- improved history algorithm + + Current history algorithm does not allow to limit the + histories size. Also, it descreases the speed. + +- improve unicode support + + this is both an ncurses and terminfo issue. + We may need to provide some help for these packages. + +- tty vs. fullscreen mode solution. + + The visual appearence of the problem is that information + may get lost when the screen is resized. Likely, lines + scrolled into the history could be unfolded. + +- systematic solution for the configuration issue. + + Konsole can be configured from many sources. + Adding or changing configuration items needs + to be localized. + + The compiled-in defaults should consistently + be handled like the default.Keytab. + +- Multi session startup + + Having multible sessions in the beginning + would be a nice option. + +- Event flow and class design. + + The Emulation::setConnect logic has severe flaws. + The whole class design needs to be revisited in + light of the session material that came in, too. + Likely, cut&paste happily flows from the back + through the chest right into the eye. + +- Improved integration of technical documentation. + + This is a freeware project and so, proper technical + documentation is even more importent than in a + commertial environment. + +- A more generic handling of different sorts of emulations. + + This means to fix a long term problem in mc(1) first, + to allow using terminfo entries other then 'xterm'. + + We could use these then to weed out obsolete material + and to make konsole having an ECMA compatible emulation + by default. This would perhaps allow to pull the emulation + straight again. + +... Check through wishlist and FIXME/Notes/PROJECTS + +-------------------------------------------------------- +- copy of the earlier file PROJECTS -------------------- + +The state of konsole is that the lower level mechanics are very +stable, while the overall program still shifts purpose. + +After a year or two of these shifts the upper levels ask for a +redesign. This will come out to be konsole2. + +I'll start a Konsole2.requierements instead of this file. + +- current issues ------------------------------------------------- + +- add configuration for function keys. (allmost done) + document broken keypad (It's a QT issue really) + document VT100 keypad codes (doc/missing.keys) + +* configuration + + - codec selection unfinished. + - command line options + font, menu, scrollbar, schema, kdelnk, codec, keytrans, ... + +* improve/complete documentation + + - include README.* into doc. + - explain configuration files + + + +* future stuff, perhaps ------------------------------------------ + + +* stuff centered around resizing and text vs. matrix: + + [This needs a bit explaination] + + - make resizing more clever + to see the issue, 'ls /dev', make window smaller + and then larger again. + - introduce the concept of "logical lines" for resizing and + cut'n'paste. + - selecting lines that wrap insert a '\n' in the middle of the + line when pasting. A related problem occures with resizing. + +* write configuration utility for configuration files. + (*.schema,*.kdelnk.*.keytab) + +- when manipulating binary files, sometimes one + screws up ones terminal settings. xterm has + a convenient 'hard reset' menu choice. + +- keep session open after client program termination. + Useful for things like 'konsole -e ls'. + +- deflicker, setting all the attributes separately + both when creating and changing to a session + creates 3 setimage and 1 paint events. (This may + have improved, lately). diff --git a/konsole/doc/Makefile.am b/konsole/doc/Makefile.am new file mode 100644 index 000000000..e60c34d10 --- /dev/null +++ b/konsole/doc/Makefile.am @@ -0,0 +1,5 @@ + +SUBDIRS=VT100 + +EXTRA_DIST = More README.first histBuffer missing.codes missing.keys + diff --git a/konsole/doc/More/Ansi_esc.txt b/konsole/doc/More/Ansi_esc.txt new file mode 100644 index 000000000..ede1a7c24 --- /dev/null +++ b/konsole/doc/More/Ansi_esc.txt @@ -0,0 +1,77 @@ + ANSI ESCAPE SEQUENCES +=============================================================================== +Wherever you see '#', that should be replaced by the appropriate number. + + ESC code sequence Function + ------------------- --------------------------- +Cursor Controls: + ESC[#;#H or ESC[#;#f Moves cusor to line #, column # + ESC[#A Moves cursor up # lines + ESC[#B Moves cursor down # lines + ESC[#C Moves cursor forward # spaces + ESC[#D Moves cursor back # spaces + ESC[#;#R Reports current cursor line & column + ESC[s Saves cursor position for recall later + ESC[u Return to saved cursor position + +Erase Functions: + ESC[2J Clear screen and home cursor + ESC[K Clear to end of line + +Set Graphics Rendition: + ESC[#;#;....;#m Set display attributes where # is + 0 for normal display + 1 for bold on + 4 underline (mono only) + 5 blink on + 7 reverse video on + 8 nondisplayed (invisible) + 30 black foreground + 31 red foreground + 32 green foreground + 33 yellow foreground + 34 blue foreground + 35 magenta foreground + 36 cyan foreground + 37 white foreground + 40 black background + 41 red background + 42 green background + 43 yellow background + 44 blue background + 45 magenta background + 46 cyan background + 47 white background + + ESC[=#;7h or Put screen in indicated mode where # is + ESC[=h or 0 for 40 x 25 black & white + ESC[=0h or 1 for 40 x 25 color + ESC[?7h 2 for 80 x 25 b&w + 3 for 80 x 25 color + 4 for 320 x 200 color graphics + 5 for 320 x 200 b & w graphics + 6 for 640 x 200 b & w graphics + 7 to wrap at end of line + + ESC[=#;7l or ESC[=l or Resets mode # set with above command + ESC[=0l or ESC[?7l + +Keyboard Reassignments: + ESC[#;#;...p Keyboard reassignment. The first ASCII + or ESC["string"p code defines which code is to be + or ESC[#;"string";#; changed. The remaining codes define + #;"string";#p what it is to be changed to. + + E.g. Reassign the Q and q keys to the A and a keys (and vice versa). + ESC [65;81p A becomes Q + ESC [97;113p a becomes q + ESC [81;65p Q becomes A + ESC [113;97p q becomes a + + E.g. Reassign the F10 key to a DIR command. + ESC [0;68;"dir";13p The 0;68 is the extended ASCII code + for the F10 key and 13 is the ASCII + code for a carriage return. + + Other function key codes F1=59,F2=60,F3=61,F4=62,F5=63 + F6=64,F7=65,F8=66,F9=67,F10=68 diff --git a/konsole/doc/More/Eterm.ref b/konsole/doc/More/Eterm.ref new file mode 100644 index 000000000..849be1f3b --- /dev/null +++ b/konsole/doc/More/Eterm.ref @@ -0,0 +1,508 @@ +-------------------------------------------------------------------------- + Eterm Technical Reference +-------------------------------------------------------------------------- + Reworked from XTerm documentation and from other sources + +Definitions + +c The literal character c. + +C A single (required) character. + +Ps A single (usually optional) numeric parameter, composed of one or + more digits. + +Pm A multiple numeric parameter composed of any number of single + numeric parameters, separated by ; character(s). + +Pt A text parameter composed of printable characters. + +[-] marks unimplemented sequences +[*] marks Eterm-specific (non-ANSI/ISO) sequences +-------------------------------------------------------------------------- + +ENQ Enquiry (Ctrl-E), Send Device Attributes (DA) + -> request attributes from terminal + -> ESC[?1;2c + (``I am a VT100 with Advanced Video Option.'') +BEL Bell (Ctrl-G) +BS Backspace (Ctrl-H) +TAB Horizontal Tab (HT) (Ctrl-I) +LF Line Feed or New Line (NL) (Ctrl-J) +VT Vertical Tab (Ctrl-K) same as LF +FF Form Feed or New Page (NP) (Ctrl-L) same as LF +CR Carriage Return (Ctrl-M) +SO Shift Out (Ctrl-N), invokes the G1 character set + -> Switch to Alternate Character Set +SI Shift In (Ctrl-O), invokes the G0 character set (the default) + -> Switch to Standard Character Set +SPC Space Character + +ESC # 8 DEC Screen Alignment Test (DECALN) + +Character Sets +-------------------------------------------------------------------------- +ESC ( C Designate G0 Character Set (ISO 2022) +ESC ) C Designate G1 Character Set (ISO 2022) +ESC * C Designate G2 Character Set (ISO 2022) +ESC + C Designate G3 Character Set (ISO 2022) +ESC $ C Designate Kanji Character Set + where + C = 0 -> DEC Special Character and Line Drawing Set + C = A -> United Kingdom (UK) + C = B -> United States (USASCII) +[-] C = < -> Multinational character set +[-] C = 5 -> Finnish character set +[-] C = C -> Finnish character set +[-] C = K -> German character set + +ESC 7 Save Cursor (SC) +ESC 8 Restore Cursor (RC) +ESC = Application Keypad (SMKX) +ESC > Normal Keypad (RMKX) + + - If the numeric keypad is activated, e.g. Num_Lock has been + pressed, numbers or control functions are generated by the + numeric keypad (see Key Codes section) + +ESC D Index (IND) +ESC E Next Line (NEL) +ESC H Tab Set (HTS) +ESC M Reverse Index (RI) +[-] ESC N Single Shift Select of G2 Character Set (SS2): + affects next character only +[-] ESC O Single Shift Select of G3 Character Set (SS3): + affects next character only + +ESC Z Obsolete form of ESC [ c + Optional (compile-time) returns -> ESC[?1;2C + +ESC [ Ps @ Insert Ps (Blank) Character(s) [default: 1] (ICH) +ESC [ Ps A Cursor Up Ps Times [default: 1] (CUU) +ESC [ Ps B Cursor Down Ps Times [default: 1] (CUD) +ESC [ Ps C Cursor Forward Ps Times [default: 1] (CUF) +ESC [ Ps D Cursor Backward Ps Times [default: 1] (CUB) +ESC [ Ps E Cursor Down Ps Times [default: 1] and to first column +ESC [ Ps F Cursor Up Ps Times [default: 1] and to first column +ESC [ Ps G Cursor to Column Ps (HPA) + +ESC [ Ps;Ps H Cursor Position [row;column] [default: 1;1] (CUP) +ESC [ Ps I Move forward Ps [default: 1] tab stops +ESC [ Ps J Erase in Display (ED) + Ps = 0 -> Clear Below (default) + Ps = 1 -> Clear Above + Ps = 2 -> Clear All +ESC [ Ps K Erase in Line (EL) + Ps = 0 -> Clear to Right (default) + Ps = 1 -> Clear to Left (EL1) + Ps = 2 -> Clear All +ESC [ Ps L Insert Ps Line(s) [default: 1] (IL) +ESC [ Ps M Delete Ps Line(s) [default: 1] (DL) +ESC [ Ps P Delete Ps Character(s) [default: 1] (DCH) +[-] ESC [ Ps;Ps;Ps;Ps;Ps T + Initiate hilite mouse tracking. Parameters are + [func;startx;starty;firstrow;lastrow]. + See the section Mouse Tracking. +ESC [ Ps W Tabulator functions + Ps = 0 -> Tab Set (HTS) + Ps = 2 -> Tab Clear (TBC), Clear Current Column (default) + Ps = 5 -> Tab Clear (TBC), Clear All +ESC [ Ps X Erase Ps Character(s) [default: 1] (ECH) +ESC [ Ps Z Move backward Ps [default: 1] tab stops +ESC [ PS ` == ESC [ PS G +ESC [ Ps a == ESC [ Ps C + +ESC [ Ps c Send Device Attributes (DA) + Ps = 0 or omitted -> request attributes from terminal + -> ESC[?1;2c + (``I am a VT100 with Advanced Video Option.'') +ESC [ Ps d Cursor to Line Ps (VPA) +ESC [ Ps e == ESC [ Ps A +ESC [ Ps;Ps f Horizontal and Vertical Position [row;column] + [default: 1;1] (HVP) +ESC [ Ps g Tab Clear (TBC) + Ps = 0 -> Clear Current Column (default) + Ps = 3 -> Clear All (TBC) +ESC [ Ps i Printing + Ps = 4 -> disable transparent print mode (MC4) +[-] Ps = 5 -> enable transparent print mode (MC5) +ESC [ Pm h Set Mode (SM) +ESC [ Pm l Reset Mode (RM) + Ps = 4 + h -> Insert Mode (SMIR) + l -> Replace Mode (RMIR) +[-] Ps = 20 + h -> Automatic Newline (LNM) + l -> Normal Linefeed (LNM) + +ESC [ Pm m Character Attributes (SGR) + Ps = 0 -> Normal (default) + Ps = 1 / 22 -> On / Off Bold (bright fg) + Ps = 4 / 24 -> On / Off Underline + Ps = 5 / 25 -> On / Off Blink (bright bg) + Ps = 7 / 27 -> On / Off Inverse + Ps = 30 / 40 -> fg / bg Black + Ps = 31 / 41 -> fg / bg Red + Ps = 32 / 42 -> fg / bg Green + Ps = 33 / 43 -> fg / bg Yellow + Ps = 34 / 44 -> fg / bg Blue + Ps = 35 / 45 -> fg / bg Magenta + Ps = 36 / 46 -> fg / bg Cyan + Ps = 37 / 47 -> fg / bg White + Ps = 39 / 49 -> fg / bg Default + +ESC [ Ps n Device Status Report (DSR) + Ps = 5 -> Status Report ESC [ 0 n (``OK'') + Ps = 6 -> Report Cursor Position (CPR) [row;column] + as ESC [ r ; c R + Ps = 7 -> Request Display Name + Ps = 8 -> Request Version Number (place in window title) + +ESC [ Ps;Ps r Set Scrolling Region [top;bottom] + [default: full size of window] (CSR) +ESC [ Ps x Request Terminal Parameters (DECREQTPARM) + +ESC [ ? Pm h DEC Private Mode Set (DECSET) +ESC [ ? Pm l DEC Private Mode Reset (DECRST) +ESC [ ? Pm r Restore previously saved DEC Private Mode Values. +ESC [ ? Pm s Save DEC Private Mode Values. +ESC [ ? Pm t Toggle DEC Private Mode Values (Eterm extension). + Ps = 1 + h -> Application Cursor Keys (DECCKM) + l -> Normal Cursor Keys (DECCKM) +[-] Ps = 2 + h -> Designate USASCII for character sets G0-G3. + Ps = 3 + h -> 132 Column Mode (DECCOLM) + l -> 80 Column Mode (DECCOLM) +[-] Ps = 4 + h -> Smooth (Slow) Scroll (DECSCLM) + l -> Jump (Fast) Scroll (DECSCLM) + Ps = 5 + h -> Reverse Video (DECSCNM) + l -> Normal Video (DECSCNM) + Ps = 6 + h -> Origin Mode (DECOM) + l -> Normal Cursor Mode (DECOM) + Ps = 7 + h -> Wraparound Mode (DECAWM) + l -> No Wraparound Mode (DECAWM) +[-] Ps = 8 + h -> Auto-repeat Keys (DECARM) + l -> No Auto-repeat Keys (DECARM) + Ps = 9 (X10 XTerm mouse reporting) + h -> Send Mouse X & Y on button press. + l -> Don't Send Mouse X & Y on button press + See the section Mouse Tracking. +[*] Ps = 10 + h -> menuBar visisble + l -> menuBar invisisble + Ps = 25 + h -> Visible cursor {cnorm/cvvis} + l -> Invisible cursor {civis} +[*] Ps = 30 + h -> scrollBar visisble + l -> scrollBar invisisble +[*] Ps = 35 + h -> Allow XTerm Shift+key sequences + l -> Disallow XTerm Shift+key sequences +[-] Ps = 38 -> Enter Tektronix Mode (DECTEK) + Ps = 40 + h -> Allow 80 <--> 132 Mode + l -> Disallow 80 <--> 132 Mode +[-] Ps = 44 + h -> Turn On Margin Bell + l -> Turn Off Margin Bell +[-] Ps = 45 + h -> Reverse-wraparound Mode + l -> No Reverse-wraparound Mode +[-] Ps = 46 + h -> Start Logging (normally disabled at compile-time) + l -> Stop Logging (normally disabled at compile-time) + Ps = 47 + h -> Use Alternate Screen Buffer + l -> Use Normal Screen Buffer + Ps = 66 + h -> Application Keypad (DECPAM) + l -> Normal Keypad (DECPNM) + Ps = 67 + h -> Backspace key sends BS (DECBKM) + l -> Backspace key sends DEL + Ps = 1000 (X11 XTerm mouse reporting) + h -> Send Mouse X & Y on button press and release. + See the section Mouse Tracking. + l -> Don't Send Mouse X & Y on button press and release +[-] Ps = 1001 (X11 XTerm mouse tracking) + h -> Use Hilite Mouse Tracking. + See the section Mouse Tracking. + l -> Don't Use Hilite Mouse Tracking +ESC ] Ps;Pt BEL + Set Text Parameters + Ps = 0 -> Change Icon Name and Window Title to Pt + Ps = 1 -> Change Icon Name to Pt + Ps = 2 -> Change Window Title to Pt +[*] Ps = 10 -> menuBar command Pt (compile-time option) + see menuBar section below +[*] Ps = 20 -> Change default background pixmap to Pt + (compile-time option) + see XPM section below +[*] Ps = 39 -> Change default foreground color to Pt + (compile-time option) +[-] Ps = 46 -> Change Log File to Pt (normally disabled by a + compile-time option) +[*] Ps = 49 -> Change default background color to Pt + (compile-time option) + Ps = 50 -> Set Font to Pt +[*] special values of Pt (Eterm extension) + "#+n" change up font(s) + "#-n" change down font(s) + if is missing or 0, a value of 1 is used + "" change to font0 + "#n" change to font + +ESC c Full Reset (RIS) +ESC n Invoke the G2 Character Set (LS2) +ESC o Invoke the G3 Character Set (LS3) + +-------------------------------------------------------------------------- + Eterm XPM +-------------------------------------------------------------------------- + +For the XPM XTerm escape sequence, "ESC ] 20; Pt BEL", Pt can be the +name of the background pixmap followed by a sequence of +scaling/positioning commands separated by semi-colons. + +The scaling/positioning commands: + `?' = query scale/position + `WxH+X+Y' = change scale and position + `WxH+X' -> Y = X + `WxH' -> Y = X = 50 + `W+X+Y' -> H = W + `W+X' -> H = W, Y = X + `W' -> H = W, X = Y = 50 + `=+X+Y' = change position (absolute) + `+X+Y' = change position (relative) + `=+X' -> Y = X + `+X' -> Y = X + `Wx0' -> W *= W/100 + `0xH' -> H *= H/100 + +For example: +eg. + "\E]20;mona.xpm;200" + loads the pixmap `mona.xpm' and sets the scaling to 200% +or + "\E]20;;200;?\a" + + sets the scaling of the current pixmap to 200% and displays + the image geometry in the title. + +-------------------------------------------------------------------------- + Eterm menuBar +-------------------------------------------------------------------------- + +For the menubar XTerm escape sequence, "ESC ] 10; Pt BEL", the syntax +of Pt is as follows: + + = title set menuBar title + +/ access menuBar top level + -/ remove menuBar top level + NUL remove menuBar top level + + + [/menu/path/]submenu add/access menu + - [/menu/path/]submenu remove menu + + + [/menu/path/]{item}[{rtext}] [action] add/alter item + - [/menu/path/]{item} remove item + + + [/menu/path/]{-} add separator + - [/menu/path/]{-} remove separator + + + ../ access parent menu (1 level) + + ../../ access parent menu (multiple levels) + + Define menu quick arrows + BeginRightLeftUpDownEnd + +NB: the square brackets indicate optional values. + +The title may contain the following format specifiers: + %% literal '%' character + %v Eterm version + +In the `action' associated with a menu item, special characters must be +backslash-escaped: + `\a', `\b', `\E `\e', `\n', `\r', `\t', '\octal' +or in control-character notation: + ^@, ^A .. ^Z .. ^_, ^? + + If `action' begins with a NUL (^@) character followed by + non-NUL characters, the leading NUL is stripped off and the + balance is sent back to Eterm. + + To send a string starting with a NUL (^@) character to the + program, start action with a pair of NUL characters (^@^@), + the first of which will be stripped off and the balance + directed to the program. + + As a concession and a convenience to the many Emacs work-alike + editors, an action string can be be starting with the following: + `M-...', eg, `M-$' == `\E$' + and for Meta-x commands, a carriage-return will be appended if + missing and leading space will be skipped + + eg, `M-x apropos' == `\Exapropos\r' + + The option {rtext} will be right-justified. In the absence of + a specified action, this text will be as the used. So, for + example, + Pt = `+{Open}{^X^F}' + is equivalent to + Pt = `+{Open){^X^F}{^X^F}' + + To only have the right-justified text, either use the same name + for both left and right labels, eg: + Pt = `+{Open}{Open} Open-File-Action' + or simply hide the left label by preceeding it with a dot, eg: + Pt = `+{.anyLabel}{Open} Open-File-Action' + + Since the left label is used for matching, it is necessary. + + The menus also provide a hook for `quick arrows' to provide + easier user access. If nothing has been explicitly set, the + default is to emulate the curror keys. The syntax permits + each arrow to be altered individually or all four at once with + re-entering their common beginning/end text. For example, to + explicitly associate cursor actions with the arrows, any of the + following forms could be used: + + Pt = `\\E[A' + Pt = `\\E[B' + Pt = `\\E[C' + Pt = `\\E[D' + or + Pt = `\\E[A\\E[B\\E[C\\E[D' + or + Pt = `\\E[ABCD' + + It is probably easiest just to see the examples. + +-------------------------------------------------------------------------- + Mouse reporting +-------------------------------------------------------------------------- + +ESC [ M report mouse position + The lower 2 bits of indicate the button: + Button = & 3 - SPACE + 0 = Button1 pressed + 1 = Button2 pressed + 2 = Button3 pressed + 3 = button released (X11 mouse report) + + The upper bits of indicate the modifiers when + the button was pressed and are added together + (X11 mouse report only): + State = & 28 - SPACE + 4 = Shift + 8 = Meta + 16 = Control + + Col = - SPACE + Row = - SPACE + +-------------------------------------------------------------------------- + Eterm special graphics mode: +-------------------------------------------------------------------------- +ESC G Q query if graphics are available +-> ESC G 0 no graphics available +-> ESC G 1 graphics available (color only) + +Add more documentation here, if anyone actually cares. +ESC G W ;;;: create window +ESC G G : query window +-> ESC G +ESC G L start line +ESC G P start point +ESC G F start fill +ESC G C clear window +ESC G T ;; ;;: place text + +-------------------------------------------------------------------------- + Key Codes +-------------------------------------------------------------------------- + Normal Shift Control Application +Up ESC [ A ESC [ a ESC O a ESC O A +Down ESC [ B ESC [ b ESC O b ESC O B +Right ESC [ C ESC [ c ESC O c ESC O C +Left ESC [ D ESC [ d ESC O d ESC O D + + Normal Shift Control +Tab ^I ESC [ Z ^I +BackSpace ^H ^? ^? + + Normal Shift Control Ctrl+Shift +Home == Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @ +Insert ESC [ 2 ~ paste-mouse ESC [ 2 ^ ESC [ 2 @ +Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @ +End == Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @ +Prior ESC [ 5 ~ scroll-up ESC [ 5 ^ ESC [ 5 @ +Next ESC [ 6 ~ scroll-down ESC [ 6 ^ ESC [ 6 @ + +Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @ + +Function Keys: +(Note: Shift + F1-10 generates F11-20) + Norm Shift Control Ctrl+Shift +F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^ +F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^ +F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^ +F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^ +F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^ + +F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^ +F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^ +F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^ +F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^ +F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^ + +F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @ +F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @ +F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @ +F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @ + +F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @ +F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @ + +F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @ +F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @ +F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @ +F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @ + +Keypad: + use Shift to temporarily override Appl-Keypad setting + use Num_Lock to toggle Appl-Keypad setting + if Num_Lock is off, escape sequences toggle Appl-Keypad setting +------ + Normal Application +KP_Enter ^M ESC O M +KP_F1 ESC O P ESC O P +KP_F2 ESC O Q ESC O Q +KP_F3 ESC O R ESC O R +KP_F4 ESC O S ESC O S +XK_KP_Multiply * ESC O j +XK_KP_Add + ESC O k +XK_KP_Separator , ESC O l +XK_KP_Subtract - ESC O m +XK_KP_Decimal . ESC O n +XK_KP_Divide / ESC O o +XK_KP_0 0 ESC O p +XK_KP_1 1 ESC O q +XK_KP_2 2 ESC O r +XK_KP_3 3 ESC O s +XK_KP_4 4 ESC O t +XK_KP_5 5 ESC O u +XK_KP_6 6 ESC O v +XK_KP_7 7 ESC O w +XK_KP_8 8 ESC O x +XK_KP_9 9 ESC O y +-------------------------------------------------------------------------- diff --git a/konsole/doc/More/ansi.sys.txt b/konsole/doc/More/ansi.sys.txt new file mode 100644 index 000000000..5600175f3 --- /dev/null +++ b/konsole/doc/More/ansi.sys.txt @@ -0,0 +1,355 @@ +ANSI.SYS -- ansi terminal emulation escape sequences + + ANSI.SYS + +Defines functions that change display graphics, control cursor movement, and +reassign keys. The ANSI.SYS device driver supports ANSI terminal emulation +of escape sequences to control your system's screen and keyboard. An ANSI +escape sequence is a sequence of ASCII characters, the first two of which +are the escape character (1Bh) and the left-bracket character (5Bh). The +character or characters following the escape and left-bracket characters +specify an alphanumeric code that controls a keyboard or display function. +ANSI escape sequences distinguish between uppercase and lowercase letters; +for example,"A" and "a" have completely different meanings. + + +Parameters used in ANSI escape sequences + +Pn + Numeric parameter. Specifies a decimal number. + +Ps + Selective parameter. Specifies a decimal number that you use to select + a function. You can specify more than one function by separating the + parameters with semicolons. + +PL + Line parameter. Specifies a decimal number that represents one of the + lines on your display or on another device. + +Pc + Column parameter. Specifies a decimal number that represents one of the + columns on your screen or on another device. + +ANSI escape sequences for cursor movement, graphics, and keyboard settings + +In the following list of ANSI escape sequences, the abbreviation ESC +represents the ASCII escape character 27 (1Bh), which appears at the +beginning of each escape sequence. + +ESC[PL;PcH + Cursor Position: Moves the cursor to the specified position + (coordinates). If you do not specify a position, the cursor moves to the + home position - the upper-left corner of the screen (line 0, column + 0). This escape sequence works the same way as the following Cursor + Position escape sequence. + +ESC[PL;Pcf + Cursor Position: Works the same way as the preceding Cursor Position + escape sequence. + +ESC[PnA + Cursor Up: Moves the cursor up by the specified number of lines without + changing columns. If the cursor is already on the top line, ANSI.SYS + ignores this sequence. + +ESC[PnB + Cursor Down: Moves the cursor down by the specified number of lines + without changing columns. If the cursor is already on the bottom line, + ANSI.SYS ignores this sequence. + +ESC[PnC + Cursor Forward: Moves the cursor forward by the specified number of + columns without changing lines. If the cursor is already in the + rightmost column, ANSI.SYS ignores this sequence. + +ESC[PnD + Cursor Backward: Moves the cursor back by the specified number of + columns without changing lines. If the cursor is already in the leftmost + column, ANSI.SYS ignores this sequence. + +ESC[s + Save Cursor Position: Saves the current cursor position. You can move + the cursor to the saved cursor position by using the Restore Cursor + Position sequence. + +ESC[u + Restore Cursor Position: Returns the cursor to the position stored + by the Save Cursor Position sequence. + +ESC[2J + Erase Display: Clears the screen and moves the cursor to the home + position (line 0, column 0). + +ESC[K + Erase Line: Clears all characters from the cursor position to the + end of the line (including the character at the cursor position). + +ESC[Ps;...;Psm + Set Graphics Mode: Calls the graphics functions specified by the + following values. These specified functions remain active until the next + occurrence of this escape sequence. Graphics mode changes the colors and + attributes of text (such as bold and underline) displayed on the + screen. + + Text attributes + 0 All attributes off + 1 Bold on + 4 Underscore (on monochrome display adapter only) + 5 Blink on + 7 Reverse video on + 8 Concealed on + + Foreground colors + 30 Black + 31 Red + 32 Green + 33 Yellow + 34 Blue + 35 Magenta + 36 Cyan + 37 White + + Background colors + 40 Black + 41 Red + 42 Green + 43 Yellow + 44 Blue + 45 Magenta + 46 Cyan + 47 White + + Parameters 30 through 47 meet the ISO 6429 standard. + +ESC[=psh + Set Mode: Changes the screen width or type to the mode specified + by one of the following values: + + 0 40 x 148 x 25 monochrome (text) + 1 40 x 148 x 25 color (text) + 2 80 x 148 x 25 monochrome (text) + 3 80 x 148 x 25 color (text) + 4 320 x 148 x 200 4-color (graphics) + 5 320 x 148 x 200 monochrome (graphics) + 6 640 x 148 x 200 monochrome (graphics) + 7 Enables line wrapping + 13 320 x 148 x 200 color (graphics) + 14 640 x 148 x 200 color (16-color graphics) + 15 640 x 148 x 350 monochrome (2-color graphics) + 16 640 x 148 x 350 color (16-color graphics) + 17 640 x 148 x 480 monochrome (2-color graphics) + 18 640 x 148 x 480 color (16-color graphics) + 19 320 x 148 x 200 color (256-color graphics) + +ESC[=Psl + Reset Mode: Resets the mode by using the same values that Set Mode + uses, except for 7, which disables line wrapping. The last character + in this escape sequence is a lowercase L. + +ESC[code;string;...p + Set Keyboard Strings: Redefines a keyboard key to a specified string. + The parameters for this escape sequence are defined as follows: + + Code is one or more of the values listed in the following table. + These values represent keyboard keys and key combinations. When using + these values in a command, you must type the semicolons shown in this + table in addition to the semicolons required by the escape sequence. + The codes in parentheses are not available on some keyboards. + ANSI.SYS will not interpret the codes in parentheses for those + keyboards unless you specify the /X switch in the DEVICE command for + ANSI.SYS. + + String is either the ASCII code for a single character or a string + contained in quotation marks. For example, both 65 and "A" can be + used to represent an uppercase A. + +IMPORTANT: Some of the values in the following table are not valid for all + computers. Check your computer's documentation for values that + are different. + +Key Code SHIFT+code CTRL+code ALT+code +------------------------------------------------------------------- + +F1 0;59 0;84 0;94 0;104 + +F2 0;60 0;85 0;95 0;105 + +F3 0;61 0;86 0;96 0;106 + +F4 0;62 0;87 0;97 0;107 + +F5 0;63 0;88 0;98 0;108 + +F6 0;64 0;89 0;99 0;109 + +F7 0;65 0;90 0;100 0;110 + +F8 0;66 0;91 0;101 0;111 + +F9 0;67 0;92 0;102 0;112 + +F10 0;68 0;93 0;103 0;113 + +F11 0;133 0;135 0;137 0;139 + +F12 0;134 0;136 0;138 0;140 + +HOME (num keypad) 0;71 55 0;119 -- + +UP ARROW (num keypad) 0;72 56 (0;141) -- + +PAGE UP (num keypad) 0;73 57 0;132 -- + +LEFT ARROW (num keypad) 0;75 52 0;115 -- + +RIGHT ARROW (num 0;77 54 0;116 -- +keypad) + +END (num keypad) 0;79 49 0;117 -- + +DOWN ARROW (num keypad) 0;80 50 (0;145) -- + +PAGE DOWN (num keypad) 0;81 51 0;118 -- + +INSERT (num keypad) 0;82 48 (0;146) -- + +DELETE (num keypad) 0;83 46 (0;147) -- + +HOME (224;71) (224;71) (224;119) (224;151) + +UP ARROW (224;72) (224;72) (224;141) (224;152) + +PAGE UP (224;73) (224;73) (224;132) (224;153) + +LEFT ARROW (224;75) (224;75) (224;115) (224;155) + +RIGHT ARROW (224;77) (224;77) (224;116) (224;157) + +END (224;79) (224;79) (224;117) (224;159) + +DOWN ARROW (224;80) (224;80) (224;145) (224;154) + +PAGE DOWN (224;81) (224;81) (224;118) (224;161) + +INSERT (224;82) (224;82) (224;146) (224;162) + +DELETE (224;83) (224;83) (224;147) (224;163) + +PRINT SCREEN ÄÄ ÄÄ 0;114 ÄÄ + +PAUSE/BREAK ÄÄ ÄÄ 0;0 ÄÄ + +BACKSPACE 8 8 127 (0) + +ENTER 13 ÄÄ 10 (0 + +TAB 9 0;15 (0;148) (0;165) + +NULL 0;3 ÄÄ ÄÄ ÄÄ + +A 97 65 1 0;30 + +B 98 66 2 0;48 + +C 99 66 3 0;46 + +D 100 68 4 0;32 + +E 101 69 5 0;18 + +F 102 70 6 0;33 + +G 103 71 7 0;34 + +H 104 72 8 0;35 + +I 105 73 9 0;23 + +J 106 74 10 0;36 + +K 107 75 11 0;37 + +L 108 76 12 0;38 + +M 109 77 13 0;50 + +N 110 78 14 0;49 + +O 111 79 15 0;24 + +P 112 80 16 0;25 + +Q 113 81 17 0;16 + +R 114 82 18 0;19 + +S 115 83 19 0;31 + +T 116 84 20 0;20 + +U 117 85 21 0;22 + +V 118 86 22 0;47 + +W 119 87 23 0;17 + +X 120 88 24 0;45 + +Y 121 89 25 0;21 + +Z 122 90 26 0;44 + +1 49 33 ÄÄ 0;120 + +2 50 64 0 0;121 + +3 51 35 ÄÄ 0;122 + +4 52 36 ÄÄ 0;123 + +5 53 37 ÄÄ 0;124 + +6 54 94 30 0;125 + +7 55 38 ÄÄ 0;126 + +8 56 42 ÄÄ 0;126 + +9 57 40 ÄÄ 0;127 + +0 48 41 ÄÄ 0;129 + +- 45 95 31 0;130 + += 61 43 ÄÄ- 0;131 + +[ 91 123 27 0;26 + +] 93 125 29 0;27 + + 92 124 28 0;43 + +; 59 58 ÄÄ 0;39 + +' 39 34 ÄÄ 0;40 + +, 44 60 ÄÄ 0;51 + +. 46 62 ÄÄ 0;52 + +/ 47 63 ÄÄ 0;53 + +` 96 126 ÄÄ (0;41) + +ENTER (keypad) 13 ÄÄ 10 (0;166) + +/ (keypad) 47 47 (0;142) (0;74) + +* (keypad) 42 (0;144) (0;78) ÄÄ + +- (keypad) 45 45 (0;149) (0;164) + ++ (keypad) 43 43 (0;150) (0;55) + +5 (keypad) (0;76) 53 (0;143) ÄÄ diff --git a/konsole/doc/More/ansix364.txt b/konsole/doc/More/ansix364.txt new file mode 100644 index 000000000..da74ad156 --- /dev/null +++ b/konsole/doc/More/ansix364.txt @@ -0,0 +1,322 @@ + +The following table of the ANSI X3.64 encodings is the result of some work I +did a few years ago for BYTE magazine. BYTE made this table available for +download from several bulletin-board systems, so I see no reason why it cannot +be posted here for whatever private use you care to make. Just don't expect +to make a profit selling copies of it without paying royalties to McGraw-Hill. + +Oh, by the way, the equivalent ISO standard is DP-6429. + +.....RSS + + + ANSI Standard (X3.64) Control Sequences for Video Terminals and Peripherals + in alphabetic order by mnemonic + + (Inspired by the article "Toward Standardized Video Terminals: ANSI + X3.64 Device Control" by Mark L. Siegel, April 1984 BYTE, page 365) + + (Ps and Pn are parameters expressed in ASCII.) + (Numeric parameters are given in decimal radix.) + (Abbreviations are explained in detail at end.) + (Spaces used in this table for clarity are not + used in the actual codes.) + + Default Type +Sequence Sequence Parameter or +Mnemonic Name Sequence Value Mode +--------------------------------------------------------------------------- +APC Applicatn Program Command Esc Fe Delim +CBT Cursor Backward Tab Esc [ Pn Z 1 eF +CCH Cancel Previous Character Esc T +CHA Cursor Horzntal Absolute Esc [ Pn G 1 eF +CHT Cursor Horizontal Tab Esc [ Pn I 1 eF +CNL Cursor Next Line Esc [ Pn E 1 eF +CPL Cursor Preceding Line Esc [ Pn F 1 eF +CPR Cursor Position Report Esc [ Pn ; Pn R 1, 1 +CSI Control Sequence Intro Esc [ Intro +CTC Cursor Tab Control Esc [ Ps W 0 eF +CUB Cursor Backward Esc [ Pn D 1 eF +CUD Cursor Down Esc [ Pn B 1 eF +CUF Cursor Forward Esc [ Pn C 1 eF +CUP Cursor Position Esc [ Pn ; Pn H 1, 1 eF +CUU Cursor Up Esc [ Pn A 1 eF +CVT Cursor Vertical Tab Esc [ Pn Y eF +DA Device Attributes Esc [ Pn c 0 +DAQ Define Area Qualification Esc [ Ps o 0 +DCH Delete Character Esc [ Pn P 1 eF +DCS Device Control String Esc P Delim +DL Delete Line Esc [ Pn M 1 eF +DMI Disable Manual Input Esc \ Fs +DSR Device Status Report Esc [ Ps n 0 +EA Erase in Area Esc [ Ps O 0 eF +ECH Erase Character Esc [ Pn X 1 eF +ED Erase in Display Esc [ Ps J 0 eF +EF Erase in Field Esc [ Ps N 0 eF +EL Erase in Line Esc [ Ps K 0 eF +EMI Enable Manual Input Esc b Fs +EPA End of Protected Area Esc W +ESA End of Selected Area Esc G +FNT Font Selection Esc [ Pn ; Pn Space D 0, 0 FE +GSM Graphic Size Modify Esc [ Pn ; Pn Space B 100, 100 FE +GSS Graphic Size Selection Esc [ Pn Space C none FE +HPA Horz Position Absolute Esc [ Pn ` 1 FE +HPR Horz Position Relative Esc [ Pn a 1 FE +HTJ Horz Tab w/Justification Esc I FE +HTS Horizontal Tab Set Esc H FE +HVP Horz & Vertical Position Esc [ Pn ; Pn f 1, 1 FE +ICH Insert Character Esc [ Pn @ 1 eF +IL Insert Line Esc [ Pn L 1 eF +IND Index Esc D FE +INT Interrupt Esc a Fs +JFY Justify Esc [ Ps ; ... ; Ps Space F 0 FE +MC Media Copy Esc [ Ps i 0 +MW Message Waiting Esc U +NEL Next Line Esc E FE +NP Next Page Esc [ Pn U 1 eF +OSC Operating System Command Esc ] Delim +PLD Partial Line Down Esc K FE +PLU Partial Line Up Esc L FE +PM Privacy Message Esc ^ Delim +PP Preceding Page Esc [ Pn V 1 eF +PU1 Private Use 1 Esc Q +PU2 Private Use 2 Esc R +QUAD Typographic Quadding Esc [ Ps Space H 0 FE +REP Repeat Char or Control Esc [ Pn b 1 +RI Reverse Index Esc M FE +RIS Reset to Initial State Esc c Fs +RM Reset Mode Esc [ Ps l none +SD Scroll Down Esc [ Pn T 1 eF +SEM Select Edit Extent Mode Esc [ Ps Q 0 +SGR Select Graphic Rendition Esc [ Ps m 0 FE +SL Scroll Left Esc [ Pn Space @ 1 eF +SM Select Mode Esc [ Ps h none +SPA Start of Protected Area Esc V +SPI Spacing Increment Esc [ Pn ; Pn Space G none FE +SR Scroll Right Esc [ Pn Space A 1 eF +SS2 Single Shift 2 (G2 set) Esc N Intro +SS3 Single Shift 3 (G3 set) Esc O Intro +SSA Start of Selected Area Esc F +ST String Terminator Esc \ Delim +STS Set Transmit State Esc S +SU Scroll Up Esc [ Pn S 1 eF +TBC Tab Clear Esc [ Ps g 0 FE +TSS Thin Space Specification Esc [ Pn Space E none FE +VPA Vert Position Absolute Esc [ Pn d 1 FE +VPR Vert Position Relative Esc [ Pn e 1 FE +VTS Vertical Tabulation Set Esc J FE + +--------------------------------------------------------------------------- + +Abbreviations: + +Intro an Introducer of some kind of defined sequence; the normal 7-bit + X3.64 Control Sequence Introducer is the two characters "Escape [" + +Delim a Delimiter + +x/y identifies a character by position in the ASCII table (column/row) + +eF editor function (see explanation) + +FE format effector (see explanation) + +F is a Final character in + an Escape sequence (F from 3/0 to 7/14 in the ASCII table) + a control sequence (F from 4/0 to 7/14) + +Gs is a graphic character appearing in strings (Gs ranges from + 2/0 to 7/14) in the ASCII table + +Ce is a control represented as a single bit combination in the C1 set + of controls in an 8-bit character set + +C0 the familiar set of 7-bit ASCII control characters + +C1 roughly, the set of control characters available only in 8-bit systems. + This is too complicated to explain fully here, so read Jim Fleming's + article in the February 1983 BYTE, especially pages 214 through 224. + +Fe is a Final character of a 2-character Escape sequence that has an + equivalent representation in an 8-bit environment as a Ce-type + (Fe ranges from 4/0 to 5/15) + +Fs is a Final character of a 2-character Escape sequence that is + standardized internationally with identical representation in 7-bit + and 8-bit environments and is independent of the currently + designated C0 and C1 control sets (Fs ranges from 6/0 to 7/14) + +I is an Intermediate character from 2/0 to 2/15 (inclusive) in the + ASCII table + +P is a parameter character from 3/0 to 3/15 (inclusive) in the ASCII + table + +Pn is a numeric parameter in a control sequence, a string of zero or + more characters ranging from 3/0 to 3/9 in the ASCII table + +Ps is a variable number of selective parameters in a control sequence + with each selective parameter separated from the other by the code + 3/11 (which usually represents a semicolon); Ps ranges from + 3/0 to 3/9 and includes 3/11 + +\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ +/ + +Format Effectors versus Editor Functions + +A format effector specifies how the final output is to be created. +An editor function allows you to modify the specification. + +For instance, a format effector that moves the "active position" (the +cursor or equvalent) one space to the left would be useful when you want to +create an overstrike, a compound character made of two standard characters +overlaid. Control-H, the Backspace character, is actually supposed to be a +format effector, so you can do this. But many systems use it in a +nonstandard fashion, as an editor function, deleting the character to the +left of the cursor and moving the cursor left. When Control-H is assumed to +be an editor function, you cannot predict whether its use will create an +overstrike unless you also know whether the output device is in an "insert +mode" or an "overwrite mode". When Control-H is used as a format effector, +its effect can always be predicted. The familiar characters carriage +return, linefeed, formfeed, etc., are defined as format effectors. + +\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ +/ + +ANSI X3.64 Mode-Changing Parameters for use with the + Select Mode (SM) and Reset Mode (RM) functions + + Parameter Mode Mode Function + Characters Mnemonic + column/ graphic + row repres. +---------------------------------------------------------------------------- +3/0 0 an error condition +3/1 1 GATM guarded-area transfer mode +3/2 2 KAM keyboard action mode +3/3 3 CRM control representation mode +3/4 4 IRM insertion/replacement mode +3/5 5 SRTM status-reporting transfer mode +3/6 6 ERM erasure mode +3/7 7 VEM vertical editing mode +3/8 8 reserved for future standardization +3/9 9 reserved for future standardization +3/10 : reserved separator for parameters +3/11 ; Standard separator for parameters +3/12 < reserved for private (experimental) use +3/13 = reserved for private (experimental) use +3/14 > reserved for private (experimental) use +3/15 ? reserved for private (experimental) use +3/1 3/0 10 HEM horizontal editing mode +3/1 3/1 11 PUM positioning unit mode +3/1 3/2 12 SRM send/receive mode +3/1 3/3 13 FEAM format effector action mode +3/1 3/4 14 FETM format effector transfer mode +3/1 3/5 15 MATM multiple area transfer mode +3/1 3/6 16 TTM transfer termination mode +3/1 3/7 17 SATM selected area transfer mode +3/1 3/8 18 TSM tabulation stop mode +3/1 3/9 19 EBM editing boundary mode +3/1 3/10 1: reserved separator for parameters +3/1 3/11 1; Standard separator for parameters +3/1 3/12 1< error condition--unspecified recovery +3/1 3/13 1= error condition--unspecified recovery +3/1 3/14 1> error condition--unspecified recovery +3/1 3/15 1? error condition--unspecified recovery +3/2 3/0 20 LNM linefeed/newline mode (not in ISO 6429) +3/2 3/1 21 + . . + . . reserved for future standardization + . . +3/9 3/9 99 + +3/12 3/0 <0 + . . + . . reserved for private (experimental) use + . . +3/15 3/15 ?? + +\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ +/ + +NOTES ON THE DEC VT100 IMPLEMENTATION + +In the case of the popular DEC VT100 video-terminal implementation, +the only mode that may be altered is the linefeed/newline (LNM) mode. +Other modes are considered permanently set, reset, or not applicable +as follows: + + Set: ERM + Reset: CRM, EBM, FEAM, FETM, IRM, KAM, PUM, SRTM, TSM + N/A: GATM, HEM, MATM, SATM, TTM, VEM + +Control sequences implemented in the VT100 are as follows: + + CPR, CUB, CUD, CUF, CUP, CUU, DA, DSR, ED, EL, HTS, HVP, IND, + LNM, NEL, RI, RIS, RM, SGR, SM, TBC + +plus several private DEC commands. + +Erasing parts of the display (EL and ED) in the VT100 is performed thus: + + Erase from cursor to end of line Esc [ 0 K or Esc [ K + Erase from beginning of line to cursor Esc [ 1 K + Erase line containing cursor Esc [ 2 K + Erase from cursor to end of screen Esc [ 0 J or Esc [ J + Erase from beginning of screen to cursor Esc [ 1 J + Erase entire screen Esc [ 2 J + +The VT100 responds to receiving the DA (Device Attributes) control + + Esc [ c (or Esc [ 0 c) + +by transmitting the sequence + + Esc [ ? l ; Ps c + +where Ps is a character that describes installed options. + +The VT100's cursor location can be read with the DSR (Device Status +Report) control + + Esc [ 6 n + +The VT100 reports by transmitting the CPR sequence + + Esc [ Pl ; Pc R + +where Pl is the line number and Pc is the column number (in decimal). + +\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ +/ + +The complete document describing the standard, "ANSI X3.64-1979: +Additional Controls for Use with the American National Standard +Code for Information Interchange," can be ordered for $13.50 (plus +$4 postage) from + + Standards Sales Department + American National Standards Institute + 1430 Broadway + New York, NY 10018 + 212/354-3300 + +It's best to read the full standard before using it. It also helps +to have copies of the related standards "X3.4-1977: American +National Standard Code for Information Interchange" (the ASCII +standard) and "X3.41.1974: Code-Extension Techniques for Use with +the 7-Bit Coded Character Set of American National Standard for +Information Interchange." + +See also the chapter "Using Extended Screens and Keyboard Control" +in the IBM PC-DOS manuals, especially for the coding for character +attributes. + +The specification for the DEC VT100 is document EK-VT100-UG-003. + +(Copyright 1984 BYTE Publications, subsidiary of McGraw-Hill Inc.) +(Permission granted to reproduce for noncommercial uses.) +(This file prepared by Richard S. Shuford.) + + \ No newline at end of file diff --git a/konsole/doc/More/dec_vt100_codes.txt b/konsole/doc/More/dec_vt100_codes.txt new file mode 100644 index 000000000..e9d4b9f82 --- /dev/null +++ b/konsole/doc/More/dec_vt100_codes.txt @@ -0,0 +1,166 @@ +Article 2317 of comp.terminals: +Path: cs.utk.edu!darwin.sura.net!opusc!usceast!riker!chan +From: chan@charlie.ece.scarolina.edu (Simon Chan) +Newsgroups: comp.terminals +Subject: INFO for VT100 !!!!!!!! +Date: 27 Apr 1994 23:30:09 -0400 +Organization: Univ of S. Carolina, ECE Dept +Lines: 153 +Message-ID: +NNTP-Posting-Host: riker.ece.scarolina.edu + + So I am posting this once again..... +--------------------------------------------------------------------- +Taken from VT100 Programming Reference Card (DIGITAL) + +ANSI Compatible Mode + + Cursor Movement Commands + Cursor up ESC [ Pn A + Cursor down ESC [ Pn B + Cursor forward (right) ESC [ Pn C + Cursor backward (left) ESC [ Pn D + Direct cursor addressing ESC [ Pl; Pc H or + ESC [ Pl; Pc f + Index ESC D + Next Line ESC E + Reverse index ESC M + Save cursor and attributes ESC 7 + Restore cursor and attributes ESC 8 + * Pn = decimal parameter in string of ASCII digits.(default 1) + * Pl = line number (default 0); Pc = column number (default 0) + + Line Size (Double-Height and Double-Width) Commands + Change this line to double-height top half ESC # 3 + Change this line to double-height bottom half ESC # 4 + Change this line to single-width single-height ESC # 5 + Change this line to double-width single-height ESC # 6 + + Character Attributes + ESC [ Ps;Ps;Ps;...,Ps m + Ps = 0 or None All Attributes Off + 1 Bold on + 4 Underscore on + 5 Blink on + 7 Reverse video on + Any other parameter values are ignored. + + Erasing + From cursor to end of line ESC [ K or ESC [ 0 K + From beginning of line to cursor ESC [ 1 K + Entire line containing cursor ESC [ 2 K + From cursor to end of screen ESC [ J or ESC [ 0 J + From beginning of screen to cursor ESC [ 1 J + Entire screen ESC [ 2 J + + Programmable LEDs + ESC [ Ps;Ps;...Ps q + Ps = 0 or None All LEDs Off + 1 L1 on + 2 L2 on + 3 L3 on + 4 L4 on + Any other parameter values are ignored. + + Character Set (G0 and G1 Designators) + Charactor Set G0 Designator G1 Designator + United Kingdom (UK) ESC ( A ESC ) A + United States (USASCII) ESC ( B ESC ) B + Special graphics characters ESC ( 0 ESC ) 0 + and line drawing set + Alternate character ROM ESC ( 1 ESC ) 1 + Alternate character ROM ESC ( 2 ESC ) 2 + special graphics characters + + Scrolling Region + ESC [ Pt ; Pb r + Pt is the number of the top line of the scrolling region; + Pb is the number of the bottom line of the scrolling region + and must be greater than Pt. + (The default for Pt is line 1, the default for Pb is the end + of the screen) + + TAB stops + Set tab at current column ESC H + Clear tab at curent column ESC [ g or ESC [ 0 g + Clear all tabs ESC [ 3 g + + Modes + To Set To Reset + Mode Name Mode Sequence Mode Sequence + Line feed/new line New line ESC [20h Line feed ESC [20l + Cursor key mode Application ESC [?1h Cursor ESC [?l + ANSI/VT52 mode ANSI ESC < VT52 ESC [?2l + Column mode 132 Col ESC [?3h 80 Col ESC [?3l + Scrolling mode Smooth ESC [?4h Jump ESC [?4l + Screen mode Reverse ESC [?5h Normal ESC [?5l + Origin mode Relative ESC [?6h Absolute ESC [?6l + Wraparound On ESC [?7h Off ESC [?7l + Auto repeat On ESC [?8h Off ESC [?8l + Interlace On ESC [?9h Off ESC [?9l + Graphic proc. option On ESC 1 Off ESC 2 + Keypad mode Application ESC = Numeric ESC > + + Reports + Cursor Position Report + Invoked by ESC [ 6 n + Response is ESC [ Pl; Pc R + * Pl = line number; Pc = column number + + Status Report + Invoked by ESC [ 5 n + Response is ESC [ 0 n (terminal ok) + ESC [ 3 n (terminal not ok) + + What Are You + Invoked by ESC [ c or ESC [ O c + Response is ESC [ ?1 ; Ps C + Ps = 0 Base VT100, no options + 1 Processor option (STP) + 2 Advanced Video option (AVO) + 3 AVO and STP + 4 Graphocs processor option (GO) + 5 GO and STP + 6 GO and AVO + 7 GO, STP, and AVO + Alternately invoked by ESC Z (not recommended.) Response is the same. + + Reset + ESC c + + Confidence Tests + Fill Screen with "Es" ESC # 8 + Invoke Test(s) ESC [ 2 ; Ps y + Ps = 1 Power-up self test + (ROM checksum, RAM, NVR, + keyboard and AVO if installed) + 2(loop back connector required) Data Loop Back + 4(loop back connector required) ETA Modern Control Test + 8 Repeat selected test(s) + indefinitely + (until failure or power off) + +VT52 Compatible Mode + Cursor Up ESC A + Cursor Down ESC B + Cursor Right ESC C + Cursor Left ESC D + Select Special Graphics character set ESC F + Select ASCII character set ESC G + Cursor to home ESC H + Reverse line feed ESC I + Erase to end of screen ESC J + Erase to end of line ESC K + Direct cursor address ESC Ylc (see note 1) + Identify ESC Z (see note 2) + Enter alternate keypad mode ESC = + Exit alternate keypad mode ESC > + Enter ANSI mode ESC < + + NOTE 1: Line and column numbers for direct cursor address are single + character codes whose values are the desired number plus + 37 (in Octal). Line and column numbers start at 1. + NOTE 2: Response to ESC Z is ESC / Z. + + + diff --git a/konsole/doc/More/iowa_vt100_news.txt b/konsole/doc/More/iowa_vt100_news.txt new file mode 100644 index 000000000..94a62b69a --- /dev/null +++ b/konsole/doc/More/iowa_vt100_news.txt @@ -0,0 +1,255 @@ +iowa_vt100.news + +\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ + +Newsgroups: comp.terminals +Path: utkcs2!emory!swrinde!cs.utexas.edu!wupost!gumby!destroyer + !news.iastate.edu!emann +From: emann@iastate.edu (The Emann) +Subject: A vt100 ctrl seq list +Message-ID: <1992Mar13.072004.12444@news.iastate.edu> +Date: 13 Mar 92 07:20:04 GMT +Sender: news@news.iastate.edu (USENET News System) +Lines: 205 + + + Without benefit of a vt100 programmer's reference, we've been trying +to locate as complete a list of control sequences for vt52/100/102's. +This list here was compiled from the lists we could find. Most notably +Rob Elliott's 'Selected ANSI Escape codes'; the Villanova list; and the +ANSI_X3.64-tables-from-BYTE list. We'd much rather have a reference manual, +but if anyone can tell us what's missing or incorrect in this list, it +would be greatly appreciated. + +start of list +---------------------------------------------- +Control Characters +------------------ + +Char +Name Dec Hex Action Taken +------------------------------------------------------------------ +NUL 0 0x00 ignored; Null +SOH 1 0x01 ignored; Start of heading +STX 2 0x02 ignored; Start of text +ETX 3 0x03 ignored; End of text +EOT 4 0x04 ignored; End of transmission +ENQ 5 0x05 Transmit answerback message +ACK 6 0x06 ignored; Acknowledge +BEL 7 0x07 Ring the bell +BS 8 0x08 Move cursor left +HT 9 0x09 Move cursor to next tab stop; Horizontal tab +LF 10 0x0A Line feed; causes print if in autoprint +VT 11 0x0B Same as LF; Vertical tab +FF 12 0x0C Same as LF; Form feed +CR 13 0x0D Move cursor to left margin or newline; Carriage return +SO 14 0x0E Invoke G1 character set +SI 15 0x0F Invoke G0 character set +DC1 16 0x10 ignored; Device control 1 +XON 17 0x11 Resume transmission; Device control 2 +DC3 18 0x02 ignored; Device control 3 +XOFF 19 0x13 Halt transmission; Device control 4 +NAK 20 0x14 ignored; Negative acknowledge +SYN 21 0x15 ignored; Syncronous idle +ETB 22 0x16 ignored; End of transmission block +CAN 23 0x17 ignored; Cancel +EM 24 0x18 Cancel escape sequence and display checkerboard +SUB 26 0x1A Same as CAN +ESC 27 0x1B Introduce a control sequence +FS 28 0x1C ignored; File separator +GS 29 0x1D ignored; Group separator +RS 30 0x1E ignored; Record separator +US 31 0x1F ignored; Unit separator +DEL 127 0x7F ignored; Delete + +Control Sequences +----------------- + +Action VT52 mode ANSI (VT100) +---------------------------------------------------- +Cursor up Esc A Esc [ Pn A +Cursor down Esc B Esc [ Pn B +Cursor right Esc C Esc [ Pn C +Cursor left Esc D Esc [ Pn D +Cursor home Esc H +Cursor address Esc Y Pl Pc Esc [ Pn(row);Pn(col);H or + Esc [ Pn(row);Pn(col);f +Cursor position report Esc [ 6 n + returns: Esc [ Pn(row);Pn(col) R +Index Esc D +Newline Esc E +Reverse newline Esc I Esc M +Save cursor & attr Esc 7 +Restore cursor & attr Esc 8 +Insert line Esc [ Pn L +Delete line Esc [ Pn M +Delete character Esc [ Pn P +Define scrolling region Esc [ Pn(top);Pn(bot) r +Erase cursor to EOL Esc K Esc [ K +Erase BOL to cursor Esc [ 1 K +Erase entire line Esc [ 2 K +Erase cursor to EOS Esc J Esc [ J +Erase BOS to cursor Esc [ 1 J +Erase entire screen Esc [ 2 J +Print screen or region Esc ] Esc [ i (region in ANSI only) +Print cursor line Esc V Esc [ ? 1 i +Enter print controller Esc W Esc [ 5 i +Exit print controller Esc X Esc [ 4 i +Enter auto print Esc ^ Esc [ ? 5 i +Exit auto print Esc - Esc [ ? 4 i +Set tab at current col Esc H +Clr tab at current col Esc [ g +Clear all tabs Esc [ 3 g +Enter ANSI mode Esc < +Application keypad Esc = Esc = +Numeric kyepad Esc > Esc > +Fill screen with 'E's Esc # 8 +Reset Esc c +Identify Esc Z Esc Z + returns: Esc/Z returns: Esc [ ? 6 c +Device attr report Esc [ c + returns: Esc [ ? 6 c +Device status report Esc [ 5 n + returns: Esc [ O n +Request term params Esc [ 1 x + returns: Esc[3;;;;;1;0x + +Mode name Ps Set (Esc [ Ps h) Reset (Esc [ Ps l) VT100 +------------------------------------------------------------------------- +Keyboard action 2 Locked Unlocked reset +Insertion 4 Insert Overwrite reset +Duplex 12 Full Half (echo) available +Linefeed/Newline 20 Newline Linefeed available +Cursor key ?1 Application Cursor available +ANSI/VT52 ?2 ANSI VT52 available +Column width ?3 132 80 available +Scolling method ?4 Smooth Jump available +Screen ?5 Reverse Normal available +Origin ?6 Relative Absolute available +Wraparound ?7 Wrap Truncate available +Key auto repeat ?8 Repeating No repeat available +Print formfeed ?18 Yes No available +Print extent ?19 Full screen Scolling region available + +Character set VT52 VT100 (G0) VT100 (G1) +-------------------------------------------------------- +United Kingdom (UK) Esc ( A Esc ) A +United States (US) Esc G Esc ( B Esc ) B +Graphics Esc F Esc ( 0 Esc ) 0 +Default ROM Esc ( 1 Esc ) 1 +Alternate ROM Esc ( 2 Esc ) 2 +Switch to G0/G1 Esc O Esc N + +Character attributes Ps (Esc [ Ps;Ps;Ps;...Psm) +--------------------------------------------------- +Normal (attr off) 0 Note: Ps=3 4 or 6 are unknown and +Bold on 1 probably redundant. +Underscore on 2 +Blink on 5 +Inverse on 7 + +Line Sizes: +Change current line VT100 +--------------------------------------- +To double-height top half Esc # 3 +To double-height bottom half Esc # 4 +To normal size Esc # 5 +To double-width Esc # 6 + +Cursor control keys VT52 VT100 (appl mode) VT100 (cursor mode) +--------------------------------------------------------------------- +Up arrow Esc A Esc O A Esc [ A +Down arrow Esc B Esc O B Esc [ B +Right arrow Esc C Esc O C Esc [ C +Left arrow Esc D Esc O D Esc [ D + +Auxilliary keypad VT52 (num) VT52 (appl) VT100 (num) VT100 (appl) +------------------------------------------------------------------------ +0 0 Esc ? p 0 Esc O p +1 1 Esc ? q 1 Esc O q +2 2 Esc ? r 2 Esc O r +3 3 Esc ? s 3 Esc O s +4 4 Esc ? t 4 Esc O t +5 5 Esc ? u 5 Esc O u +6 6 Esc ? v 6 Esc O v +7 7 Esc ? w 7 Esc O w +8 8 Esc ? x 8 Esc O x +9 9 Esc ? y 9 Esc O y +- - Esc ? m - Esc O m +, , Esc ? l , Esc O l +. . Esc ? n . Esc O n +Enter ^M Esc ? M ^M Esc O M +PF1 Esc P Esc P Esc O P Esc O P +PF2 Esc Q Esc Q Esc O Q Esc O Q +PF3 Esc R Esc R Esc O R Esc O R +PF4 Esc S Esc S Esc O S Esc O S + +G0 graphics char set +-------------------- + +ASCII code Symbol displayed +------------------------------------ +\ Diamond +a Chekerboard +e Degree sign +g Plus/minus sign +j Lower-right box corner +k Upper-right box corner +l Upper-left box corner +m Lower-left box corner +n Intersecting lines +o Horizontal line - scan 1 (bottom) +p Horizontal line - scan 3 +q Horizontal line - scan 5 (matches with box corners) +r Horizontal line - scan 7 +s Horizontal line - scan 9 (top) +t Left T +u Right T +v Top T +w Bottom T +x Vertical bar +y Less-than-or-equal-to sign +z Greater-than-or-equal-to sign +| Not-equal-to sign +( Pi sign +) UK pound sign +~ Centered dot + +--------------------------------------- +end of list + +\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ + +Path: utkcs2!memstvx1!ukma!asuvax!cs.utexas.edu!usc!elroy.jpl.nasa.gov!wvus + !abode!blars!blarson +Newsgroups: comp.terminals +Subject: Re: A vt100 ctrl seq list +Message-ID: <295@blars.UUCP> +From: blarson@blars.UUCP +Date: 13 Mar 92 10:13:23 GMT +Reply-To: blarson@usc.edu +References: <1992Mar13.072004.12444@news.iastate.edu> +Lines: 20 + +In article <1992Mar13.072004.12444@news.iastate.edu>, + emann@iastate.edu (The Emann) writes: +> +> Without benefit of a vt100 programmer's reference, we've been trying +> to locate as complete a list of control sequences for vt52/100/102's. + +Even if you had one, it wouldn't list them all. A couple of examples: +(Genuine vt100, imitators probably get them wrong. (Dec never was good +at imitating their own terminals.)) + +Esc [ 2 ; 8 y Wait for poweroff. +Esc [ 2 ; 15 y Flashing background mode. Also puts terminal in local. + +Also, many sequences produced different results at different speeds. +The original VT100 terminal has many undocumented modes such as 24 +duplicate lines, linefeed goes up, etc. + +-- +blarson@usc.edu usc!blarson blarson@zog +C news and rn for os9/68k! + +\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ diff --git a/konsole/doc/More/k95vtnttn.html b/konsole/doc/More/k95vtnttn.html new file mode 100644 index 000000000..12ac9851d --- /dev/null +++ b/konsole/doc/More/k95vtnttn.html @@ -0,0 +1,184 @@ + +VTTEST Score Sheet - MS Telnet for Windows NT + +

VTTEST Score Sheet - MS Telnet for Windows NT

+
+VTTEST VT100/VT102 Compatibility Test Score Sheet
+
+                     
+Program and version: MS Telnet 1.0 Windows NT Date: ____18 Dec 95___
+
+Score: ____25____ + Extra credit: ____0____ = Final score: ____25___
+
+Check box if test passed.  Score 1 point per check mark.
+Perfect score = 100 points.  Extra credit at end.
+
+1. Test of cursor movements
+
+[0]   1. Text inside frame of E's inside frame of *'s and +'s, 80 columns
+[0]   2. Text inside frame of E's inside frame of *'s and +'s, 132 columns
+[0]   3. Cursor-control chars inside ESC sequences
+[1]   4. Leading 0's in ESC sequences
+
+2. Test of screen features
+
+[1]   5. Three identical lines of *'s (test of wrap mode)
+[0]   6. Test of tab setting/resetting
+[0]   7. 132-column mode, light background
+[1]   8. 80-column mode, light background
+[0]   9. 132-column mode, dark background
+[0]  10. 80-column mode, dark background
+[1]  11. Soft scroll down
+[1]  12. Soft scroll up / down
+[1]  13. Jump scroll down
+[1]  14. Jump scroll up / down
+[0]  15. Origin mode test (2 parts)
+
+     Graphic Rendition test pattern, dark background
+
+[1]  16. Normal ("vanilla")
+[0]  17. Normal underlined distinct from normal
+[0]  18. Normal blink distinct from all above
+[1]  19. Normal underline blink distinct from all above
+[0]  20. Normal reverse ("negative") distinct from all above
+[0]  21. Normal underline reverse distinct from all above
+[0]  22. Normal blink reverse distinct from all above
+[0]  23. Normal underline blink reverse distinct from all above
+[0]  24. Bold distinct from all above
+[0]  25. Bold underlined distinct from all above
+[0]  26. Bold blink distinct from all above
+[0]  27. Bold underline blink distinct from all above
+[0]  28. Bold reverse ("negative") distinct from all above
+[0]  29. Bold underline reverse distinct from all above
+[0]  30. Bold blink reverse distinct from all above
+[0]  31. Bold underline blink reverse distinct from all above
+
+     Graphic Rendition test pattern, light background
+
+[0]  32. Normal ("vanilla")
+[0]  33. Normal underlined distinct from normal
+[0]  34. Normal blink distinct from all above
+[0]  35. Normal underline blink distinct from all above
+[0]  36. Normal reverse ("negative") distinct from all above
+[0]  37. Normal underline reverse distinct from all above
+[0]  38. Normal blink reverse distinct from all above
+[0]  39. Normal underline blink reverse distinct from all above
+[0]  40. Bold distinct from all above
+[0]  41. Bold underlined distinct from all above
+[0]  42. Bold blink distinct from all above
+[0]  43. Bold underline blink distinct from all above
+[0]  44. Bold reverse ("negative") distinct from all above
+[0]  45. Bold underline reverse distinct from all above
+[0]  46. Bold blink reverse distinct from all above
+[0]  47. Bold underline blink reverse distinct from all above
+
+     Save/Restore Cursor  
+
+[1]  48. AAAA's correctly placed
+[0]  49. Lines correctly rendered (middle of character cell)
+[0]  50. Diamonds correctly rendered
+
+3. Test of character sets
+
+[0]  51. UK/National shows Pound Sterling sign in 3rd position
+[0]  52. US ASCII shows number sign in 3rd position
+[0]  53. SO/SI works (right columns identical with left columns)
+[0]  54. True special graphics & line drawing chars, not simulated by ASCII
+
+4. Test of double-sized chars
+
+     Test 1 in 80-column mode:
+
+[0]  55. Left margin correct
+[0]  56. Width correct
+
+     Test 2 in 80-column mode:
+
+[0]  57. Left margin correct
+[0]  58. Width correct
+
+     Test 1 in 132-column mode:
+
+[0]  59. Left margin correct
+[0]  60. Width correct
+
+     Test 2 in 132-column mode:
+
+[0]  61. Left margin correct
+[0]  62. Width correct
+
+[0]  63. "The man programmer strikes again" test pattern
+[0]  64. "Exactly half the box should remain"
+
+5. Test of keyboard
+
+[0]  65. LEDs.
+[0]  66. Autorepeat
+[1]  67. "Press each key" (ability to send each ASCII graphic char)
+[1]  68. Arrow keys (ANSI/Cursor key mode reset)
+[1]  69. Arrow keys (ANSI/Cursor key mode set)
+[1]  70. Arrow keys VT52 mode
+[1]  71. PF keys numeric mode
+[1]  72. PF keys application mode
+[1]  73. PF keys VT52 numeric mode
+[1]  74. PF keys VT52 application mode
+[0]  75. Send answerback message from keyboard
+[1]  76. Ability to send every control character
+
+6. Test of Terminal Reports
+
+[0]  77. Respond to ENQ with answerback
+[0]  78. Newline mode set
+[1]  79. Newline mode reset
+[0]  80. Device status report 5
+[1]  81. Device status report 6
+[1]  82. Device attributes report
+[0]  83. Request terminal parameters 0
+[0]  84. Request terminal parameters 1
+
+7. Test of VT52 submode
+
+[1]  85. Centered rectangle
+[1]  86. Normal character set
+[0]  87. Graphics character set
+[1]  88. Identify query
+
+8. VT102 Features
+
+[0]  89. Insert/delete line, 80 columns
+[0]  90. Insert (character) mode, 80 columns
+[0]  91. Delete character, 80 columns
+[0]  92. Right column staggered by 1 (normal chars), 80 columns
+[0]  93. Right column staggered by 1 (double-wide chars), 80 columns
+[1]  94. ANSI insert character, 80 columns
+[0]  95. Insert/delete line, 132 columns
+[0]  96. Insert (character) mode, 132 columns
+[0]  97. Delete character, 132 columns
+[0]  98. Right column staggered by 1 (normal chars), 132 columns
+[0]  99. Right column staggered by 1 (double-wide chars), 132 columns
+[0] 100. ANSI insert character, 132 columns
+
+9. Extra credit
+
+[0] 101. True soft (smooth) scroll
+[0] 102. True underline
+[0] 103. True blink
+[0] 104. True double-high/wide lines, not simulated
+[0] 105. Reset terminal (*)
+[0] 106. Interpret controls (debug mode) (*)
+[0] 107. Send BREAK (250 msec) (*)
+[0] 108. Send Long BREAK (1.5 sec) (*)
+[0] 109. Host-controlled transparent / controller print (*)
+[0] 110. Host-controlled autoprint (*)
+
+(*) Features of VT100 not tested by vttest.
+
+NOTES:
+Test 3 (character sets) puts it into graphics mode, from which it
+can't recover.
+
+
+VTTEST Score Sheet / Columbia University / kermit@columbia.edu / 18 Dec 95 +
+ + diff --git a/konsole/doc/More/rxvt-ref.html b/konsole/doc/More/rxvt-ref.html new file mode 100644 index 000000000..a27f5b4bc --- /dev/null +++ b/konsole/doc/More/rxvt-ref.html @@ -0,0 +1,1281 @@ + + + + + +Rxvt Technical Reference + + + + + +
+
+

Rxvt Technical Reference

+Reworked from XTerm documentation and other sources
+

+[No] +Frames +


+
+ + +
+

Definitions

+

+ +

c
The literal character c.
+

+ +

C
A single (required) character.
+

+ +

+
Ps
+
A single (usually optional) numeric parameter, +composed of one or more digits.
+
+

+ +

+
Pm
+
A multiple numeric parameter composed of any number of single numeric +parameters, separated by ; character(s).
+
+

+ +

+
Pt
+
A text parameter composed of printable characters.
+
+

+ +


+

Values

+

+ +

+
ENQ
+
Enquiry (Ctrl-E) = Send Device Attributes (DA)
+request attributes from terminal +== ESC[c +
+
+

+ +

BEL
Bell (Ctrl-G)
+

+ +

BS
Backspace (Ctrl-H)
+

+ +

TAB
Horizontal Tab (HT) (Ctrl-I)
+

+ +

LF
Line Feed or New Line (NL) (Ctrl-J)
+

+ +

+
VT
+
Vertical Tab (Ctrl-K) same as LF
+
+

+ +

+
FF
+
Form Feed or New Page (NP) (Ctrl-L) same as LF
+
+

+ +

CR
Carriage Return (Ctrl-M)
+

+ +

+
SO
+
Shift Out (Ctrl-N), invokes the G1 character set
+Switch to Alternate Character Set
+
+

+ +

+
SI
+
Shift In (Ctrl-O), invokes the G0 character set (the default)
+Switch to Standard Character Set
+
+

+ +

SPC
Space Character
+

+ +


+

Escape Sequences

+

+ +

+
ESC # 8
+
DEC Screen Alignment Test (DECALN)
+
+

+ +

+
+ESC 7
+ESC 8 +
+
+Save Cursor (SC)
+Restore Cursor (RC) +
+
+

+ +

+ +
+ESC =
+ESC > +
+
+Application Keypad (SMKX) == +ESC[?66h
+Normal Keypad (RMKX) == +ESC[?66l +
+
+

+ +Note: +If the numeric keypad is activated, eg, Num_Lock has been pressed, +numbers or control functions are generated by the numeric keypad (see +Key Codes) +

+ +

ESC D
Index (IND)
+

+ +

ESC E
Next Line (NEL)
+

+ +

ESC H
Tab Set (HTS)
+

+ +

ESC M
Reverse Index (RI)
+

+ +

+
ESC N
+
Single Shift Select of G2 Character Set (SS2): affects next character only +unimplemented +
+
+

+ +

+
ESC O
+
Single Shift Select of G3 Character Set (SS3): affects next character only +unimplemented +
+
+

+ +

+
ESC Z
+
Obsolete form of ESC[c
+returns: ESC[?1;2C (rxvt compile-time option) +
+
+

+ +

+
ESC c
+
Full Reset (RIS)
+
+

+ +

+
ESC n
+
Invoke the G2 Character Set (LS2)
+
+

+ +

+
ESC o
+
Invoke the G3 Character Set (LS3)
+
+

+ +

+
+ESC ( C
+ESC ) C
+ESC * C
+ESC + C
+ESC $ C +
+
+Designate G0 Character Set (ISO 2022)
+Designate G1 Character Set (ISO 2022)
+Designate G2 Character Set (ISO 2022)
+Designate G3 Character Set (ISO 2022)
+Designate Kanji Character Set
+where C is
+
    +C = 0 : DEC Special Character and Line Drawing Set
    +C = A : United Kingdom (UK)
    +C = B : United States (USASCII)
    +C = < : Multinational character set unimplemented
    +C = 5 : Finnish character set unimplemented
    +C = C : Finnish character set unimplemented
    +C = K : German character set unimplemented +
+
+
+

+ +


+

CSI (Code Sequence Introducer) Sequences

+

+ +

+
ESC [ Ps @
+
Insert Ps (Blank) Character(s) [default: 1] (ICH)
+
+

+ +

+ +
ESC [ Ps A
+
Cursor Up Ps Times [default: 1] (CUU)
+
+

+ +

+
ESC [ Ps B
+
Cursor Down Ps Times [default: 1] (CUD) +
+
+

+ +

+ +
ESC [ Ps C
+
Cursor Forward Ps Times [default: 1] (CUF)
+
+

+ +

+
ESC [ Ps D
+
Cursor +Backward Ps Times [default: 1] (CUB)
+
+

+ +

+
ESC [ Ps E
+
Cursor Down Ps Times [default: 1] and to first column
+
+

+ +

+
ESC [ Ps F
+
Cursor Up Ps Times [default: 1] and to first column
+
+

+ +

+ +
ESC [ Ps G
+
Cursor to Column Ps (HPA)
+
+

+ +

+
ESC [ Ps;Ps H
+
Cursor Position [row;column] [default: 1;1] (CUP)
+
+

+ +

+
ESC [ Ps I
+
Move forward Ps tab stops [default: 1]
+
+

+ +

+
ESC [ Ps J
+
Erase in Display (ED)
+Ps = 0 : Clear Below (default)
+Ps = 1 : Clear Above
+Ps = 2 : Clear All
+
+

+ +

+
ESC [ Ps K
+
Erase in Line (EL)
+Ps = 0 : Clear to Right (default)
+Ps = 1 : Clear to Left (EL1)
+Ps = 2 : Clear All
+
+

+ +

+
ESC [ Ps L
+
Insert Ps Line(s) [default: 1] (IL)
+
+

+ +

+
ESC [ Ps M
+
Delete Ps Line(s) [default: 1] (DL)
+
+

+ +

+
ESC [ Ps P
+
Delete Ps Character(s) +[default: 1] (DCH)
+
+

+ +

+
ESC [ Ps;Ps;Ps;Ps;Ps T
+
Initiate hilite mouse tracking. +unimplemented
+Parameters are [func;startx;starty;firstrow;lastrow].
+
+

+ +

+
ESC [ Ps W
+
Tabulator functions
+Ps = 0 : Tab Set (HTS)
+Ps = 2 : Tab Clear (TBC), Clear Current Column (default)
+Ps = 5 : Tab Clear (TBC), Clear All
+
+

+ +

+
ESC [ Ps X
+
Erase Ps Character(s) [default: 1] (ECH)
+
+

+ +

+
ESC [ Ps Z
+
Move backward Ps [default: 1] tab stops
+
+

+ +

+
ESC [ Ps '
+
== ESC [ Ps G
+
+

+ +

+
ESC [ Ps a
+
== ESC [ Ps C
+
+

+ +

+ +
ESC [ Ps c
+
Send Device Attributes (DA)
+Ps = 0 (or omitted) : request attributes from terminal
+returns: ESC[?1;2c (``I am a VT100 with Advanced Video Option'')
+
+

+ +

+
ESC [ Ps d
+
Cursor to Line Ps (VPA)
+
+

+ +

+
ESC [ Ps e
+
== ESC [ Ps A
+
+

+ +

+
ESC [ Ps;Ps f
+
Horizontal and Vertical Position [row;column] (HVP)
+[default: 1;1]
+
+

+ +

+
ESC [ Ps g
+
Tab Clear (TBC)
+Ps = 0 : Clear Current Column (default)
+Ps = 3 : Clear All (TBC) +
+
+

+ +

+
ESC [ Ps i
+
Printing
+Ps = 4 : disable transparent print mode (MC4)
+Ps = 5 : enable transparent print mode (MC5) +unimplemented +
+
+

+ +

+
+ESC [ Pm h
+ESC [ Pm l +
+
Set Mode (SM)
+Reset Mode (RM)
+
Ps = 4
+
+h : Insert Mode (SMIR)
+l : Replace Mode (RMIR) +
+
Ps = 20 unimplemented
+
+h : Automatic Newline (LNM)
+l : Normal Linefeed (LNM) +
+
+

+ +

+
ESC [ Pm m
+
Character Attributes (SGR)
+Ps = 0 : Normal (default)
+Ps = 1 / 22 : On / Off Bold (bright fg)
+Ps = 4 / 24 : On / Off Underline
+Ps = 5 / 25 : On / Off Blink (bright bg)
+Ps = 7 / 27 : On / Off Inverse
+Ps = 30 / 40 : fg / bg Black
+Ps = 31 / 41 : fg / bg Red
+Ps = 32 / 42 : fg / bg Green
+Ps = 33 / 43 : fg / bg Yellow
+Ps = 34 / 44 : fg / bg Blue
+Ps = 35 / 45 : fg / bg Magenta
+Ps = 36 / 46 : fg / bg Cyan
+Ps = 37 / 47 : fg / bg White
+Ps = 39 / 49 : fg / bg Default
+
+

+ +

+
ESC [ Ps n
+
Device Status Report (DSR)
+Ps = 5 : Status Report ESC [ 0 n (``OK'')
+Ps = 6 : Report Cursor Position (CPR) [row;column] as + ESC [ r ; c R
+Ps = 7 : Request Display Name
+Ps = 8 : Request Version Number (place in window title) +
+
+

+ +

+
ESC [ Ps;Ps r
+
Set Scrolling Region [top;bottom]
+[default: full size of window] (CSR)
+
+

+ +

+
ESC [ Ps x
+
Request Terminal Parameters (DECREQTPARM) +
+
+

+ +


+

DEC Private Modes

+ +
+
ESC [ ? Pm h
+
DEC Private Mode Set (DECSET)
+
+

+ +

+
ESC [ ? Pm l
+
DEC Private Mode Reset (DECRST)
+
+

+ +

+
ESC [ ? Pm r
+
Restore previously saved DEC Private Mode Values.
+
+

+ +

+
ESC [ ? Pm s
+
Save DEC Private Mode Values.
+
+ +

+

+
ESC [ ? Pm t
+
Toggle DEC Private Mode Values (rxvt extension).
+
+

+ +where +

+ +

+
+
Ps = 1 (DECCKM)
+
+h : Application Cursor Keys
+l : Normal Cursor Keys +
+
Ps = 2 unimplemented
+
+h : Designate USASCII for character sets G0-G3. +
+
Ps = 3
+
+h : 132 Column Mode (DECCOLM)
+l : 80 Column Mode (DECCOLM) +
+
Ps = 4 unimplemented
+
+h : Smooth (Slow) Scroll (DECSCLM)
+l : Jump (Fast) Scroll (DECSCLM) +
+
Ps = 5
+
+h : Reverse Video (DECSCNM)
+l : Normal Video (DECSCNM) +
+
Ps = 6
+
+h : Origin Mode (DECOM)
+l : Normal Cursor Mode (DECOM) +
+
Ps = 7
+
+h : Wraparound Mode (DECAWM)
+l : No Wraparound Mode (DECAWM) +
+
Ps = 8 unimplemented
+
+h : Auto-repeat Keys (DECARM)
+l : No Auto-repeat Keys (DECARM) +
+
Ps = 9 (X10 XTerm mouse reporting)
+
+h : Send Mouse X & Y on button press.
+l : No mouse reporting. +
+ +
Ps = 10 (rxvt)
+
+h : menuBar visisble
+l : menuBar invisisble +
+
Ps = 25
+
+h : Visible cursor {cnorm/cvvis}
+l : Invisible cursor {civis} +
+
Ps = 30 (rxvt)
+
+h : scrollBar visisble
+l : scrollBar invisisble +
+
Ps = 35 (rxvt)
+
+h : Allow XTerm Shift+key sequences
+l : Disallow XTerm Shift+key sequences +
+
Ps = 38 : Enter Tektronix Mode (DECTEK) +unimplemented
+
+
+
Ps = 40
+
+h : Allow 80/132 Mode
+l : Disallow 80/132 Mode +
+
Ps = 44 unimplemented
+
+h : Turn On Margin Bell
+l : Turn Off Margin Bell +
+
Ps = 45 unimplemented
+
+h : Reverse-wraparound Mode
+l : No Reverse-wraparound Mode +
+
Ps = 46 unimplemented
+
Ps = 47
+
+h : Use Alternate Screen Buffer
+l : Use Normal Screen Buffer +
+ +
Ps = 66
+
+h : Application Keypad (DECPAM) + == ESC =
+l : Normal Keypad (DECPNM) + == ESC > +
+
Ps = 67
+
+h : Backspace key sends BS (DECBKM)
+l : Backspace key sends DEL +
+
Ps = 1000 (X11 XTerm mouse reporting)
+
+h : Send Mouse X & Y on button press and release.
+l : No mouse reporting. +
+
Ps = 1001 (X11 XTerm mouse Tracking) unimplemented
+
+h : Use Hilite Mouse Tracking.
+l : No mouse reporting. +
+
+

+ +


+

XTerm Escape Sequences

+ +
+
ESC ] Ps;Pt BEL
+
Set XTerm Parameters
+
Ps = 0
+
Change Icon Name and Window Title to Pt
+
Ps = 1
+
Change Icon Name to Pt
+
Ps = 2
+
Change Window Title to Pt
+
Ps = 10
+
menuBar command Pt +(rxvt compile-time option)
+
Ps = 20
+
Change default background pixmap to Pt +(rxvt compile-time option) +
+ +
Ps = 39
+
Change default foreground color to Pt +(rxvt compile-time option)
+
Ps = 46
+
Change Log File to Pt(normally disabled by a compile-time option) unimplemented
+
Ps = 49
+
Change default background color to Pt +(rxvt compile-time option)
+
+Ps = 50
+
Set Font to Pt, with the following special values of Pt (rxvt)
+#+n : change up n font(s)
+#-n : change down n font(s)
+
    if n is missing or 0, a value of 1 is used
+empty : change to font0
+#n : change to fontn
+
+

+ +


+

menuBar

+

+ +The exact syntax used is almost solidified.
+In the menus, DON'T try to use menuBar commands that +add or remove a menuBar. +

+ +Note that in all of the commands, the /path/ +cannot be omitted: +use ./ to specify a menu relative to the current menu. + +

Overview of menuBar operation

+ +For the menuBar XTerm escape sequence ESC ] 10; Pt BEL, the +syntax of Pt can be used for a variety of tasks: + + +At the top level is the current menuBar which is a member of a +circular linked-list of other such menuBars. + +The menuBar acts as a parent for the various drop-down menus, which in +turn, may have labels, separator lines, menuItems and subMenus. + +The menuItems are the useful bits: you can use them to mimic keyboard +input or even to send text or escape sequences back to rxvt. + +The menuBar syntax is intended to provide a simple yet robust method +of constructing and manipulating menus and navigating through the +menuBars. + +

+The first step is to use the tag [menu:name] which +creates the menuBar called name and allows access. +You may now +add or remove +menus, subMenus, and menuItems. Finally, use the tag +[done] to set the menuBar access as readonly +to prevent accidental corruption of the menus. +To re-access the current menuBar for alterations, use the tag +[menu], make the alterations and then use +[done] +

+ +

Commands

+ +
+
[menu:name]
+
+access the named menuBar for creation or alteration. +If a new menuBar is created, it is called name (max of 15 chars) +and the current menuBar is pushed onto the stack +
+ +
[menu]
+
access the current menuBar for alteration
+ +
[title:string]
+
+set the current menuBar's title to string, which may contain +the following format specifiers:
+%% : literal % character
+%n : rxvt name (as per the -name command-line option)
+%v : rxvt version +
+ +
[done]
+
+set menuBar access as readonly.
+End-of-file tag for [read:file] operations. +
+ +
[read:file]
+
+read menu commands directly from file +(extension ".menu" will be appended if required). +Start reading at a line with [menu] or [menu:name] +and continuing until [done] is encountered. +
+Blank and comment lines (starting with #) are ignored. +Actually, since any invalid menu commands are also ignored, almost +anything could be construed as a comment line, but this may be +tightened up in the future ... so don't count on it!. +
+ +
[read:file;name]
+
+The same as [read:file], but +start reading at a line with [menu:name] +and continuing until [done:name] +or [done] is encountered. +
+ +
[dump]
+
+dump all menuBars to the file /tmp/rxvt-PID in a format suitable +for later rereading. +
+ +
+[rm:name]
+[rm] [rm:]
+[rm*] [rm:*] +
+
+remove the named menuBar
+remove the current menuBar
+remove all menuBars +
+ +
[swap]
+
swap the top two menuBars
+ +
[prev]
[next]
+
access the previous or next menuBar
+ +
[show]
[hide]
+
control display of the menuBar ... just like +ESC[?10 h/l +
+ +
+[pixmap:name]
+[pixmap:name;scaling] +
+
set the background pixmap globally ... just like +ESC]20; Pt BEL +
+A Future implementation may make this local to the menubar +
+ +
[:command:]
+
ignore the menu readonly status and issue a command to +Add/Modify or +Remove a menu or menuitem or +change the Quick Arrows; +a useful shortcut for setting the quick arrows from a menuBar. +
+
+ +

Adding and accessing menus

+ +The following commands may also be + prefixed. +
+
/
./
../
../../
+
+access menuBar top level
+access current menu level
+access parent menu (1 level up)
+access parent menu (multiple levels up) +
+ +
/path/menu
+
add/access menu
+ +
/path/menu/*
+
add/access menu and clear it if it exists
+ +
/path/{-}
+
add separator
+ +
/path/{item}
+
add item as a label
+ +
/path/{item} action
+
+add/alter menuitem with an associated action +
+ +
/path/{item}{right-text}
+
+add/alter menuitem with right-text +as the right-justified text and as the associated action +
+ +
/path/{item}{rtext} action
+
+add/alter menuitem with an associated action +and with rtext as the right-justified text. +
+
+ +
+
Special characters in action must be backslash-escaped:
+
\a \b \E \e \n \r \t \octal
+
or in control-character notation:
+
^@, ^A .. ^Z .. ^_, ^?
+
+ +To send a string starting with a NUL (^@) +character to the program, start action with a pair of +NUL characters (^@^@), +the first of which will be stripped off and the balance directed to +the program. +Otherwise if action begins with NUL +followed by non-NUL characters, the leading +NUL is stripped off and the balance is sent back to rxvt. +

+As a convenience for the many Emacs-type editors, action +may start with M- (eg, M-$ is equivalent to \E$) +and a CR will be appended if missed from M-x commands. + +As a convenience for issuing XTerm ESC] sequences from a menubar +(or quick arrow), a BEL (^G) will be appended if needed. + +

+
For example,
+
M-xapropos
+
is equivalent to
+
\Exapropos\r
+
and
+
\E]10;mona;100 +
is equivalent to
+
\E]10;mona;100\a
+
+ +

+The option {right-rtext} will be right-justified. +In the absence of a specified action, this text will be used as the +action as well. +

+
For example,
+
/File/{Open}{^X^F}
+
is equivalent to
+
/File/{Open){^X^F} ^X^F
+
+ +The left label is necessary, since it's used for matching, +but implicitly hiding the left label (by using same name for both left +and right labels), or explicitly hiding the left label (by preceding +it with a dot), makes it possible to have right-justified text only. +
+
For example,
+
/File/{Open}{Open} Open-File-Action
+
or hiding it
+
/File/{.anylabel}{Open} Open-File-Action
+
+ +

Removing menus

+ +
+
+-/*
+-/path/menu
+-/path/{item}
+-/path/{-} +
+
+remove all menus from the menuBar, the same as [clear]
+remove menu
+remove item
+remove separator +
+
-/path/menu/*
+
remove all items, separators and submenus from menu
+
+ +

Quick Arrows

+ +The menus also provide a hook for quick arrows to provide easier +user access. If nothing has been explicitly set, the default is to +emulate the curror keys. The syntax permits each arrow to be altered +individually or all four at once without re-entering their common +beginning/end text. For example, to explicitly associate cursor +actions with the arrows, any of the following forms could be used: + +
+
+<r>Right
+<l>Left
+<u>Up
+<d>Down +
+
Define actions for the respective arrow buttons
+
+<b>Begin
+<e>End +
+
+Define common beginning/end parts for quick arrows +when used in conjunction with the above +<r> <l> <u> <d> +constructs +
+
+ +
+
For example, define arrows individually,
+
+<u>\E[A
+<d>\E[B
+<r>\E[C
+<l>\E[D +
+
or all at once
+
<u>\E[A<d>\E[B<r>\E[C<l>\E[D
+
or more compactly (factoring out common parts) +
<b>\E[<u>A<d>B<r>C<l>D
+
+ +
+

Command Summary

+ +A short summary of the most common commands: +
+
[menu:name]
+
use an existing named menuBar or start a new one
+
[menu]
+
use the current menuBar
+
[title:string]
+
set menuBar title
+
[done]
+
set menu access to readonly and, if reading from a file, signal EOF
+
[done:name]
+
if reading from a file using [read:file;name] signal EOF
+
[rm:name]
[rm] [rm:]
[rm*] [rm:*]
+
remove named, current, or all menuBar(s)
+
[swap]
+
swap top two menuBars
+
[prev]
[next]
+
access the previous/next menuBar
+
[show]
[hide]
+
map/unmap menuBar
+
[pixmap;file]
[pixmap;file;scaling]
+
set a background pixmap
+
+[read:file]
+[read:file;name]
+
read in a menu from a file
+
[dump]
+
dump out all menuBars to /tmp/rxvt-PID
+
/
access menuBar top level
+
./
../
../../
access current or parent menu level
+
/path/menu
add/access menu
+
/path/{-}
add separator
+
/path/{item}{rtext} action
+
add/alter menu item
({rtext} and/or action, may be omitted)
+
-/*
remove all menus from the menuBar
+
-/path/menu
remove menu items, separators and submenus from menu
+
-/path/menu
remove menu
+
-/path/{item}
remove item
+
-/path/{-}
remove separator
+
<b>Begin<r>Right<l>Left<u>Up<d>Down<e>End
+
menu quick arrows
+
+ +
+

XPM

+

+For the XPM XTerm escape sequence ESC ] 20; Pt BEL +then value of Pt +can be the name of the background pixmap followed by a sequence of +scaling/positioning commands separated by semi-colons. The +scaling/positioning commands are as follows: +

+
query scale/position
+
?
+
change scale and position
+
WxH+X+Y
+WxH+X (== WxH+X+X)
+WxH (same as WxH+50+50)
+W+X+Y (same as WxW+X+Y)
+W+X (same as WxW+X+X)
+W (same as WxW+50+50) +
+
change position (absolute)
+
=+X+Y
+=+X (same as =+X+Y) +
+
change position (relative)
+
+X+Y
++X (same as +X+Y) +
+
rescale (relative)
+
+Wx0 -> W *= (W/100)
+0xH -> H *= (H/100)
+
+

+ +For example: +

+
\E]20;funky\a
+
load funky.xpm as a tiled image
+
\E]20;mona;100\a
+
load mona.xpm with a scaling of 100%
+
\E]20;;200;?\a
+
rescale the current pixmap to 200% and display the image geometry +in the title
+
+

+ +


+

Mouse Reporting

+

+ +

+
ESC [ M <b> <x> <y>
+
report mouse position
+
+

+

+The lower 2 bits of <b> indicate the button: +

+
Button = <b> & 3 - SPACE
+
+0 = Button1 pressed
+1 = Button2 pressed
+2 = Button3 pressed
+3 = button released (X11 mouse report)
+
+The upper bits of <b> indicate the modifiers when +the button was pressed and are added together (X11 mouse report only): +
+
State = <b> & 28 - SPACE
+
+4 = Shift
+8 = Meta
+16 = Control
+Col = <x> - SPACE
+Row = <y> - SPACE +
+
+ +
+

Special Graphics Mode

+ +Add more documentation here, if anyone actually cares.

+ +

+
ESC G Q
+
query if graphics are available
+returns: ESC G 0 no graphics available
+returns: ESC G 1 graphics available (color only)
+
+
+
ESC G W <x>;<y>;<w>;<h>:
+
create window
+
+

+ +

+
ESC G C <id>
+
clear window
+
+

+ +

+
ESC G G <id>:
+
query window
+returns: ESC G <id> <x> <y> <w> <h> <fw> <fh> <nw> <nh> +
+
+

+ +

+
+ESC G L <id>
+ESC G P <id>
+ESC G F <id> +
+
+start point
+start line
+start fill +
+
+

+ +

+
;<x>;<y>
+
extend point/line/fill
+
+ +

+

+
ESC G T <id>;<x>;<y>;<mode>;<len>:<text>
+
place text
+
+

+ +


+

Key Codes

+

+ +Note: Shift + F1-F10 generates F11-F20 +

+For the keypad, use Shift to temporarily override +Application-Keypad setting use Num_Lock to toggle +Application-Keypad setting if Num_Lock is off, +escape sequences toggle Application-Keypad setting. +Also note that values of Home, End, Delete +may have been compiled differently on your system. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NormalShiftControlCtrl+Shift
Tab ^I ESC [ Z^I ESC [ Z
BackSpace^H ^? ^?^?
Find ESC [ 1 ~ESC [ 1 $ ESC [ 1 ^ESC [ 1 @
Insert ESC [ 2 ~pasteESC [ 2 ^ESC [ 2 @
Execute ESC [ 3 ~ESC [ 3 $ ESC [ 3 ^ESC [ 3 @
Select ESC [ 4 ~ESC [ 4 $ ESC [ 4 ^ESC [ 4 @
Prior ESC [ 5 ~scroll-upESC [ 5 ^ESC [ 5 @
Next ESC [ 6 ~scroll-downESC [ 6 ^ESC [ 6 @
Home ESC [ 7 ~ESC [ 7 $ ESC [ 7 ^ESC [ 7 @
End ESC [ 8 ~ESC [ 8 $ ESC [ 8 ^ESC [ 8 @
Delete ESC [ 3 ~ESC [ 3 $ ESC [ 3 ^ESC [ 3 @
F1 ESC [ 11 ~ESC [ 23 ~ESC [ 11 ^ESC [ 23 ^
F2 ESC [ 12 ~ESC [ 24 ~ESC [ 12 ^ESC [ 24 ^
F3 ESC [ 13 ~ESC [ 25 ~ESC [ 13 ^ESC [ 25 ^
F4 ESC [ 14 ~ESC [ 26 ~ESC [ 14 ^ESC [ 26 ^
F5 ESC [ 15 ~ESC [ 28 ~ESC [ 15 ^ESC [ 28 ^
F6 ESC [ 17 ~ESC [ 29 ~ESC [ 17 ^ESC [ 29 ^
F7 ESC [ 18 ~ESC [ 31 ~ESC [ 18 ^ESC [ 31 ^
F8 ESC [ 19 ~ESC [ 32 ~ESC [ 19 ^ESC [ 32 ^
F9 ESC [ 20 ~ESC [ 33 ~ESC [ 20 ^ESC [ 33 ^
F10ESC [ 21 ~ESC [ 34 ~ESC [ 21 ^ESC [ 34 ^
F11ESC [ 23 ~ESC [ 23 $ESC [ 23 ^ESC [ 23 @
F12ESC [ 24 ~ESC [ 24 $ESC [ 24 ^ESC [ 24 @
F13ESC [ 25 ~ESC [ 25 $ESC [ 25 ^ESC [ 25 @
F14ESC [ 26 ~ESC [ 26 $ESC [ 26 ^ESC [ 26 @
F15 (Help)ESC [ 28 ~ESC [ 28 $ESC [ 28 ^ESC [ 28 @
F16 (Menu)ESC [ 29 ~ESC [ 29 $ESC [ 29 ^ESC [ 29 @
F17ESC [ 31 ~ESC [ 31 $ESC [ 31 ^ESC [ 31 @
F18ESC [ 32 ~ESC [ 32 $ESC [ 32 ^ESC [ 32 @
F19ESC [ 33 ~ESC [ 33 $ESC [ 33 ^ESC [ 33 @
F20ESC [ 34 ~ESC [ 34 $ESC [ 34 ^ESC [ 34 @
Application
Up ESC [ AESC [ aESC O aESC O A
Down ESC [ BESC [ bESC O bESC O B
RightESC [ CESC [ cESC O cESC O C
Left ESC [ DESC [ dESC O dESC O D
KP_Enter^MESC O M
KP_F1ESC O PESC O P
KP_F2ESC O QESC O Q
KP_F3ESC O RESC O R
KP_F4ESC O SESC O S
XK_KP_Multiply *ESC O j
XK_KP_Add +ESC O k
XK_KP_Separator,ESC O l
XK_KP_Subtract -ESC O m
XK_KP_Decimal .ESC O n
XK_KP_Divide /ESC O o
XK_KP_0 0ESC O p
XK_KP_1 1ESC O q
XK_KP_2 2ESC O r
XK_KP_3 3ESC O s
XK_KP_4 4ESC O t
XK_KP_5 5ESC O u
XK_KP_6 6ESC O v
XK_KP_7 7ESC O w
XK_KP_8 8ESC O x
XK_KP_9 9ESC O y
+ +


+Mark Olesen
+Fri Feb 14 14:16:00 1997 +
+ + diff --git a/konsole/doc/More/swedish_vt102_codes.txt b/konsole/doc/More/swedish_vt102_codes.txt new file mode 100644 index 000000000..7fca08c71 --- /dev/null +++ b/konsole/doc/More/swedish_vt102_codes.txt @@ -0,0 +1,413 @@ +Article 3073 of comp.terminals: +Path: cs.utk.edu!stc06.CTD.ORNL.GOV!fnnews.fnal.gov!uwm.edu!news.alpha.net!news.mathworks.com!europa.eng.gtefsd.com!howland.reston.ans.net!EU.net!uunet!sunic!trane.uninett.no!due.uninett.no!usenet +From: lars@mi.uib.no (Lars Johanson) +Newsgroups: comp.terminals +Subject: vt102 escape codes +Date: 24 Oct 1994 16:29:21 GMT +Organization: Haukeland Sykehus +Lines: 399 +Message-ID: <38gnd1$cio@due.uninett.no> +NNTP-Posting-Host: lpjo.onh.haukeland.no +X-Newsreader: WinVN 0.92.6+ + + +Hi. + +I have seen some people asking for escape sequencies for the +vt100-terminal. I asked the DIGITAL company in Sweden, and +received this (hopefully not copyrighted). It is a vt102 terminal, +but there seems to be little difference. I've tried to mark +functions special to vt102 with: // Not in vt100 + +Here you are: + + + +Escape codes for vt102 terminal. + +All numbers below are octal. means numeric value, means character string. +If is missing it is 0 or in cursor movements 1. + +Reset and set modes + Set Modes + Esc [ ; ... ; h + 033 133 073 073 150 + Reset Modes + Esc [ ; ... ; l + 033 133 073 073 154 + + Where is + '2'= Lock keyboard (set); Unlock keyboard (reset) + '4'= Insert mode (set); Replace mode (reset) + '12'= Echo on (set); Echo off (reset) + '20'= Return = CR+LF (set); Return = CR (reset) + '?1'= Cursorkeys application (set); Cursorkeys normal (reset) + '?2'= Ansi (set); VT52 (reset) + '?3'= 132 char/row (set); 80 char/row (reset) + '?4'= Jump scroll (set); Smooth scroll (reset) + '?5'= Reverse screen (set); Normal screen (reset) + '?6'= Sets relative coordinates (set); Sets absolute coordinates (reset) + '?7'= Auto wrap (set); Auto wrap off (reset) + '?8'= Auto repeat on (set); Auto repeat off (reset) + '?18'= Send FF to printer after print screen (set); No char after PS (reset) + '?19'= Print screen prints full screen (set); PS prints scroll region (reset) + '?25'= Cursor on (set); Cursor off (reset) + +Set scrolling region (n1=upper,n2=lower) + Esc [ ; r + 033 133 073 162 + + +Cursor movement (=how many chars or lines), cursor stop at margin. + Up + Esc [ A + 033 133 101 + Down + Esc [ B + 033 133 102 + Right + Esc [ C + 033 133 103 + Left + Esc [ n D + 033 133 104 + Cursor position (=y,=x, from top of screen or scroll region) + Esc [ ; H + 033 133 073 110 + Or Esc [ ; f + 033 133 073 146 + Index (cursor down with scroll up when at margin) + Esc D + 033 104 + Reverse index (cursor up with scroll down when at margin) + Esc M + 033 115 + Next line (CR+Index) + Esc E + 033 105 + Save cursor and attribute + Esc 7 + 033 067 + Restore cursor and attribute + Esc 8 + 033 070 + + +Keybad character selection + Application keypad mode + Esc = + 033 075 + Numeric keypad mode + Esc > + 033 076 + + Keypadkeys codes generated + Numeric Application VT52 Application + 0 0 (060) Esc O p (033 117 160) Esc ? p (033 077 160) + 1 1 (061) Esc O q (033 117 161) Esc ? q (033 077 161) + 2 2 (062) Esc O r (033 117 162) Esc ? r (033 077 162) + 3 3 (063) Esc O s (033 117 163) Esc ? s (033 077 163) + 4 4 (064) Esc O t (033 117 164) Esc ? t (033 077 164) + 5 5 (065) Esc O u (033 117 165) Esc ? u (033 077 165) + 6 6 (066) Esc O v (033 117 166) Esc ? v (033 077 166) + 7 7 (067) Esc O w (033 117 167) Esc ? w (033 077 167) + 8 8 (070) Esc O x (033 117 170) Esc ? x (033 077 170) + 9 9 (071) Esc O y (033 117 171) Esc ? y (033 077 171) + - (minus) - (055) Esc O m (033 117 155) Esc ? m (033 077 155) + , (comma) , (054) Esc O l (033 117 154) Esc ? l (033 077 154) + . (period) . (056) Esc O n (033 117 156) Esc ? n (033 077 156) + Enter CR (015)* Esc O M (033 117 115) Esc ? M (033 077 115) + PF1 Esc O P Esc O P (033 117 120) Esc P (033 120) + PF2 Esc O Q Esc O Q (033 117 121) Esc Q (033 121) + PF3 Esc O R Esc O R (033 117 122) Esc R (033 122) + PF4 Esc O S Esc O S (033 117 123) Esc S (033 123) + * Or CR+LF (015 012) + + Cursorkeys codes generated (changed by set and reset modes '?1') + normal application + Up Esc [ A Esc O A + 033 133 101 033 117 101 + Down Esc [ B Esc O B + 033 133 102 033 117 102 + Right Esc [ C Esc O C + 033 133 103 033 117 103 + Left Esc [ D Esc O D + 033 133 104 033 117 104 + + +Select character set + UK as G0 + Esc ( A + 033 050 101 + US as G0 + Esc ( B + 033 050 102 + Special characters and line drawing character set as G0 + Esc ( 0 + 033 050 060 + Alternate ROM as G0 // Not in vt100 + Esc ( 1 + 033 050 061 + Alternate ROM special characters character set as G0 // Not in vt100 + Esc ( 2 + 033 050 062 + + UK as G1 + Esc ) A + 033 051 101 + US as G1 + Esc ) B + 033 051 102 + Special characters and line drawing character set as G1 + Esc ) 0 + 033 051 060 + Alternate ROM as G1 // Not in vt100 + Esc ) 1 + 033 051 061 + Alternate ROM special characters character set as G1 // Not in vt100 + Esc ) 2 + 033 051 062 + + Selects G2 for one character // Not in vt100 + Esc N + 033 115 + Selects G3 for one character // Not in vt100 + Esc O + 033 117 + + +Set graphic rendition + Esc [ ; m + 033 133 073 156 + + Where is + 0 = Turn off attributes + 1 = Bold (Full) + 2 = Half // Not in vt100 + 4 = Underline + 5 = Blink + 7 = Reverse + 21 = Normal intensity + 22 = Normal intensity + 24 = Cancel underlined + 25 = Cancel blinking + 27 = Cancel reverse + +Tab stops + Set horizontal tab + Esc H + 033 110 + Clear horizontal tab + Esc [ g + 033 133 147 + Or Esc [ 0 g + 033 133 060 147 + Clear all horizontal tabs + Esc [ 3 g + 033 133 063 147 + + +Line attributes + Double-height + Top half + Esc # 3 + 033 043 063 + Bottom half + Esc # 4 + 033 043 064 + Single-width, single-height + Esc # 5 + 033 043 065 + Double-width + Esc # 6 + 033 043 066 + + +Erasing + Erase in line + End of line (including cursor position) + Esc [ K + 033 133 113 + Or Esc [ 0 K + 033 133 060 113 + Beginning of line (including cursor position) + Esc [ 1 K + 033 133 061 113 + Complete line + Esc [ 2 K + 033 133 062 113 + Erase in display + End of screen (including cursor position) + Esc [ J + 033 133 112 + Or Esc [ 0 J + 033 133 060 112 + Beginning of screen (including cursor position) + Esc [ 1 J + 033 133 061 112 + Complete display + Esc [ 2 J + 033 133 062 112 + + +Computer editing + Delete characters ( characters right from cursor + Esc [ P + 033 133 120 + Insert line ( lines) + Esc [ L + 033 133 114 + Delete line ( lines) + Esc [ M + 033 133 115 + + +Printing + Esc [ i + 033 133 151 + + Where is + ''= Same as '0' + '0'= Prints screen (full or scroll region) + '4'= Printer controller off + '5'= Printer controller on (Print all received chars to printer) + '?1'= Print cursor line + '?4'= Auto print off + '?5'= Auto print on (Prints line to printer when you exit from it) + + +Reports + Device status + Esc [ n + 033 133 156 + + Where is + '0'=Response Ready, no malfunctions detected + '3'=Malfunction, error in self-test. + '5'=Status report request + '6'=Request cursor position. + '?10'=Response to printer status request, All ok. + '?11'=Response to printer status request, Printer is not ready. + '?13'=Response to printer status request, No printer. + '?15'=Status report request from printer + + Cursor position raport (Response to request cursor position) + Esc [ ; R + 033 133 073 122 + Request terminal to identify itself (esc Z may not be supported in future) + Esc [ c + 033 133 143 + Esc [ 0 c + 033 133 060 143 + Esc Z + 033 132 + Response to terminal identify (VT102) + Esc [ ? 6 c + 033 133 077 066 143 + + +Reset to initial state + Esc c + 033 143 + + +Tests + Invoke confidence test + Esc [ 2 ; y + 033 133 062 073 171 + + Where is + '1'= Power-up test + '2'= Data loopback test + '4'= EIA loopback test + '9'= Power-up tests (continuously) + '10'= Data loopback tests (continuously) + '12'= EIA loopback tests (continuously) + '16'= Printer loopback test + '24'= Printer loopback tests (continuously) + + +Screen adjustments + Esc # 8 + 033 043 070 + + +Keyboard indicator + Led L1 off + Esc [ 0 q + 033 133 060 181 + Led L1 on + Esc [ 1 q + 033 133 061 181 + + + +VT52 sequences + Ansi mode + Esc < + 033 074 + Cursor positioning + Up Esc A + 033 101 + Down Esc B + 033 102 + Right Esc C + 033 103 + Left Esc D + 033 104 + Home Esc H + 033 110 + Direct cursor address + Esc Y + 033 131 + Reverse linefeed Esc I + 033 111 + Erase to end of line Esc K + 033 113 + Erase to end of screen Esc J + 033 112 + Auto print on Esc ^ + 033 136 + Auto print off Esc + 033 137 + Printer controller on Esc W + 033 127 + Printer controller off Esc X + 033 130 + Print cursor line Esc V + 033 135 + Print screen Esc ] + 033 135 + Indentify request Esc Z + 033 132 + Response to indetify Esc / Z + request (VT52) 033 057 132 + Special charset (same Esc F + as line draw in VT102 033 106 + Normal char set Esc G + 033 107 + + +Control characters + 000 = Null (fill character) + 003 = ETX (Can be selected half-duplex turnaround char) + 004 = EOT (Can be turnaround or disconnect char, if turn, then DLE-EOT=disc.) + 005 = ENQ (Transmits answerback message) + 007 = BEL (Generates bell tone) + 010 = BS (Moves cursor left) + 011 = HT (Moves cursor to next tab) + 012 = LF (Linefeed or New line operation) + 013 = VT (Processed as LF) + 014 = FF (Processed as LF, can be selected turnaround char) + 015 = CR (Moves cursor to left margin, can be turnaround char) + 016 = SO (Selects G1 charset) + 017 = SI (Selects G0 charset) + 021 = DC1 (XON, causes terminal to continue transmit) + 023 = DC3 (XOFF, causes terminal to stop transmitting) + 030 = CAN (Cancels escape sequence) + 032 = SUB (Processed as CAN) + 033 = ESC (Processed as sequence indicator) + + + + diff --git a/konsole/doc/More/villanova-vt100-esc-codes.txt b/konsole/doc/More/villanova-vt100-esc-codes.txt new file mode 100644 index 000000000..8142978ed --- /dev/null +++ b/konsole/doc/More/villanova-vt100-esc-codes.txt @@ -0,0 +1,389 @@ +Date: Sat, 27 Oct 90 15:59:27 -0400 +From: tihor@acf4.NYU.EDU (Stephen Tihor) +Message-Id: <9010271959.AA10105@acf4.NYU.EDU> +To: tihor@acf4.NYU.EDU +Subject: Re: VT100/52/ANSI et.al. Escape codes +Newsgroups: comp.os.vms +In-Reply-To: <9010240014.AA10730@ucbvax.Berkeley.EDU> 23 Oct 90 16:00 EDT + +/* acf4:comp.os.vms */ +/* 20950709@VUVAXCOM.BITNET (Jim McRee [Merlin]) / 4:00 pm Oct 23, 1990 */ + + Villanova University + Campus Computing - Terminal Emulation + Includes VT100 and VT52 Terminal and Control Codes + + This file contains control and terminal codes for the VT100 terminals, +ANSI terminals, and VT52 terminals. Many of the codes were derived from PC/ +Intercomm, from Mark of the Unicorn Software. I have researched some of them +and added some of my own. + + Thank you, + Jim McRee (209507097@VUVAXCOM.BITNET) + +(* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *) + + CONTROL SEQUENCE SUMMARY + + * For additional information on the DEC VT100 and VT102 terminals, please + consult the VT100 USER GUIDE and VT102 USER GUIDE, published by Digital + Equipment Corporation as part numbers EK-VT100-UG and EK-VT102-UG. + + +CONTROL CHARACTERS: +------------------ + +Character +Name Decimal Action Taken +--------------------------------------------------------------- +NUL 0 Fill character; ignored on input. +ENQ 5 Transmit answerback message. +BEL 7 Ring the bell. +BS 8 Move cursor left. +HT 9 Move cursor to next tab stop. +LF 10 Line feed; causes print if in autoprint. +VT 11 Same as LF. +FF 12 Same as LF. +CR 13 Move cursor to left margin or newline. +SO 14 Invoke G1 character set. +SI 15 Invoke G0 character set. +XON 17 Resume transmission. +XOFF 19 Halt transmission. +CAN 24 Cancel escape sequence and display checkerboard. +SUB 26 Same as CAN. +ESC 27 Introduce a control sequence. +DEL 127 Fill character; ignored on input. + + * All characters less than 32 decimal which are not listed above are ignored. + +(* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *) + +ANSI MODE SUMMARY: +----------------- + + *In ANSI sequences, parameters are given as a string of ASCII digits + ('0' - '9') seperated by semicolons. Pn refers to a number whose value + used directly. Ps refers to a number used as a selector. + +CURSOR MOVEMENT: +--------------- + + Cursor Up: Esc [ Pn A + Cursor Down: Esc [ Pn B + Cursor Left: Esc [ Pn C + Cursor Right: Esc [ Pn D + + Direct Addressing : Esc [ Pn(row);Pn(col);H or + Esc [ Pn(row);Pn(col);f + + ie. (Pascal) + Writeln (Esc,'[',Row:1,';',col:1,';','H'); + + Index: Esc D + New Line: Esc E + Reverse Line: Esc M + + Save cursor & Attributes: Esc 7 + Restore cursor & attributes: Esc 8 + +ERASING: +------- + + Cursor to end of line Esc [ K + Beginning of line to cursor Esc [ 1 K + Entire line Esc [ 2 K + Cursor to end of screen Esc [ J + Beginning of screen to cursor Esc [ 1 J + Entire screen Esc [ 2 J + + (Some programs expect Esc [ J to always clear the entire + screen, but this does not conform to the standard.) + +MODES: +----- + + Set with Esc [ Ps h + Reset with Esc [ Ps l + +Mode name Ps Set Reset +------------------------------------------------------------------- +Keyboard action 2 Locked Unlocked +Insertion 4 Insert Overwrite +Send - Receive 12 Full Echo +Line feed/New line 20 New line Line feed +Cursor key ?1 Application Cursor +ANSI/VT52 ?2 ANSI VT52 +Column ?3 132 80 +Scrolling ?4 Smooth Jump +Screen ?5 Reverse Normal +Origin ?6 Relative Absolute +Wraparound ?7 Wrap Truncate +Auto key repeat ?8 Repeating No repeat +Print form feed ?18 Yes No +Print extent ?19 Full screen Scrolling region + +Keypad application Esc = +Keypad numeric mode Esc > + +EDITING: +------- + + Insert line Esc [ Pn L + Delete line Esc [ Pn M + Delete character Esc [ Pn P + Scrolling region Esc [ Pn(top);Pn(bot) r + +PRINTING: +-------- + + Print screen or region Esc [ i + Print cursor line Esc [ ? 1 i + Enter auto print Esc [ ? 5 i + Exit auto print Esc [ ? 4 i + Enter print controller Esc [ 5 i + Exit print controller Esc [ 4 i + +LINE SIZE: +--------- + + The following is a list of the available styles of printing on the +screen. "Yes" in any column means that the option is supported by the escape +code on that line. "No" means that the option is not supported by the escape +code on that line; however, it may, and almost certainly is, supported by +another escape sequence. + +Double-height and double-width double the size of the characters in their +respective ways (ie. Double-height is twice as tall as usual). _Line +designates underlining. Blink is for blinking characters. Side is the +orientation of the character. Normal means that there is no orientation. + +Top and bottom refers to the position of the character in order to make a +complete character. The top and bottom sequences will be important if you use +the double height option. You will need to print the line twice to get a +complete line. The first printing will print the top part of the characters +and the second printing will print the bottom part. + +Inverse refers to the condition of the character. "No" indicates that the +character will be printed in the color it normally is printed in with its usual +backround. "Yes" means that the character will be printed in the backround +color and the character's backround will be the color it is usually printed in. +Shade refers to the brightness of the character. Normal is the standard +brightness of the character. Bright is bold type. Dark is a darker brightness +than usual. + +The escape code is the command you would type before the text you want to print +to get the indicated effects. This section was greatly expanded in version 1.1 +of this file. + +Double Double +Height Width _Line Blink Side Inverse Shade Escape Code +----------------------------------------------------------------------- + No No No No Normal No Normal [0m + Yes Yes No No Top No Bright #3[1m + Yes Yes No No Bottom No Bright #4[1m + Yes Yes No No Top No Dark #3[2m + Yes Yes No No Bottom No Dark #4[2m + Yes Yes No No Top No Normal #3[3m + Yes Yes No No Bottom No Normal #4[3m + Yes Yes Yes No Top No Normal #3[4m + Yes Yes Yes No Bottom No Normal #4[4m + Yes Yes No Yes Top No Normal #3[5m + Yes Yes No Yes Bottom No Normal #4[5m + Yes Yes No No Top Yes Normal #3[7m + Yes Yes No No Bottom Yes Normal #3[7m + No Yes No No Normal No Normal #6[0m + No Yes No No Normal No Bright #6[1m + No Yes No No Normal No Dark #6[2m + No Yes Yes No Normal No Normal #6[4m + No Yes No Yes Normal No Normal #6[5m + No Yes No No Normal Yes Normal #6[7m + No No No No Normal No Bright #7[1m + No No No No Normal No Dark #7[2m + No No Yes No Normal No Normal #7[4m + No No No Yes Normal No Normal #7[5m + No No No No Normal Yes Normal #7[7m + +* Some codes have been eliminated due to a repetition of effects. To the best + of my knowledge, these codes are complete and correct. If you should find + any errors, or you find some new sequences/effects, please inform me. + +* #3 and #4 behave in the same way as #3[3m and #4[4m. + +CHARACTER SETS: +-------------- + +Character set G0 G1 +----------------------------------------------------- +United Kingdom (UK) Esc ( A Esc ) A +United States (US) Esc ( B Esc ) B +Graphics Esc ( 0 Esc ) 0 +Default ROM Esc ( 1 Esc ) 1 +Alternate ROM Esc ( 2 Esc ) 2 + +Switch to G0/G1 Esc O Esc N + +TAB STOPS: +--------- + + Set tab at current column Esc H + Clear tab at current column Esc [ g + Clear all tabs Esc [ 3 g + +MISCELLANEOUS: +------------- + + Hard Reset Esc c + + Character attributes Esc [ Ps m + or Esc [ Ps ; Ps ; Ps m + 0 - All attributes off + 1 - Bold on + 4 - Underscore on + 5 - Blink on + 7 - Reverse on + + Programmable LEDs Esc [ Ps q + 0 - All LEDs off + (1 - 4) - Turn respective LED on + + Fill screen with "E"s (test) Esc # 8 + +(* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *) + +NON-VT100 CONTROL SEQUENCES: +---------------------------- + + *Some VT100 terminal programs also understand a few other escape + sequences than the standard VT100. I cannot guarantee that any of + these nonstandard codes will work with any particular terminal, but + they may be useful if they do work. + + Transmit a file Esc { T filenameCR ---> CR = Carriage Return + Receive a file Esc { R filenameCR ---> CR = Carriage Return + Append to a file Esc { A filenameCR ---> CR = Carriage Return + Save collected text Esc { S + Save collected text Esc S + + * These sequences will probably be most useful in developing a micro + version of a VT100 emulator or in adapting an existing one. + +(* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *) + +VT52 MODE SUMMARY: +----------------- + + Cursor up Esc A + Cursor down Esc B + Cursor right Esc C + Cursor left Esc D + Graphics character set Esc F + ASCII character set Esc G + Home cursor Esc H + Reverse line feed Esc I + Erase to end of screen Esc J + Erase to end of line Esc K + Print cursor line Esc V + Enter print controller Esc W + Exit print controller Esc X + Cursor address Esc Y row col + Identify Esc Z + Print screen Esc ] + Enter auto print Esc ^ + Exit auto print Esc - + Alternate keypad Esc = + Numeric keypad Esc > + Enter ANSI mode Esc < + + * Row and column numbers are single characters with a bias of 31. + E.g., "$" means row/column 5.) + +KEYPAD AND FUNCTION KEY SUMMARY: +------------------------------- + + CURSOR CONTROL KEYS: + ------------------- + Vt52 ANSI and Cursor Key modes + Arrow Key Mode Reset Set + --------------------------------------------------- + Up Esc A Esc [ A Esc O A + Down Esc B Esc [ B Esc O B + Right Esc C Esc [ C Esc O C + Left Esc D Esc [ D Esc O D + + AUXILLIARY KEYPAD: + ----------------- + + VT52 Mode ANSI Mode + Key Numeric Application Numeric Application + ---------------------------------------------------------------------- + 0 0 Esc ? p 0 Esc O p + 1 1 Esc ? q 1 Esc O q + 2 2 Esc ? r 2 Esc O r + 3 3 Esc ? s 3 Esc O s + 4 4 Esc ? t 4 Esc O t + 5 5 Esc ? u 5 Esc O u + 6 6 Esc ? v 6 Esc O v + 7 7 Esc ? w 7 Esc O w + 8 8 Esc ? x 8 Esc O x + 9 9 Esc ? y 9 Esc O y + - - Esc ? m - Esc O m + , , Esc ? l , Esc O l + . . Esc ? n . Esc O n + ENTER ^M Esc ? M ^M Esc O M + PF1 Esc P Esc P Esc O P Esc O P + PF2 Esc Q Esc Q Esc O Q Esc O Q + PF3 Esc R Esc R Esc O R Esc O R + PF4 Esc S Esc S Esc O S Esc O S + +VT100 CURRENT STATES: +-------------------- + + Esc [ c DA:Device Attributes + + or + + Esc Z DECID:Identify Terminal (ANSI mode) + + * For PC/Intercomm and some other emulators, + irrespective of the parameter(s) present, the + response is always + + Esc [ ? 6 c + + (i.e., a VT102) Other DEC terminals will respond + according to their configuration and mode. + + Esc Z Identify (VT52 mode) + + * The sequence Esc / Z is always returned. + + Esc [ x DECREQTPARM: Request Terminal Parameters + + * values other than 1 are ignored. Upon + receipt of a value of 1, the following + response is sent: + + Esc[3;;;;;1;0x + + * Where , , , and + are as for VT100s with the following + exceptions: + + Values of 5 and 6 bits per + character are sent as 7 bits. + + , + These two numbers will always + be the same. 9600 baud is + sent for 7200 baud. + + Esc [ Ps n DSR: Device Status Report + + * Parameter values other than 5, 6, are ignored. + If the parameter value is 5, the sequence + Esc [ O n is returned. If the parameter value is + 6, the CPR: Cursor Position Report sequence + Esc [ Pn ; Pn R is returned with the Pn set to + cursor row and column numbers. +/* ---------- */ + diff --git a/konsole/doc/More/vt100_codes_news.txt b/konsole/doc/More/vt100_codes_news.txt new file mode 100644 index 000000000..d136e2224 --- /dev/null +++ b/konsole/doc/More/vt100_codes_news.txt @@ -0,0 +1,970 @@ + vt100_codes_news.txt + =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + + This information is largely derived from DEC document EK-VT100-UG-003, + the original manual for the VT100. + + Most so-called VT100 implementations (both stand-alone terminals and + PC emulators) actually implement more controls than are given here. + The minimal standard is really the slightly more advanced VT102 terminal. + + ...RSS + + =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + +Path: cs.utk.edu!gatech!usenet.ins.cwru.edu!agate!doc.ic.ac.uk!pipex!sunic + !trane.uninett.no!news.eunet.no!nuug!news.eunet.fi!funic!nntp.hut.fi + !lk-hp-14.hut.fi!pev +From: pev@lk-hp-14.hut.fi (Petri Virekoski) +Newsgroups: comp.terminals +Subject: VT100 control info +Date: 11 Sep 1993 12:43:22 GMT +Organization: Helsinki University of Technology +Lines: 878 +Distribution: world +Message-ID: <26sh5a$oct@nntp.hut.fi> +NNTP-Posting-Host: lk-hp-14.hut.fi + + +OK. I finally found this on my local machine by doing a locate. +Still haven't found any FTP site bearing this kind of information. +I myself would need a similar file with extensions for VT200/VT220. +Please do not address any complaints to me, since I just copied this file +as I found it. There might be some escape sequences missing from the +end because there was some carbage, but I don't know. Here goes... + + +This file describes information needed for controlling the VT100 terminal from +a remote computer. All of the information was derived from the VT100 user's +manual, Programmer's Information section. Full documentation can be obtain +from DIGITAL'S Accessory and Supplies Group. + + [The notation denotes a single ASCII Escape character, 1Bx.] + + + ANSI mode w/cursor ANSI mode w/cursor +Cursor Key VT52 mode key mode reset key mode set +-------------------------------------------------------------------------- + UP A [A OA + DOWN B [B OB + RIGHT C [C OC + LEFT D [D OD + + +******************************* +* Special Graphics Characters * +******************************* + + + If the Special Graphics set is selected, the graphics for ASCII codes +0137 through 0176 will be replaced according to the following table (see the +SCS control sequence). + + +Octal ASCII Special Octal ASCII Special +Code graphic graphic code graphic graphic +------------------------------------------------------------------------------- +0137 _ Blank 0157 o Horiz Line - scan 1 +0140 \ Diamond 0160 p Horiz Line - scan 3 +0141 a Checkerboard 0161 q Horiz Line - scan 5 +0142 b Digraph: HT 0162 r Horiz Line - scan 7 +0143 c Digraph: FF 0163 s Horiz Line - scan 9 +0144 d Digraph: CR 0164 t Left "T" (|-) +0145 e Digraph: LF 0165 u Right "T" (-|) +0146 f Degree Symbol 0166 v Bottom "T" (|_) +0147 g +/- Symbol 0167 w Top "T" (T) +0150 h Digraph: NL 0170 x Vertical Bar (|) +0151 i Digraph: VT 0171 y Less/Equal (<_) +0152 j Lower-right corner 0172 z Grtr/Egual (>_) +0153 k Upper-right corner 0173 { Pi symbol +0154 l Upper-left corner 0174 | Not equal (=/) +0155 m Lower-left corner 0175 } UK pound symbol +0156 n Crossing lines (+) 0176 ~ Centered dot + + +NOTE 1: Codes 0152-0156 and 0164-0170 are used to draw rectangular grids" each +piece of this set is contiguous with other so the lines formed will be +unbroken. + +NOTE 2: Codes 0157-0163 give better vertical resolution than dashes and +underlines when drawing graphs; using these segments, 120 x 132 resolution may +be obtained in 132 column mode with the Advanced Video Option installed. + + + +***************************** +* Terminal Control Commands * +***************************** + +Control Characters +------------------ + + The control characters recognized by the VT100 are listed below. All +other control characters cause no action to be taken. + + Control characters (codes 00 - 037 inclusive) are specifically excluded +from the control sequence syntax, but may be embedded within a control +sequence. Embedded control characters are executed as soon as they are +encountered by the VT100. The processing of the control sequence then +continues with the next character recieved. The exceptions are: if the +character occurs, the current control sequence is aborted, and a new one +commences beginning with the just recieved. If the character +(030) or the character (032) occurs, the current control sequence is +aborted. The ability to embed control characters allows the synchronization +characters XON and XOFF to be interpreted properly without affecting the +control sequence. + + + +Control Octal +Character Code Action Taken +------------------------------------------------------------------------------ + 0000 Ignored on input; not stored in buffer + 0005 Transmit ANSWERBACK message + 0007 Sound bell + 0010 Move cursor to the left one position, unless it is at + the left margin, in which case no action is taken. + 0011 Move cursor to the next tab stop, or to the right + margin if no further tabs are set. + 0012 Causes either a line feed or new line operation (See + new line mode.) + 0013 Same as . + 0014 Same as . + 0015 Move the cursor to the left margin of the current line. + 0016 Invoke the G1 character set, as designated by the SCS + control sequence. + 0017 Invoke the G0 character set, as selected by the ( + sequence. + 0021 Causes terminal to resume transmission (XON). + 0023 Causes terminal to stop transmitting all codes except + XOFF and XON (XOFF). + 0030 If sent during a control sequence, the sequence id + immediately terminated and not executed. It also + causes the error character (checkerboard) to be + displayed. + 0032 Same as . + 0033 Introduces a control sequence. + 0177 Ignored on input; not stored in buffer. + + + The VT100 is an upward and downward software-compatible terminal; +that is, previous Digital video terminals have Digital's private standards +for control sequences. The American National Standards Institute has since +standardized escape and control sequences in terminals in documents X3.41-1974 +and X3.64-1977. + + The VT100 is compatible with both the previous Digital standard and +ANSI standards. Customers may use existing Digital software designed around +the VT52 or new VT100 software. The VT100 has a "VT52 compatible" mode in +which the VT100 responds to control sequences like a VT52. In this mode, most +of the new VT100 features cannot be used. + + Throughout this document references will be made to "VT52 mode" or +"ANSI mode". These two terms are used to indicate the VT100's software +compatibility. + + +NOTE: The ANSI standards allow the manufacturer flexibility in implementing +each function. This document describes how the VT100 will respond to the +implemented ANSI central function. + +NOTE: ANSI standards may be obtained by writing: + + American National Standards Institute + Sales Department + 1430 Broadway + New York, NY, 10018 + + + +Definitions +----------- + + Control Sequence Introducer (CSI) - An escape sequence that provides + supplementary controls and is itself a prefix affecting the + interpretation of a limited number of contiguous characters. + In the VT100, the CSI is: [ + + Parameter: (1) A string of zero or more decimal characters which + represent a single value. Leading zeros are ignored. The + decimal characters have a range of 0 (060) to 9 (071). + (2) The value so represented. + + Numeric Parameter: A parameter that represents a number, designated by + Pn. + + Selective Parameter: A parameter that selects a subfunction from a + specified set of subfunctions, designated by Ps. In general, a + control sequence with more than one selective parameter causes + the same effect as several control sequences, each with one + selective parameter, e.g., CSI Psa; Psb; Psc F is identical to + CSI Psa F CSI Psb F CSI Psc F. + + Parameter String: A string of parameters separated by a semicolon. + + Default: A function-dependent value that is assumed when no explicit + value, or a value of 0, is specified. + + Final character: A character whose bit combination terminates an + escape or control sequence. + + + EXAMPLE: Control sequence to turn off all character attributes, then + turn on underscore and blink attributes (SGR). [0;4;5m + + Sequence: + + + Delimiters + / \ + / \ + | | + \ / \ / + [ 0 ; 4 ; 5 m + ^^^^^^ ^ ^ ^ ^ + |||||| | | | | + \||||/ \ | / +------Final character + \||/ \ | / + CSI Selective + Parameters + + + The octal representation of this string is: + + 033 0133 060 073 064 073 065 0155 + [ 0 ; 4 ; 5 m + + + Alternate sequences which will accomplish the same thing: + + 1) [;4;m + + 2) [m + [4m + [5m + + 3) [0;04;005m + + +Control Sequences +----------------- + + All of the following control sequences are transmitted from the Host to +VT100 unless otherwise noted. All of the control sequences are a subset of +those defined in ANSI X 3.64 1977 and ANSI X 3.41 1974. + + The following text conforms to these formatting conventions: + + 1) Control characters are designated by angle brackets (e.g. + the Escape character is ). + + 2) Parameters are indicated by curly braces. + + 3) Parameter types usually are indicated as one of: + + {Pn} A string of digits representing a numerical + value. + + {Ps} A character that selects an item from a list. + + {a-z} Any lowercase sequence of one44 or more + characters in braces represent a value to be + entered (as in {Pn}), and the name in the + braces will be referred to in explanatory text. + + 4) Spaces in the control sequence are present for clarity and + may be omitted. Spaces which are required will be + surrounded by single quotes: ' '. + + 5) All other characters are literals. + + + + + +CPR Cursor Position Report VT100 to Host + + [ {Pn} ; {Pn} R Default Value: 1 + + The CPR sequence reports the active position by means of the + parameters. This sequence has two parameter values, the first + specifying the line and the second specifying the column. The default + condition with no parameters present, or parameters of 0, is equivelent + to a cursor at home position. + + The numbering of the lines depends upon the state of the Origin Mode + (DECOM). + + This control sequence is sent in reply to a device status report (DSR) + command sent from the host. + + + +CUB Cursor Backward Host to VT100 & VT100 to Host + + [ {Pn} D Default Value: 1 + + The CUB sequence move the cursor to the left. The distance moved is + determined by the parameter. If the parameter missing, zero, or one, + the cursor is moved one position. The cursor cannot be moved past the + left margin. Editor Function. + + +CUD Cursor Down Host to VT100 & VT100 to Host + + [ {Pn} B Default value: 1 + + Moves the cursor down a number of lines as specified in the parameter + without changing columns. The cursor cannot be moved past the bottom + margin. Editor Function. + + +CUF Cursor Foreward Host to VT100 & VT100 to Host + + [ {Pn} C Default Value: 1 + + The CUF sequence moves the cursor to the right a number of positions + specified in the parameter. The cursor cannot be moved past the right + margin. Editor Function. + + +CUP Cursor Position + + [ {Pn} ; {Pn} H Default Value: 1 + + The CUP sequence moves the curor to the position specified by the + parameters. The first parameter specifies the line, and the second + specifies the column. A value of zero for either line or column moves + the cursor to the first line or column in the display. The default + string (H) homes the cursor. In the VT100, this command behaves + identically to it's format effector counterpart, HVP. + + The numbering of the lines depends upon the state of the Origin Mode + (DECOM). Editor Function. + + +CUU Cursor Up Host to VT100 & VT100 to Host + + [ {Pn} A Default Value: 1 + + Moves the cursor up without changing columns. The cursor is moved up a + number of lines as indicated by the parameter. The cursor cannot be + moved beyond the top margin. Editor Function. + + +DA Device Attributes Host to VT100 & VT100 to Host + + [ {Pn} c Default Value: 0 + + 1) The host requests the VT100 to send a DA sequence to indentify + itself. This is done by sending the DA sequence with no parameters, + or with a parameter of zero. + + 2) Response to the request described above (VT100 to host) is generated + by the VT100 as a DA control sequencewith the numeric parameters as + follows: + + Option Present Sequence Sent + --------------------------------------------- + No options [?1;0c + Processor Option (STP) [?1;1c + Advanced Video Option (AVO) [?1;2c + AVO and STP [?1;3c + Graphics Option (GPO) [?1;4c + GPO and STP [?1;5c + GPO and AVO [?1;6c + GPO, ACO, and STP [?1;7c + +<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>, +<<> +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + +DECALN Screen Alignment Display (DEC private) + + # 8 + + This command causes the VT100 to fill it's screen with uppercase Es for + screen focus and alignment. + + +DECANM ANSI/VT52 Mode (DEC Private) + + This is a private parameter to the SM and RM control sequences. The + reset state causes only VT52 compatible escape sequences to be + recognized. The set state causes only ANSI compatible escape sequences + to be recognized. See the entries for MODES, SM, and RM. + + +DECARM Auto Repeat Mode (DEC Private) + + This is a private parameter to the SM and RM control sequences. The + reset state causes no keyboard keys to auto-repeat, the set state + causes most of them to. See MODES, SM, and RM. + + +DECAWM Autowrap Mode (DEC Private) + + This is a private parameter to the SM and RM control sequences. The + reset state prevents the cursor from moving when characters are + recieved while at the right margin. The set state causes these + characters to advance to the next line, causing a scroll up if required + and permitted. See MODES, SM, and RM. + + +DECCKM Cursor Keys Mode (DEC Private) + + This is a private parameter to the SM and RM control requences. This + mode is only effective when the terminal is in keypad application mode + (DECPAM) and the ANSI/VT52 mode (DECANM) is set. Under these + conditions, if this mode is reset, the cursor keys will send ANSI + cursor control commands. If setm the cursor keys will send application + function commands (See MODES, RM, and SM). + + +DECCOLM Column Mode (DEC Private) + + This is a private parameter to the SM and RM control sequences. The + reset state causes an 80 column screen to be used. The set state + causes a 132 column screen to be used. See MODES, RM, and SM. + + +DECDHL Double Height Line (DEC Private) + + Top Half: #3 + Bottom Half: #4 + + These sequences cause the line containing the cursor to become the top + or bottom half of a double-height, double width line. The sequences + should be used in pairs on adjacent lines with each line containing the + same character string. If the line was single width single height, all + characters to the right of the center of the screen will be lost. The + cursor remains over the same character position, unless it would be to + the right of the right margin, in which case it is moved to the right + margin. + + +DECDWL Double Width Line (DEC Private) + + #6 + + This causes the line that contains the cursor to become double-width + single height. If the line was single width, all characters ro the + right of the center of the screen will be lost. The cursor remains + over the same character position, unless it would be to the right of + the right margin, in which case it is moved to the right margin. + + +DECID Identify Terminal (DEC Private) + + Z + + This sequence causes the same response as the DA sequence. This + sequence will not be supported in future models. + + +DECINLM Interlace Mode (DEC Private) + + This is a private parameter to the RM and SM control sequences. The + reset state (non-interlace) causes the video processor to display 240 + scan lines per frame. The set state causes the video processor to + display 480 scan lines per screen. See MODES, RM, and SM. + + +DECKPAM Keypad Application Mode (DEC Private) + + = + + The auxiliary keypad keys will transmit control sequences. + + +DECKPNM Keypad Numeric Mode (DEC Private) + + > + + The auxiliary keypad keys will send ASCII codes corresponding to the + characters engraved on their keys. + + +DECLL Load LEDs (DEC Private) + + [ {Ps} q Default Value: 0 + + Load the four programmable LEDs on the keyboard according to the + prameter(s). + + Parameter Meaning + ----------------------- + 0 Clear All LEDs + 1 Light L1 + 2 Light L2 + 3 Light L3 + 4 Light L4 + + +DECOM Origin Mode (DEC Private) + + This is a private parameter to SM and RM control sequences. The reset + state causes the origin (or home position) to be the upper left + character position of the screen. Line and column numbers are, + therefore, independent of current margin settings. The cursor may be + positioned outside the margins with a cursor position (CUP) or + horizontal and vertical position (HVP) control. + + The set state causes the origin to be at the upper left character + position within the current margins. Line and column numbers are, + therefore, relative to the current margin settings. The cursor cannot + be positioned outside of the margins. + + The cursor is moved to the new home position when this mode is set or + reset. Lines and columns are numbered consecutively, with the origin + being line 1, column 1. + + +DECRC Restore Cursor (DEC Private) + + 8 + + This sequence causes the previously saved cursor position, graphic + rendition, and character set to be restored. + + +DECREPTPARM Report Terminal Parameters VT100 to Host + + [ {sol} ; {par} ; {nbits} ; {xspd} ; {rspd} ; {cmul} ; {flags} x + + This sequence is generated by the VT100 to notify the host of the + status of selected terminal parameters. The status sequence may be + sent when requested by the host (via DECREQTPARM) or at the terminal's + discretion. On power up or reset, the VT100 is inhibited from sending + unsolicited reports. + + The meanings of the sequence paramters are: + + Parameter Value Meaning + ------------------------------------------------------------------ + {sol} 1 This message is a report. + 2 This message is a report, and the terminal is + only reporting on request. + + {par} 1 No parity set + 4 Parity set and odd + 5 Parity set and even + + {nbits} 1 8 bits per character + 2 7 bits per character + + {xspd} 0 Speed set to 50 bps + -and- 8 Speed set to 75 bps + {rspd} 16 Speed set to 110 bps + 24 Speed set to 134.5 bps + {xspd}= 32 Speed set to 150 bps + Transmit 40 Speed set to 200 bps + Speed 48 Speed set to 300 bps + 56 Speed set to 600 bps + {rspd}= 64 Speed set to 1200 bps + Recieve 72 Speed set to 1800 bps + Speed 80 Speed set to 2000 bps + 88 Speed set to 2400 bps + 96 Speed set to 3600 bps + 104 Speed set to 4800 bps + 112 Speed set to 9600 bps + 120 Speed set tp 19200 bps + + {cmul} 1 The bit rate multiplier is 16 + + {flags} 0-15 This value communicates the four switch values + in block 5 of SET-UP B, which are only visible + to the user when an STP option is installed. + + +DECREQTPARM Request Terminal Parameters + + [ {Ps} x + + The host sends this sequence to request the VT100 to send a DECREPTPARM + sequence back. {Ps} can be either 0 or 1. If 0, the terminal will be + allowed to send unsolicited DECREPTPARMs. These reports will be + generated each time the terminal exits the SET-UP mode. If {Ps} is 1, + then the terminal will only generate DECREPTPARMs in response to a + request. + + +DECSC Save Cursor (DEC Private) + + 7 + + Causes the cursor position, graphic rendition, and character set to be + saved. (See DECRC) + + +DECSCLM Scrolling Mode (DEC Private) + + This is a private parameter to RM and SM control sequences. The reset + state causes scrolls to "jump" instantaneuously one line at a time. + The set state causes the scrolls to be "smooth", and scrolls at a + maximum rate of siz lines/sec. See MODES, RM, and SM. + + +DECSCNM Screen Mode (DEC Private) + + This is a private parameter to RM and SM control sequences. The reset + state causes the screen to be black with white characters; the set + state causes the screen to be white with black characters. See MODES, + RM, and SM. + +<<<>>> +DECSTBM Set Top and Bottom Margins (DEC Private) + + [ {Pn} ; {Pn} r Default Values: See Below + + This sequence sets the top and bottom margins to define the scrolling + region. The first parameter is the line number of the first line in + the scrolling region; the second parameter is the line number of the + bottom line of the scrolling region. Default is the entire screen (no + margins). The minimum region allowed is two lines, i.e., the top line + must be less than the bottom. The cursor is placed in the home + position (See DECOM). + + +DECSWL Single-width Line (DEC Private) + + #5 + + This causes the line which contains the cursor to become single-width, + single-height. The cursor remains on the same character position. + This is the default condition for all new lines on the screen. + + +DECTST Invoke Confidence Test + + [ 2 ; {Ps} y + + Ps is the parameter indicating the test to be done. It is computed by + taking the weight indicated for each desired test and adding them + together. If Ps is 0, no test is performed but the VT100 is reset. + + Test Weight + -------------------------------------------------------------- + POST (ROM checksum, RAM NVR, keyboardm and AVO) 1 + Data Loop Back (Loopback connector required) 2 + EIA Modem Control Test (Loopback connector req.) 4 + Repeat Testing until failure 8 + + +DSR Device Status Report Host to VT100 & VT100 to Host + + [ {Ps} n + + Requests and reports the general status of the VT100 according to the + following parameters: + + Parameter Meaning + --------------------------------------------------------------- + 0 Response from VT100 - Ready, no faults detected + 3 Response from VT100 - Malfunction Detected + 5 Command from host - Report Status (using a DSR control + sequence) + 6 Command from host - Report Active Position (using a CPR + sequence) + + DSR with a parameter of 0 or 3 is always sent as a response to a + requesting DSR with a parameter of 5. + + +ED Erase in Display + + [ {Ps} J Default: 0 + + This sequence erases some or all of the characters in the display + according to the parameter. Any complete line erased by this sequence + will return that line to single width mode. Editor Function. + + Parameter Meaning + ---------------------------------------------------------------- + 0 Erase from the cursor to the end of the screen. + 1 Erase from the start of the screen to the cursor. + 2 Erase the entire screen. + + +EL Erase in Line + + [ {Ps} K Default: 0 + + Erases some or all characters in the active line, according to the + parameter. Editor Function. + + Parameter Meaning + --------------------------------------------------------------- + 0 Erase from cursor to the end of the line. + 1 Erase from the start of the line to the cursor. + 2 Erase the entire line. + + +HTS Horizontal Tab Set + + H + + Set a tab stop at the current cursor position. Format Effector. + + +HVP Horizontal and Vertical Position + + [ {Pn} ; {Pn} f + + Moves the cursor to the position specified by the parameters. The + first parameter specifies the line, and the second specifies the + column. A parameter of 0 or 1 causes the active position to move to + the first line or column in the display. In the VT100, this control + behaves identically with it's editor counterpart, CUP. The numbering + of hte lines depends upon the state of the Origin Mode (DECOM). Format + Effector. + + +IND Index + + D + + This sequence causes the cursor to move downward one line without + changing the column. If the cursor is at the bottom margin, a scroll + up is performed. Format Effector. + + +LNM Line Feed/New Line Mode + + This is a parameter to SM and RM control sequences. The reset state + causes the interpretation of the character to imply only vertical + movement of the cursor and causes the RETURN key to send the single + code . The set state causes the character to imply movement + to the first position of the following line, and causes the RETURN key + to send the code pair . This is the New Line option. + + This mode does not affect the Index (IND) or the next line (NEL) format + effectors. + + +MODES The Following is a list of VT100 modes which may be changed with Set + Mode (SM) and Reset Mode (RM) controls. + + ANSI Specified Modes + + Parameter Mnemonic Function + ------------------------------------------------------------------ + 0 Error (Ignored) + 20 LNM Line Feed/New Line Mode + + + DEC Private Modes + + If the first character in the parameter string is ? (077), the + parameters are interpreted as DEC private parameters according to the + following: + + Parameter Mnemonic Function + ------------------------------------------------------------------- + 0 Error (Ignored) + 1 DECCKM Cursor Key + 2 DECANM ANSI/VT52 + 3 DECCOLM Column + 4 DECSCLM Scrolling + 5 DECSCNM Screen + 6 DECOM Origin + 7 DECAWM Auto Wrap + 8 DECARM Auto Repeat + 9 DECINLM Interlace + + Any other parameter values are ignored. + + The following modes, which are specified in the ANSI standard, may be + considered to be permanently set, permanently reset, or not applicable, + as noted. + + Mnemonic Function State + ------------------------------------------------------ + CRM Control Representation Reset + EBM Editing Boundary Reset + ERM Erasure Set + FEAM Format Effector Action Reset + FETM Format Effector Transfer Reset + GATM Guarded Area Transfer NA + HEM Horizontal Editing NA + IRM Insertion-replacement Reset + KAM Keyboard Action Reset + MATM Multiple area transfer NA + PUM Positioning Unit Reset + SATM Selected Area Transfer NA + SRTM Status Reporting Transfer Reset + TSM Tabulation Stop Reset + TTM Transfer Termination NA + VEM Vertical Editing NA + + +NEL Next Line + + E + + This causes the cursor to move to the first position of the next line + down. If the cursor is on the bottom line, a scroll is performed. + Format Effector. + + +RI Reverse Index + + M + + Move the cursor up one line without changing columns. If the cursor is + on the top line, a scroll down is performed. + + +RIS Reset to Initial State + + c + + Resets the VT100 to the state is has upon power up. This also causes + the execution of the POST and signal INT H to be asserted briefly. + + +RM Reset Mode + + [ {Ps} ; {Ps} l + + Resets one or more VT100 modes as specified by each selective parameter + in the parameter string. Each mode to be reset is specified by a + separate parameter. See MODES and SM. + + +SCS Select Character Set + + The appropriate D0 and G1 character sets are designated from one of the + five possible sets. The G0 and G1 sets are invokedd by the characters + and , respectively. + + G0 Sets G1 Sets + Sequence Sequence Meaning + ------------------------------------------------------------------ + (A )A United Kingdom Set + (B )B ASCII Set + (0 )0 Special Graphics + (1 )1 Alternate Character ROM + Standard Character Set + (2 )2 Alternate Character ROM + Special Graphics + + The United Kingdom and ASCII sets conform to the "ISO international + register of character sets to be used with escape sequences". The + other sets are private character sets. Special graphics means that the + graphic characters fpr the codes 0137 to 0176 are replaced with other + characters. The specified character set will be used until another SCS + is recieved. + + +SGR Select Graphic Rendition + + [ {Ps} ; {Ps} m + + Invoke the graphic rendition specified by the parameter(s). All + following characters transmitted to the VT100 are rendered according + to the parameter(s) until the next occurrence of an SGR. Format + Effector. + + Parameter Meaning + --------------------------------------------------------------- + 0 Attributes Off + 1 Bold or increased intensity + 4 Underscore + 5 Blink + 7 Negative (reverse) image + + All other parameter values are ignored. + + Without the Advanced Video Option, only one type of character attribute + is possible, as determined by the cursor selection; in that case + specifying either underscore or reverse will activate the currently + selected attribute. + + +SM Set Mode + + [ {Ps} ; {Ps} h + + Causes one or more modes to be set within the VT100 as specified by + each selective parameter string. Each mode to be set is specified by a + seperate parameter. A mode is considered set until it is reset by a + Reset Mode (RM) control sequence. See RM and MODES. + + [Editor's note: The original DEC VT100 documentation EK-VT100-UG-003 + erroneously omitted the "[" character from the SM sequence.] + + +TBC Tabulation Clear + + [ {Ps} g + + If the parameter is missing or 0, this will clear the tab stop at the + cursor's position. If it is 3, this will clear all of the tab stops. + Any other parameter is ignored. Format Effector. + + + + ___ + ( /_)_---_------------------------------------------------- +(_/ ( ! / ) Petri Virekoski ------ pev@vipu.hut.fi ------ +-------!/--------------------------------------------------- + + =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + +Article 4247 of comp.terminals: +Path: cs.utk.edu!willis.cis.uab.edu!news.ecn.bgu.edu!vixen.cso.uiuc.edu!howland.reston.ans.net!news.sprintlink.net!uunet!news.aurora.net!netnews +From: msimms@kea.bc.ca (Michael Simms) +Newsgroups: comp.terminals +Subject: Re: VT420 control sequence question +Date: 15 Jun 1995 01:23:10 GMT +Organization: Attachmate Canada +Lines: 39 +Distribution: world +Message-ID: <3ro21u$559@angate.disc-net.com> +References: <3rnlcd$pg8@senator-bedfellow.MIT.EDU> +NNTP-Posting-Host: 204.174.235.139 +X-Newsreader: WinVN 0.92.5 + +In article <3rnlcd$pg8@senator-bedfellow.MIT.EDU>, igorlord@mit.edu (Igor Lyubashevskiy) says: +> +>Hi, while reading through DEC's VT420 manuals, I enountered a control sequence +>that I don't understand. That is "Change attributes in rectangular area" +>(DECCARA). +> +>The manual says that this sequence's "syntax" is +> CSI Pt;Pl;Pb;Pr;Ps1..Psn $ r +>Where Psn = visual character attributes. +> +>Does anyone know what Psn really is (what those visual character attributes +>are)? And how many of those Psn can be there? +>If you can help, please reply either by email or by a followup to this group. +> +>Thank you for your time, +> +>Igor +> + +The Ps1..Psn are the standard character attributes such as used with +CSIm (SGR). The values they can hold are: + +0 - reset all attributes (white on black) +1 - bold +4 - underline +5 - blink +7 - inverse +21 - bold off +24 - underline off +25 - blink off +27 - inverse off + +For example to turn all the characters in the top left quadrant of the +screen bold and inverse with no blinking (as I hate blinking) use: + CSI 1;1;40;12;1;7;25$r + +As to the number of parameters, I don't know. + +Michael Simms. + + + =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= diff --git a/konsole/doc/More/vt100_colorized_termcap.txt b/konsole/doc/More/vt100_colorized_termcap.txt new file mode 100644 index 000000000..0a5470b45 --- /dev/null +++ b/konsole/doc/More/vt100_colorized_termcap.txt @@ -0,0 +1,438 @@ +Article 3992 of comp.terminals: +Path: cs.utk.edu!gatech!howland.reston.ans.net!vixen.cso.uiuc.edu!uwm.edu!msunews!harbinger.cc.monash.edu.au!bunyip.cc.uq.oz.au!newshost.gu.edu.au!news +From: Tony Nugent +Newsgroups: comp.terminals +Subject: (howto) Set up a custom (colour) vt term +Date: 30 Apr 1995 06:35:49 GMT +Organization: Griffith University Brisbane Queensland Australia +Lines: 371 +Message-ID: <3nvb45$2kl@griffin.itc.gu.edu.au> +Reply-To: T.Nugent@sct.gu.edu.au +NNTP-Posting-Host: kraken.itc.gu.edu.au +Summary: How to set up a customised term entry +Keywords: vt100 vt102 vt220 ansi colour terminfo termcap term + +G'day all! + +Here is something that I wrote a little while ago (with some more +recent changes) for someone who asked me how to set up a +customised TERMINFO and TERMCAP entry. + +I've never seen this in any FAQ, and I thought that others might +be interested in this too, so I've posted it. It took me *ages* +and lots of trial and error to figure out how to do this +properly, but the process is actually quite simple once you have +the man pages figured out :) + +I would appreciate any comments, corrections or suggestions to +this... I'm posting it here into comp.terminals as a "beta" +document as I'm sure that this could be refined some more. + +========8<----insert-crowbar-here------------------------------ + +I presume that you understand the basics of ansi and vt-term +escape sequences. + +I use a customised vt220 term to get colours instead of boring +black and white text on my pc screen when I'm logged into my +account over a modem. My comms program is emulating vt100/220 +with my screen in 50 line mode (49 lines + one for my comms +program's status line). + +The system here with my account is a Sparc running Solaris 2.3, +SunOS 5.3 - but this also works under SGI IRIX and SunOS 4.3.1 +(remote vt-term login). I use tcsh as my default login shell +(I'll eventually try out ksh once I have some time :-) + +Here is my customised termcap entry, produced by the "infocmp -1" +command... + +========8<-----------cut-here------------>8==================== +# Reconstructed via infocmp from file: /home/tnugent/.terminfo/v/vt220 +vt220|vt-220|dec colour vt220, + xon, + cols#80, lines#49, vt#3, + bel=^G, blink=\E[5m$<2>, bold=\E[1m\E[32;44m$<2>, + clear=\E[;H\E[2J$<50>, cnorm=\E[?7h\E[0;2;1;36m, + cr=\r, csr=\E[%i%p1%d;%p2%dr, cub1=\b, cud1=\n, + cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>, + cuu1=\E[A$<2>, cvvis=\E[?7l, ed=\E[J$<50>, + el=\E[K$<3>, home=\E[H, ht=\t, ind=\n, + is2=\E[1;49r\E[49;1H, kbs=\b, kcub1=\EOD, kcud1=\EOB, + kcuf1=\EOC, kcuu1=\EOA, kf0=\E[29~, kf1=\EOP, + kf10=\E[29~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[17~, + kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, + rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=\E(B$<4>, + rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[7m\E[0;1;36m$<2>, + rmul=\E[m\E[0;1;36m$<2>, + rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E1;36m\E[?8h, sc=\E7, + sgr0=\E[m\E[1;36m$<2>, smkx=\E[?1h\E=, + smso=\E[m\E[1;33;44m$<2>, smul=\E[4m\E[1;32m$<2>, +========8<-----------cut-here------------>8==================== + +For the explaination of what all this means, see "man terminfo"; +also try "man termcap", but this man page is often not there. + +It's set for a default of 49 lines, but if you only use 24 then +change it in the entry, but I'll explain how to easily reset it +manually with some aliases. + +Otherwise edit this however you like. You'll recognise all the +"ansi" escape sequences up there. Customise the colour ones as +desired, but after trial and error I've found these to be quite +acceptable. Some of the entries might need some more refining, +but this works. Bold, underline, reverse and norm are all in +colour. I've thought about adding an entry for italic (sitm and +ritm), but I haven't got around to this yet. + +I've called this "vt220", but it really isn't (although +compatable). I've found it better to use a "common" name rather +than an unusual one, or else I tend to get "unknown term type, +using dumb terminal settings" complaints when I rlogin or telnet +into other accounts. + +vt220 is defined in /etc/termcap here as: + +de|vt220|DEC VT220 in vt100 emulation mode:\ + :tc=vt100: + +so vt220 actually uses vt100 anyway. They are similar, but vt220 +defines more of the F (function) keys. Other differences are +trivial (and I haven't noticed many from what I've been able to +ascertain from a scattering of "non-authoritative" sources). + +Create a ~/.terminfo/ directory, and save this terminfo entry in +a file called ~/.terminfo/terminfo.src + +Now change to this directory and append the other terminal +entries that you might use onto the end of this file (except for +vt220): + +% echo $term +% infocmp >> terminfo.src +% infocmp vt100 >> terminfo.src +% infocmp xterm >> terminfo.src + +etc. Check it's general format what you find in /etc/termcap to +make sure that it's similar. + +Now do this (in the ~/.terminfo/ directory): + +% setenv TERMINFO ~/.terminfo +% tic + +After running tic (it uses the terminfo.src file), you should see +a new directory called ~/.terminfo/v/ (and perhaps others) which +has the termcap entries compiled from the terminfo.src file. + +Now, do this: + +% set term=vt220 + +You *should* immediately see a change in colour of normally white +(or grey) text to a light bright blue (see "norm=" above). If +you have tcsh as your shell, then try the prompts below to see +some nice bold and reverse colour. Man pages should now also +demostrate this too (especially if you have setenv PAGER "less -s +-I"). Nice change, eh? :-) + +Ok, now to make this change permanent... + +Cut this shell script out, save it in ~/.terminfo/maketc and +"chmod +x maketc" to make it executable: + +========8<-----------cut-here------------>8==================== +#!/bin/sh +# +# Make a TERMCAP entry +# +# Use: +# maketc [termtype] +# +# setenv TERMCAP `maketc [termtype]` +# +# There's probably a better way to do this +# +infocmp -C $1 | \ + sed -e '/^#/d' -e '3,$s/[ ]//g' -e 's/:\\$//' | \ + awk '{printf("%s",$0)}' +echo "" +# NB: that's a Tab and a space in between the []'s! +# Is there a way to get sed to strip out newlines? +========8<-----------cut-here------------>8==================== + +Now try this (using this new term setting): + +% maketc + +Ugly, yes? :) + +Create a ~/.terminfo/TERMCAP.vt220 file by redirecting this output: + +% maketc vt220 > TERMCAP.vt220 + +(alternatively, use " setenv TERMCAP `cat ~/.terminfo/maketc` " +below instead). + +Put the following lines in your ~/.login file, or into another +file (say, ~/.termrc) and source it from ~/.login... + +========8<-----------cut-here------------>8==================== +# Please customise this! +# +if ( ! $?term ) then + set term=vt102 + setenv TERM vt102 +endif +# +switch($term) +# + case 'vt220': + case 'vt102': + stty rows 49 + stty columns 80 + setenv LINES 49 + setenv COLUMNS 80 + echo Assuming \($term with $LINES rows\) + breaksw + case 'vt100': + stty rows 24 + stty columns 80 + setenv LINES 24 + setenv COLUMNS 80 + breaksw + case 'xterm': + eval `/usr/openwin/bin/resize` + stty rows $LINES + stty cols $COLUMNS + default: + breaksw +endsw +# +# Set colour if on a vt100, vt102 or vt220 +# +if ( $TERM == vt102 || $TERM == vt100 || $TERM == vt220 ) then + setenv TERMINFO ~/.terminfo + set term=vt220 + setenv TERM vt220 + setenv TERMCAP `cat ${TERMINFO}/TERMCAP.vt220` + # setenv TERMCAP `~/.terminfo/maketc` +endif +# +# Set variables: NORM BOLD OFFBOLD ULINE OFFULINE REV +# +setenv NORM `tput cnorm` +setenv REV `tput rev` +setenv BOLD `tput smso` +setenv OFFBOLD `tput smso` +setenv ULINE `tput smul` +setenv OFFUL `tput rmul` +# +echo "" +echo "${BOLD}TERMINFO is now: $NORM$TERMINFO" +echo "${BOLD}TERMCAP is now: $NORM" +echo "$TERMCAP" +echo "" +# +echo -n "${ULINE}"\$TERM"$NORM is $BOLD $TERM $NORM and " +echo "${ULINE}"\$term"$NORM is $BOLD $term ${NORM}" +echo -n "$BOLD $LINES $NORM ${ULINE}rows${NORM} " +echo "$BOLD $COLUMNS $NORM ${ULINE}columns${NORM}" +echo "" +# +echo -n "${REV}reverse${NORM} " +echo -n "${BOLD}bold${NORM} " +echo -n "${ULINE}underline${OFFUL} " +echo "$NORM" +echo -n "${REV}${BOLD} reverse-bold ${NORM} " +echo -n "${REV}${ULINE} reverse-underline ${NORM} " +echo -n "${BOLD}${ULINE} bold-underline ${NORM} " +echo -n "${REV}${BOLD}${ULINE} reverse-bold-underline ${NORM} " +echo "" +# +echo -n tset: +/usr/ucb/tset -I -Q - +# +========8<-----------cut-here------------>8==================== + +It's a bit overdone, but it will show you what's going on. +Warnings.... on some unix'es, stty does not have "rows" or +"columns" options. And if you ever use those global variables +for anything, enclose the variables in quotes like I have above. + +Next time you log in (with csh or tcsh), ~/.login is sourced +(after ~/.cshrc) and you will automatically have this customised +colour terminal enabled. + +To make switching term very easy, I use a few aliases. I have +the following in a ~/.alias file that I source from ~/.cshrc... + +========8<-----------cut-here------------>8==================== +# ~/.alias +# sourced from ~/.cshrc +#... +#... +# +#-------- Terminal setup ------------ +# +a cls 'clear' +a seterm 'setenv TERM \!:1 ; set term=\!:1' +a vt102 'unsetenv TERMINFO ; unsetenv TERMCAP ; seterm vt102' +a vt220 'colour' +a colour 'setenv TERMINFO ~/.terminfo ; \ + setenv TERMCAP `cat ${TERMINFO}/TERMCAP` ; seterm vt220' +a rows 'stty rows \!:1 ; setenv LINES \!:1 ; cols 80' +a cols 'stty columns \!:1 ; setenv COLUMNS \!:1 ' +a setsize 'rows \!:1 ; echo $LINES line mode' +a 49 'setsize 49' +a 50 '49' +a 24 'setsize 24' +a 25 '24' +# +a vtn 'echo -n "^[[m^[(B^[)0^O^[[?5l^[7^[[r^[8"' +# ^^ ^^ ^^ ^^^^ ^^ ^^ ^^ +# Esc Esc Esc Ctrl-O EscEsc Esc +# If the vtn alias doesn't work correctly, then try this: +# a vtn 'echo "X[mX(BX)0OX[?5lX7X[rX8" | tr '\''XO'\'' '\''\033\017'\''' +# +# +#... other aliases ... +========8<-----------cut-here------------>8==================== + +The vtn alias has been piped through cat -v to make the control +codes look like their two-character representation. Edit the +echo'ed string so that the ^[ characters are real escape +characters and ^O is a control-O. Or comment out that line and +use the one below it that uses the tr command. This alias is +very, VERY handy for resetting a vt100 style screen if it gets +screwed up with an accidental character set sequence (see any +vt100 term escape code reference). + +If you want to see some interesting colourful prompts and you use +tcsh, then try sourcing this: + +========8<-----------cut-here------------>8==================== +# Primary tcsh command prompt +# +# simple looking one +# set prompt='$S%?%s %B%/-%b%U%h%u-%U%#%u%L' +# +# set prompt='%S%l%s|%U%?%u[%B%t%b]%S%~%s-%B%h%b-%U%#%u%L' +# set prompt='%u%s%b[%U%m%u|%U%~%u][%S%t%s][%B%h%b][%S%?%s]%U-%#%u%L' +# set prompt='%B%b[%S%?%s][%S%t%s][%B%h%b][%U%m%u|%U%~%u]%U-%#%u%L' + set prompt='%B%b[%S%?%s][%U%t%u][%S%m%s|%S%~%s][%B%h%b]%U-%#%u%L' +# +# prompt2 +# Used wherever normal csh prompts with a question mark. +# +# set prompt2='%B%R?>%b ' + set prompt2='%B%R%b%S?%s%L' +# +# prompt3 +# Used when displaying the corrected command line when automatic +# spelling correction is in effect. +# +# set prompt3='CORRECT>%R (y|n|e)?' +# set prompt3='%BCORRECT%b%S>%s%R (%By%b|%Bn%b|%Be%b)%S?%s%L' + set prompt3='%{%}CORRECT%S>%s%R (%By%b|%Bn%b|%Be%b)%S?%s%L' +========8<-----------cut-here------------>8==================== + +Note how the red colour is manually put into prompt3. It's +possible to put colour sequences into the prompts of all the +common shells (check its man page). + +For more info check out: + +1. The man pages for: + terminfo, (termcap), stty, tput, infocmp, captoinfo, tic + (and the man pages in the "see also" sections). + +2. The file /etc/termcap + +3. The comp.terminals ftp archive site: + cs.utk.edu :: /pub/shuford/terminal/ + You should be able to find at least one file there that + explains all the vt100 control sequences. + +4. I've got a file with the vt102 and ansi escape sequences in it. + If you want a copy, just let me know. + +5. I've never seen it, but for a color xterm check this out: + X11R5 and X11R6 versions: + ftp.x.org /R5contrib/color_xterm.tar.Z + ftp.x.org /contrib/utilities/color-xterm-R6-patch.README + ftp.x.org /contrib/utilities/color-xterm-R6pl5-patch.gz + ftp.x.org /contrib/utilities/colour_xterm.tar.gz + +Enjoy! + +Tony +T.Nugent@sct.gu.edu.au +04/23/95 +========8<----insert-crowbar-here------------------------------ + +All comments very much appreciated. + +Cheers +Tony + MMM \|/ www __^__ + (o o) @ @ (o o) /(o o)\ + -.ooO-(_)-Ooo.-+-.oOO-(_)-OOo.-+-.oOO--(_)--OOo.-+-.oOO==(_)==OOo.-----+ + | Tony Nugent |-| Griffith University T.Nugent@sct.gu.edu.au |--. + | __'!`__ | | Brisbane, Queensland tnugent@gucis.cit.gu.edu.au | | + | (o o) | | Australia | | + `-ooO---(=)---Ooo-' `--------------------------------------------------' | + `------------------' `--------------------------------------------------' + + +Article 3993 of comp.terminals: +Path: cs.utk.edu!gatech!swrinde!hookup!news.moneng.mei.com!uwm.edu!msunews!harbinger.cc.monash.edu.au!bunyip.cc.uq.oz.au!newshost.gu.edu.au!news +From: Tony Nugent +Newsgroups: comp.terminals +Subject: Re: (howto) Set up a custom (colour) vt term +Date: 30 Apr 1995 07:17:03 GMT +Organization: Griffith University Brisbane Queensland Australia +Lines: 35 +Message-ID: <3nvdhf$36j@griffin.itc.gu.edu.au> +References: <3nvb45$2kl@griffin.itc.gu.edu.au> +Reply-To: T.Nugent@sct.gu.edu.au +NNTP-Posting-Host: kraken.itc.gu.edu.au +Keywords: vt100 vt102 vt220 ansi colour terminfo termcap term + +Tony Nugent writes: + +Sorry about this: + +[munch] + +>To make switching term very easy, I use a few aliases. I have +>the following in a ~/.alias file that I source from ~/.cshrc... + +>========8<-----------cut-here------------>8==================== +># ~/.alias +># sourced from ~/.cshrc +>#... + +alias a 'alias' + +>#... +># +>#-------- Terminal setup ------------ +># +>a cls 'clear' +>a seterm 'setenv TERM \!:1 ; set term=\!:1' + +[munch] + +I forgot to mention that I have the alias command aliased to "a". + +Cheers +Tony + /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/~\ + | Tony Nugent Griffith University, Brisbane, Queensland, Australia| _ | + | Email: T.Nugent@sct.gu.edu.au tnugent@gucis.cit.gu.edu.au | @|| + \__________________________________________________________________\_/| + / Pull here for the full .sig or use finger on the second address / + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + diff --git a/konsole/doc/More/vt100_numeric_keypad.txt b/konsole/doc/More/vt100_numeric_keypad.txt new file mode 100644 index 000000000..fbd953d45 --- /dev/null +++ b/konsole/doc/More/vt100_numeric_keypad.txt @@ -0,0 +1,202 @@ +Subject: Re: ENTER keys + +In message <538902171@KSINET.COM>, John.ksi@KSINET.COM says: +> +> We're using MicroSoft's telnet software to connect to Stratus (VOS). +> Using a VT100 emulator (yes, on both ends - I'm not THAT novice) we +> find that the ENTER key (the key marked "Enter" on the PC's keypad) +> does the same thing as the RETURN key (the key marked "Enter" on the +> main part of the PC's keyboard) when it comes to working with CRT +> forms. +> ... +> (A) why do the RETURN and ENTER keys behave the same? +> (B) how does one submit a completed CRT form with ONE keystroke? + +To which replied in message +<199502171715.MAA11104@transfer.stratus.com>: +| +| You don't say which ttp you are using on VOS, but I will assume +| it is the vt100.ttp file. +| +| The "keyboard" section of the vt100.ttp file defines the names +| and key sequences used by the VT100 keys. In it we find: +| +| enter-key Enter esc O M + + +I have not used the Microsoft "telnet" application, but one standard +setup option in a DEC VT100 (or VT220, VT340, VT420, VT510, etc.) is +the "keypad mode"--what the behavior of the numeric keypad should be. + +The two modes are "application" and "numeric". + +In numeric mode, the various keypad keys send either the ASCII code +for decimal digits, or the ASCII code for the comma, period, or +hyphen, or (in the case of the keypad "Enter" key") the ASCII carriage +return control character (or CR/LF if so configured). + +The "Enter" key behavior you describe is characteristic of numeric- +keypad mode. + +The application mode is used by programs that don't need decimal +digits so much but need lots of user-activated software functions. +The DEC text-editing programs (EDT, EVE, etc.) are a classic example. +In application mode, the keypad keys send special Escape sequences +that chiefly begin with the so-called SS3 (single-shift G3) prefix, +which in 7-bit ASCII representation is the "Esc O". (In 8-bit, SS3 +is the single code hexadecimal 8F.) + +The following chart summarizes the possible codes (7-bit) generated by +the DEC terminals' keypad: + + Keypad Key Numeric Mode Application Mode + ---------- ------------ ---------------- + 0 0 Esc O p + 1 1 Esc O q + 2 2 Esc O r + 3 3 Esc O s + 4 4 Esc O t + 5 5 Esc O u + 6 6 Esc O v + 7 7 Esc O w + 8 8 Esc O x + 9 9 Esc O y + - - Esc O m + , , Esc O l + . . Esc O n + Enter carriage return Esc O M + PF1 Esc O P Esc O P + PF2 Esc O Q Esc O Q + PF3 Esc O R Esc O R + PF4 Esc O S Esc O S + + + was intended for use by programs that + + + + +This is a matter that my site has encountered in a slightly different form. + +Article 2620 of comp.protocols.kermit.misc: +Path: cs.utk.edu!cssun.mathcs.emory.edu!hobbes.cc.uga.edu!news-feed-1.peachnet.edu!gatech!swrinde!cs.utexas.edu!news.cs.utah.edu!cc.usu.edu!jrd +From: jrd@cc.usu.edu (Joe Doupnik) +Newsgroups: comp.protocols.kermit.misc +Subject: Re: Defining functional keys +Message-ID: <1995Apr22.122257.48276@cc.usu.edu> +Date: 22 Apr 95 12:22:57 MDT +References: <3n5307$jdd@kaie.va.ttu.ee> +Organization: Utah State University +Lines: 109 + +In article <3n5307$jdd@kaie.va.ttu.ee>, uuno@sofia.va.ttu.ee (Uuno Vallner) writes: +> We try to use KERMIT DOS as terminal. We have Novel and Unix +> mixed network. We try access to OSF/1 via IPX using Softnet in OSF/1. +> +> We defined Kermit port bios3. It works perfectly. We need to use estonian +> characters. We are resolved this problem too. But ... +> +> We use application in OSF/1 (text retrieval system trip), which needs +> for operating Application keypad (7,8. 9 ..1,0 ...)and some functional keys. +> But Kermit are using 7 as "home" +> +> Kermit interpreted non correct functional keys. After pressing f1, system +> sends only ESC , after next f1 follows code and new ESC. Same effect is with +> array keys. +-------------- + + I think there is some confusion about DEC versus IBM PC keys. +The relationship is detailed in distribution file MSVIBM.VT and also +in the user's manual book "Using MS-DOS Kermit." The IBM PC numeric +keypad keys are not necessarily related to the DEC KeyPad keys. Here +is a cutout from my copy of msvibm.vt: + + +1. VT320/VT102/VT52/Heath-19 EMULATOR IN MS-DOS KERMIT IBM-PC, CODE SUMMARY + + VT320/VT102 keypads Heath-19 and VT52 Keypads + IBM keys IBM Keys + +------+------+------+------+ +------+------+-------+----------+ + | PF1 | PF2 | PF3 | PF4 | | Blue | Red | Grey | up arrow | - Vendor + | F1 | F2 | F3 | F4 | | F1 | F2 | F3 | up arrow | - Kermit + +------+------+------+------+ +------+------+-------+----------+ + | 7 | 8 | 9 | - | | 7 | 8 | 9 |down arrow| + | F5 | F6 | F7 | F8 | | F5 | F6 | F7 |down arrow| + +------+------+------+------+ +------+------+-------+----------+ + | 4 | 5 | 6 | , | | 4 | 5 | 6 | rgt arrow| + | F9 | F10 | SF1 | SF2 | | F9 | F10 | SF1 | rgt arrow| + +------+------+------+------+ +------+------+-------+----------+ + | 1 | 2 | 3 | E | | 1 | 2 | 3 |left arrow| + | SF3 | SF4 | SF5 | n S| | SF3 | SF4 | SF5 |left arrow| + +------+------+------+ t F| +------+------+-------+----------+ + | 0------0 | . | e 6| | 0------0 | . | Enter | + | SF7 | SF8 | r | | SF7 | SF8 | SF6 | + +-------------+------+------+ +-------------+-------+----------+ + +SF1 means push Shift and F1 keys simultaneously +--------------------------------------------------------------------------- +Below, the acronyms CSI and SS3 stand for 8-bit control codes in an 8-bit +environment or for their 7-bit equivalents "ESC [" and "ESC O", respectively. +Command SET TERMINAL CONTROL {8-BIT | 7-BIT}, and an equivalent command from +the host, determines the usage for output text; use of parity forces 7-bit +mode. CSI is decimal 155, SS3 is decimal 143. Similarly, DCS is decimal 144 +or ESC P and ST is decimal 156 or ESC \. APC is decimal 159 or ESC _. +--------------------------------------------------------------------------- +Codes sent by DEC and Heath arrow keys +Key Verb IBM VT320/VT102 mode VT52/H19 mode + key Cursor Application Cursor or Application + +up uparr up CSI A SS3 A ESC A +down dnarr down CSI B SS3 B ESC B +right rtarr right CSI C SS3 C ESC C +left lfarr left CSI D SS3 D ESC D + +Codes sent by DEC editing keys, not preassigned to keys. +Key Verb VT320 mode VT102/VT52/H19 mode + +Find decFind CSI 1 ~ these keys +Insert Here decInsert CSI 2 ~ send nothing +Remove decRemove CSI 3 ~ +Select decSelect CSI 4 ~ +Prev Screen decPrev CSI 5 ~ +Next Screen decNext CSI 6 ~ ~ is ASCII chart 7/14 + +Codes sent by DEC Numeric Keypad +Key Verb IBM ANSI VT320/VT102 mode VT52/H19 mode + key Numeric Application Numeric Application + +PF1/HF7/Blue Gold,pf1 F1 SS3 P SS3 P ESC P ESC P +PF2/HF8/Red pf2 F2 SS3 Q SS3 Q ESC Q ESC Q +PF3/HF9/Grey pf3 F3 SS3 R SS3 R ESC R ESC R +PF4/HF1 pf4 F4 SS3 S SS3 S ESC S ESC S +0 kp0 SF7 0 SS3 p 0 ESC ? p +1 kp1 SF3 1 SS3 q 1 ESC ? q +2 kp2 SF4 2 SS3 r 2 ESC ? r +3 kp3 SF5 3 SS3 s 3 ESC ? s +4 kp4 F9 4 SS3 t 4 ESC ? t +5 kp5 F10 5 SS3 u 5 ESC ? u +6 kp6 SF1 6 SS3 v 6 ESC ? v +7 kp7 F5 7 SS3 w 7 ESC ? w +8 kp8 F6 8 SS3 x 8 ESC ? x +9 kp9 F7 9 SS3 y 9 ESC ? y +comma (,) kpcoma SF2 , SS3 l , ESC ? l +minus (-) kpminus F8 - SS3 m - ESC ? m +period (.) kpdot SF8 . SS3 n . ESC ? n +Enter kpenter SF6 CR or SS3 M CR or ESC ? M + CR LF (newline on) CR LF + (SFn means hold down Shift key while pressing Function key n.) +--------------- + + Please note that \Kkp0...\Kkp0 are placed on IBM PC function +keys by default. You can redefine such things using Kermit command +SET KEY, as discussed in depth in "Using MS-DOS Kermit." + I don't quite understand why you are using SET PORT BIOS3. Do +you have some Int 14h interceptor present to route traffic to the net? +For real serial ports BIOS3 is terrible. If you are using Novell's ODI +material then Kermit can operate as a native ODI client (using it's +internal TCP/IP stack). This is discussed in the release notes. + Joe D. + + + + diff --git a/konsole/doc/More/vt100_reference_card.txt b/konsole/doc/More/vt100_reference_card.txt new file mode 100644 index 000000000..e80ea1325 --- /dev/null +++ b/konsole/doc/More/vt100_reference_card.txt @@ -0,0 +1,215 @@ +Article 248 of comp.terminals: +Newsgroups: comp.terminals +Path: cs.utk.edu!gatech!udel!bogus.sura.net!opusc!usceast!chan +From: chan@ece.scarolina.edu (Simon Chan) +Subject: VT100 Reference Card !! ( if you are looking for....) +Message-ID: +Keywords: vt100 terminal escape codes +Sender: usenet@usceast.cs.scarolina.edu (USENET News System) +Organization: USC Department of Computer Science +Date: 28 Jan 93 15:57:58 GMT +Lines: 162 + + + +Taken from VT100 Programming Reference Card (DIGITAL) + +ANSI Compatible Mode + + Cursor Movement Commands + Cursor up ESC [ Pn A + Cursor down ESC [ Pn B + Cursor forward (right) ESC [ Pn C + Cursor backward (left) ESC [ Pn D + Direct cursor addressing ESC [ Pl; Pc H or + ESC [ Pl; Pc f + Index ESC D + Next Line ESC E + Reverse index ESC M + Save cursor and attributes ESC 7 + Restore cursor and attributes ESC 8 + * Pn = decimal parameter in string of ASCII digits.(default 1) + * Pl = line number (default 0); Pc = column number (default 0) + + Line Size (Double-Height and Double-Width) Commands + Change this line to double-height top half ESC # 3 + Change this line to double-height bottom half ESC # 4 + Change this line to single-width single-height ESC # 5 + Change this line to double-width single-height ESC # 6 + + Character Attributes + ESC [ Ps;Ps;Ps;...,Ps m + Ps = 0 or None All Attributes Off + 1 Bold on + 4 Underscore on + 5 Blink on + 7 Reverse video on + Any other parameter values are ignored. + + Erasing + From cursor to end of line ESC [ K or ESC [ 0 K + From beginning of line to cursor ESC [ 1 K + Entire line containing cursor ESC [ 2 K + From cursor to end of screen ESC [ J or ESC [ 0 J + From beginning of screen to cursor ESC [ 1 J + Entire screen ESC [ 2 J + + Programmable LEDs + ESC [ Ps;Ps;...Ps q + Ps = 0 or None All LEDs Off + 1 L1 on + 2 L2 on + 3 L3 on + 4 L4 on + Any other parameter values are ignored. + + Character Set (G0 and G1 Designators) + Charactor Set G0 Designator G1 Designator + United Kingdom (UK) ESC ( A ESC ) A + United States (USASCII) ESC ( B ESC ) B + Special graphics characters ESC ( 0 ESC ) 0 + and line drawing set + Alternate character ROM ESC ( 1 ESC ) 1 + Alternate character ROM ESC ( 2 ESC ) 2 + special graphics characters + + Scrolling Region + ESC [ Pt ; Pb r + Pt is the number of the top line of the scrolling region; + Pb is the number of the bottom line of the scrolling region + and must be greater than Pt. + (The default for Pt is line 1, the default for Pb is the end + of the screen) + + TAB stops + Set tab at current column ESC H + Clear tab at curent column ESC [ g or ESC [ 0 g + Clear all tabs ESC [ 3 g + + Modes + To Set To Reset + Mode Name Mode Sequence Mode Sequence + Line feed/new line New line ESC [20h Line feed ESC [20l + Cursor key mode Application ESC [?1h Cursor ESC [?l + ANSI/VT52 mode ANSI N/A VT52 ESC [?2l + Column mode 132 Col ESC [?3h 80 Col ESC [?3l + Scrolling mode Smooth ESC [?4h Jump ESC [?4l + Screen mode Reverse ESC [?5h Normal ESC [?5l + Origin mode Relative ESC [?6h Absolute ESC [?6l + Wraparound On ESC [?7h Off ESC [?7l + Auto repeat On ESC [?8h Off ESC [?8l + Interlace On ESC [?9h Off ESC [?9l + Graphic proc. option On ESC 1 Off ESC 2 + Keypad mode Application ESC = Numeric ESC > + + Reports + Cursor Position Report + Invoked by ESC [ 6 n + Response is ESC [ Pl; Pc R + * Pl = line number; Pc = column number + + Status Report + Invoked by ESC [ 5 n + Response is ESC [ 0 n (terminal ok) + ESC [ 3 n (terminal not ok) + + What Are You + Invoked by ESC [ c or ESC [ O c + Response is ESC [ ?1 ; Ps C + Ps = 0 Base VT100, no options + 1 Processor option (STP) + 2 Advanced Video option (AVO) + 3 AVO and STP + 4 Graphocs processor option (GO) + 5 GO and STP + 6 GO and AVO + 7 GO, STP, and AVO + Alternately invoked by ESC Z (not recommended.) Response is the same. + + Reset + ESC c + + Confidence Tests + Fill Screen with "Es" ESC # 8 + Invoke Test(s) ESC [ 2 ; Ps y + Ps = 1 Power-up self test + (ROM checksum, RAM, NVR, + keyboard and AVO if installed) + 2(loop back connector required) Data Loop Back + 4(loop back connector required) ETA Modern Control Test + 8 Repeat selected test(s) + indefinitely + (until failure or power off) + +VT52 Compatible Mode + Cursor Up ESC A + Cursor Down ESC B + Cursor Right ESC C + Cursor Left ESC D + Select Special Graphics character set ESC F + Select ASCII character set ESC G + Cursor to home ESC H + Reverse line feed ESC I + Erase to end of screen ESC J + Erase to end of line ESC K + Direct cursor address ESC Ylc (see note 1) + Identify ESC Z (see note 2) + Enter alternate keypad mode ESC = + Exit alternate keypad mode ESC > + Enter ANSI mode ESC < + + NOTE 1: Line and column numbers for direct cursor address are single + character codes whose values are the desired number plus + 37 (in Octal). Line and column numbers start at 1. + NOTE 2: Response to ESC Z is ESC / Z. + + + +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +Simon Chan chan@ece.scarolina.edu +Department of Electrical & Computer Engineering +Swearingen Engineering Centre +University of South Carolina +Coulmbia, South Carolina 29208 +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + + +Article 269 of comp.terminals: +Path: cs.utk.edu!gatech!news.ans.net!cmcl2!adm!smoke!gwyn +From: gwyn@smoke.brl.mil (Doug Gwyn) +Newsgroups: comp.terminals +Subject: Re: VT100 Reference Card !! +Keywords: vt100 terminal escape codes +Message-ID: <19629@smoke.brl.mil> +Date: 1 Feb 93 15:01:49 GMT +References: +Organization: U.S. Army Ballistic Research Lab, APG MD. +Lines: 25 + +In article chan@ece.scarolina.edu (Simon Chan) writes: +>Taken from VT100 Programming Reference Card (DIGITAL) + +Note that EK-VT100-RC-001 contains several errors and omissions. +The errors appear to all be fixed in the posted version. +Here are some additions: + + Parameters to Direct cursor addressing can be omitted if 1. + "Index" is broken if NEWLINE is enabled (set-up). + "Reverse index" scrolls up retaining the same column. + + CHARACTER SET DESIGNATORS: G0 = Shift-In, G1 = Shift-Out + +> ANSI/VT52 mode ANSI N/A VT52 ESC [?2l + ANSI/VT52 mode ANSI ESC < VT52 ESC [?2l + Modes can be combined using ";", for example "ESC [ ? 3 ; 4 ; 7 h" + + CONFIDENCE TESTS: Parameter bits are summed into one parameter. + + Hardcopy ESC # 7 + Graphic processor ON ESC 1 + Graphic processor OFF ESC 2 + +The reference card showed incorrect graphics for octal code 140; its +correct graphic is ` (accent grave). + + diff --git a/konsole/doc/More/vt100_scroll_region.txt b/konsole/doc/More/vt100_scroll_region.txt new file mode 100644 index 000000000..4297aaba3 --- /dev/null +++ b/konsole/doc/More/vt100_scroll_region.txt @@ -0,0 +1,124 @@ +Newsgroups: comp.terminals,comp.protocols.misc +Subject: ANSI X3.64 sequences (was Re: VT100 scrolling region) +Summary: Escape code effects +Expires: Sun, 31 Jan 1993 22:23:24 GMT +References: <18623@mindlink.bc.ca> +Sender: shuford@cs.utk.edu +Followup-To: comp.terminals +Distribution: world +Organization: University of Tennessee, Knoxville--Dept. of Computer Science +Keywords: VT100, scroll, control code, Escape, ANSI X3.64, terminal + +In article pdsmith@bbn.com (Peter D. Smith) writes: +> In article <18623@mindlink.bc.ca>, Frank@mindlink.bc.ca (Frank I. Reiter) +> writes: +> > Part of an application I am working on includes a VT100 emulator. +> > 1) Does ESC [;22r mean "scroll lines 0 through 22" or does it mean "Set +> > the bottom scrolling line to 22, leave the top line as it is set already"? +> +> It should mean 'scroll lines 1 to 22'. + +The control sequences recognized by the Digital Equipment Corporation +VT100, VT200, VT300, and VT400-family character-cell video terminals +are an extended variant of the control sequences specified by an ANSI +standard, ANSI X3.64. (ISO DP6429 is the international version.) + +The generic sequence introducer is a thing called CSI (Control +Sequence Introducer). If you are using 8-bit communication, you +can use the hexadecimal value 9B to represent this (but be sure you +understand the side effects thereof). Otherwise, use the 7-bit +equivalent: the Escape character (1Bh) followed by [ (the left +bracket character). + +The canonical form of the given scroll-region command would be + + CSI xx ; yy r + +or in 7-bit style + + Esc [ xx ; yy r + +(where xx and yy are decimal digits expressed in ASCII/IA5; you do not +actually use a space between sequence elements, this is for clarity. +Be careful with the notation here--sometimes a space character _is_ +a sequence element, as in the SR Scroll Right editing function.) + +In an X3.64 control sequence, the numeric arguments may default to an +arbitrary value specific to the device function being controlled. Do +not assume that the default always will be 0 or 1. (Or there may be +no default allowed.) For example, the numeric arguments in the GSM +(Graphic Size Modify) sequence have the default values 100, 100. + +As a private extension to X3.64, DEC defines the DECSTBM (Set Top and +Bottom Margins) command as follows: + + CSI Pt ; Pb r + + Selects top and bottom margins defining the scrolling region. + Pt is the line number of the first line in the scrolling region. + Pb is the line number of the bottom line. + If you do not select either Pt or Pb, they default to the top + and bottom respectively. Lines are counted from 1. + +(See \VT220 Programmer Pocket Guide/, part EK-VT220-HR-002, page 37.) + +> Remember that these sequences +> could be implemented in TTL without a microprocessor of any +> kind & therefore use the simplest possible implementation. + +Peter must be thinking of the much simpler DEC VT52 sequences. As far +as I know, terminals implementing X3.64 have ALWAYS used a built-in +microprocessor. The VT100 was built around an 8-bit-bus Intel 8085. + +In fact, when the X3.64 document was published (circa 1978), some +vendors, insisting on using discrete logic designs, objected that the +standard was so complex it could not be implemented. Most of these +vendors are now floating belly-up on the tide of technology. Some +credit is due to The Heath Company for a pioneering microprocessor- +based video terminal that implemented many of the X3.64 functions. + +> > 2) Should a clear screen code clear the scrolling region only, or the +> > entire screen? How about a clear to end of screen? +> +> I think this is the whole screen regardless of the scrolling region. +> Don't bet your company on it, though. + +Screen clearing should not depend on scrolling. + +Erasing parts of the display (EL and ED) in the VT100 is performed thus: + + Erase from cursor to end of line Esc [ 0 K or Esc [ K + Erase from beginning of line to cursor Esc [ 1 K + Erase line containing cursor Esc [ 2 K + Erase from cursor to end of screen Esc [ 0 J or Esc [ J + Erase from beginning of screen to cursor Esc [ 1 J + Erase entire screen Esc [ 2 J + +Some brain-damaged terminal/emulators respond to Esc [ J as if it were +Esc [ 2 J (here the default is 0), and _some_ versions of Microsoft's +MS-DOS ANSI.SYS contain a bug requiring software to send Esc [ k +(instead of the uppercase). Of course, you would never make this mistake. + +The VT200 and later terminals have the ECH control sequence: + + Esc yy X + +(where yy is a numeric parameter) + +This erases the cursor position and the next (yy-1) positions, but this +is not part of the least common denominator VT100. + + - - - - - - + +There is still various video-terminal information available for +anonymous FTP in "pub/shuford" from + + CS.UTK.EDU [128.169.94.1] + + - - - - - - + +VT, Flip Chip, DIBOL, and Rainbow are trademarks of Digital Equipment +Corporation. + + = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + diff --git a/konsole/doc/More/vt100_setup.txt b/konsole/doc/More/vt100_setup.txt new file mode 100644 index 000000000..1bdf44cdd --- /dev/null +++ b/konsole/doc/More/vt100_setup.txt @@ -0,0 +1,170 @@ +From: sherwin@royalt.enet.dec.com (Jim Sherwin) +Newsgroups: comp.terminals +Subject: Re: VT100 (DEC) Setup Problem (online/offline) +Message-ID: <29245@nntpd.lkg.dec.com> +Date: 25 Oct 91 02:02:07 GMT +Organization: DEC -- Video, Image and Printer Systems Group +Lines: 63 + + + Striking the SET-UP key places you into SET-UP A mode. SET-UP A is + basically your tab stops. Use the space bar to move along the ruler + and strike the T key at the desired tab stop location. + + SET-UP B may only be entered from SET-UP A and is done be striking + the 5 on the main keyboard (i.e. top-row). + + To exit SET-UP B strike the SET-UP key. + + The SET-UP parameters are as follows: + + + Bank Position Parameters + + 1 1 Scroll; 0=jump; 1=smooth + 1 2 Autorepeat; 0=off; 1=on + 1 3 Screen; 0=dark; 1=light + 1 4 Cursor; 0=underline; 1=block + + 2 1 Margin Bell; 0=off; 1=on + 2 2 Keyclick; 0=off; 1=on + 2 3 ANSI/VT52; 0=VT52; 1=ANSI + 2 4 Auto XON/XOFF; 0=off; 1=on + + 3 1 Pound Sign; 0=octothorpe; 1=British Pound + 3 2 Wrap Around; 0=off; 1=on + 3 3 New Line; 0=off; 1=on + 3 4 Interlace; 0=off; 1=on + + 4 1 Parity Sense; 0=odd; 1=even + 4 2 Parity; 0=off; 1=on + 4 3 Bits per Char; 0=7 bits; 1=8 bits + 4 4 Power; 0=60 Hz; 1=50 Hz + + While in SET-UP B mode, these features are set by positioning the + cursor above the feature switch, using the spacebar, and striking + the 6 key on the main keyboard. + + To set the ANSWERBACK MESSAGE, enter SET-UP B and strike the SHIFT + and A keys simultaneously. The terminal will respond with A = on + the screen. Type a message delimiter character which may be any + chaacter not used in the actual message. Type the ANSWERBACK + MESSAGE, up to 20 characters. Type the message delimiter + character. The message will disappear from the screen. You may + not edit an ANSWERBACK MESSAGE. You may only supercede it with a + new ANSWERBACK MESSAGE. + + To save the SET-UP, strike the SHIFT and S keys simultaneously, + while in SET-UP mode. + + I hope this helps. + + Jim + + + <>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<> + <> "When things are going well, \ Jim Sherwin a.k.a. <> + <> someone will inevitably \ sherwin@royalt.enet.dec.com <> + <> experiment detrimentally." \ !decwrl!royalt.enet.dec.com!sherwin <> + <> Boyle's Second Law \ sherwin%royalt.enet@decwrl.dec.com <> + <>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<>-<> + + +Article 20936 of comp.dcom.modems: +Path: utkcs2!darwin.sura.net!jvnc.net!yale.edu!think.com!news.bbn.com!news.bbn.com!news +From: Paul Placeway +Newsgroups: comp.dcom.modems,alt.bbs +Subject: Re: Detecting ANSI on a remote system +Date: 11 Jul 1992 00:04:09 GMT +Lines: 82 +Message-ID: +References: <1992Jul8.204233.13120@csusac.csus.edu> <1992Jul9.053233.11670@f109f.mil.se> +NNTP-Posting-Host: bbn.com +Xref: utkcs2 comp.dcom.modems:20936 alt.bbs:11447 + +nils@f109f.mil.se (Nils Hammar) writes: + +< emamid@athena.ecs.csus.edu (David Emami) writes: + + +< >I am currently writing a communications app using TurboVision; I've got a +< >view that can display ANSI, but how do I let the system that I hook up with +< >that I can use ANSI codes. Most BBS's that I've tried respond with "ANSI +< >detected" or "ANSI not detected" when I login using a commercial term +< >program, based on the emulation I'm using. I presume that the BBS sends a +< >string which I need to respond to in a certain way; what should my program +< >be looking for, and how should it answer? Any help would be appreciated. + +< What I have been using is the function that reports the cursor position. +< If you get an answer on that request that is correct, it's ANSI, or a VT100 +< compatible terminal. To determine if it's a VT100 or similar, you will have +< to send a second request that's only recognized by the VT100 or +< similar terminals. That request will result in an answer that tells you +< almost everything that you need to know about the terminal. +< If this secondary request doesn't give you any response, then it's only +< ANSI. This is a really nice way to find out if you can send high resolution +< graphics to the caller too. What a surprise to get a hig resolution +< picture on the screen when you are calling an ordinary BBS! + +The ANSI Device Status Report (DSR) is + + ESC [ n + +where is 5 for a status report (OK reply is "ESC [ 0 n"), and 6 +for report cursor position (reply is "ESC [ ; R"). + +ANSI (and DEC) Send Device Attributes is + + ESC [ c + +where is a number, in ASCII 0-9, and usually is 0 for the request. + +Here are a (small) selection of replies: + + what reply comments + ---- ----- ----------- + xterm ESC[?1;2c VT100 w/AVO + MacKermit ESC[?1;2c + VT102 ESC[?6c + VT320 ESC[63;1;2;8;9c + +(These are from vttest, by Per Lindberg) + + vanilla VT100 ESC[?1;0c no options + VT100 with STP ESC[?1;1c + VT100 with AVO ESC[?1;2c could be a VT102 + VT100 with STP and AVO ESC[?1;3c + VT100 with GPO ESC[?1;4c + VT100 with STP and GPO ESC[?1;5c + VT100 with AVO and GPO ESC[?1;6c + VT100 with STP, AVO and GPO ESC[?1;7c + VT100 with PP and AVO ESC[?1;11c + VT100 with PP, GPO and AVO ESC[?1;15c + VT132 with AVO ESC[?4;2c + VT132 with AVO and STP ESC[?4;3c + VT132 with GPO and AVO ESC[?4;6c + VT132 with GPO, AVO, and STP ESC[?4;7c + VT132 with PP and AVO ESC[?4;11c + VT132 with PP, GPO and AVO ESC[?4;15c + VT131 ESC[?7c + VT125 ESC[?12;5c VT125 also has ROM version + VT125 with AVO ESC[?12;7c number, so this won't work + VK100 (GIGI) ESC[?5;0c + VK100 (GIGI) ESC[?5c + + DXterm (DEC's version of xterm) ESC[?63;1;3;4;6;8;9;15;16;29c + +< For this reason, I once wrote a program that convert PCX pictures +< to DEC Sixel Graphics. It was interesting to view those pictures +< on the screen with MS-KERMIT (which supports Sixel Graphics in colour.) +< The only disadvantage was that Sixel graphics is bitmapped and slow. + +This is cute, but one needs to be careful about assuming what a +terminal emulator will do based on what it claims to be. There are a +lot of mediocre "emulations" out there. This is partially because the +ANSI spec allows the terminal to do a lot of weird and unexpected +things, like embedding simple control characters in the middle of an +escape sequence. ("foo ^H^[^H[^H4^HCbar" should render as "foo bar". +Yuck.) + + -- Paul Placeway diff --git a/konsole/doc/More/vttest.html b/konsole/doc/More/vttest.html new file mode 100644 index 000000000..1474d7601 --- /dev/null +++ b/konsole/doc/More/vttest.html @@ -0,0 +1,205 @@ + +The VTTEST VT100/102 Terminal Emulation Test + +

The VTTEST VT100/102 Terminal Emulation Test

+ +The VTTEST program was written in 1983-85 by Per Lindberg of Stockholm +University in Sweden to exercise and test all the features of a Digital +Equipment Corporation (DEC) VT100 or VT102 terminal or software that emulates +one of these terminals. Incidentally, the primary additional feature of the +VT102 terminal over the VT100 is character insertion and deletion, important in +text-editing applications (like vi or EMACS), especially on slow connections. +

+You may obtain the C-language source code for the VTTEST program by ftp, +compile it on your UNIX system (or adapt it to others), and run the tests +yourself: +

+ +ftp://kermit.columbia.edu/kermit/vttest/ +

+The VTTEST program does not test any features of the VT220 or above, +nor of esoteric VT models like VT125, VT131, etc. A VT220/320 test suite +similar to VTTEST would be most welcome, but none seems to exist. +

+The following sheet may be used to administer the test. There are 100 +points, plus 10 possible extra-credit points, so the highest possible +score would be 110. To minimize confusion and promote fairness, begin with +your emulator set to: +

    +
  • VT102 (or, if no VT102, then VT100) emulation; +
  • 24 rows by 80 columns; +
  • Light foreground on dark background; +
  • Answerback enabled. +
+
+
+VTTEST VT100/VT102 Compatibility Test Score Sheet + +Program and version: konsole______________________________ Date: _________ + +Score: ____________ + Extra credit: ___________ = Final score: ___________ + +Check box if test passed. Score 1 point per check mark. +Perfect score = 100 points. Extra credit at end. + +1. Test of cursor movements + +[1] 1. Text inside frame of E's inside frame of *'s and +'s, 80 columns +[1] 2. Text inside frame of E's inside frame of *'s and +'s, 132 columns +[1] 3. Cursor-control chars inside ESC sequences +[1] 4. Leading 0's in ESC sequences + +2. Test of screen features + +[1] 5. Three identical lines of *'s (test of wrap mode) +[1] 6. Test of tab setting/resetting +[1] 7. 132-column mode, light background +[1] 8. 80-column mode, light background +[1] 9. 132-column mode, dark background +[1] 10. 80-column mode, dark background +[1] 11. Soft scroll down +[1] 12. Soft scroll up / down +[1] 13. Jump scroll down +[1] 14. Jump scroll up / down +[1] 15. Origin mode test (2 parts) + + Graphic Rendition test pattern, dark background + +[1] 16. Normal ("vanilla") +[1] 17. Normal underlined distinct from normal +[1] 18. Normal blink distinct from all above +[1] 19. Normal underline blink distinct from all above +[1] 20. Normal reverse ("negative") distinct from all above +[1] 21. Normal underline reverse distinct from all above +[1] 22. Normal blink reverse distinct from all above +[1] 23. Normal underline blink reverse distinct from all above +[1] 24. Bold distinct from all above +[1] 25. Bold underlined distinct from all above +[1] 26. Bold blink distinct from all above +[1] 27. Bold underline blink distinct from all above +[1] 28. Bold reverse ("negative") distinct from all above +[1] 29. Bold underline reverse distinct from all above +[1] 30. Bold blink reverse distinct from all above +[1] 31. Bold underline blink reverse distinct from all above + + Graphic Rendition test pattern, light background + +[1] 32. Normal ("vanilla") +[1] 33. Normal underlined distinct from normal +[1] 34. Normal blink distinct from all above +[1] 35. Normal underline blink distinct from all above +[1] 36. Normal reverse ("negative") distinct from all above +[1] 37. Normal underline reverse distinct from all above +[1] 38. Normal blink reverse distinct from all above +[1] 39. Normal underline blink reverse distinct from all above +[1] 40. Bold distinct from all above +[1] 41. Bold underlined distinct from all above +[1] 42. Bold blink distinct from all above +[1] 43. Bold underline blink distinct from all above +[1] 44. Bold reverse ("negative") distinct from all above +[1] 45. Bold underline reverse distinct from all above +[1] 46. Bold blink reverse distinct from all above +[1] 47. Bold underline blink reverse distinct from all above + + Save/Restore Cursor + +[1] 48. AAAA's correctly placed +[1] 49. Lines correctly rendered (middle of character cell) +[1] 50. Diamonds correctly rendered + +3. Test of character sets + +[1] 51. UK/National shows Pound Sterling sign in 3rd position +[1] 52. US ASCII shows number sign in 3rd position +[1] 53. SO/SI works (right columns identical with left columns) +[1] 54. True special graphics & line drawing chars, not simulated by ASCII + +4. Test of double-sized chars + + Test 1 in 80-column mode: + +[0] 55. Left margin correct +[0] 56. Width correct + + Test 2 in 80-column mode: + +[0] 57. Left margin correct +[0] 58. Width correct + + Test 1 in 132-column mode: + +[0] 59. Left margin correct +[0] 60. Width correct + + Test 2 in 132-column mode: + +[0] 61. Left margin correct +[0] 62. Width correct + +[0] 63. "The man programmer strikes again" test pattern +[0] 64. "Exactly half the box should remain" + +5. Test of keyboard + +[?] 65. LEDs. +[?] 66. Autorepeat +[1] 67. "Press each key" (ability to send each ASCII graphic char) +[1] 68. Arrow keys (ANSI/Cursor key mode reset) +[1] 69. Arrow keys (ANSI/Cursor key mode set) +[?] 70. Arrow keys VT52 mode +[?] 71. PF keys numeric mode +[?] 72. PF keys application mode +[?] 73. PF keys VT52 numeric mode +[?] 74. PF keys VT52 application mode +[1] 75. Send answerback message from keyboard +[?] 76. Ability to send every control character + +6. Test of Terminal Reports + +[1] 77. Respond to ENQ with answerback +[1] 78. Newline mode set +[1] 79. Newline mode reset +[1] 80. Device status report 5 +[1] 81. Device status report 6 +[1] 82. Device attributes report +[1] 83. Request terminal parameters 0 +[1] 84. Request terminal parameters 1 + +7. Test of VT52 submode + +[1] 85. Centered rectangle +[1] 86. Normal character set +[1] 87. Graphics character set +[1] 88. Identify query + +8. VT102 Features + +[1] 89. Insert/delete line, 80 columns +[1] 90. Insert (character) mode, 80 columns +[1] 91. Delete character, 80 columns +[1] 92. Right column staggered by 1 (normal chars), 80 columns +[1] 93. Right column staggered by 1 (double-wide chars), 80 columns +[1] 94. ANSI insert character, 80 columns +[1] 95. Insert/delete line, 132 columns +[1] 96. Insert (character) mode, 132 columns +[1] 97. Delete character, 132 columns +[1] 98. Right column staggered by 1 (normal chars), 132 columns +[1] 99. Right column staggered by 1 (double-wide chars), 132 columns +[1] 100. ANSI insert character, 132 columns + +9. Extra credit + +[0] 101. True soft (smooth) scroll +[1] 102. True underline +[1] 103. True blink +[0] 104. True double-high/wide lines, not simulated +[1] 105. Reset terminal (*) +[0] 106. Interpret controls (debug mode) (*) +[0] 107. Send BREAK (250 msec) (*) +[0] 108. Send Long BREAK (1.5 sec) (*) +[0] 109. Host-controlled transparent / controller print (*) +[0] 110. Host-controlled autoprint (*) + +(*) Features of VT100 not tested by vttest. + + diff --git a/konsole/doc/More/xterm.codes b/konsole/doc/More/xterm.codes new file mode 100644 index 000000000..b14ead600 --- /dev/null +++ b/konsole/doc/More/xterm.codes @@ -0,0 +1,206 @@ + + Basic forms + + : Char (ordinary character) - evtChar(char chr) + : Cntl (control character) - evtCtrl(char control) + : ESC - evtMono(char mono) + : ESC [ - evtParm(char pc, int n, char* Ps[]) + : ESC - evtPrmc(char duo, char arg) + + : Special forms for Xterm extentions + + + DEC private mode. + + - Although can be any character in range of 0x30-0x3f, that + means any of "0123456789:;<=>?", a scan through different sources + shows that DEC private mode is indicated only with the *first* + parameter. That means that the '?' is attached only to the first + parameter in a sequence and all following are implicitely ment, too. + Thus DES private mode and ordinary modes cannot be mixed within + one sequence. + +------------------------ + + The following is a list of control sequences recognized by screen. "(V)" + and "(A)" indicate VT100-specific and ANSI- or ISO-specific functions, + respectively. + + 'x' in beginning means 'XTerm'. (ftp://ftp.x.org/...?) + +x BEL Bell (Ctrl-G) +x BS Backspace (Ctrl-H) +x TAB Horizontal Tab (HT) (Ctrl-I) +x LF Linefeed or New Line (NL) (Ctrl-J) +x VT Vertical Tab (Ctrl-K) same as LF +x FF Form Feed or New Page (NP) (Ctrl-L) same as LF +x CR Carriage Return (Ctrl-M) +x SO (A) Lock Shift G1 (Ctrl-N) +x SI (A) Lock Shift G0 (Ctrl-N) + +x ESC # 8 (V) Fill Screen with E's (for adjustment) + +x ESC ( Pcs (A) Designate character set as G0 +x ESC ) Pcs (A) Designate character set as G1 +x ESC * Pcs (A) Designate character set as G2 +x ESC + Pcs (A) Designate character set as G3 +x Pcs = 0 : Graphics +x A : UK +x B : US + +x ESC 7 (V) Save Cursor and Attributes +x ESC 8 (V) Restore Cursor and Attributes + +x ESC = (V) Application Keypad Mode +x ESC > (V) Numeric Keypad Mode + +x ESC D Index +x ESC E Next Line +x ESC F Cursor to left lower corner +x ESC H Horizontal Tab Set +x ESC M Reverse Index +x ESC N (A) Single Shift G2 +x ESC O (A) Single Shift G3 +x ESC Z Send VT100 Identification String + +x ESC [ Pn @ (dft:1) (A) Insert Blank Characters +x ESC [ Pn A (dft:1) Cursor Up +x ESC [ Pn B (dft:1) Cursor Down +x ESC [ Pn C (dft:1) Cursor Right +x ESC [ Pn D (dft:1) Cursor Left + +x ESC [ Pn ; Pn H (dft:1;1) Direct Cursor Addressing + ESC [ Pn J (dft:1) Erase in Display +x Pn = 0 (dft) From Cursor to End of Screen +x 1 From Beginning of Screen to Cursor +x 2 Clear whole screen + ESC [ Pn K Erase in Line +x Pn = 0 (dft) From Cursor to End of Line +x 1 From Beginning of Line to Cursor +x 2 Clear whole Line +x ESC [ Pn L (dft: 1) (A) Insert Line +x ESC [ Pn M (dft: 1) (A) Delete Line +x ESC [ Pn P (dft: 1) (A) Delete Character + +x ESC [ Ps c Send Device Attribute +x Ps = 0 (dft) Send VT100 Identification String +x > Send VT220 Secondary Device Attributes String + +x ESC [ Pn ; Pn f (dft:1;1) Direct Cursor Addressing (see ESC[H) +x ESC [ Ps g Clear Tabs +x Ps = 0 (dft) Clear current +x 3 Clear all + + ESC [ Ps ;...; Ps h Set Mode + ESC [ Ps ;...; Ps l Reset Mode (indicated in parenthesis) +x Ps = 4 (A) Insert (Replace) Mode +x 20 (A) Automatic (Normal) Linefeed Mode +- 34 Normal Cursor Visibility + +x ESC [ Ps ;...; Ps m Select Graphic Rendition +x Ps = 0 (dft) Default Rendition +x 1 Bold +- 2 (A) Faint +- 3 (A) Standout Mode (ANSI: Italicized) +x 4 Underlined +x 5 Blinking +x 7 Negative Image + + 22 (A) Normal Intensity + 23 (A) Standout Mode off (ANSI: Italicized off) + 24 (A) Not Underlined + 25 (A) Not Blinking + 27 (A) Positive Image + +x 3x (A) Foreground Color x +x 4x (A) Background Color x +x x = 0 (A) Black +x 1 (A) Red +x 2 (A) Green +x 3 (A) Yellow +x 4 (A) Blue +x 5 (A) Magenta +x 6 (A) Cyan +x 7 (A) White +x 9 (A) Default + +x ESC [ 6 n Send Device Report +x Ps = 5 Send Status report (ESC [ 0 n) +x 6 Send Cursor Position Report (ESC [ Row ; Col R) + +x ESC [ Pn ; Pn r (dft:all) Set Scrolling region + +x ESC [ ? Ps ; ... Ps h Set DEC private mode +x ESC [ ? Ps ; ... Ps l Reset DEC private mode +x ESC [ ? Ps ; ... Ps s Save DEC private mode +x ESC [ ? Ps ; ... Ps r Restore DEC private mode +x Ps = 1 (V) Application (Normal) Cursor Keys +x 2 // xterm: US -> G0..G3 // vt100: --> ansi/vt52 +x 3 (V) 132 (80) columns mode +x 4 Smooth (Fast) Scroll +x 5 (V) Reverse (Normal) Video +x 6 (V) Origin (Normal) Cursor Mode +x 7 (V) Wraparound (Normal) Cursor Mode +x 8 (No) Autorepeat Keys +x 9 (Don't) Send Mouse XY on button press +x 40 (Dis-) Allow 80<->132 +x 44 turn on (off) margin bell +x 45 (no) reverse wrap around mode +x 47 use (normal) alternate screen +x 1000 (don't) send mouse XY on button press and release + + i won't care for that +x-- 38 Enter Textronix Mode +x?? 41 (No) 'more(1)' fix +x- 46 start (stop) logging +x 1001 (don't) use hilite mouse tracking + +---------------------------------------------- + +following some Xterm specific commands + +x ESC ] Ps ; Pt BEL (A) Operating System Command (xterm title hack) +x Ps = 0 +x 1 +x 2 +x 46 +x 50 + +x ESC ^ Pt ESC \ (A) Privacy Message String (Message Line) +x- ESC _ Pt ESC \ (A) Application Program Command +x- ESC P Ps ESC \ (A) Device Control String. Outputs a string + directly to the host terminal without + interpretation. + +---------------------------------------------- + +x ESC c Full Reset + +x ESC n (A) Lock Shift G2 +x ESC o (A) Lock Shift G3 + +------------ more... + + ESC [ s (A) Save Cursor and Attributes + + ESC [ 8 ; Ph ; Pw t Resize the window to `Ph' lines and `Pw' columns + (SunView special) + + ESC \ (A) String Terminator + ESC ! Global Message String (Message Line) + ESC k A.k.a. Definition String + +- ESC [ Pn i (A) Relay to printer (ANSI Media Copy) +- Pn = 4 (A) Stop relay to printer (ANSI Media Copy) +- 5 (A) Start relay to printer (ANSI Media Copy) + +x- ESC l Memory Lock (HP) (FIXME: what that?) +x- ESC m Memory Unlock (HP) (FIXME: what that?) + +x- ESC | +x- ESC } +x- ESC ~ + +//FIXME: ESC[...T is hilite mouse tracking in xterm. +- ESC [ Pn S Scroll Scrolling Region Up +- ESC [ Pn T Scroll Scrolling Region Down diff --git a/konsole/doc/README.first b/konsole/doc/README.first new file mode 100644 index 000000000..59471ac04 --- /dev/null +++ b/konsole/doc/README.first @@ -0,0 +1,4 @@ +The material contained in here is a unsorted collection, or, if you prefer to +say so, a mess. Expect a proper documentation to follow later. + +May 1998, Lars. diff --git a/konsole/doc/VT100/Makefile.am b/konsole/doc/VT100/Makefile.am new file mode 100644 index 000000000..04367ed5e --- /dev/null +++ b/konsole/doc/VT100/Makefile.am @@ -0,0 +1,3 @@ +EXTRA_DIST = Table.Codes Table.Graphic Table.VT52 \ + awk.table.graphic db.trans db2.pl genTC.pl t.pl \ + vt100.gif konsole1.gif konsole2.gif techref.html diff --git a/konsole/doc/VT100/MoreText b/konsole/doc/VT100/MoreText new file mode 100644 index 000000000..e8804236f --- /dev/null +++ b/konsole/doc/VT100/MoreText @@ -0,0 +1,98 @@ +The refinement discussed here so far, is implemented in the +overall structure of the program: + + + Operations -------------X + Screen(s) + Protocol / | + Shell X------------X Emulation | + \ V + Widget + Events X------------------ + + +Part Application Protocol Data model Visualization + User Events + +Files TEShell.C TEmulation.C Screen.C TEWidget.C + TEVt102.C + +Types TEShell Emulation TEScreen TEWidget + + + +The abstract data type, in which the text is represented and +manipulated by a set of operations is + + +------------------------------------------------------------------ + +On the first glance, the terminal consists of the following +parts: + +- A screen to display characters to the user on a rectangular area. +- A keyboard to accept the user keypresses. +- A bidirectional serial connection, on which the application + sends the text to be displayed to the terminal and on which + the user's key pressed are forwarded to the application. +- The application that actually run on the terminal. + +More formally our terminal model consists of +- a character screen : a matrix [Lines,Columns] -> Character +- a current visual pointer position (cursor). +- a set of operations by which the screen can be manipulated +- a set of events (mainly keystrokes) +- two streams on which bytes are exchanged between the + application and the terminal which are used to communicate + the operations and events between the two end points. +- an initial state. + + 0 (columns) V--- Columns-1 + +-----------------------+ + | | 0 + | text on | + | the screen | + | | (lines) + | | + | | + | | Lines-1 + +-----------------------+ + + +For adressing purpose, we call the (columnNo,lineNo) pair a "position" + +- protocol == collection of operations and their encoding. + +Beschreibung + +- Strom von Kommandos und Anfragen +- Strom von Ereignissen und Antworten + +- HostToTerminalStream + : Sequence(Command U Request) + +- Type Command-Tokens + : Prn(Char) - literal(Character) - 1 char subset + : Ctl(Char) - 0-parm command + : Esc(Char) - 0-parm command + : Csi(Char,Args) - fix & flex num parm command + - some are sub-commands + : Pri(Char,Args) <: Csi("?",Char,Args) - fix & flex num parm command + - some are sub-commands + : Hsh(Char) - 0-parm command + : Scs(A,B) - 2-parm num command + : Vt5(A,B) - 2-parm num command + +- command definition + + : name(parm:Type<:Integer) + + : setFgColor(color) + : setBgColor(color) + : setReverse(bool) + : setBold(bool) + : setBlink(bool) + +------------------------------------------------------------------ + + diff --git a/konsole/doc/VT100/Table.Codes b/konsole/doc/VT100/Table.Codes new file mode 100644 index 000000000..6ece0f4bf --- /dev/null +++ b/konsole/doc/VT100/Table.Codes @@ -0,0 +1,1879 @@ +############################################################################## +# # +# [Table.Codes] Concept Data Base # +# # +# Copyright (c) 1998 by Lars Doelle # +# This file is part of Konsole # +############################################################################## + +# This is work in progress. The overall goal is to link the documentation of +# konsole closely to it's source. Further, the source could be organize such +# that the emulation dependent parts are separated from everything else. +# If this goal is matched, the emulation independent parts have to undergo +# documentation, also. +# +# Refere to [db.trans] for not-yet-integrated stuff. +# +# What has to be done in any case is to merge db.trans into this file and to +# make a script that extracts it again. From db.trans, we then generate parts +# of the decoder (the semantic assignment). +# +# db2.pl contains as script able to slit TEScreen.C into the emulation +# (in)dependent parts due to [db.trans]. +# +# A like thing has to be done for TEmuVt102.C/h and for TEScreen.h. +# +# The missing link in the moment is a proper handling of all the Ps arguments +# that refere to different routines (subfunction of an esc code). + +## Section Text ############## + +Introduction.html +

Introduction

+

+ In a traditional UNIX installation a single machine (host) served + several users by means of terminals attached to this host by a serial + cable. These terminals (end points) where specialized devices, either + regular ttys (printer with keyboard) or later more sophisticated + things with cathode ray tubes. +

+

+

+ Today, hardware has become so cheap, that each single user could + be provided with a complete host/display combination for the former + price of a terminal. +

+ Additional, and here we come to the X in the emulation, display + devices have become graphical while the original terminal where + only able to show characters but not graphics. +

+ To allow programs designed for the original configuration to be + used in the contemporary setup, "terminal emulations" where invented. + In these emulations, the whole original setup is simulated. +

+ The serial cable is folded into the operating system as a sort of + loop back device, and a program, the terminal emulation, uses modern + means of graphical user interfaces to behave like an earlier terminal. + To complete the picture, the host in the diagram is replaced by the + application that runs in the emulation (typically a shell or an old + editor). So, terminal emulations are in fact interfaces to character + oriented applications. +

+ This document describes the implementations of a program named + "konsole", which is such an X terminal emulation. Since konsole + is distributed under the GPL, meaning that it's source code is + available to whoever likes to hack on it, the program would be + incomplete without a proper introduction into the code and it's + concepts. Thus, this text is to complement the program and the + source with the remaining informations to make a complete product. +

+

A first refinement

+

+ Before we can come to the actual implementation, quite some + notions have to be introduced. We have to get us an idea what + a terminal emulation does in more detail. +

+ To this end, a simple model of the terminal and it's operation + is given, which is later extended and refined as we come deeper + into matter and implementation. +

+ At some level conception, a terminal can be described as a + (abstract) data model. This means it has some type of state + together with operations on that data type. These operations + are somehow encoded to be passed over the serial line. +

+ The concrete model is often loosely named the "emulation", + the specific encoding chosen, the "protocol". +

+ There are two principle models in use. The first, stream like + one, which is related to a tty, consideres the terminal as an + indefinit long and wide sheet of paper on which a printer head + types the characters that come in over the line. Typical examples + are shell scripts, make and other programs producing sequential + protocols of their activity. Their basic data type is a list of + list of characters. +

+ The second principle model is used by applications written + especially for crt devices, so called full screen applications. + These treat the terminal as a matrix of characters where each + position can be individually addressed and written to. Typical + representatives are full screen editors like vi and emacs, + file managers like mc and mail readers like mutt. +

+ Though the second model is newer, it's age does not imply a + preference. To the contrary, both models have a right for their + own and are both to be supported. The first model is fully + expressed within konsole in form of it's ref:history buffer. +

+ Note, that although the second model definitely build on the + first one in almost any respect, it cannot fully express it, + since it introduces a finite line length, while the first + model works with indefinite lines. +

+ Since application with both view of things are typically run + within the same session, some effort has been made within + konsole to maintain both ideas simultaniously, but only with + limited success so far. +

+ In both models, the notion of a current position (historically + a printer's head, nowadays visualized by a cursor) is present. + "Printing" a character at the current position and advancing + the head together with the starting a new line are the most + fundamental operations of the emulation. +

+ The full screen model basically adds the possibility to position + the cursor and to overwrite and clear the screen. +

+ A plethora of additional (more or less useful) commands are + then added on this by every specific emulation, see below for + the awful details. +

+ +

Parts of the model

+

+ All the following in this section is an outline. +

+ Parts of the terminal description +

    +
  • State +
    This is mainly the screen, the cursor (including it's graphical state) + and some hidden mode variables. Note that the state cannot be investigated + by the attached host. +
  • Interface +
    That's what goes over the wire. Beside being related to objects, this + appears so closely related to contemporal process communication, that + it might be discussed in likely terms. +
    We have information flowing in both directions. On could destinguist + between: +
  • Commands +
    These are "calls" of the terminals interface by the host which cause + some change of the terminals state, but do not end in a response. +
  • Requests +
    These are "calls" of the terminals interface by the host which do not cause + any change of the terminals state, but end in a response of the terminal. + Clearly, requests are somehow used to investigate the state of the terminal. +
  • Events +
    These are signals from the terminal caused by the user affecting the + mouse or keyboard to the host. +
  • Replys +
    These are send by the terminal as a result of a Request from the hosts. +
  • Encoding/Decoding +
+ +Sequences.html + Conceptually, the commands to the terminal emulation are encoded if form + of byte sequences to meet the restrictions of the transport media. These + sequences have pretty different originations and therefore the format of + the sequences are inhomogenous. +

+ Refering both to their origin and form, one can group the overall encoding + schemes as follows: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + . +
NamePatternScopeComment
Printable Ascii Characters32..126ASCII ECMAThis is the most original pattern of all. The characters to be + displayed are passed over the chanel and are interpreted by the + terminal (emulation) as instructions to display the corresponding + glyph of the ascii character set. Contempory emulations include the + upper half (128..255) of the extentions to the national ascii character + sets, also.
Ascii Control Characters0..26,28..31,127ASCII ECMAAscii defines some non-printable, but format effecting characters, too. + Depending on the emulation, at least some of them are given a meaning. + The typically implemented ones are those that are handled by a teletype + like device.
Simple Escape SequenceESC CECMAThese sequences are made up from an ESC character followed by + exactly one other character in the range ???..???.
CSI SequenceESC [ Parameters {I} CECMA
+

+ The remaining codes are nonstandard but traditionalized hacks. +

+

DEC hacksESC C DVT100
XTERM hacksESC ] Pn ; text BELXTERM
+

+ VT52 uses a different (incompatible) set of escape codes. VT100 includes + the VT52 emulation as a mode. +

+

Simple Escape SequenceESC CVT52
Complex Escape SequenceESC Y X YVT52
+ . +

More on Control Sequences

+ . +

Control Characters

+ . + Control characters (codes 0x00 - 0x1f inclusive) are specifically excluded + from the control sequence syntax, but may be embedded within a control + sequence. Embedded control characters are executed as soon as they are + encountered by a VT100. The processing of the control sequence then + continues with the next character received. The exceptions are: + if the ESC character occurs, the current control sequence + is aborted, and a new one commences beginning with the ESC + just received. If the character CAN (0x0c) or the + character SUB (0x0e) occurs, + the current control sequence is aborted. The ability to embed control + characters allows the synchronization characters XON and XOFF to be + interpreted properly without affecting the control sequence. +

+ . +

CSI Sequences

+ . +
+
Control Sequence Introducer (CSI): +
An escape sequence that provides + supplementary controls and is itself a prefix affecting the + interpretation of a limited number of contiguous characters. + In the VT100, the CSI is: <ESC>[ + . +
Parameter: +
1. A string of zero or more decimal characters which + represent a single value. Leading zeros are ignored. The + decimal characters have a range of 0 (060) to 9 (071). +
2. The value so represented. + . +
Numeric Parameter: +
A parameter that represents a number, designated by Pn. + . +
Selective Parameter: +
A parameter that selects a subfunction from a + specified set of subfunctions, designated by Ps. In general, a + control sequence with more than one selective parameter causes + the same effect as several control sequences, each with one + selective parameter, e.g., CSI Psa; Psb; Psc F is identical to + CSI Psa F CSI Psb F CSI Psc F. + . +
Parameter String: +
A string of parameters separated by a semicolon. + . +
Default: +
A function-dependent value that is assumed when no explicit + value, or a value of 0, is specified. + . +
Final character: +
A character whose bit combination terminates an escape or control sequence. +
+ . + EXAMPLE: Control sequence to turn off all character attributes, then + turn on underscore and blink attributes (SGR). + . +
+

+ The octal representation of this string is: +

+     033 0133 060 073 064 073 065 0155
+    <ESC>   [   0   ;   4   ;   5    m
+  
+ . + Alternate sequences which will accomplish the same thing: + . +
    +
  • <ESC>[;4;m +
  • <ESC>[m +
    <ESC>[4m +
    <ESC>[5m +
  • <ESC>[0;04;005m +
+ . +

DEC hacks

+ . + These form two groups of commands. +

+ In one first the first character is a hash (#) and the following a digit. + This command group is used to denote VT100 specific instructions and can + safely be sonsidered to be obsolete. See + DECALN, + DECDHLB, + DECDHLT, + DECDWL and + DECSWL. +

+ The second one is used to specify character set mappings (see SCS). A CSI instruction to do this is specified in ECMA, + and this should be used as a replacement. + . +

XTERM hacks

+ +ConceptDB.html + The following text is a collection of several sorts of definitions and + explainations. It is incomplete in many respects and a working draft. + + . +

+ All of the following control sequences are transmitted from the Host to + VT100 unless otherwise noted. All of the control sequences are a subset of + those defined in ANSI X 3.64 1977 and ANSI X 3.41 1974. +

+ The following text conforms to these formatting conventions: +

    +
  • Individual character literals are set in bold face. Ascii representation + is used throughout, so ESC means the binary value of 27 and + [ a value of 91. + . +
  • Parameters are indicated by italic type faces. +
  • Parameter types usually are indicated as one of: + + + + +
    Pn A string of digits representing a numerical value.
    Ps A character that selects an item from a list.
    a-zAny lowercase sequence of one or more + characters represent a value to be + entered (as in Pn), and the name in the + will be referred to in explanatory text.
    + . +
  • Spaces are used only to improve readability, they do not occure in the + control sequences unless otherwise indicated. + . +
+ . +

+ The following attributes below have the following meaning: +

    +
  • VT100 - This code is known to VT100. +
  • ANSI - This code is defined by ANSI. +
  • DEC - This code is DEC private. +
  • Command - Sent from host to the terminal. FIXME:add Inquiery. +
  • Reply - Sent from terminal to the host (as response to an Inquiery). +
  • Event - Sent from terminal to the host (caused by a user activity). +
  • Mode - The entry is a mode. +
+ +Operations.html +

+

    +
  • Host to Terminal (Commands,Requests) +
      +
    • Commands +
        +
      • Character Display Operation +
      • Rendition related status +
      • Cursor +
      • Cursor related status +
      • Edit +
      • Miscellaneous +
      • General mode setting +
      • Miscellaneous status +
      • VT52 +
      • Not implemented +
      • Ignored +
      +
    • Requests +
    +
  • Terminal to Host (Replies, Events) +
      +
    • Replies +
    • Events +
    +
  • Modes +
      +
    • Modes +
    +
+ +## Keyboard ################################################################# + +KEYBOARD.head Keyboard Events +KEYBOARD.emus KONSOLE +KEYBOARD.sect Event +KEYBOARD.text + FIXME. explain +KEYBOARD.table.Codes + Key|Code:4 + AltButton|"\033" + Return|MODE_NewLine ? "\r\n" : "\r" + Backspace|MODE_BsHack ? "\x7f" : "\x08" + Delete|MODE_BsHack ? "\033[3~" : "\x7f" + Up|!MODE_Ansi ?"\033A" : MODE_AppCuKeys ?"\033OA" : "\033[A" + Down|!MODE_Ansi ?"\033B" : MODE_AppCuKeys ?"\033OB" : "\033[B" + Right|!MODE_Ansi ?"\033C" : MODE_AppCuKeys ?"\033OC" : "\033[C" + Left|!MODE_Ansi ?"\033D" : MODE_AppCuKeys ?"\033OD" : "\033[D" + F1|Xterm? "\033[11~": "\033[[A" + F2|Xterm? "\033[12~": "\033[[B" + F3|Xterm? "\033[13~": "\033[[C" + F4|Xterm? "\033[14~": "\033[[D" + F5|Xterm? "\033[15~": "\033[[E" + F6|"\033[17~" + F7|"\033[18~" + F8|"\033[19~" + F9|"\033[20~" + F10|"\033[21~" + F11|"\033[23~" + F12|"\033[24~" + Home|"\033[7~" + End|"\033[8~" + Prior|"\033[5~" + Next|"\033[6~" + Insert|"\033[2~" + Control_Space|"\x00" + Control_Print|reportAnswerBack() + Ascii|Character + +MOUSE.head Mouse Events +MOUSE.emus KONSOLE +MOUSE.sect Event +MOUSE.text + FIXME. explain + +CHA.head Cursor Horizontal Absolute +CHA.emus ECMA KONSOLE +CHA.sect Command.Cursor +CHA.code CSI|G|{Pn} +CHA.text + FIXME. explain +CHA.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|xterm|scr|setCursorX|p|see above + +DCH.head Delete Character +DCH.emus ECMA KONSOLE +DCH.sect Command.Delete +DCH.code CSI|P|{Pn} +DCH.text + FIXME. explain +DCH.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|xterm|scr|deleteChars|p|see above + +DECRST.head DEC Private Reset Mode +DECRST.emus VT100 KONSOLE +DECRST.sect Command.SetMode +DECRST.code PRI|l|{Ps;...} +DECRST.text + FIXME. explain +DECRST.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + 1|VT100|emu|resetMode|MODE_AppCuKeys|Meaning + 2|VT100|emu|resetMode|MODE_Ansi|Meaning + 3|VT100|emu|setColumns|80|Meaning + 4|VT100|emu|Ignored||Meaning + 5|VT100|scr|resetMode|MODE_Screen|Meaning + 6|VT100|scr|resetMode|MODE_Origin|Meaning + 7|VT100|scr|resetMode|MODE_Wrap|Meaning + 8|VT100|emu|Ignored||Meaning + 9|VT100|emu|Ignored||Meaning + 25|VT100|emu|resetMode|MODE_Cursor|Meaning + 47|xterm|emu|resetMode|MODE_AppScreen|Meaning + 1000|xterm|emu|resetMode|MODE_Mouse1000|Meaning + 1001|xterm|emu|Ignored||Meaning + 1047|xterm|emu|resetMode|MODE_AppScreen|Meaning + 1048|xterm|scr|restoreCursor||Meaning + +DECSET.head DEC Private Set Mode +DECSET.emus VT100 KONSOLE +DECSET.sect Command.SetMode +DECSET.code PRI|h|{Ps;...} +DECSET.text + FIXME. explain +DECSET.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + 1|VT100|emu|setMode|MODE_AppCuKeys|Meaning + 3|VT100|emu|setColumns|132|Meaning + 4|VT100|emu|Ignored||Meaning + 5|VT100|scr|setMode|MODE_Screen|Meaning + 6|VT100|scr|setMode|MODE_Origin|Meaning + 7|VT100|scr|setMode|MODE_Wrap|Meaning + 8|VT100|emu|Ignored||Meaning + 9|VT100|emu|Ignored||Meaning + 25|VT100|emu|setMode|MODE_Cursor|Meaning + 47|xterm|emu|setMode|MODE_AppScreen|Meaning + 1000|xterm|emu|setMode|MODE_Mouse1000|Meaning + 1001|xterm|emu|Ignored||Meaning + 1047|xterm|emu|setMode|MODE_AppScreen|Meaning + 1048|xterm|scr|saveCursor||Meaning + +DL.head Delete Line +DL.emus ECMA KONSOLE +DL.sect Command.Delete +DL.code CSI|M|{Pn} +DL.text + FIXME. explain +DL.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|konsole|scr|deleteLines|p|see above + +ECH.head Erase Character +ECH.emus ECMA KONSOLE +ECH.sect Command.Erase +ECH.code CSI|X|{Pn} +ECH.text + FIXME. explain +ECH.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|konsole|scr|eraseChars|p|see above + +ICH.head Insert Character +ICH.emus ECMA KONSOLE +ICH.sect Command.Insert +ICH.code CSI|@|{Pn} +ICH.text + FIXME. explain +ICH.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|konsole|scr|insertChars|p|see above + +IL.head Insert Line +IL.emus KONSOLE +IL.sect Command.Insert +IL.code CSI|L|{Pn} +IL.text + FIXME. explain +IL.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|xterm|scr|insertLines|p|see above + +LS2.head Lock Shift Two +LS2.emus KONSOLE +LS2.sect Command.RenderMode +LS2.code ESC|n| +LS2.text + FIXME. explain +LS2.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|xterm|scr|useCharset|2|see above + +LS3.head Lock Shift Three +LS3.emus KONSOLE +LS3.sect Command.RenderMode +LS3.code ESC|o| +LS3.text + FIXME. explain +LS3.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|xterm|scr|useCharset|3|see above + +MC.head Media Copy +MC.emus ECMA VT100 +MC.sect Command.NoImp +MC.code CSI|i|{Pn} +MC.text + FIXME. explain +MC.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + 0|VT100|emu|Ignored||Meaning + +VPA.head Vertical Position Absolute +VPA.emus ECMA KONSOLE +VPA.sect Command.Cursor +VPA.code CSI|d|{Pn} +VPA.text + FIXME. explain +VPA.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|xterm|scr|setCursorY|p|see above + +XTERESTORE.head XTerm Private Restore Mode +XTERESTORE.emus XTERM KONSOLE +XTERESTORE.sect Command.SetMode +XTERESTORE.code PRI|r|{Ps;...} +XTERESTORE.text + FIXME. explain +XTERESTORE.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + 1|xterm|emu|restoreMode|MODE_AppCuKeys|Meaning + 6|xterm|scr|restoreMode|MODE_Origin|Meaning + 7|xterm|scr|restoreMode|MODE_Wrap|Meaning + 1000|xterm|emu|restoreMode|MODE_Mouse1000|Meaning + 1001|xterm|emu|Ignored||Meaning + +XTESAVE.head XTerm Private Save Mode +XTESAVE.emus XTERM KONSOLE +XTESAVE.sect Command.SetMode +XTESAVE.code PRI|s|{Ps;...} +XTESAVE.text + FIXME. explain +XTESAVE.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + 1|xterm|emu|saveMode|MODE_AppCuKeys|Meaning + 6|xterm|scr|saveMode|MODE_Origin|Meaning + 7|xterm|scr|saveMode|MODE_Wrap|Meaning + 1000|xterm|emu|saveMode|MODE_Mouse1000|Meaning + 1001|xterm|emu|Ignored||Meaning + +NUL.head Null +NUL.emus VT100 XTERM Linux KONSOLE +NUL.sect Command.Ignored +NUL.code CTL|0x00| +NUL.text + NUL is used as media- or time-fill. It is ignored by Konsole, but may + be sensible for devices which requiere a recognizable amount of time + to complete some commands (e.g. form feed on a non-buffering printing + device). +NUL.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +SOH.head Start Of Heading +SOH.emus VT100 XTERM Linux KONSOLE +SOH.sect Command.Ignored +SOH.code CTL|0x01| +SOH.text + Ignored +SOH.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +STX.head Start Of Text +STX.emus VT100 XTERM Linux KONSOLE +STX.sect Command.Ignored +STX.code CTL|0x02| +STX.text + Ignored +STX.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +ETX.head End Of Text +ETX.emus VT100 XTERM Linux KONSOLE +ETX.sect Command.Ignored +ETX.code CTL|0x03| +ETX.text + Ignored +ETX.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +EOT.head End Of Transmission +EOT.emus VT100 XTERM Linux KONSOLE +EOT.sect Command.Ignored +EOT.code CTL|0x04| +EOT.text + Ignored +EOT.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +ENQ.head Enquiry +ENQ.emus VT100 +ENQ.sect Command.Request +ENQ.code CTL|0x05| +ENQ.text + Transmit the ANSWERBACK message. The answerback message can be loaded + in SET-UP B (i.e. is a configurable string). +ENQ.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|reportAnswerBack||see above + +ACK.head Acknowledge +ACK.emus VT100 XTERM Linux KONSOLE +ACK.sect Command.Ignored +ACK.code CTL|0x06| +ACK.text + Ignored +ACK.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +BEL.head Bell +BEL.emus VT100 +BEL.sect Command +BEL.code CTL|0x07| +BEL.text + Sound bell +BEL.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|gui|Bell||see above + +BS.head Back Space +BS.emus VT100 +BS.sect Command.Cursor +BS.code CTL|0x08| +BS.text + Move cursor to the left one position, unless it is at the left + margin, in which case no action is taken. +BS.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|BackSpace||see above + +HT.head Horizontal Tabulation +HT.emus VT100 +HT.sect Command.Cursor +HT.code CTL|0x09| +HT.text + Move cursor to the next tab stop, or to the right margin + if no further tabs are set. +HT.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|Tabulate||see above + +LF.head Line Feed +LF.emus VT100 +LF.sect Command.Cursor +LF.code CTL|0x0a| +LF.text + Causes either a line feed or new line operation (See \ref:LNM.) +LF.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|NewLine||see above + +VT.head Vertical Tabulation +VT.emus VT100 +VT.sect Command.Cursor +VT.code CTL|0x0b| +VT.text + Same as \ref:LF. +VT.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|NewLine||see above + +FF.head Form Feed +FF.emus VT100 +FF.sect Command.Cursor +FF.code CTL|0x0c| +FF.text + Same as \ref:LF. +FF.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|NewLine||see above + +CR.head Carriage Return +CR.emus VT100 +CR.sect Command.Cursor +CR.code CTL|0x0d| +CR.text + Move the cursor to the left margin of the current line. +CR.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|Return||see above + +LS0.head Lock Shift Zero (Shift Out - SO) +LS0.emus VT100 +LS0.sect Command.RenderMode +LS0.code CTL|0x0e| +LS0.text + Invoke the G1 character set, as designated by the \ref:SCS control sequence. +LS0.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|useCharset|1|see above + +LS1.head Lock Shift One (Shift In - SI) +LS1.emus VT100 +LS1.sect Command.RenderMode +LS1.code CTL|0x0f| +LS1.text + Invoke the G0 character set, as selected by the ( sequence. +LS1.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|useCharset|0|see above + +DLE.head Data Link Escape +DLE.emus VT100 XTERM Linux KONSOLE +DLE.sect Command.Ignored +DLE.code CTL|0x10| +DLE.text + Ignored +DLE.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +DC1.head Device Control One +DC1.emus VT100 +DC1.sect Ignored +DC1.code CTL|0x11| +DC1.text + Causes terminal to resume transmission (XON). +DC1.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +DC2.head Device Control Two +DC2.emus VT100 XTERM Linux KONSOLE +DC2.sect Command.Ignored +DC2.code CTL|0x12| +DC2.text + Ignored +DC2.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +DC3.head Device Control Three +DC3.emus VT100 XTERM Linux KONSOLE +DC3.sect Command.Ignored +DC3.code CTL|0x13| +DC3.text + Causes terminal to stop transmitting all codes except XOFF and XON (XOFF). +DC3.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +DC4.head Device Control Four +DC4.emus VT100 XTERM Linux KONSOLE +DC4.sect Command.Ignored +DC4.code CTL|0x14| +DC4.text + Ignored +DC4.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +NAK.head Negative Acknowledge +NAK.emus VT100 XTERM Linux KONSOLE +NAK.sect Command.Ignored +NAK.code CTL|0x15| +NAK.text + Ignored +NAK.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +SYN.head Synchronous Idle +SYN.emus VT100 XTERM Linux KONSOLE +SYN.sect Command.Ignored +SYN.code CTL|0x16| +SYN.text + Ignored +SYN.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +ETB.head End Of Transmission Block +ETB.emus VT100 XTERM Linux KONSOLE +ETB.sect Command.Ignored +ETB.code CTL|0x17| +ETB.text + Ignored +ETB.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +CAN.head Cancel +CAN.emus VT100 +CAN.sect Command +CAN.code CTL|0x18| +CAN.text + If sent during a control sequence, the sequence id immediately + terminated and not executed. It also causes the error character + (checkerboard) to be displayed. +CAN.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|ShowCharacter|2|see above + +EM.head End Of Medium +EM.emus VT100 XTERM Linux KONSOLE +EM.sect Command.Ignored +EM.code CTL|0x19| +EM.text + Ignored +EM.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +SUB.head Substitute +SUB.emus VT100 +SUB.sect Command +SUB.code CTL|0x1a| +SUB.text + Same as \ref:CAN. +SUB.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|ShowCharacter|2|see above + +ESC.head Escape +ESC.emus ECMA VT100 +ESC.sect Ignored +ESC.code CTL|0x1b| +ESC.text + Introduces a control sequence. +ESC.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +FS.head File Separator (IS4 - Information Separator Four) +FS.emus VT100 XTERM Linux KONSOLE +FS.sect Command.Ignored +FS.code CTL|0x1c| +FS.text + Ignored +FS.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +GS.head Group Separator (IS3 - Information Separator Three) +GS.emus VT100 XTERM Linux KONSOLE +GS.sect Command.Ignored +GS.code CTL|0x1d| +GS.text + Ignored +GS.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +RS.head Record Separator (IS2 - Information Separator Two) +RS.emus VT100 XTERM Linux KONSOLE +RS.sect Command.Ignored +RS.code CTL|0x1e| +RS.text + Ignored +RS.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +US.head Unit Separator (IS1 - Information Separator One) +US.emus VT100 XTERM Linux KONSOLE +US.sect Command.Ignored +US.code CTL|0x1f| +US.text + Ignored +US.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +DEL.head Delete Character +DEL.emus VT100 +DEL.sect Command.Ignored +DEL.code DEL|| +DEL.text + Ignored + +CPR.head Cursor Position Report +CPR.emus ECMA VT100 +CPR.sect Reply +CPR.code CSI|R|{Pn;Pn} +CPR.dflt 1 1 +CPR.text + The CPR sequence reports the active position by means of the + parameters. This sequence has two parameter values, the first + specifying the line and the second specifying the column. The default + condition with no parameters present, or parameters of 0, is equivalent + to a cursor at home position. + . + The numbering of the lines depends upon the state of the Origin Mode + (\ref:DECOM). + . + This control sequence is sent in reply to a device status report + (\ref:DSRREQ) command sent from the host. + +CUB.head Cursor Backward +CUB.emus ECMA VT100 +CUB.sect Command.Cursor Event +CUB.code CSI|D|{Pn} +CUB.dflt 1 +CUB.text + Moves the cursor to the left. The distance moved is + determined by the parameter. If the parameter missing, zero, or one, + the cursor is moved one position. The cursor cannot be moved past the + left margin. +CUB.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|cursorLeft|p|see above + +CUD.head Cursor Down +CUD.emus ECMA VT100 +CUD.sect Command.Cursor Event +CUD.code CSI|B|{Pn} +CUD.dflt 1 +CUD.text + Moves the cursor down a number of lines as specified in the parameter + without changing columns. The cursor cannot be moved past the bottom + margin. +CUD.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|cursorDown|p|see above + +CUF.head Cursor Foreward +CUF.emus ECMA VT100 +CUF.sect Command.Cursor Event +CUF.code CSI|C|{Pn} +CUF.dflt 1 +CUF.text + Moves the cursor to the right a number of positions + specified in the parameter. The cursor cannot be moved past the right + margin. +CUF.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|cursorRight|p|see above + +CUP.head Cursor Position +CUP.emus ECMA VT100 +CUP.sect Command.Cursor +CUP.code CSI|H|{Pn;Pn} +CUP.dflt 1 1 +CUP.text + Moves the curor to the position specified by the + parameters. The first parameter specifies the line, and the second + specifies the column. A value of zero for either line or column moves + the cursor to the first line or column in the display. The default + string (H) homes the cursor. In the VT100, this command behaves + identically to it's format effector counterpart, \ref:HVP. + . + The numbering of the lines depends upon the state of the Origin Mode + (\ref:DECOM). +CUP.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|setCursorYX|p,q|see above + +CUU.head Cursor Up +CUU.emus ECMA VT100 +CUU.sect Command.Cursor Event +CUU.code CSI|A|{Pn} +CUU.dflt 1 +CUU.text + Moves the cursor up without changing columns. The cursor is moved up a + number of lines as indicated by the parameter. The cursor cannot be + moved beyond the top margin. +CUU.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|cursorUp|p|see above + +DA.head Device Attributes Request +DA.emus ECMA VT100 +DA.sect Command.Request +DA.code CSI|c|{Pn} +DA.dflt 0 +DA.text + The host requests the VT100 to send a DA sequence to indentify + itself. This is done by sending the DA sequence with no parameters, + or with a parameter of zero. + The device replies by (\ref:DECDA). +DA.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|reportTerminalType||see above + +DECDA.head Device Attributes Reply +DECDA.emus VT100 +DECDA.sect Reply +DECDA.code PRI|c|{1;Pn} +DECDA.text + Response to the \ref:DA request (VT100 to host) is generated + by the VT100 as a DECDA control sequence with the numeric parameters as + follows: +DECDA.table.Pn + Pn|Meaning:4 + 0|No options + 1|Processor Option (STP) + 2|Advanced Video Option (AVO) + 3|AVO and STP + 4|Graphics Option (GPO) + 5|GPO and STP + 6|GPO and AVO + +DECALN.head Screen Alignment Display +DECALN.emus VT100 +DECALN.sect Command +DECALN.code HSH|8| +DECALN.text + Causes the VT100 to fill it's screen with + uppercase Es for screen focus and alignment. +DECALN.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|helpAlign||see above + +DECANM.head ANSI/VT52 Mode +DECANM.emus VT100 +DECANM.sect Mode +DECANM.text + This is a private parameter to the \ref:SM and \ref:RM + control sequences. The + reset state causes only VT52 compatible escape sequences to be + recognized. The set state causes only ANSI compatible escape sequences + to be recognized. See the entries for \ref:MODES, \ref:SM, \ref:RM + and \ref:VT52ANSI. + +DECARM.head Auto Repeat Mode +DECARM.emus VT100 +DECARM.sect Mode +DECARM.text + This is a private parameter to the \ref:SM and \ref:RM + control sequences. The + reset state causes no keyboard keys to auto-repeat, the set state + causes most of them to. See \ref:MODES, \ref:SM and \ref:RM. + +DECAWM.head Autowrap Mode +DECAWM.emus VT100 +DECAWM.sect Mode +DECAWM.text + This is a private parameter to the \ref:SM and \ref:RM + control sequences. The + reset state prevents the cursor from moving when characters are + received while at the right margin. The set state causes these + characters to advance to the next line, causing a scroll up if required + and permitted. See \ref:MODES, \ref:SM, and + \ref:RM. + +DECCKM.head Cursor Keys Mode +DECCKM.emus VT100 +DECCKM.sect Mode +DECCKM.text + This is a private parameter to the \ref:SM and \ref:RM + control requences. This + mode is only effective when the terminal is in keypad application mode + (\ref:DECKPAM) and the ANSI/VT52 mode (\ref:DECANM) + is set. Under these + conditions, if this mode is reset, the cursor keys will send ANSI + cursor control commands. If setm the cursor keys will send application + function commands. See \ref:MODES, \ref:RM, and + \ref:SM. + +DECCOLM.head Column Mode +DECCOLM.emus VT100 +DECCOLM.sect Mode +DECCOLM.text + This is a private parameter to the \ref:SM and \ref:RM + control sequences. The + reset state causes an 80 column screen to be used. The set state + causes a 132 column screen to be used. See \ref:MODES, + \ref:RM, and \ref:SM. + +DECDHLT.head Double Height Line (Top) +DECDHLT.emus VT100 +DECDHLT.sect Command.NoImp +DECDHLT.code HSH|3| +DECDHLT.text + Cause the line containing the cursor to become the top half of a + double-height, double width line. + If the line was single width single height, all + characters to the right of the center of the screen will be lost. The + cursor remains over the same character position, unless it would be to + the right of the right margin, in which case it is moved to the right + margin. + . + \ref:DECDHLB and \ref:DECDHLT + should be used in pairs on adjacent lines with each line containing the + same character string. +DECDHLT.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +DECDHLB.head Double Height Line (Bottom) +DECDHLB.emus VT100 +DECDHLB.sect Command.NoImp +DECDHLB.code HSH|4| +DECDHLB.text + This sequence cause the line containing the cursor to become the + bottom half of a double-height, double width line. + If the line was single width single height, all + characters to the right of the center of the screen will be lost. The + cursor remains over the same character position, unless it would be to + the right of the right margin, in which case it is moved to the right + margin. + . + \ref:DECDHLB and \ref:DECDHLT + should be used in pairs on adjacent lines with each line containing the + same character string. +DECDHLB.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +DECDWL.head Double Width Line +DECDWL.emus VT100 +DECDWL.sect Command.NoImp +DECDWL.code HSH|6| +DECDWL.text + This causes the line that contains the cursor to become double-width + single height. If the line was single width, all characters ro the + right of the center of the screen will be lost. The cursor remains + over the same character position, unless it would be to the right of + the right margin, in which case it is moved to the right margin. +DECDWL.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +DECID.head Identify Terminal +DECID.emus VT100 +DECID.sect Command.Request +DECID.code ESC|Z| +DECID.text + This sequence causes the same response as the \ref:DA sequence. This + sequence will not be supported in future models. +DECID.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|reportTerminalType||see above + +DECINLM.head Interlace Mode +DECINLM.emus VT100 +DECINLM.sect Mode +DECINLM.text + This is a private parameter to the \ref:RM and \ref:SM + control sequences. The + reset state (non-interlace) causes the video processor to display 240 + scan lines per frame. The set state causes the video processor to + display 480 scan lines per screen. See \ref:MODES, + \ref:RM, and \ref:SM. + +DECKPAM.head Keypad Application Mode +DECKPAM.emus VT100 +DECKPAM.sect Command.Mode Mode +DECKPAM.code ESC|=| +DECKPAM.text + The auxiliary keypad keys will transmit control sequences. +DECKPAM.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|setMode|MODE_AppKeyPad|see above + +DECKPNM.head Keypad Numeric Mode +DECKPNM.emus VT100 +DECKPNM.sect Mode Command.Mode +DECKPNM.code ESC|>| +DECKPNM.text + The auxiliary keypad keys will send ASCII codes corresponding to the + characters engraved on their keys. +DECKPNM.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|resetMode|MODE_AppKeyPad|see above + +DECLL.head Load LEDs +DECLL.emus VT100 +DECLL.sect Command.NoImp +DECLL.code CSI|q|{Ps;...} +DECLL.dflt 0 +DECLL.text + Load the four programmable LEDs on the keyboard according to the parameter(s). +DECLL.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + 0|VT100|emu|Ignore||Clear all LEDs + 1|VT100|emu|Ignore||Light LED 1 + 2|VT100|emu|Ignore||Light LED 2 + 3|VT100|emu|Ignore||Light LED 3 + 4|VT100|emu|Ignore||Light LED 4 + +DECOM.head Origin Mode +DECOM.emus VT100 +DECOM.sect Mode +DECOM.text + This is a private parameter to \ref:SM and \ref:RM + control sequences. The reset + state causes the origin (or home position) to be the upper left + character position of the screen. Line and column numbers are, + therefore, independent of current margin settings. The cursor may be + positioned outside the margins with a cursor position (\ref:CUP) or + horizontal and vertical position (\ref:HVP) control. + . + The set state causes the origin to be at the upper left character + position within the current margins. Line and column numbers are, + therefore, relative to the current margin settings. The cursor cannot + be positioned outside of the margins. + . + The cursor is moved to the new home position when this mode is set or + reset. Lines and columns are numbered consecutively, with the origin + being line 1, column 1. + +DECRC.head Restore Cursor +DECRC.emus VT100 +DECRC.sect Command.CursMode +DECRC.code ESC|8| +DECRC.text + This sequence causes the previously saved cursor position, graphic + rendition, and character set to be restored. +DECRC.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|restoreCursor||see above + +DECREPTPARM.head Report Terminal Parameters +DECREPTPARM.emus ECMA VT100 +DECREPTPARM.sect Reply +DECREPTPARM.code CSI|x|{sol;par;nbits;xspd;rspd;cmul;flags} +DECREPTPARM.text + This sequence is generated by the VT100 to notify the host of the + status of selected terminal parameters. The status sequence may be + sent when requested by the host (via \ref:DECREQTPARM) + or at the terminal's + discretion. On power up or reset, the VT100 is inhibited from sending + unsolicited reports. + . + The meanings of the sequence parameters are: +DECREPTPARM.table.sol + sol|Meaning:4 + 1|This message is a report. + 2|This message is a report, and the terminal is only reporting on request. +DECREPTPARM.table.par + par|Meaning:4 + 1|No parity set + 4|Parity set and odd + 5|Parity set and even +DECREPTPARM.table.nbits + nbits|Meaning:4 + 1|8 bits per character + 2|7 bits per character +DECREPTPARM.table.speed(xspd,rspd) + speed|Meaning (xspd,rspd):4 + 0|Speed set to 50 bps + 8|Speed set to 75 bps + 16|Speed set to 110 bps + 24|Speed set to 134.5 bps + 32|Speed set to 150 bps + 40|Speed set to 200 bps + 48|Speed set to 300 bps + 56|Speed set to 600 bps + 64|Speed set to 1200 bps + 72|Speed set to 1800 bps + 80|Speed set to 2000 bps + 88|Speed set to 2400 bps + 96|Speed set to 3600 bps + 104|Speed set to 4800 bps + 112|Speed set to 9600 bps + 120|Speed set tp 19200 bps +DECREPTPARM.table.cmul + cmul|Meaning:4 + 1|The bit rate multiplier is 16 +DECREPTPARM.table.flags + flags|Meaning:4 + 0-15|This value communicates the four switch values in block 5 of SET-UP B, which are only visible to the user when an STP option is installed. + +DECREQTPARM.head Request Terminal Parameters +DECREQTPARM.emus ECMA VT100 +DECREQTPARM.sect Command.Request +DECREQTPARM.code CSI|x|{Ps} +DECREQTPARM.text + The host sends this sequence to request the VT100 to send a + \ref:DECREPTPARM + sequence back. {Ps} can be either 0 or 1. If 0, the terminal will be + allowed to send unsolicited \ref:DECREPTPARMs. + These reports will be generated each time the terminal exits the SET-UP mode. + If {Ps} is 1, then the terminal will only generate + \ref:DECREPTPARMs in response to a request. +DECREQTPARM.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + 0|VT100|emu|reportTerminalParms|2|Meaning + 1|VT100|emu|reportTerminalParms|3|Meaning + +DECSC.head Save Cursor +DECSC.emus VT100 +DECSC.sect Command.CursMode +DECSC.code ESC|7| +DECSC.text + Causes the cursor position, graphic rendition, and character set to be + saved. (See \ref:DECRC) +DECSC.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|saveCursor||see above + +DECSCLM.head Scrolling Mode +DECSCLM.emus VT100 +DECSCLM.sect Mode +DECSCLM.text + This is a private parameter to \ref:RM and \ref:SM + control sequences. The reset + state causes scrolls to "jump" instantaneuously one line at a time. + The set state causes the scrolls to be "smooth", and scrolls at a + maximum rate of siz lines/sec. See \ref:MODES, + \ref:RM, and \ref:SM. + +DECSCNM.head Screen Mode +DECSCNM.emus VT100 +DECSCNM.sect Mode +DECSCNM.text + This is a private parameter to \ref:RM and \ref:SM + control sequences. The reset + state causes the screen to be black with white characters; the set + state causes the screen to be white with black characters. + See \ref:MODES, \ref:RM, and \ref:SM. + +DECSTBM.head Set Top and Bottom Margins +DECSTBM.emus VT100 +DECSTBM.sect Command.CursMode +DECSTBM.code CSI|r|{Pn;Pn} +DECSTBM.dflt 1 ScreenLines +DECSTBM.text + This sequence sets the top and bottom margins to define the scrolling + region. The first parameter is the line number of the first line in + the scrolling region; the second parameter is the line number of the + bottom line of the scrolling region. + . + Default is the entire screen (no margins). + The minimum region allowed is two lines, i.e., the top line + must be less than the bottom. The cursor is placed in the home + position (See \ref:DECOM). +DECSTBM.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|setMargins|p,q|see above + +DECSWL.head Single-width Line +DECSWL.emus VT100 +DECSWL.sect Command.NoImp +DECSWL.code HSH|5| +DECSWL.text + This causes the line which contains the cursor to become single-width, + single-height. The cursor remains on the same character position. + This is the default condition for all new lines on the screen. +DECSWL.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above + +DECTST.head Invoke Confidence Test +DECTST.emus ECMA VT100 +DECTST.sect Command +DECTST.code CSI|y|{2;Ps} +DECTST.text + Ps is the parameter indicating the test to be done. It is computed by + taking the weight indicated for each desired test and adding them + together. If Ps is 0, no test is performed but the VT100 is reset. +DECTST.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|Ignored||see above +DECTST.table.Weight + Weight|Meaning:4 + 1|POST (ROM checksum, RAM NVR, keyboardm and AVO) + 2|Data Loop Back (Loopback connector required) + 3|EIA Modem Control Test (Loopback connector req.) + 4|Repeat Testing until failure + +DSRREQ.head Device Status Report +DSRREQ.emus ECMA VT100 +DSRREQ.sect Command.Request +DSRREQ.code CSI|n|{Ps} +DSRREQ.text + Requests status of the VT100 according to the following parameters. +DSRREQ.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + 5|VT100|emu|reportStatus||Report Status (using a \ref:DSRREP control sequence) + 6|VT100|emu|reportCursorPosition||Report Active Position (using a \ref:CPR sequence) + +DSRREP.head Device Status Report Reply +DSRREP.emus ECMA VT100 +DSRREP.sect Reply +DSRREP.code CSI|n|{Status} +DSRREP.text + Reports the general status of the VT100 according to the + following parameters. + . + DSRREP with a parameter of 0 or 3 is always sent as a response to a + requesting \ref:DSRREQ with a parameter of 5. +DSRREP.table.Status + Status|Meaning:3 + 0|Ready, no faults detected + 3|Malfunction detected + +ED.head Erase in Display +ED.emus ECMA VT100 +ED.sect Command.Erase +ED.code CSI|J|{Ps} +ED.dflt 0 +ED.text + This sequence erases some or all of the characters in the display + according to the parameter. Any complete line erased by this sequence + will return that line to single width mode. +ED.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + 0|VT100|scr|clearToEndOfScreen||Erase from the cursor to the end of the screen. + 1|VT100|scr|clearToBeginOfScreen||Erase from the start of the screen to the cursor. + 2|VT100|scr|clearEntireScreen||Erase the entire screen. + +EL.head Erase in Line +EL.emus ECMA VT100 +EL.sect Command.Erase +EL.code CSI|K|{Ps} +EL.dflt 0 +EL.text + Erases some or all characters in the active line, according to the + parameter. +EL.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + 0|VT100|scr|clearToEndOfLine||Erase from cursor to the end of the line. + 1|VT100|scr|clearToBeginOfLine||Erase from the start of the line to the cursor. + 2|VT100|scr|clearEntireLine||Erase the entire line. + +HTS.head Horizontal Tab Set +HTS.emus ECMA VT100 +HTS.sect Command.CursMode +HTS.code ESC|H| +HTS.text + Set a tab stop at the current cursor position. +HTS.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|changeTabStop|TRUE|see above + +HVP.head Horizontal and Vertical Position +HVP.emus ECMA VT100 +HVP.sect Command.Cursor +HVP.code CSI|f|{Pn;Pn} +HVP.dflt 1 1 +HVP.text + Moves the cursor to the position specified by the parameters. The + first parameter specifies the line, and the second specifies the + column. A parameter of 0 or 1 causes the active position to move to + the first line or column in the display. In the VT100, this control + behaves identically with it's editor counterpart, \ref:CUP. + The numbering of hte lines depends upon the state of the Origin Mode + (\ref:DECOM). +HVP.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|setCursorYX|p,q|see above + +IND.head Index +IND.emus ECMA VT100 +IND.sect Command.Cursor +IND.code ESC|D| +IND.text + This sequence causes the cursor to move downward one line without + changing the column. If the cursor is at the bottom margin, a scroll + up is performed. +IND.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|index||see above + +LNM.head Line Feed/New Line Mode +LNM.emus ECMA VT100 +LNM.sect Mode +LNM.text + This is a parameter to \ref:SM and \ref:RM control sequences. + The reset state + causes the interpretation of the \ref:LF character to imply only vertical + movement of the cursor and causes the RETURN key to send the single + code \ref:CR. + . + The set state causes the \ref:LF character to imply movement + to the first position of the following line, and causes the RETURN key + to send the code pair \ref:CR \ref:LF. This is the New Line option. + . + This mode does not affect the Index (\ref:IND) or the next line + (\ref:NEL) format effectors. + +NEL.head Next Line +NEL.emus ECMA VT100 +NEL.sect Command.Cursor +NEL.code ESC|E| +NEL.text + This causes the cursor to move to the first position of the next line + down. If the cursor is on the bottom line, a scroll is performed. +NEL.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|NextLine||see above + +PRINT.head Printable Characters +PRINT.emus ECMA VT100 +PRINT.sect Command.Display +PRINT.code PRN||{0x20..0x7e,0xa0..0xff} +PRINT.text + Printable characters are basically displayed. They my cause a line + wrap when the cursor is already located at the end of the line. + . + The VT100 has a unique way to do this by producing a line wrap before + the character would be displayed on the next line. This feature allows + to print at the rightmost column without producing an implicit line feed. +PRINT.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|ShowCharacter|p|see above + +RI.head Reverse Index +RI.emus ECMA VT100 +RI.sect Command.Cursor +RI.code ESC|M| +RI.text + Move the cursor up one line without changing columns. If the cursor is + on the top line, a scroll down is performed. +RI.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|scr|reverseIndex||see above + +RIS.head Reset to Initial State +RIS.emus ECMA VT100 +RIS.sect Command.Mode +RIS.code ESC|c| +RIS.text + Resets the VT100 to the state is has upon power up. This also causes + the execution of the POST and signal INT H to be asserted briefly. +RIS.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|resetTerminal||see above + +RM.head Reset Mode +RM.emus ECMA VT100 +RM.sect Command.SetMode +RM.code CSI|l|{Ps;...} +RM.text + Resets one or more VT100 modes as specified by each selective parameter + in the parameter string. Each mode to be reset is specified by a + separate parameter. See \ref:MODES and \ref:SM. +RM.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + 4|xterm|scr|resetMode|MODE_Insert|Meaning + 20|VT100|emu|resetMode|MODE_NewLine|\ref:LNM + +SCS.head Select Character Set +SCS.emus ECMA VT100 +SCS.sect Command.RenderMode +SCS.code SCS||{Pc;Cs} +SCS.text + The appropriate D0 and G1 character sets are designated from one of the + five possible sets. The G0 and G1 sets are invoked by the characters + \ref:LS1 and \ref:LS0, respectively. + . + The United Kingdom and ASCII sets conform to the "ISO international + register of character sets to be used with escape sequences". The + other sets are private character sets. Special graphics means that the + graphic characters fpr the codes 0137 to 0176 are replaced with other + characters. The specified character set will be used until another SCS + is received. +SCS.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT100|emu|setCharset|p-'(',q|see above +SCS.table.Pc + Pc|Character Selection:4 + (|Select G0 Set + )|Select G1 Set +SCS.table.Cs + Cs|Character Set:4 + A|United Kingdom Set + B|ASCII Set + 0|Special Graphics + 1|Alternate Character ROM (Standard Character Set) + 2|Alternate Character ROM (Special Graphics) + +SGR.head Select Graphic Rendition +SGR.emus ECMA VT100 +SGR.sect Command.RenderMode +SGR.code CSI|m|{Ps;...} +SGR.text + Invoke the graphic rendition specified by the parameter(s). All + following characters transmitted to the VT100 are rendered according + to the parameter(s) until the next occurrence of an SGR. + . + All other parameter values are ignored. + . + Without the Advanced Video Option, only one type of character attribute + is possible, as determined by the cursor selection; in that case + specifying either underscore or reverse will activate the currently + selected attribute. +SGR.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + 0|VT100|scr|setDefaultRendition||Attributes Off + 1|VT100|scr|setRendition|RE_BOLD|Bold or increased intensity + 4|VT100|scr|setRendition|RE_UNDERLINE|Underscore + 5|VT100|scr|setRendition|RE_BLINK|Blink + 7|VT100|scr|setRendition|RE_REVERSE|Negative (reverse) image + 10|konsole|emu|Ignored||Meaning + 11|konsole|emu|Ignored||Meaning + 12|konsole|emu|Ignored||Meaning + 22|VT100|scr|resetRendition|RE_BOLD|Meaning + 24|VT100|scr|resetRendition|RE_UNDERLINE|Meaning + 25|VT100|scr|resetRendition|RE_BLINK|Meaning + 27|VT100|scr|resetRendition|RE_REVERSE|Meaning + 30|xterm|scr|setForeColor|0|Meaning + 31|xterm|scr|setForeColor|1|Meaning + 32|xterm|scr|setForeColor|2|Meaning + 33|xterm|scr|setForeColor|3|Meaning + 34|xterm|scr|setForeColor|4|Meaning + 35|xterm|scr|setForeColor|5|Meaning + 36|xterm|scr|setForeColor|6|Meaning + 37|xterm|scr|setForeColor|7|Meaning + 39|xterm|scr|setForeColorToDefault||Meaning + 40|xterm|scr|setBackColor|0|Meaning + 41|xterm|scr|setBackColor|1|Meaning + 42|xterm|scr|setBackColor|2|Meaning + 43|xterm|scr|setBackColor|3|Meaning + 44|xterm|scr|setBackColor|4|Meaning + 45|xterm|scr|setBackColor|5|Meaning + 46|xterm|scr|setBackColor|6|Meaning + 47|xterm|scr|setBackColor|7|Meaning + 49|xterm|scr|setBackColorToDefault||Meaning + 90|xterm|scr|setForeColor|8|Meaning + 91|xterm|scr|setForeColor|9|Meaning + 92|xterm|scr|setForeColor|10|Meaning + 93|xterm|scr|setForeColor|11|Meaning + 94|xterm|scr|setForeColor|12|Meaning + 95|xterm|scr|setForeColor|13|Meaning + 96|xterm|scr|setForeColor|14|Meaning + 97|xterm|scr|setForeColor|15|Meaning + 100|xterm|scr|setBackColor|8|Meaning + 101|xterm|scr|setBackColor|9|Meaning + 102|xterm|scr|setBackColor|10|Meaning + 103|xterm|scr|setBackColor|11|Meaning + 104|xterm|scr|setBackColor|12|Meaning + 105|xterm|scr|setBackColor|13|Meaning + 106|xterm|scr|setBackColor|14|Meaning + 107|xterm|scr|setBackColor|15|Meaning + +SM.head Set Mode +SM.emus ECMA VT100 +SM.sect Command.SetMode +SM.code CSI|h|{Ps;...} +SM.text + Causes one or more modes to be set within the VT100 as specified by + each selective parameter string. Each mode to be set is specified by a + seperate parameter. A mode is considered set until it is reset by a + Reset Mode (\ref:RM) control sequence. + See \ref:RM and \ref:MODES. +SM.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + 4|VT100|scr|setMode|MODE_Insert|Meaning + 20|VT100|emu|setMode|MODE_NewLine|\ref:LNM + +TBC.head Tabulation Clear +TBC.emus ECMA VT100 +TBC.sect Command.CursMode +TBC.code CSI|g|{Ps} +TBC.text + If the parameter is missing or 0, this will clear the tab stop at the + cursor's position. If it is 3, this will clear all of the tab stops. + Any other parameter is ignored. +TBC.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + 0|VT100|scr|changeTabStop|FALSE|Meaning + 3|VT100|scr|clearTabStops||Meaning + +############################################################################## +# # +# VT52 # +# # +############################################################################## + +VT52ANSI.head VT52 ANSI Ansi Mode +VT52ANSI.emus VT100 XTERM VT52 KONSOLE +VT52ANSI.sect Command.Mode +VT52ANSI.code ESC|<| +VT52ANSI.text + This is an extension to the VT52 commands to embed the emulation into VT100. + It allows to return back to VT100 emulation (ANSI mode). + See also \ref:DECANM and \ref:SM. +VT52ANSI.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT52|emu|setMode|MODE_Ansi|see above + +VT52CUB.head VT52 Cursor Back +VT52CUB.emus KONSOLE +VT52CUB.sect Command.VT52 +VT52CUB.code ESC|D| +VT52CUB.text + See \ref:CUB. +VT52CUB.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT52|scr|cursorLeft|1|see above + +VT52CUD.head VT52 Cursor Down +VT52CUD.emus KONSOLE +VT52CUD.sect Command.VT52 +VT52CUD.code ESC|B| +VT52CUD.text + See \ref:CUD. +VT52CUD.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT52|scr|cursorDown|1|see above + +VT52CUF.head VT52 Cursor Forward +VT52CUF.emus KONSOLE +VT52CUF.sect Command.VT52 +VT52CUF.code ESC|C| +VT52CUF.text + See \ref:CUF. +VT52CUF.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT52|scr|cursorRight|1|see above + +VT52CUP.head VT52 Cursor Position +VT52CUP.emus KONSOLE +VT52CUP.sect Command.VT52 +VT52CUP.code VT5||{X;Y} +VT52CUP.text + Line and column numbers for direct cursor address are single + character codes whose values are the desired number plus + 37 (in Octal). Line and column numbers start at 1. +VT52CUP.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT52|scr|setCursorYX|p-31,q-31|see above + +VT52CUU.head VT52 Cursor Up +VT52CUU.emus KONSOLE +VT52CUU.sect Command.VT52 +VT52CUU.code ESC|A| +VT52CUU.text + See \ref:CUU. +VT52CUU.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT52|scr|cursorUp|1|see above + +VT52EDL.head VT52 Clear To End Of Line +VT52EDL.emus KONSOLE +VT52EDL.sect Command.VT52 +VT52EDL.code ESC|K| +VT52EDL.text + FIXME. explain +VT52EDL.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT52|scr|clearToEndOfLine||see above + +VT52EDS.head VT52 Clear To End Of Screen +VT52EDS.emus KONSOLE +VT52EDS.sect Command.VT52 +VT52EDS.code ESC|J| +VT52EDS.text + FIXME. explain +VT52EDS.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT52|scr|clearToEndOfScreen||see above + +VT52CUH.head VT52 Cursor Home +VT52CUH.emus KONSOLE +VT52CUH.sect Command.VT52 +VT52CUH.code ESC|H| +VT52CUH.text + FIXME. explain +VT52CUH.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT52|scr|setCursorYX|1,1|see above + +VT52KPAM.head VT52 Enter alternate keypad mode +VT52KPAM.emus KONSOLE +VT52KPAM.sect Command.VT52 +VT52KPAM.code ESC|=| +VT2KPAM.text + FIXME. explain +VT52KPAM.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT52|emu|setMode|MODE_AppKeyPad|see above + +VT52KPNM.head VT52 Exit alternate keypad mode +VT52KPNM.emus KONSOLE +VT52KPNM.sect Command.VT52 +VT52KPNM.code ESC|>| +VT52KPNM.text + FIXME. explain +VT52KPNM.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT52|emu|resetMode|MODE_AppKeyPad|see above + +VT52REP.head VT52 Report Terminal Type +VT52REP.emus KONSOLE +VT52REP.sect Command.VT52 +VT52REP.code ESC|Z| +VT52REP.text + Response to ESC Z is ESC / Z. +VT52REP.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT52|emu|reportTerminalType||see above + +VT52RI.head VT52 Reverse Index +VT52RI.emus KONSOLE +VT52RI.sect Command.VT52 +VT52RI.code ESC|I| +VT52RI.text + FIXME. explain +VT52RI.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT52|scr|reverseIndex||see above + +VT52SCSF.head VT52 Select special graphics character set +VT52SCSF.emus KONSOLE +VT52SCSF.sect Command.VT52 +VT52SCSF.code ESC|F| +VT52SCSF.text + FIXME. explain +VT52SCSF.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT52|scr|setAndUseCharset|0,'0'|see above + +VT52SCSG.head VT52 Select ASCII character set +VT52SCSG.emus KONSOLE +VT52SCSG.sect Command.VT52 +VT52SCSG.code ESC|G| +VT52SCSG.text + FIXME. explain +VT52SCSG.table.XPS + Subcode|Emulation|Scope|Operation|Args|Meaning + N/A|VT52|scr|setAndUseCharset|0,'B'|see above diff --git a/konsole/doc/VT100/Table.Graphic b/konsole/doc/VT100/Table.Graphic new file mode 100644 index 000000000..afc159564 --- /dev/null +++ b/konsole/doc/VT100/Table.Graphic @@ -0,0 +1,32 @@ +Blank +Diamond +Checkerboard +Digraph: (HT) +Digraph: (FF) +Digraph: (CR) +Digraph: (LF) +Degree Symbol: ° ++/- Symbol: ± +Digraph: (NL) +Digraph: (VT) +Lower-right corner +Upper-right corner +Upper-left corner +Lower-left corner +Crossing lines (+) +Horiz Line - scan 1 +Horiz Line - scan 3 +Horiz Line - scan 5 +Horiz Line - scan 7 +Horiz Line - scan 9 +Left "T" (|-) +Right "T" (-|) +Bottom "T" (|_) +Top "T" (T) +Vertical Bar (|) +Less/Equal: ≤ +Graeter/Egual: ≥ +Pi symbol: π +Not equal: ≠ +UK pound symbol: £ +Centered dot: · diff --git a/konsole/doc/VT100/Table.VT52 b/konsole/doc/VT100/Table.VT52 new file mode 100644 index 000000000..d6faca3d2 --- /dev/null +++ b/konsole/doc/VT100/Table.VT52 @@ -0,0 +1,40 @@ +VT52 Compatible Mode + +: VT52A Cursor Up +c ESC A +: VT52b Cursor Down +c ESC B +: VT52C Cursor Right +c ESC C +: VT52D Cursor Left +c ESC D +: VT52F Select Special Graphics character set +c ESC F +: VT52G Select ASCII character set +c ESC G +: VT52H Cursor to home +c ESC H +: VT52I Reverse line feed +c ESC I +: VT52J Erase to end of screen +c ESC J +: VT52K Erase to end of line +c ESC K +: VT52Y Direct cursor address +c ESC Y {l} {c} +h + Line and column numbers for direct cursor address are single + character codes whose values are the desired number plus + 37 (in Octal). Line and column numbers start at 1. +e +: VT52Z Identify +c ESC Z +h + Response to ESC Z is ESC / Z. +e +: VT52KBAM Enter alternate keypad mode +c ESC = +: VT52KEAM Exit alternate keypad mode +c ESC > +: VT52AM Enter ANSI mode +c ESC < diff --git a/konsole/doc/VT100/awk.table.graphic b/konsole/doc/VT100/awk.table.graphic new file mode 100644 index 000000000..f27aae29e --- /dev/null +++ b/konsole/doc/VT100/awk.table.graphic @@ -0,0 +1,30 @@ +function header() +{ + printf("Octal
Code \n"); + printf(" ASCII
Graphic\n"); + printf(" Special Graphic \n"); + printf("
\n"); + printf("
\n"); + printf("
\n"); +} + +BEGIN { + color = "" # " bgcolor=lightblue" + printf("
\n"); + printf("\n"); + printf("
"); + header(); +} + { + +# printf("%04o %s %c %s %s\n",NR-1+95,$1,NR-1+95,$2,$3); + if (NR > 1 && NR % 16 == 1) { printf("
"); header(); } + printf("%04o\n",color,NR-1+95); + printf(" %c\n",color,NR-1+95); + printf(" %s\n",color,$0); +} +END { + printf("
\n"); + printf("
\n"); + printf("
\n"); +} diff --git a/konsole/doc/VT100/cmds.pro b/konsole/doc/VT100/cmds.pro new file mode 100644 index 000000000..35fec3ab2 --- /dev/null +++ b/konsole/doc/VT100/cmds.pro @@ -0,0 +1,61 @@ +?- consult('dicts.pro'). + +test :- dict(X,_), check(X), fail; true. +test1 :- findall(A,head(A,_),R), sort(R,Res), print(Res), nl, fail. + +check([_,head]) :- !. /* TITLE */ +check([_,emus]) :- !. /* List Word */ +check([_,dflt]) :- !. /* List NumberOrWord */ +check([_,sect]) :- !. /* List Word // Dotted Name */ +check([_,code]) :- !. /* [ TYP, ("Char"/none/Numb), [arg, ...] ] */ +check([_,text]) :- !. /* [ String/nl/ref(Sym) ... ] */ + +check([_,table,'XPS']) :- !. /* interpretation */ + +/*Other (type) tables */ +/*check([_,table,_]) :- !, print(X), nl.*/ + +check(X) :- !, print(X), nl. + +/* ----------- */ +/* State: We're closer to make up a proper data model. + Todo: + - put the type/value definitions listed in 'test' + to a more appropriate place. + - clearify section material. + - make a model and a consistency checker. + - make a report generator. + - integrate 'TEScreen.C' functions +*/ + + +head(Name,Title) :- dict([Name,head],Title). +emus(Name,Emus) :- dict([Name,emus],Emus). +dflt(Name,Defaults) :- dict([Name,dflt],Defaults). +sect(Name,DottedSect) :- dict([Name,sect],DottedSect). +code(Name,Code) :- dict([Name,code],Desc), tcode(Desc,Code). +text(Name,Text) :- dict([Name,text],Text). + +tcode(['PRN',none,[]],prn) :- !. +tcode(['DEL',none,[]],ctl(127)) :- !. +tcode(['CTL',Num,[]],ctl(Num)) :- !. +tcode(['ESC',Chr,[]],esc(Chr)) :- !. +tcode(['HSH',Chr,[]],esc(Chr)) :- !. +tcode(['CSI',Chr,[P,'...']],csi(Chr,list(P))) :- !. +tcode(['CSI',Chr,Parm],csi(Chr,Parm)) :- !. +tcode(['PRI',Chr,[P,'...']],pri(Chr,list(P))) :- !. +tcode(['PRI',Chr,Parm],pri(Chr,Parm)) :- !. +tcode(['SCS',none,[A,B]],scs([A,B])) :- !. +tcode(['VT5',none,[X,Y]],vt5([X,Y])) :- !. +tcode(P,P) :- writef("\n - fail\n %t \n\n",[P]). + +pheads :- + head(N,T), + writef("%w - %s\n",[N,T]), + fail; true. + +pcodes :- + code(N,P), + writef("%w - %t\n",[N,P]), + fail; true. + diff --git a/konsole/doc/VT100/db.trans b/konsole/doc/VT100/db.trans new file mode 100644 index 000000000..7fe21ef27 --- /dev/null +++ b/konsole/doc/VT100/db.trans @@ -0,0 +1,190 @@ +TY_CHR___|PRINT|||scr|ShowCharacter|p +TY_CTL___|NUL|'@'|||| +TY_CTL___|SOH|'A'|||| +TY_CTL___|STX|'B'|||| +TY_CTL___|ETX|'C'|||| +TY_CTL___|EOT|'D'|||| +TY_CTL___|ENQ|'E'||emu|reportAnswerBack| +TY_CTL___|ACK|'F'|||| +TY_CTL___|BEL|'G'||gui|Bell| +TY_CTL___|BS|'H'||scr|BackSpace| +TY_CTL___|HT|'I'||scr|Tabulate| +TY_CTL___|LF|'J'||emu|NewLine| +TY_CTL___|VT|'K'||emu|NewLine| +TY_CTL___|FF|'L'||emu|NewLine| +TY_CTL___|CR|'M'||scr|Return| +TY_CTL___|LS0|'N'||scr|useCharset|1 +TY_CTL___|LS1|'O'||scr|useCharset|0 +TY_CTL___|DLE|'P'|||| +TY_CTL___|DC1|'Q'|||| +TY_CTL___|DC2|'R'|||| +TY_CTL___|DC3|'S'|||| +TY_CTL___|DC4|'T'|||| +TY_CTL___|NAK|'U'|||| +TY_CTL___|SYN|'V'|||| +TY_CTL___|ETB|'W'|||| +TY_CTL___|CAN|'X'||scr|ShowCharacter|2 +TY_CTL___|EM|'Y'|||| +TY_CTL___|SUB|'Z'||scr|ShowCharacter|2 +TY_CTL___|ESC|'['|||| +TY_CTL___|FS|'\\'|||| +TY_CTL___|GS|']'|||| +TY_CTL___|RS|'^'|||| +TY_CTL___|US|'_'|||| +TY_ESC___|IND|'D'||scr|index| +TY_ESC___|NEL|'E'||scr|NextLine| +TY_ESC___|HTS|'H'||scr|changeTabStop|TRUE +TY_ESC___|RI|'M'||scr|reverseIndex| +TY_ESC___|DECID|'Z'||emu|reportTerminalType| +TY_ESC___|RIS|'c'||emu|resetTerminal| +TY_ESC___|LS2|'n'||scr|useCharset|2 +TY_ESC___|LS3|'o'||scr|useCharset|3 +TY_ESC___|DECSC|'7'||scr|saveCursor| +TY_ESC___|DECRC|'8'||scr|restoreCursor| +TY_ESC___|DECKPAM|'='||emu|setMode|MODE_AppKeyPad +TY_ESC___|DECKPNM|'>'||emu|resetMode|MODE_AppKeyPad +TY_ESC___|DECANSI|'<'||emu|setMode|MODE_Ansi +TY_ESC_CS|SCS|||emu|setCharset|p-'(',q +TY_ESC_DE|DECDHLT|'3'|||| +TY_ESC_DE|DECDHLB|'4'|||| +TY_ESC_DE|DECSWL|'5'|||| +TY_ESC_DE|DECDWL|'6'|||| +TY_ESC_DE|DECALN|'8'||scr|helpAlign| +TY_CSI_PS|EL|'K'|0|scr|clearToEndOfLine| +TY_CSI_PS|EL|'K'|1|scr|clearToBeginOfLine| +TY_CSI_PS|EL|'K'|2|scr|clearEntireLine| +TY_CSI_PS|ED|'J'|0|scr|clearToEndOfScreen| +TY_CSI_PS|ED|'J'|1|scr|clearToBeginOfScreen| +TY_CSI_PS|ED|'J'|2|scr|clearEntireScreen| +TY_CSI_PS|TBC|'g'|0|scr|changeTabStop|FALSE +TY_CSI_PS|TBC|'g'|3|scr|clearTabStops| +TY_CSI_PS|SM|'h'|4|scr|setMode|MODE_Insert +TY_CSI_PS|SM|'h'|20|emu|setMode|MODE_NewLine +TY_CSI_PS|MC|'i'|0||| +TY_CSI_PS|RM|'l'|4|scr|resetMode|MODE_Insert +TY_CSI_PS|RM|'l'|20|emu|resetMode|MODE_NewLine +TY_CSI_PS|SGR|'m'|0|scr|setDefaultRendition| +TY_CSI_PS|SGR|'m'|1|scr|setRendition|RE_BOLD +TY_CSI_PS|SGR|'m'|4|scr|setRendition|RE_UNDERLINE +TY_CSI_PS|SGR|'m'|5|scr|setRendition|RE_BLINK +TY_CSI_PS|SGR|'m'|7|scr|setRendition|RE_REVERSE +TY_CSI_PS|SGR|'m'|10||| +TY_CSI_PS|SGR|'m'|11||| +TY_CSI_PS|SGR|'m'|12||| +TY_CSI_PS|SGR|'m'|22|scr|resetRendition|RE_BOLD +TY_CSI_PS|SGR|'m'|24|scr|resetRendition|RE_UNDERLINE +TY_CSI_PS|SGR|'m'|25|scr|resetRendition|RE_BLINK +TY_CSI_PS|SGR|'m'|27|scr|resetRendition|RE_REVERSE +TY_CSI_PS|SGR|'m'|30|scr|setForeColor|0 +TY_CSI_PS|SGR|'m'|31|scr|setForeColor|1 +TY_CSI_PS|SGR|'m'|32|scr|setForeColor|2 +TY_CSI_PS|SGR|'m'|33|scr|setForeColor|3 +TY_CSI_PS|SGR|'m'|34|scr|setForeColor|4 +TY_CSI_PS|SGR|'m'|35|scr|setForeColor|5 +TY_CSI_PS|SGR|'m'|36|scr|setForeColor|6 +TY_CSI_PS|SGR|'m'|37|scr|setForeColor|7 +TY_CSI_PS|SGR|'m'|39|scr|setForeColorToDefault| +TY_CSI_PS|SGR|'m'|40|scr|setBackColor|0 +TY_CSI_PS|SGR|'m'|41|scr|setBackColor|1 +TY_CSI_PS|SGR|'m'|42|scr|setBackColor|2 +TY_CSI_PS|SGR|'m'|43|scr|setBackColor|3 +TY_CSI_PS|SGR|'m'|44|scr|setBackColor|4 +TY_CSI_PS|SGR|'m'|45|scr|setBackColor|5 +TY_CSI_PS|SGR|'m'|46|scr|setBackColor|6 +TY_CSI_PS|SGR|'m'|47|scr|setBackColor|7 +TY_CSI_PS|SGR|'m'|49|scr|setBackColorToDefault| +TY_CSI_PS|SGR|'m'|90|scr|setForeColor|8 +TY_CSI_PS|SGR|'m'|91|scr|setForeColor|9 +TY_CSI_PS|SGR|'m'|92|scr|setForeColor|10 +TY_CSI_PS|SGR|'m'|93|scr|setForeColor|11 +TY_CSI_PS|SGR|'m'|94|scr|setForeColor|12 +TY_CSI_PS|SGR|'m'|95|scr|setForeColor|13 +TY_CSI_PS|SGR|'m'|96|scr|setForeColor|14 +TY_CSI_PS|SGR|'m'|97|scr|setForeColor|15 +TY_CSI_PS|SGR|'m'|100|scr|setBackColor|8 +TY_CSI_PS|SGR|'m'|101|scr|setBackColor|9 +TY_CSI_PS|SGR|'m'|102|scr|setBackColor|10 +TY_CSI_PS|SGR|'m'|103|scr|setBackColor|11 +TY_CSI_PS|SGR|'m'|104|scr|setBackColor|12 +TY_CSI_PS|SGR|'m'|105|scr|setBackColor|13 +TY_CSI_PS|SGR|'m'|106|scr|setBackColor|14 +TY_CSI_PS|SGR|'m'|107|scr|setBackColor|15 +TY_CSI_PS|DSR|'n'|5|emu|reportStatus| +TY_CSI_PS|DSR|'n'|6|emu|reportCursorPosition| +TY_CSI_PS|DECLL|'q'|0||| +TY_CSI_PS|DECLL|'q'|1||| +TY_CSI_PS|DECLL|'q'|2||| +TY_CSI_PS|DECLL|'q'|3||| +TY_CSI_PS|DECLL|'q'|4||| +TY_CSI_PS|DECREQTPARM|'x'|0|emu|reportTerminalParms|2 +TY_CSI_PS|DECREQTPARM|'x'|1|emu|reportTerminalParms|3 +TY_CSI_PN|ICH|'@'||scr|insertChars|p +TY_CSI_PN|CUU|'A'||scr|cursorUp|p +TY_CSI_PN|CUD|'B'||scr|cursorDown|p +TY_CSI_PN|CUF|'C'||scr|cursorRight|p +TY_CSI_PN|CUB|'D'||scr|cursorLeft|p +TY_CSI_PN|CHA|'G'||scr|setCursorX|p +TY_CSI_PN|CUP|'H'||scr|setCursorYX|p,q +TY_CSI_PN|IL|'L'||scr|insertLines|p +TY_CSI_PN|DL|'M'||scr|deleteLines|p +TY_CSI_PN|DCH|'P'||scr|deleteChars|p +TY_CSI_PN|ECH|'X'||scr|eraseChars|p +TY_CSI_PN|DA|'c'||emu|reportTerminalType| +TY_CSI_PN|VPA|'d'||scr|setCursorY|p +TY_CSI_PN|HVP|'f'||scr|setCursorYX|p,q +TY_CSI_PN|DECSTBM|'r'||scr|setMargins|p,q +TY_CSI_PN|DECTST|'y'|||| +TY_CSI_PR|DECSET|'h'|1|emu|setMode|MODE_AppCuKeys +TY_CSI_PR|DECSET|'h'|3|emu|setColumns|132 +TY_CSI_PR|DECSET|'h'|4||| +TY_CSI_PR|DECSET|'h'|5|scr|setMode|MODE_Screen +TY_CSI_PR|DECSET|'h'|6|scr|setMode|MODE_Origin +TY_CSI_PR|DECSET|'h'|7|scr|setMode|MODE_Wrap +TY_CSI_PR|DECSET|'h'|8||| +TY_CSI_PR|DECSET|'h'|9||| +TY_CSI_PR|DECSET|'h'|25|emu|setMode|MODE_Cursor +TY_CSI_PR|DECSET|'h'|47|emu|setMode|MODE_AppScreen +TY_CSI_PR|DECSET|'h'|1000|emu|setMode|MODE_Mouse1000 +TY_CSI_PR|DECSET|'h'|1001||| +TY_CSI_PR|DECSET|'h'|1047|emu|setMode|MODE_AppScreen +TY_CSI_PR|DECSET|'h'|1048|scr|saveCursor| +TY_CSI_PR|DECRST|'l'|1|emu|resetMode|MODE_AppCuKeys +TY_CSI_PR|DECRST|'l'|2|emu|resetMode|MODE_Ansi +TY_CSI_PR|DECRST|'l'|3|emu|setColumns|80 +TY_CSI_PR|DECRST|'l'|4||| +TY_CSI_PR|DECRST|'l'|5|scr|resetMode|MODE_Screen +TY_CSI_PR|DECRST|'l'|6|scr|resetMode|MODE_Origin +TY_CSI_PR|DECRST|'l'|7|scr|resetMode|MODE_Wrap +TY_CSI_PR|DECRST|'l'|8||| +TY_CSI_PR|DECRST|'l'|9||| +TY_CSI_PR|DECRST|'l'|25|emu|resetMode|MODE_Cursor +TY_CSI_PR|DECRST|'l'|47|emu|resetMode|MODE_AppScreen +TY_CSI_PR|DECRST|'l'|1000|emu|resetMode|MODE_Mouse1000 +TY_CSI_PR|DECRST|'l'|1001||| +TY_CSI_PR|DECRST|'l'|1047|emu|resetMode|MODE_AppScreen +TY_CSI_PR|DECRST|'l'|1048|scr|restoreCursor| +TY_CSI_PR|XTESAVE|'s'|1|emu|saveMode|MODE_AppCuKeys +TY_CSI_PR|XTESAVE|'s'|6|scr|saveMode|MODE_Origin +TY_CSI_PR|XTESAVE|'s'|7|scr|saveMode|MODE_Wrap +TY_CSI_PR|XTESAVE|'s'|1000|emu|saveMode|MODE_Mouse1000 +TY_CSI_PR|XTESAVE|'s'|1001||| +TY_CSI_PR|XTERESTORE|'r'|1|emu|restoreMode|MODE_AppCuKeys +TY_CSI_PR|XTERESTORE|'r'|6|scr|restoreMode|MODE_Origin +TY_CSI_PR|XTERESTORE|'r'|7|scr|restoreMode|MODE_Wrap +TY_CSI_PR|XTERESTORE|'r'|1000|emu|restoreMode|MODE_Mouse1000 +TY_CSI_PR|XTERESTORE|'r'|1001||| +TY_VT52__|VT52CUU|'A'||scr|cursorUp|1 +TY_VT52__|VT52CUD|'B'||scr|cursorDown|1 +TY_VT52__|VT52CUF|'C'||scr|cursorRight|1 +TY_VT52__|VT52CUB|'D'||scr|cursorLeft|1 +TY_VT52__|VT52SCSF|'F'||scr|setAndUseCharset|0,'0' +TY_VT52__|VT52SCSG|'G'||scr|setAndUseCharset|0,'B' +TY_VT52__|VT52CUH|'H'||scr|setCursorYX|1,1 +TY_VT52__|VT52RI|'I'||scr|reverseIndex| +TY_VT52__|VT52EDS|'J'||scr|clearToEndOfScreen| +TY_VT52__|VT52EDL|'K'||scr|clearToEndOfLine| +TY_VT52__|VT52CUP|'Y'||scr|setCursorYX|p-31,q-31 +TY_VT52__|VT52REP|'Z'||emu|reportTerminalType| +TY_VT52__|VT52ANSI|'<'||emu|setMode|MODE_Ansi +TY_VT52__|VT52KPAM|'='||emu|setMode|MODE_AppKeyPad +TY_VT52__|VT52KPNM|'>'||emu|resetMode|MODE_AppKeyPad diff --git a/konsole/doc/VT100/db2.pl b/konsole/doc/VT100/db2.pl new file mode 100755 index 000000000..f961e5d31 --- /dev/null +++ b/konsole/doc/VT100/db2.pl @@ -0,0 +1,49 @@ +#!/usr/bin/perl -w + +$ops = "db.trans"; +$src = "../../src/TEScreen.C"; +$res1 = ">TEScreen.p1"; +$res2 = ">TEScreen.p2"; + +open(OPS, $ops) || die "cannot open file '" . $ops . "'."; + +my $tbl = {}; +while () +{ + chop; # strip record separator + my @Fld = split('\|', $_); + if ($Fld[2] && $Fld[2] eq 'scr') + { + $tbl->{$Fld[3]} = 1; + } +} +#foreach $p (sort keys %$tbl) +#{ +# print $p, "\n"; +#} + +open(SRC, $src) || die "cannot open file '" . $src . "'."; +open(RES1, $res1) || die "cannot open file '" . $res1 . "'."; +open(RES2, $res2) || die "cannot open file '" . $res2 . "'."; +my $control = 0; +while () +{ + chop; + if ( /void TEScreen::(.*)\((.*)\)/ && exists $tbl->{$1} ) + { + print RES1 "\n"; + $control = 1; + } + if ($control) + { + print RES1 $_, "\n"; + } + else + { + print RES2 $_, "\n"; + } + if ( /^}$/ ) + { + $control = 0; + } +} diff --git a/konsole/doc/VT100/genDocument b/konsole/doc/VT100/genDocument new file mode 100755 index 000000000..4ecee0996 --- /dev/null +++ b/konsole/doc/VT100/genDocument @@ -0,0 +1,257 @@ +#!/bin/sh +RES=techref.html + +function header +{ +cat << etx >> $RES +

+ + + + +
$1
+

+etx +} + +cat > $RES /dev/null + +# -- HTML Header -------------------------------------------------------------------- + +cat >> $RES << etx + + +VT100 + + + + +
+ +etx + +# -- Editors Notes ------------------------------------------------------------------ + +cat >> $RES << etx + +

VT100

+
+ +Please note that this text is under construction. + +

Preface

+ +This document accompanies the Konsole program, which is a terminal emulation +for the X Windows System. Since material about the extend and precise semantics +of the emulatation intended to be handled by this programs is hard to find on the +internet today, it came out nessesary to include a more precise specification within +their release. +Hopefully, this helps to clearify the relation to the VT100, VT102, Linux, XTerm +and ansi.sys (ANSI-BBS) terminals, which are the target of these programs. Further, +it specifies which codes are interpreted by them, and what has been omitted. +

+To begin with, all of the above call themselfes "ANSI" emulations, which makes this +notion pretty vage. "ANSI" referes here to the American National Standards +Institute's documents X3.41-1974 and X3.64-1977. DEC partially implemented this +standart in their VT100 terminal, with some additions. The VT102 is a later extention +of that. Both the Linux console and the XTerm emulation implement most of VT102, +with some additions. MS stepped in later and produced another ANSI emulation, +ansi.sys, for their OS, which became of some relevance in BBS style +telecommunication programs. One can view this as a small subset of the VT100 +emulation, with some additions, of cause. +This situation is further confused by the fact, that often many versions of the +above terminals and emulations are out, one able to do a little more or less then +the other. +

+


+

+I'm working towards a +close integration of the konsole's source code with this document, but it +is still a long way to go. +

+Currently, the body of this document is mainly a concept data base, that +referes to the VT100 component of the emulation. Though the codes accepted by +konsole are now clearly indicated, a comparison to the xterm and Linux console +emulation is missing. +

+The konsole emulation sources is not linked closely with it's documentation, +and, also accurate at the time of writing, it can still fall slightly appart, +though the codes accepted and produced by konsole should be properly listed. +Work is currently in progress to fix this issue. + + + +

Notes & todos

+
    +
  • Include complete reference on keyboard material. +
  • Check for explaination of out-of-bound values. +
  • Include VT52, VT102, XTERM, LINUX-console codes +
  • Make the whole document more concept oriented +
  • See the section Method of description, below +
  • Derive some summarizing lists. +
+
+etx + + +# -- Codes -------------------------------------------------------------------------- + +./genTC.pl >> $RES + + +header "On VT100" + +cat >> $RES << etx + +The VT100 is an upward and downward software-compatible terminal; +that is, previous Digital video terminals have Digital's private standards +for control sequences. The American National Standards Institute has since +standardized escape and control sequences in terminals in documents X3.41-1974 +and X3.64-1977. +

+The VT100 is compatible with both the previous Digital standard and +ANSI standards. Customers may use existing Digital software designed around +the VT52 or new VT100 software. The VT100 has a "VT52 compatible" mode in +which the VT100 responds to control sequences like a VT52. In this mode, most +of the new VT100 features cannot be used. +

+Throughout this document references will be made to "VT52 mode" or +"ANSI mode". These two terms are used to indicate the VT100's software +compatibility. +

+NOTE: The ANSI standards allow the manufacturer flexibility in implementing +each function. This document describes how the VT100 will respond to the +implemented ANSI central function. +

+ +etx + +header "Modes" + +cat >> $RES << etx + + + +The Following is a list of VT100 modes which may be changed with Set +Mode (SM) and Reset Mode (RM) controls. + +

ANSI Specified Modes

+ + + + + + +
ParameterMnemonicFunction



0 Error (Ignored)
20 LNM Line Feed/New Line Mode
+ + +

DEC Private Modes

+ +If the first character in the parameter string is ? (077), the +parameters are interpreted as DEC private parameters according to the +following: + + + + + + + + + + + + + +
ParameterMnemonicFunction +



0 Error (Ignored)
1DECCKM Cursor Key
2DECANM ANSI/VT52
3DECCOLMColumn
4DECSCLMScrolling
5DECSCNMScreen
6DECOM Origin
7DECAWM Auto Wrap
8DECARM Auto Repeat
9DECINLMInterlace
+ +Any other parameter values are ignored. + +

+The following modes, which are specified in the ANSI standard, may be +considered to be permanently set, permanently reset, or not applicable, +as noted. + + + + + + + + + + + + + + + + + + + + +
MnemonicFunction State
CRM Control Representation Reset
EBM Editing Boundary Reset
ERM Erasure Set
FEAM Format Effector Action Reset
FETM Format Effector Transfer Reset
GATM Guarded Area Transfer NA
HEM Horizontal Editing NA
IRM Insertion-replacement Reset
KAM Keyboard Action Reset
MATM Multiple area transfer NA
PUM Positioning Unit Reset
SATM Selected Area Transfer NA
SRTM Status Reporting TransferReset
TSM Tabulation Stop Reset
TTM Transfer Termination NA
VEM Vertical Editing NA
+etx + +# -- Keyboard Codes ----------------------------------------------------------------- + +cat >> $RES << etx +

Keyboard Codes

+ +The notation <ESC> denotes a single ASCII Escape character, 1Bx. + + + + + + + + + + + + +
Cursor KeyVT52 modeANSI mode w/cursor
key mode reset
ANSI mode w/cursor
key mode set
UP <ESC>A<ESC>[A<ESC>OA
DOWN <ESC>B<ESC>[B<ESC>OB
RIGHT<ESC>C<ESC>[C<ESC>OC
LEFT <ESC>D<ESC>[D<ESC>OD
+etx + + +# -- Graphics Characters ------------------------------------------------------------ + +cat >> $RES << etx +

Special Graphics Characters

+ +If the Special Graphics set is selected, the graphics for ASCII codes +0137 through 0176 will be replaced according to the following table (see the +SCS control sequence). +etx + + +awk -f awk.table.graphic < Table.Graphic >> $RES + + +cat >> $RES << etx +NOTE 1: Codes 0152-0156 and 0164-0170 are used to draw rectangular grids" each +piece of this set is contiguous with other so the lines formed will be +unbroken. +

+NOTE 2: Codes 0157-0163 give better vertical resolution than dashes and +underlines when drawing graphs; using these segments, 120 x 132 resolution may +be obtained in 132 column mode with the Advanced Video Option installed. +

+ +

References

+

+


+ +This text is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +

+Lars Dölle, 1998 + + + + +etx diff --git a/konsole/doc/VT100/genPl.pl b/konsole/doc/VT100/genPl.pl new file mode 100755 index 000000000..0a3bb648e --- /dev/null +++ b/konsole/doc/VT100/genPl.pl @@ -0,0 +1,300 @@ +#!/usr/bin/perl -w +use strict; + +my $source = "Table.Codes"; + +my $html = 1; +my $test = 0; + +# Syntax ----------------------------------------------------------------------- +# +# Dotted.Name Text +# Dotted.Name +# Text +# Lines +# +# The dotted names have to be unique. Conceptually, they form a tree. +# + +# Data Model ------------------------------------------------------------------ + +# This is currently pretty wierd. +# +# Empirically, we have +# +# NAME.head TitleLine +# NAME.emus { EmuName ... } +# NAME.dflt { Number|'ScreenLines' ... } +# NAME.sect DottedWord +# +# NAME.code || +# NAME.text +# +# NAME.table.TAB +# <"|"-separated head line> +# <"|"-separated data rows> +# +# TABs +# - .XPS, used for instructions with subcodes +# Subcode|Emulation|Scope|Operation|Parameter|Meaning +# - .XEX, used for individual codes +# Instruction|Scope|Operation|Parameter +# +# Alternative +# - .impl Scope|Operation|Parameters +# - .subc.SUBCODE.impl +# - .subc.SUBCODE.attr +# - .subc.SUBCODE.head + +# ----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- +# Analyze Source -------------------------------------------------------------- +# ----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- + +my $all = {}; + +my $state = 0; +my $name = ''; +my $value = ''; + +sub parse +{ + sub chkstate + { my ($expect,$lineno,$line) = @_; + if ($state != $expect) + { + print STDERR "$source($lineno): line unexpected in state $state. : $line\n"; + } + } + + sub reduce + { + $all->{$name} = $value; + $state = 0; + $value = ''; + } + + open(CODES, $source) || die "cannot open file '" . $source . "'."; + while () + { + chop; # strip record separator + my @Fld = split(' ', $_); + + if ($#Fld == -1) + { + reduce() if $state != 0; + } + elsif (substr($_, 0, 1) eq '#') + { + ; #ignore + } + elsif (substr($_, 0, 1) eq ' ') + { &chkstate(1,$.,$_); + $value .= ($value eq "" ? "" : "\n") . $_; #FIXME: unchop + } + else + { + reduce() if $state != 0; + $name = $Fld[0]; + if ($#Fld == 0) + { + $state = 1; + } + else + { + $value = join ' ', @Fld[1..$#Fld]; + reduce(); + } + } + } + reduce() if ($state == 1); + chkstate(0,$.,$_); + + return $all; +} + +# ----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- +# Analyze Source -------------------------------------------------------------- +# ----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- + +sub clausify +{ + my ($t) = @_; + my $p; + my $word; + foreach $p (keys %$t) + { + my $flag = 0; + print("dict(["); + foreach $word (split('\.', $p)) + { + print(", ") if ($flag); + print("\'$word\'"); + $flag = 1; + } + print("], "); + my @Fld = split('\.', $p); + # + # head + # + if ($#Fld == 1 && $Fld[1] eq 'head') + { + print "\"",$t->{$p},"\""; + } + # + # emus + # + elsif ($#Fld == 1 && $Fld[1] eq 'emus') + { + my $emu; + $flag = 0; + print("["); + foreach $emu (split(' ', $t->{$p})) + { + print ", " if ($flag); + print "\'$emu\'"; + $flag = 1; + } + print("]"); + } + # + # dflt + # + elsif ($#Fld == 1 && $Fld[1] eq 'dflt') + { + my $dflt; + $flag = 0; + print("["); + foreach $dflt (split(' ', $t->{$p})) + { + print ", " if ($flag); + print $dflt if (length($dflt) == 1); + print "\'$dflt\'" if (length($dflt) > 1); + $flag = 1; + } + print("]"); + } + # + # sect + # + elsif ($#Fld == 1 && $Fld[1] eq 'sect') + { + my $sect; + $flag = 0; + print("["); + foreach $sect (split('\.', $t->{$p})) + { + print ", " if ($flag); + print "\'$sect\'"; + $flag = 1; + } + print("]"); + } + # + # code + # + elsif ($#Fld == 1 && $Fld[1] eq 'code') + { + my @Code = split('\|', $t->{$p}); + print("["); + print("\'$Code[0]\', "); + if ($#Code > 0 && $Code[1] ne '') + { + print("\"$Code[1]\", ") if ($Code[0] ne 'CTL'); + printf("%d, ",eval($Code[1])) if ($Code[0] eq 'CTL'); + } + else + { + print("none, ") + } + if ($#Code == 2 && $Code[2] ne '' && $Code[0] ne 'PRN') + { + $_ = $Code[2]; + s/{/['/; + s/}/']/; + s/;/','/g; + s/'([0-9]+)'/$1/g; + print $_; + } + else + { + print "[]"; + } + print("]"); + } + # + # text + # + elsif ($#Fld == 1 && $Fld[1] eq 'text') + { + my $text; + $flag = 0; + print("["); + foreach $text (split('\n', $t->{$p})) + { + print ", " if ($flag); + $_ = $text; + s/^ //; + s/"/\\"/g; + s/\\ref:([A-Z0-9]+)/", ref('$1'), "/g; + print "\n \"$_\"" if ($_ ne '.'); + print "\n nl" if ($_ eq '.'); + $flag = 1; + } + print("]"); + } + # + # table.* - subcodes + # + #elsif ($#Fld == 2 && $Fld[1] eq 'table' && $Fld[2] eq 'XPS') + elsif ($#Fld >= 1 && $Fld[1] eq 'table') + { + my $text; + $flag = 0; + print("["); + foreach $text (split('\n', $t->{$p})) + { + print ",\n " if ($flag); + $_ = $text; + s/^ //; + my $flag2 = 0; + my $col; + print("["); + foreach $col (split('\|', $_)) + { + print ", " if ($flag2); + $_ = $col; + s/'/\\'/g; + print "\'$_\'"; + $flag2 = 1; + } + print("]"); + $flag = 1; + } + print("]"); + } + # + # other (text, tables) + # + else + { + print("other"); + } + print(").\n"); + } +} + +# ----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- +# MAIN ------------------------------------------------------------------------ +# ----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- + +my $t = parse(); +my $p; +my $table = 0; + +clausify($t); diff --git a/konsole/doc/VT100/genTC.pl b/konsole/doc/VT100/genTC.pl new file mode 100755 index 000000000..a3a7c5669 --- /dev/null +++ b/konsole/doc/VT100/genTC.pl @@ -0,0 +1,434 @@ +#!/usr/bin/perl -w +use strict; + +my $source = "Table.Codes"; + +my $html = 1; +my $test = 0; + +# Syntax ----------------------------------------------------------------------- +# +# Dotted.Name Text +# Dotted.Name +# Text +# Lines +# +# The dotted names have to be unique. Conceptually, they form a tree. +# + +# Data Model ------------------------------------------------------------------ + +# This is currently pretty wierd. +# +# Empirically, we have +# +# NAME.head +# NAME.attr { lots ... } +# NAME.dflt Value ... +# NAME.code <Typ>|<Ide>|<Parm> +# NAME.text +# <text with some special tricks> +# NAME.table.TAB +# <"|"-separated head line> +# <"|"-separated data rows> +# +# Section.html +# <html-text> +# +# TABs +# - .XPS, used for instructions with subcodes +# Subcode|Emulation|Scope|Operation|Parameter|Meaning + +# ----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- +# Analyze Source -------------------------------------------------------------- +# ----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- + +my $all = {}; + +my $state = 0; +my $name = ''; +my $value = ''; + +sub parse +{ + sub chkstate + { my ($expect,$lineno,$line) = @_; + if ($state != $expect) + { + print STDERR "$source($lineno): line unexpected in state $state. : $line\n"; + } + } + + sub reduce + { + $all->{$name} = $value; + $state = 0; + $value = ''; + } + + open(CODES, $source) || die "cannot open file '" . $source . "'."; + while (<CODES>) + { + chop; # strip record separator + my @Fld = split(' ', $_); + + if ($#Fld == -1) + { + reduce() if $state != 0; + } + elsif (substr($_, 0, 1) eq '#') + { + ; #ignore + } + elsif (substr($_, 0, 1) eq ' ') + { &chkstate(1,$.,$_); + $value .= ($value eq "" ? "" : "\n") . $_; #FIXME: unchop + } + else + { + reduce() if $state != 0; + $name = $Fld[0]; + if ($#Fld == 0) + { + $state = 1; + } + else + { + $value = join ' ', @Fld[1..$#Fld]; + reduce(); + } + } + } + reduce() if ($state == 1); + chkstate(0,$.,$_); + + return $all; +} + +# ----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- +# Html Layout ----------------------------------------------------------------- +# ----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- + +sub head +{ + if ($html) + { + print "<table>\n"; + print "<tr><td width=10%%><td><td><td><td><td><td width=40%%>\n"; + } +} + +sub tail +{ + if ($html) + { + print "</table>\n"; + } +} + +my $color1 = " bgcolor=\"#D0D0D0\""; # table head // section head +my $color2 = " bgcolor=\"#5BA5B2\""; # table body (even) +my $color3 = " bgcolor=\"#5188B2\""; # table body (odd) +my $color4 = ""; # code, default +my $color5 = ""; # text + +sub txt2Html +{ + my ($Doku) = @_; + $_ = $Doku; + s/</</g; + s/>/>/g; + s/\\ref:([A-Z0-9]+)/<a href=#$1>$1<\/a>/g; + s/\n \.\n/\n <p>\n/g; + return $_; +} + +sub layout +{ my ($Name, $Head, $Code, $Doku, $Dflt, $Attr) = @_; + if ($html) + { + + print "<tr><td><p></td></tr>\n"; + + print "<tr><td $color1><a name=$Name>$Name</a>\n"; + if ($Attr eq '') + { + print " <td $color1 colspan=6><b>$Head</b>\n"; + } + else + { + print " <td colspan=5 $color1><b>$Head</b>\n"; + print " <td $color1>$Attr\n"; + } + + if ($Code ne '') + { + my @Part = split('\|',$Code); + my $Type = $Part[0]; + my $Indi = $#Part > 0 ? $Part[1] : ""; + my $Parm = $#Part > 1 ? $Part[2] : ""; + $Code = $Parm if $Type eq 'PRN'; + $Code = $Indi if $Type eq 'CTL'; + $Code = "ESC $Indi" if $Type eq 'ESC'; + $Code = "0x7f" if $Type eq 'DEL'; + $Code = "ESC # $Indi" if $Type eq 'HSH'; + $Code = "ESC $Parm" if $Type eq 'SCS'; + $Code = "ESC Y $Parm" if $Type eq 'VT5'; + $Code = "ESC [ $Parm $Indi" if $Type eq 'CSI'; + $Code = "ESC [ ? $Parm $Indi" if $Type eq 'PRI'; + print "<tr><td><p></td>\n"; + print "<tr><td>\n"; + print " <td colspan=5 $color4>", codeToHtml($Code), "\n"; + print " <td $color4>Default: $Dflt\n" if ($Dflt ne ''); + } + + print "<tr><td><p></td>\n"; + print "<tr><td></td>\n"; +# $_ = $Doku; +# s/</</g; +# s/>/>/g; +# s/\\ref:([A-Z0-9]+)/<a href=#$1>$1<\/a>/g; +# s/\n \.\n/\n <p>\n/g; + print " <td $color5 colspan=6>"; + print txt2Html($Doku); + print "\n"; + } + if ($test) + { + print "NAME: $Name\n"; + print "TEXT: $Head\n"; + print "CODE: $Code\n"; + print "ATTR: $Attr\n"; + print "DFLT: $Dflt\n"; + # print "DOCU: $Doku\n"; + } +} + +sub codeToHtml +{ my ($code) = @_; + my $res = '<code>'; + foreach (split(' ', $code)) + { + /^\{(.*)\}$/ && do { $res .= " <em>$1</em>"; next; }; + /^<$/ && do { $res .= ' <b><</b>'; next; }; + /^>$/ && do { $res .= ' <b>></b>'; next; }; + $res .= " <b>$_</b>"; + } + return $res . '</code>'; +} + +# ----------------------------------------------------------------------------- + +sub secthead +{ my ($Title) = @_; +print "<h2>\n"; +print "<table width=100%>\n"; +print "<tr><td align=center bgcolor=#d0d0d0></td></tr>\n"; +print "<tr><td align=center bgcolor=#d0d0d0>$Title</td></tr>\n"; +print "<tr><td align=center bgcolor=#d0d0d0></td></tr>\n"; +print "</table>\n"; +print "</h2>\n"; +} + +sub layout2 +{ my ($Name, $Head, $Code) = @_; + my @Part = split('\|',$Code); + my $Type = $#Part > -1 ? $Part[0] : ""; + my $Indi = $#Part > 0 ? $Part[1] : ""; + my $Parm = $#Part > 1 ? $Part[2] : ""; + if ($Type eq 'CTL') + { + $_ = $Indi; + s/0x00/@/; s/0x01/A/; s/0x02/B/; s/0x03/C/; + s/0x04/D/; s/0x05/E/; s/0x06/F/; s/0x07/G/; + s/0x08/H/; s/0x09/I/; s/0x0a/J/; s/0x0b/K/; + s/0x0c/L/; s/0x0d/M/; s/0x0e/N/; s/0x0f/O/; + s/0x10/P/; s/0x11/Q/; s/0x12/R/; s/0x13/S/; + s/0x14/T/; s/0x15/U/; s/0x16/V/; s/0x17/W/; + s/0x18/X/; s/0x19/Y/; s/0x1a/Z/; s/0x1b/[/; + s/0x1c/\\/; s/0x1d/]/; s/0x1e/^/; s/0x1f/_/; + $Indi = $_; + } + print "<tr>\n"; + print "<td $color1><a href=#$Name>$Name</a>\n"; + print "<td $color1>$Type\n"; + print "<td $color1>$Indi\n"; + print "<td $color1>$Parm\n"; + print "<td $color1>$Head\n"; +} + +sub layoutTable +{ + my ($Head, $t, $Include) = @_; + my $p; +print "<tr><td colspan=5><h3>$Head</h3>\n"; +foreach $p (sort keys %$t) +{ + my @Fld = split('\.', $p); + if ($#Fld == 1 && $Fld[1] eq 'head') + { + my $name = $Fld[0]; + my $head = $t->{$p}; + my $attr = exists $t->{"$name.sect"}?$t->{"$name.sect"}:""; + if ($attr =~ /$Include/) + { + layout2( $name, $head, exists $t->{"$name.code"}?$t->{"$name.code"}:""); + } + } +} +} + +sub sortTest +{ + my ($t) = @_; + my $p; + my $s = {}; + my $n = {}; + my $curr = ""; + foreach $p (keys %$t) + { + my @Fld = split('\.', $p); + if ($#Fld == 1 && $Fld[1] eq 'head') + { + my $name = $Fld[0]; + if (exists $t->{"$name.code"}) + { + $s->{$t->{"$name.code"}} = $name; + } + } + } + print "<table>\n"; + foreach $p (sort keys %$s) + { + my $name = $s->{$p}; + my @Fld = split('\|', $p); + if ($Fld[0] ne $curr) + { + print "<tr><td colspan=5><h3>$Fld[0] codes</h3>\n"; + } + $curr = $Fld[0]; + layout2($name,$t->{"$name.head"},$p); + } + print "</table>\n"; +} + +sub htmlsect +{ + my ($h) = @_; + $_ = $all->{"$h.html"}; + s/\n \.\n/\n <p>\n/g; + print "$_\n"; +} + +# ----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- +# MAIN ------------------------------------------------------------------------ +# ----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- + +my $t = parse(); +my $p; +my $table = 0; + +# ------------------------------- +htmlsect("Introduction"); +# ------------------------------- +secthead("Control Sequences"); +htmlsect("Sequences"); +# ------------------------------- +secthead("Host to Terminal (Instructions by Code)"); +sortTest($t); +# ------------------------------- +secthead("Host to Terminal (Instructions by Group)"); +htmlsect("Operations"); +print "<table>\n"; +layoutTable("Commands (Character Display Operation)",$t,"Command\.Display"); +layoutTable("Commands (Rendition related status)",$t,"Command\.RenderMode"); +layoutTable("Commands (Cursor)",$t,"Command\.Cursor"); +layoutTable("Commands (Cursor related status)",$t,"Command\.CursMode"); +layoutTable("Commands (Edit)",$t,"Command\.Erase|Command\.Insert|Command.\Delete"); +layoutTable("Commands (Miscellaneous)",$t,"Command[^.]|Command\$"); +layoutTable("Commands (General mode setting)",$t,"Command\.SetMode"); +layoutTable("Commands (Miscellaneous status)",$t,"Command\.Mode"); +layoutTable("Commands (VT52)",$t,"Command\.VT52"); +layoutTable("Commands (Not implemented)",$t,"Command\.NoImp"); +layoutTable("Commands (Ignored)",$t,"Command\.Ignored"); +layoutTable("Commands (Requests)",$t,"Command\.Request"); +print "</table>\n"; +# ------------------------------- +secthead("Terminal to Host"); +print "<table>\n"; +layoutTable("Replies",$t,"Reply"); +layoutTable("Events",$t,"Event"); +# ------------------------------- +print "</table>\n"; +secthead("Modes"); +print "<table>\n"; +layoutTable("Modes",$t,"Mode"); +#print "<h3>Other Codes</h3>\n"; +print "</table>\n"; +# ------------------------------- +secthead("Appendix A - Notion Details"); +htmlsect("ConceptDB"); +# ------------------------------- + +head(); +foreach $p (sort keys %$t) +{ + my @Fld = split('\.', $p); + if ($#Fld == 1 && $Fld[1] eq 'head') + { +# print "</table>\n" if ($table); + my $name = $Fld[0]; + my $head = $t->{$p}; + layout( $name, $head, + exists $t->{"$name.code"}?$t->{"$name.code"}:"", + exists $t->{"$name.text"}?$t->{"$name.text"}:"", + exists $t->{"$name.dflt"}?$t->{"$name.dflt"}:"", + exists $t->{"$name.emus"}?$t->{"$name.emus"}:"" ); + $table = 0; + } + if ($html && $#Fld == 2 && $Fld[1] eq 'table') + { + my $lines = $t->{$p}; + my $line; + my $field; + my @fldspan = (); + my $ln = 0; + print "<tr><td><p></td></tr>\n"; +# print "<tr><td $color1>$Fld[2]</td><td $color1>Meaning</td></tr>\n"; + foreach $line (split('\n', $lines)) + { + my $fn = 0; + @fldspan = split('\|',$line) if ($ln == 0); + print "<tr>\n"; + print "<td></td>\n"; + foreach $field (split('\|',$line)) + { + if ($ln == 0) + { + my @Parts = split(":",$field); + $field = $Parts[0]; + $fldspan[$fn] = ($#Parts > 0) ? $Parts[1] : 1; + } + print "<td"; + printf(" colspan=%s",$fldspan[$fn]); + print " $color1" if ($ln == 0); + print " $color2" if ($ln > 0 && $ln % 2 == 0); + print " $color3" if ($ln > 0 && $ln % 2 == 1); + print ">"; + print txt2Html($field); + print "</td>"; + $fn += 1; + } + print "</tr>\n"; + $ln += 1; + } + $table = 1; + } +} +tail(); diff --git a/konsole/doc/VT100/konsole1.gif b/konsole/doc/VT100/konsole1.gif new file mode 100644 index 000000000..832c2dc65 Binary files /dev/null and b/konsole/doc/VT100/konsole1.gif differ diff --git a/konsole/doc/VT100/konsole2.gif b/konsole/doc/VT100/konsole2.gif new file mode 100644 index 000000000..eb2cdb4d0 Binary files /dev/null and b/konsole/doc/VT100/konsole2.gif differ diff --git a/konsole/doc/VT100/t.pl b/konsole/doc/VT100/t.pl new file mode 100755 index 000000000..b0d9dc8e5 --- /dev/null +++ b/konsole/doc/VT100/t.pl @@ -0,0 +1,17 @@ +#!/usr/bin/perl + +# This script is here only as a pattern for maintainance works. +# It has changing contents and is of no use to anyone but me. + +$source = "Table.Codes"; + +open(CODES, $source) || die "cannot open file '" . $source . "'."; + +while (<CODES>) +{ + if (/^attr/) + { + s/VT100/VT100 ANSI/ if (!/DEC/); + } + print $_; +} diff --git a/konsole/doc/VT100/techref.html b/konsole/doc/VT100/techref.html new file mode 100644 index 000000000..6e36f39e5 --- /dev/null +++ b/konsole/doc/VT100/techref.html @@ -0,0 +1,4681 @@ +<html> +<head> +<title>VT100 + + + + +


+ + +

VT100

+
+ +Please note that this text is under construction. + +

Preface

+ +This document accompanies the Konsole program, which is a terminal emulation +for the X Windows System. Since material about the extend and precise semantics +of the emulatation intended to be handled by this programs is hard to find on the +internet today, it came out nessesary to include a more precise specification within +their release. +Hopefully, this helps to clearify the relation to the VT100, VT102, Linux, XTerm +and ansi.sys (ANSI-BBS) terminals, which are the target of these programs. Further, +it specifies which codes are interpreted by them, and what has been omitted. +

+To begin with, all of the above call themselfes "ANSI" emulations, which makes this +notion pretty vage. "ANSI" referes here to the American National Standards +Institute's documents X3.41-1974 and X3.64-1977. DEC partially implemented this +standart in their VT100 terminal, with some additions. The VT102 is a later extension +of that. Both the Linux console and the XTerm emulation implement most of VT102, +with some additions. MS stepped in later and produced another ANSI emulation, +ansi.sys, for their OS, which became of some relevance in BBS style +telecommunication programs. One can view this as a small subset of the VT100 +emulation, with some additions, of cause. +This situation is further confused by the fact, that often many versions of the +above terminals and emulations are out, one able to do a little more or less then +the other. +

+


+

+I'm working towards a +close integration of the konsole's source code with this document, but it +is still a long way to go. +

+Currently, the body of this document is mainly a concept data base, that +referes to the VT100 component of the emulation. Though the codes accepted by +konsole are now clearly indicated, a comparison to the xterm and Linux console +emulation is missing. +

+The konsole emulation sources is not linked closely with it's documentation, +and, also accurate at the time of writing, it can still fall slightly appart, +though the codes accepted and produced by konsole should be properly listed. +Work is currently in progress to fix this issue. + + + +

Notes & todos

+
    +
  • Include complete reference on keyboard material. +
  • Check for explaination of out-of-bound values. +
  • Include VT52, VT102, XTERM, LINUX-console codes +
  • Make the whole document more concept oriented +
  • See the section Method of description, below +
  • Derive some summarizing lists. +
+
+

Introduction

+

+ In a traditional UNIX installation a single machine (host) served + several users by means of terminals attached to this host by a serial + cable. These terminals (end points) where specialized devices, either + regular ttys (printer with keyboard) or later more sophisticated + things with cathode ray tubes. +

+

+

+ Today, hardware has become so cheap, that each single user could + be provided with a complete host/display combination for the former + price of a terminal. +

+ Additional, and here we come to the X in the emulation, display + devices have become graphical while the original terminal where + only able to show characters but not graphics. +

+ To allow programs designed for the original configuration to be + used in the contemporary setup, "terminal emulations" where invented. + In these emulations, the whole original setup is simulated. +

+ The serial cable is folded into the operating system as a sort of + loop back device, and a program, the terminal emulation, uses modern + means of graphical user interfaces to behave like an earlier terminal. + To complete the picture, the host in the diagram is replaced by the + application that runs in the emulation (typically a shell or an old + editor). So, terminal emulations are in fact interfaces to character + oriented applications. +

+ This document describes the implementations of a program named + "konsole", which is such an X terminal emulation. Since konsole + is distributed under the GPL, meaning that it's source code is + available to whoever likes to hack on it, the program would be + incomplete without a proper introduction into the code and it's + concepts. Thus, this text is to complement the program and the + source with the remaining informations to make a complete product. +

+

A first refinement

+

+ Before we can come to the actual implementation, quite some + notions have to be introduced. We have to get us an idea what + a terminal emulation does in more detail. +

+ To this end, a simple model of the terminal and it's operation + is given, which is later extended and refined as we come deeper + into matter and implementation. +

+ At some level conception, a terminal can be described as a + (abstract) data model. This means it has some type of state + together with operations on that data type. These operations + are somehow encoded to be passed over the serial line. +

+ The concrete model is often loosely named the "emulation", + the specific encoding chosen, the "protocol". +

+ There are two principle models in use. The first, stream like + one, which is related to a tty, consideres the terminal as an + indefinit long and wide sheet of paper on which a printer head + types the characters that come in over the line. Typical examples + are shell scripts, make and other programs producing sequential + protocols of their activity. Their basic data type is a list of + list of characters. +

+ The second principle model is used by applications written + especially for crt devices, so called full screen applications. + These treat the terminal as a matrix of characters where each + position can be individually addressed and written to. Typical + representatives are full screen editors like vi and emacs, + file managers like mc and mail readers like mutt. +

+ Though the second model is newer, it's age does not imply a + preference. To the contrary, both models have a right for their + own and are both to be supported. The first model is fully + expressed within konsole in form of it's ref:history buffer. +

+ Note, that although the second model definitely build on the + first one in almost any respect, it cannot fully express it, + since it introduces a finite line length, while the first + model works with indefinite lines. +

+ Since application with both view of things are typically run + within the same session, some effort has been made within + konsole to maintain both ideas simultaniously, but only with + limited success so far. +

+ In both models, the notion of a current position (historically + a printer's head, nowadays visualized by a cursor) is present. + "Printing" a character at the current position and advancing + the head together with the starting a new line are the most + fundamental operations of the emulation. +

+ The full screen model basically adds the possibility to position + the cursor and to overwrite and clear the screen. +

+ A plethora of additional (more or less useful) commands are + then added on this by every specific emulation, see below for + the awful details. +

+ +

Parts of the model

+

+ All the following in this section is an outline. +

+ Parts of the terminal description +

    +
  • State +
    This is mainly the screen, the cursor (including it's graphical state) + and some hidden mode variables. Note that the state cannot be investigated + by the attached host. +
  • Interface +
    That's what goes over the wire. Beside being related to objects, this + appears so closely related to contemporal process communication, that + it might be discussed in likely terms. +
    We have information flowing in both directions. On could destinguist + between: +
  • Commands +
    These are "calls" of the terminals interface by the host which cause + some change of the terminals state, but do not end in a response. +
  • Requests +
    These are "calls" of the terminals interface by the host which do not cause + any change of the terminals state, but end in a response of the terminal. + Clearly, requests are somehow used to investigate the state of the terminal. +
  • Events +
    These are signals from the terminal caused by the user affecting the + mouse or keyboard to the host. +
  • Replys +
    These are send by the terminal as a result of a Request from the hosts. +
  • Encoding/Decoding +
+

+ + + + +
Control Sequences
+

+ Conceptually, the commands to the terminal emulation are encoded if form + of byte sequences to meet the restrictions of the transport media. These + sequences have pretty different originations and therefore the format of + the sequences are inhomogenous. +

+ Refering both to their origin and form, one can group the overall encoding + schemes as follows: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

NamePatternScopeComment
Printable Ascii Characters32..126ASCII ECMAThis is the most original pattern of all. The characters to be + displayed are passed over the chanel and are interpreted by the + terminal (emulation) as instructions to display the corresponding + glyph of the ascii character set. Contempory emulations include the + upper half (128..255) of the extentions to the national ascii character + sets, also.
Ascii Control Characters0..26,28..31,127ASCII ECMAAscii defines some non-printable, but format effecting characters, too. + Depending on the emulation, at least some of them are given a meaning. + The typically implemented ones are those that are handled by a teletype + like device.
Simple Escape SequenceESC CECMAThese sequences are made up from an ESC character followed by + exactly one other character in the range ???..???.
CSI SequenceESC [ Parameters {I} CECMA
+

+ The remaining codes are nonstandard but traditionalized hacks. +

+

DEC hacksESC C DVT100
XTERM hacksESC ] Pn ; text BELXTERM
+

+ VT52 uses a different (incompatible) set of escape codes. VT100 includes + the VT52 emulation as a mode. +

+

Simple Escape SequenceESC CVT52
Complex Escape SequenceESC Y X YVT52
+

+

More on Control Sequences

+

+

Control Characters

+

+ Control characters (codes 0x00 - 0x1f inclusive) are specifically excluded + from the control sequence syntax, but may be embedded within a control + sequence. Embedded control characters are executed as soon as they are + encountered by a VT100. The processing of the control sequence then + continues with the next character received. The exceptions are: + if the ESC character occurs, the current control sequence + is aborted, and a new one commences beginning with the ESC + just received. If the character CAN (0x0c) or the + character SUB (0x0e) occurs, + the current control sequence is aborted. The ability to embed control + characters allows the synchronization characters XON and XOFF to be + interpreted properly without affecting the control sequence. +

+

+

CSI Sequences

+

+

+
Control Sequence Introducer (CSI): +
An escape sequence that provides + supplementary controls and is itself a prefix affecting the + interpretation of a limited number of contiguous characters. + In the VT100, the CSI is: <ESC>[ +

+

Parameter: +
1. A string of zero or more decimal characters which + represent a single value. Leading zeros are ignored. The + decimal characters have a range of 0 (060) to 9 (071). +
2. The value so represented. +

+

Numeric Parameter: +
A parameter that represents a number, designated by Pn. +

+

Selective Parameter: +
A parameter that selects a subfunction from a + specified set of subfunctions, designated by Ps. In general, a + control sequence with more than one selective parameter causes + the same effect as several control sequences, each with one + selective parameter, e.g., CSI Psa; Psb; Psc F is identical to + CSI Psa F CSI Psb F CSI Psc F. +

+

Parameter String: +
A string of parameters separated by a semicolon. +

+

Default: +
A function-dependent value that is assumed when no explicit + value, or a value of 0, is specified. +

+

Final character: +
A character whose bit combination terminates an escape or control sequence. +
+

+ EXAMPLE: Control sequence to turn off all character attributes, then + turn on underscore and blink attributes (SGR). +

+

+

+ The octal representation of this string is: +

+     033 0133 060 073 064 073 065 0155
+    <ESC>   [   0   ;   4   ;   5    m
+  
+

+ Alternate sequences which will accomplish the same thing: +

+

    +
  • <ESC>[;4;m +
  • <ESC>[m +
    <ESC>[4m +
    <ESC>[5m +
  • <ESC>[0;04;005m +
+

+

DEC hacks

+

+ These form two groups of commands. +

+ In one first the first character is a hash (#) and the following a digit. + This command group is used to denote VT100 specific instructions and can + safely be sonsidered to be obsolete. See + DECALN, + DECDHLB, + DECDHLT, + DECDWL and + DECSWL. +

+ The second one is used to specify character set mappings (see SCS). A CSI instruction to do this is specified in ECMA, + and this should be used as a replacement. +

+

XTERM hacks

+

+ + + + +
Host to Terminal (Instructions by Code)
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

CSI codes

+
ICH +CSI +@ +{Pn} +Insert Character +
CUU +CSI +A +{Pn} +Cursor Up +
CUD +CSI +B +{Pn} +Cursor Down +
CUF +CSI +C +{Pn} +Cursor Foreward +
CUB +CSI +D +{Pn} +Cursor Backward +
CHA +CSI +G +{Pn} +Cursor Horizontal Absolute +
CUP +CSI +H +{Pn;Pn} +Cursor Position +
ED +CSI +J +{Ps} +Erase in Display +
EL +CSI +K +{Ps} +Erase in Line +
IL +CSI +L +{Pn} +Insert Line +
DL +CSI +M +{Pn} +Delete Line +
DCH +CSI +P +{Pn} +Delete Character +
CPR +CSI +R +{Pn;Pn} +Cursor Position Report +
ECH +CSI +X +{Pn} +Erase Character +
DA +CSI +c +{Pn} +Device Attributes Request +
VPA +CSI +d +{Pn} +Vertical Position Absolute +
HVP +CSI +f +{Pn;Pn} +Horizontal and Vertical Position +
TBC +CSI +g +{Ps} +Tabulation Clear +
SM +CSI +h +{Ps;...} +Set Mode +
MC +CSI +i +{Pn} +Media Copy +
RM +CSI +l +{Ps;...} +Reset Mode +
SGR +CSI +m +{Ps;...} +Select Graphic Rendition +
DSRREQ +CSI +n +{Ps} +Device Status Report +
DSRREP +CSI +n +{Status} +Device Status Report Reply +
DECLL +CSI +q +{Ps;...} +Load LEDs +
DECSTBM +CSI +r +{Pn;Pn} +Set Top and Bottom Margins +
DECREQTPARM +CSI +x +{Ps} +Request Terminal Parameters +
DECREPTPARM +CSI +x +{sol;par;nbits;xspd;rspd;cmul;flags} +Report Terminal Parameters +
DECTST +CSI +y +{2;Ps} +Invoke Confidence Test +

CTL codes

+
NUL +CTL +@ + +Null +
SOH +CTL +A + +Start Of Heading +
STX +CTL +B + +Start Of Text +
ETX +CTL +C + +End Of Text +
EOT +CTL +D + +End Of Transmission +
ENQ +CTL +E + +Enquiry +
ACK +CTL +F + +Acknowledge +
BEL +CTL +G + +Bell +
BS +CTL +H + +Back Space +
HT +CTL +I + +Horizontal Tabulation +
LF +CTL +J + +Line Feed +
VT +CTL +K + +Vertical Tabulation +
FF +CTL +L + +Form Feed +
CR +CTL +M + +Carriage Return +
LS0 +CTL +N + +Lock Shift Zero (Shift Out - SO) +
LS1 +CTL +O + +Lock Shift One (Shift In - SI) +
DLE +CTL +P + +Data Link Escape +
DC1 +CTL +Q + +Device Control One +
DC2 +CTL +R + +Device Control Two +
DC3 +CTL +S + +Device Control Three +
DC4 +CTL +T + +Device Control Four +
NAK +CTL +U + +Negative Acknowledge +
SYN +CTL +V + +Synchronous Idle +
ETB +CTL +W + +End Of Transmission Block +
CAN +CTL +X + +Cancel +
EM +CTL +Y + +End Of Medium +
SUB +CTL +Z + +Substitute +
ESC +CTL +[ + +Escape +
FS +CTL +\ + +File Separator (IS4 - Information Separator Four) +
GS +CTL +] + +Group Separator (IS3 - Information Separator Three) +
RS +CTL +^ + +Record Separator (IS2 - Information Separator Two) +
US +CTL +_ + +Unit Separator (IS1 - Information Separator One) +

DEL codes

+
DEL +DEL + + +Delete Character +

ESC codes

+
DECSC +ESC +7 + +Save Cursor +
DECRC +ESC +8 + +Restore Cursor +
VT52ANSI +ESC +< + +VT52 ANSI Ansi Mode +
VT52KPAM +ESC += + +VT52 Enter alternate keypad mode +
VT52KPNM +ESC +> + +VT52 Exit alternate keypad mode +
VT52CUU +ESC +A + +VT52 Cursor Up +
VT52CUD +ESC +B + +VT52 Cursor Down +
VT52CUF +ESC +C + +VT52 Cursor Forward +
VT52CUB +ESC +D + +VT52 Cursor Back +
NEL +ESC +E + +Next Line +
VT52SCSF +ESC +F + +VT52 Select special graphics character set +
VT52SCSG +ESC +G + +VT52 Select ASCII character set +
HTS +ESC +H + +Horizontal Tab Set +
VT52RI +ESC +I + +VT52 Reverse Index +
VT52EDS +ESC +J + +VT52 Clear To End Of Screen +
VT52EDL +ESC +K + +VT52 Clear To End Of Line +
RI +ESC +M + +Reverse Index +
DECID +ESC +Z + +Identify Terminal +
RIS +ESC +c + +Reset to Initial State +
LS2 +ESC +n + +Lock Shift Two +
LS3 +ESC +o + +Lock Shift Three +

HSH codes

+
DECDHLT +HSH +3 + +Double Height Line (Top) +
DECDHLB +HSH +4 + +Double Height Line (Bottom) +
DECSWL +HSH +5 + +Single-width Line +
DECDWL +HSH +6 + +Double Width Line +
DECALN +HSH +8 + +Screen Alignment Display +

PRI codes

+
DECDA +PRI +c +{1;Pn} +Device Attributes Reply +
DECSET +PRI +h +{Ps;...} +DEC Private Set Mode +
DECRST +PRI +l +{Ps;...} +DEC Private Reset Mode +
XTERESTORE +PRI +r +{Ps;...} +XTerm Private Restore Mode +
XTESAVE +PRI +s +{Ps;...} +XTerm Private Save Mode +

PRN codes

+
PRINT +PRN + +{0x20..0x7e,0xa0..0xff} +Printable Characters +

SCS codes

+
SCS +SCS + +{Pc;Cs} +Select Character Set +

VT5 codes

+
VT52CUP +VT5 + +{X;Y} +VT52 Cursor Position +
+

+ + + + +
Host to Terminal (Instructions by Group)
+

+

+

    +
  • Host to Terminal (Commands,Requests) +
      +
    • Commands +
        +
      • Character Display Operation +
      • Rendition related status +
      • Cursor +
      • Cursor related status +
      • Edit +
      • Miscellaneous +
      • General mode setting +
      • Miscellaneous status +
      • VT52 +
      • Not implemented +
      • Ignored +
      +
    • Requests +
    +
  • Terminal to Host (Replies, Events) +
      +
    • Replies +
    • Events +
    +
  • Modes +
      +
    • Modes +
    +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Commands (Character Display Operation)

+
PRINT +PRN + +{0x20..0x7e,0xa0..0xff} +Printable Characters +

Commands (Rendition related status)

+
LS0 +CTL +N + +Lock Shift Zero (Shift Out - SO) +
LS1 +CTL +O + +Lock Shift One (Shift In - SI) +
LS2 +ESC +n + +Lock Shift Two +
LS3 +ESC +o + +Lock Shift Three +
SCS +SCS + +{Pc;Cs} +Select Character Set +
SGR +CSI +m +{Ps;...} +Select Graphic Rendition +

Commands (Cursor)

+
BS +CTL +H + +Back Space +
CHA +CSI +G +{Pn} +Cursor Horizontal Absolute +
CR +CTL +M + +Carriage Return +
CUB +CSI +D +{Pn} +Cursor Backward +
CUD +CSI +B +{Pn} +Cursor Down +
CUF +CSI +C +{Pn} +Cursor Foreward +
CUP +CSI +H +{Pn;Pn} +Cursor Position +
CUU +CSI +A +{Pn} +Cursor Up +
FF +CTL +L + +Form Feed +
HT +CTL +I + +Horizontal Tabulation +
HVP +CSI +f +{Pn;Pn} +Horizontal and Vertical Position +
IND +ESC +D + +Index +
LF +CTL +J + +Line Feed +
NEL +ESC +E + +Next Line +
RI +ESC +M + +Reverse Index +
VPA +CSI +d +{Pn} +Vertical Position Absolute +
VT +CTL +K + +Vertical Tabulation +

Commands (Cursor related status)

+
DECRC +ESC +8 + +Restore Cursor +
DECSC +ESC +7 + +Save Cursor +
DECSTBM +CSI +r +{Pn;Pn} +Set Top and Bottom Margins +
HTS +ESC +H + +Horizontal Tab Set +
TBC +CSI +g +{Ps} +Tabulation Clear +

Commands (Edit)

+
DCH +CSI +P +{Pn} +Delete Character +
DL +CSI +M +{Pn} +Delete Line +
ECH +CSI +X +{Pn} +Erase Character +
ED +CSI +J +{Ps} +Erase in Display +
EL +CSI +K +{Ps} +Erase in Line +
ICH +CSI +@ +{Pn} +Insert Character +
IL +CSI +L +{Pn} +Insert Line +

Commands (Miscellaneous)

+
BEL +CTL +G + +Bell +
CAN +CTL +X + +Cancel +
DECALN +HSH +8 + +Screen Alignment Display +
DECTST +CSI +y +{2;Ps} +Invoke Confidence Test +
SUB +CTL +Z + +Substitute +

Commands (General mode setting)

+
DECRST +PRI +l +{Ps;...} +DEC Private Reset Mode +
DECSET +PRI +h +{Ps;...} +DEC Private Set Mode +
RM +CSI +l +{Ps;...} +Reset Mode +
SM +CSI +h +{Ps;...} +Set Mode +
XTERESTORE +PRI +r +{Ps;...} +XTerm Private Restore Mode +
XTESAVE +PRI +s +{Ps;...} +XTerm Private Save Mode +

Commands (Miscellaneous status)

+
DECKPAM +ESC += + +Keypad Application Mode +
DECKPNM +ESC +> + +Keypad Numeric Mode +
RIS +ESC +c + +Reset to Initial State +
VT52ANSI +ESC +< + +VT52 ANSI Ansi Mode +

Commands (VT52)

+
VT52CUB +ESC +D + +VT52 Cursor Back +
VT52CUD +ESC +B + +VT52 Cursor Down +
VT52CUF +ESC +C + +VT52 Cursor Forward +
VT52CUH +ESC +H + +VT52 Cursor Home +
VT52CUP +VT5 + +{X;Y} +VT52 Cursor Position +
VT52CUU +ESC +A + +VT52 Cursor Up +
VT52EDL +ESC +K + +VT52 Clear To End Of Line +
VT52EDS +ESC +J + +VT52 Clear To End Of Screen +
VT52KPAM +ESC += + +VT52 Enter alternate keypad mode +
VT52KPNM +ESC +> + +VT52 Exit alternate keypad mode +
VT52REP +ESC +Z + +VT52 Report Terminal Type +
VT52RI +ESC +I + +VT52 Reverse Index +
VT52SCSF +ESC +F + +VT52 Select special graphics character set +
VT52SCSG +ESC +G + +VT52 Select ASCII character set +

Commands (Not implemented)

+
DECDHLB +HSH +4 + +Double Height Line (Bottom) +
DECDHLT +HSH +3 + +Double Height Line (Top) +
DECDWL +HSH +6 + +Double Width Line +
DECLL +CSI +q +{Ps;...} +Load LEDs +
DECSWL +HSH +5 + +Single-width Line +
MC +CSI +i +{Pn} +Media Copy +

Commands (Ignored)

+
ACK +CTL +F + +Acknowledge +
DC2 +CTL +R + +Device Control Two +
DC3 +CTL +S + +Device Control Three +
DC4 +CTL +T + +Device Control Four +
DEL +DEL + + +Delete Character +
DLE +CTL +P + +Data Link Escape +
EM +CTL +Y + +End Of Medium +
EOT +CTL +D + +End Of Transmission +
ETB +CTL +W + +End Of Transmission Block +
ETX +CTL +C + +End Of Text +
FS +CTL +\ + +File Separator (IS4 - Information Separator Four) +
GS +CTL +] + +Group Separator (IS3 - Information Separator Three) +
NAK +CTL +U + +Negative Acknowledge +
NUL +CTL +@ + +Null +
RS +CTL +^ + +Record Separator (IS2 - Information Separator Two) +
SOH +CTL +A + +Start Of Heading +
STX +CTL +B + +Start Of Text +
SYN +CTL +V + +Synchronous Idle +
US +CTL +_ + +Unit Separator (IS1 - Information Separator One) +

Commands (Requests)

+
DA +CSI +c +{Pn} +Device Attributes Request +
DECID +ESC +Z + +Identify Terminal +
DECREQTPARM +CSI +x +{Ps} +Request Terminal Parameters +
DSRREQ +CSI +n +{Ps} +Device Status Report +
ENQ +CTL +E + +Enquiry +
+

+ + + + +
Terminal to Host
+

+ + + + + + + + + + + +

Replies

+
CPR +CSI +R +{Pn;Pn} +Cursor Position Report +
DECDA +PRI +c +{1;Pn} +Device Attributes Reply +
DECREPTPARM +CSI +x +{sol;par;nbits;xspd;rspd;cmul;flags} +Report Terminal Parameters +
DSRREP +CSI +n +{Status} +Device Status Report Reply +

Events

+
CUB +CSI +D +{Pn} +Cursor Backward +
CUD +CSI +B +{Pn} +Cursor Down +
CUF +CSI +C +{Pn} +Cursor Foreward +
CUU +CSI +A +{Pn} +Cursor Up +
KEYBOARD + + + +Keyboard Events +
MOUSE + + + +Mouse Events +
+

+ + + + +
Modes
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Modes

+
DECANM + + + +ANSI/VT52 Mode +
DECARM + + + +Auto Repeat Mode +
DECAWM + + + +Autowrap Mode +
DECCKM + + + +Cursor Keys Mode +
DECCOLM + + + +Column Mode +
DECINLM + + + +Interlace Mode +
DECKPAM +ESC += + +Keypad Application Mode +
DECKPNM +ESC +> + +Keypad Numeric Mode +
DECOM + + + +Origin Mode +
DECRC +ESC +8 + +Restore Cursor +
DECRST +PRI +l +{Ps;...} +DEC Private Reset Mode +
DECSC +ESC +7 + +Save Cursor +
DECSCLM + + + +Scrolling Mode +
DECSCNM + + + +Screen Mode +
DECSET +PRI +h +{Ps;...} +DEC Private Set Mode +
DECSTBM +CSI +r +{Pn;Pn} +Set Top and Bottom Margins +
HTS +ESC +H + +Horizontal Tab Set +
LNM + + + +Line Feed/New Line Mode +
LS0 +CTL +N + +Lock Shift Zero (Shift Out - SO) +
LS1 +CTL +O + +Lock Shift One (Shift In - SI) +
LS2 +ESC +n + +Lock Shift Two +
LS3 +ESC +o + +Lock Shift Three +
RIS +ESC +c + +Reset to Initial State +
RM +CSI +l +{Ps;...} +Reset Mode +
SCS +SCS + +{Pc;Cs} +Select Character Set +
SGR +CSI +m +{Ps;...} +Select Graphic Rendition +
SM +CSI +h +{Ps;...} +Set Mode +
TBC +CSI +g +{Ps} +Tabulation Clear +
VT52ANSI +ESC +< + +VT52 ANSI Ansi Mode +
XTERESTORE +PRI +r +{Ps;...} +XTerm Private Restore Mode +
XTESAVE +PRI +s +{Ps;...} +XTerm Private Save Mode +
+

+ + + + +
Appendix A - Notion Details
+

+ The following text is a collection of several sorts of definitions and + explainations. It is incomplete in many respects and a working draft. + + . +

+ All of the following control sequences are transmitted from the Host to + VT100 unless otherwise noted. All of the control sequences are a subset of + those defined in ANSI X 3.64 1977 and ANSI X 3.41 1974. +

+ The following text conforms to these formatting conventions: +

    +
  • Individual character literals are set in bold face. Ascii representation + is used throughout, so ESC means the binary value of 27 and + [ a value of 91. +

    +

  • Parameters are indicated by italic type faces. +
  • Parameter types usually are indicated as one of: + + + + +
    Pn A string of digits representing a numerical value.
    Ps A character that selects an item from a list.
    a-zAny lowercase sequence of one or more + characters represent a value to be + entered (as in Pn), and the name in the + will be referred to in explanatory text.
    +

    +

  • Spaces are used only to improve readability, they do not occure in the + control sequences unless otherwise indicated. +

    +

+

+

+ The following attributes below have the following meaning: +

    +
  • VT100 - This code is known to VT100. +
  • ANSI - This code is defined by ANSI. +
  • DEC - This code is DEC private. +
  • Command - Sent from host to the terminal. FIXME:add Inquiery. +
  • Reply - Sent from terminal to the host (as response to an Inquiery). +
  • Event - Sent from terminal to the host (caused by a user activity). +
  • Mode - The entry is a mode. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

ACK + Acknowledge + VT100 XTERM Linux KONSOLE +

+ 0x06 +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

BEL + Bell + VT100 +

+ 0x07 +

Sound bell +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100guiBellsee above

BS + Back Space + VT100 +

+ 0x08 +

Move cursor to the left one position, unless it is at the left + margin, in which case no action is taken. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrBackSpacesee above

CAN + Cancel + VT100 +

+ 0x18 +

If sent during a control sequence, the sequence id immediately + terminated and not executed. It also causes the error character + (checkerboard) to be displayed. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrShowCharacter2see above

CHA + Cursor Horizontal Absolute + ECMA KONSOLE +

+ ESC [ Pn G +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AxtermscrsetCursorXpsee above

CPR + Cursor Position Report + ECMA VT100 +

+ ESC [ Pn;Pn R + Default: 1 1 +

The CPR sequence reports the active position by means of the + parameters. This sequence has two parameter values, the first + specifying the line and the second specifying the column. The default + condition with no parameters present, or parameters of 0, is equivalent + to a cursor at home position. +

+ The numbering of the lines depends upon the state of the Origin Mode + (DECOM). +

+ This control sequence is sent in reply to a device status report + (DSRREQ) command sent from the host. +

CR + Carriage Return + VT100 +

+ 0x0d +

Move the cursor to the left margin of the current line. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrReturnsee above

CUB + Cursor Backward + ECMA VT100 +

+ ESC [ Pn D + Default: 1 +

Moves the cursor to the left. The distance moved is + determined by the parameter. If the parameter missing, zero, or one, + the cursor is moved one position. The cursor cannot be moved past the + left margin. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrcursorLeftpsee above

CUD + Cursor Down + ECMA VT100 +

+ ESC [ Pn B + Default: 1 +

Moves the cursor down a number of lines as specified in the parameter + without changing columns. The cursor cannot be moved past the bottom + margin. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrcursorDownpsee above

CUF + Cursor Foreward + ECMA VT100 +

+ ESC [ Pn C + Default: 1 +

Moves the cursor to the right a number of positions + specified in the parameter. The cursor cannot be moved past the right + margin. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrcursorRightpsee above

CUP + Cursor Position + ECMA VT100 +

+ ESC [ Pn;Pn H + Default: 1 1 +

Moves the curor to the position specified by the + parameters. The first parameter specifies the line, and the second + specifies the column. A value of zero for either line or column moves + the cursor to the first line or column in the display. The default + string (<ESC>H) homes the cursor. In the VT100, this command behaves + identically to it's format effector counterpart, HVP. +

+ The numbering of the lines depends upon the state of the Origin Mode + (DECOM). +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrsetCursorYXp,qsee above

CUU + Cursor Up + ECMA VT100 +

+ ESC [ Pn A + Default: 1 +

Moves the cursor up without changing columns. The cursor is moved up a + number of lines as indicated by the parameter. The cursor cannot be + moved beyond the top margin. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrcursorUppsee above

DA + Device Attributes Request + ECMA VT100 +

+ ESC [ Pn c + Default: 0 +

The host requests the VT100 to send a DA sequence to indentify + itself. This is done by sending the DA sequence with no parameters, + or with a parameter of zero. + The device replies by (DECDA). +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emureportTerminalTypesee above

DC1 + Device Control One + VT100 +

+ 0x11 +

Causes terminal to resume transmission (XON). +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

DC2 + Device Control Two + VT100 XTERM Linux KONSOLE +

+ 0x12 +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

DC3 + Device Control Three + VT100 XTERM Linux KONSOLE +

+ 0x13 +

Causes terminal to stop transmitting all codes except XOFF and XON (XOFF). +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

DC4 + Device Control Four + VT100 XTERM Linux KONSOLE +

+ 0x14 +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

DCH + Delete Character + ECMA KONSOLE +

+ ESC [ Pn P +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AxtermscrdeleteCharspsee above

DECALN + Screen Alignment Display + VT100 +

+ ESC # 8 +

Causes the VT100 to fill it's screen with + uppercase Es for screen focus and alignment. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrhelpAlignsee above

DECANM + ANSI/VT52 Mode + VT100 +

This is a private parameter to the SM and RM + control sequences. The + reset state causes only VT52 compatible escape sequences to be + recognized. The set state causes only ANSI compatible escape sequences + to be recognized. See the entries for MODES, SM, RM + and VT52ANSI. +

DECARM + Auto Repeat Mode + VT100 +

This is a private parameter to the SM and RM + control sequences. The + reset state causes no keyboard keys to auto-repeat, the set state + causes most of them to. See MODES, SM and RM. +

DECAWM + Autowrap Mode + VT100 +

This is a private parameter to the SM and RM + control sequences. The + reset state prevents the cursor from moving when characters are + received while at the right margin. The set state causes these + characters to advance to the next line, causing a scroll up if required + and permitted. See MODES, SM, and + RM. +

DECCKM + Cursor Keys Mode + VT100 +

This is a private parameter to the SM and RM + control requences. This + mode is only effective when the terminal is in keypad application mode + (DECKPAM) and the ANSI/VT52 mode (DECANM) + is set. Under these + conditions, if this mode is reset, the cursor keys will send ANSI + cursor control commands. If setm the cursor keys will send application + function commands. See MODES, RM, and + SM. +

DECCOLM + Column Mode + VT100 +

This is a private parameter to the SM and RM + control sequences. The + reset state causes an 80 column screen to be used. The set state + causes a 132 column screen to be used. See MODES, + RM, and SM. +

DECDA + Device Attributes Reply + VT100 +

+ ESC [ ? 1;Pn c +

Response to the DA request (VT100 to host) is generated + by the VT100 as a DECDA control sequence with the numeric parameters as + follows: +

PnMeaning
0No options
1Processor Option (STP)
2Advanced Video Option (AVO)
3AVO and STP
4Graphics Option (GPO)
5GPO and STP
6GPO and AVO

DECDHLB + Double Height Line (Bottom) + VT100 +

+ ESC # 4 +

This sequence cause the line containing the cursor to become the + bottom half of a double-height, double width line. + If the line was single width single height, all + characters to the right of the center of the screen will be lost. The + cursor remains over the same character position, unless it would be to + the right of the right margin, in which case it is moved to the right + margin. +

+ DECDHLB and DECDHLT + should be used in pairs on adjacent lines with each line containing the + same character string. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

DECDHLT + Double Height Line (Top) + VT100 +

+ ESC # 3 +

Cause the line containing the cursor to become the top half of a + double-height, double width line. + If the line was single width single height, all + characters to the right of the center of the screen will be lost. The + cursor remains over the same character position, unless it would be to + the right of the right margin, in which case it is moved to the right + margin. +

+ DECDHLB and DECDHLT + should be used in pairs on adjacent lines with each line containing the + same character string. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

DECDWL + Double Width Line + VT100 +

+ ESC # 6 +

This causes the line that contains the cursor to become double-width + single height. If the line was single width, all characters ro the + right of the center of the screen will be lost. The cursor remains + over the same character position, unless it would be to the right of + the right margin, in which case it is moved to the right margin. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

DECID + Identify Terminal + VT100 +

+ ESC Z +

This sequence causes the same response as the DA sequence. This + sequence will not be supported in future models. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emureportTerminalTypesee above

DECINLM + Interlace Mode + VT100 +

This is a private parameter to the RM and SM + control sequences. The + reset state (non-interlace) causes the video processor to display 240 + scan lines per frame. The set state causes the video processor to + display 480 scan lines per screen. See MODES, + RM, and SM. +

DECKPAM + Keypad Application Mode + VT100 +

+ ESC = +

The auxiliary keypad keys will transmit control sequences. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emusetModeMODE_AppKeyPadsee above

DECKPNM + Keypad Numeric Mode + VT100 +

+ ESC > +

The auxiliary keypad keys will send ASCII codes corresponding to the + characters engraved on their keys. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuresetModeMODE_AppKeyPadsee above

DECLL + Load LEDs + VT100 +

+ ESC [ Ps;... q + Default: 0 +

Load the four programmable LEDs on the keyboard according to the parameter(s). +

SubcodeEmulationScopeOperationArgsMeaning
0VT100emuIgnoreClear all LEDs
1VT100emuIgnoreLight LED 1
2VT100emuIgnoreLight LED 2
3VT100emuIgnoreLight LED 3
4VT100emuIgnoreLight LED 4

DECOM + Origin Mode + VT100 +

This is a private parameter to SM and RM + control sequences. The reset + state causes the origin (or home position) to be the upper left + character position of the screen. Line and column numbers are, + therefore, independent of current margin settings. The cursor may be + positioned outside the margins with a cursor position (CUP) or + horizontal and vertical position (HVP) control. +

+ The set state causes the origin to be at the upper left character + position within the current margins. Line and column numbers are, + therefore, relative to the current margin settings. The cursor cannot + be positioned outside of the margins. +

+ The cursor is moved to the new home position when this mode is set or + reset. Lines and columns are numbered consecutively, with the origin + being line 1, column 1. +

DECRC + Restore Cursor + VT100 +

+ ESC 8 +

This sequence causes the previously saved cursor position, graphic + rendition, and character set to be restored. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrrestoreCursorsee above

DECREPTPARM + Report Terminal Parameters + ECMA VT100 +

+ ESC [ sol;par;nbits;xspd;rspd;cmul;flags x +

This sequence is generated by the VT100 to notify the host of the + status of selected terminal parameters. The status sequence may be + sent when requested by the host (via DECREQTPARM) + or at the terminal's + discretion. On power up or reset, the VT100 is inhibited from sending + unsolicited reports. +

+ The meanings of the sequence parameters are: +

cmulMeaning
1The bit rate multiplier is 16

flagsMeaning
0-15This value communicates the four switch values in block 5 of SET-UP B, which are only visible to the user when an STP option is installed.

nbitsMeaning
18 bits per character
27 bits per character

parMeaning
1No parity set
4Parity set and odd
5Parity set and even

solMeaning
1This message is a report.
2This message is a report, and the terminal is only reporting on request.

speedMeaning (xspd,rspd)
0Speed set to 50 bps
8Speed set to 75 bps
16Speed set to 110 bps
24Speed set to 134.5 bps
32Speed set to 150 bps
40Speed set to 200 bps
48Speed set to 300 bps
56Speed set to 600 bps
64Speed set to 1200 bps
72Speed set to 1800 bps
80Speed set to 2000 bps
88Speed set to 2400 bps
96Speed set to 3600 bps
104Speed set to 4800 bps
112Speed set to 9600 bps
120Speed set tp 19200 bps

DECREQTPARM + Request Terminal Parameters + ECMA VT100 +

+ ESC [ Ps x +

The host sends this sequence to request the VT100 to send a + DECREPTPARM + sequence back. {Ps} can be either 0 or 1. If 0, the terminal will be + allowed to send unsolicited DECREPTPARMs. + These reports will be generated each time the terminal exits the SET-UP mode. + If {Ps} is 1, then the terminal will only generate + DECREPTPARMs in response to a request. +

SubcodeEmulationScopeOperationArgsMeaning
0VT100emureportTerminalParms2Meaning
1VT100emureportTerminalParms3Meaning

DECRST + DEC Private Reset Mode + VT100 KONSOLE +

+ ESC [ ? Ps;... l +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
1VT100emuresetModeMODE_AppCuKeysMeaning
2VT100emuresetModeMODE_AnsiMeaning
3VT100emusetColumns80Meaning
4VT100emuIgnoredMeaning
5VT100scrresetModeMODE_ScreenMeaning
6VT100scrresetModeMODE_OriginMeaning
7VT100scrresetModeMODE_WrapMeaning
8VT100emuIgnoredMeaning
9VT100emuIgnoredMeaning
25VT100emuresetModeMODE_CursorMeaning
47xtermemuresetModeMODE_AppScreenMeaning
1000xtermemuresetModeMODE_Mouse1000Meaning
1001xtermemuIgnoredMeaning
1047xtermemuresetModeMODE_AppScreenMeaning
1048xtermscrrestoreCursorMeaning

DECSC + Save Cursor + VT100 +

+ ESC 7 +

Causes the cursor position, graphic rendition, and character set to be + saved. (See DECRC) +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrsaveCursorsee above

DECSCLM + Scrolling Mode + VT100 +

This is a private parameter to RM and SM + control sequences. The reset + state causes scrolls to "jump" instantaneuously one line at a time. + The set state causes the scrolls to be "smooth", and scrolls at a + maximum rate of siz lines/sec. See MODES, + RM, and SM. +

DECSCNM + Screen Mode + VT100 +

This is a private parameter to RM and SM + control sequences. The reset + state causes the screen to be black with white characters; the set + state causes the screen to be white with black characters. + See MODES, RM, and SM. +

DECSET + DEC Private Set Mode + VT100 KONSOLE +

+ ESC [ ? Ps;... h +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
1VT100emusetModeMODE_AppCuKeysMeaning
3VT100emusetColumns132Meaning
4VT100emuIgnoredMeaning
5VT100scrsetModeMODE_ScreenMeaning
6VT100scrsetModeMODE_OriginMeaning
7VT100scrsetModeMODE_WrapMeaning
8VT100emuIgnoredMeaning
9VT100emuIgnoredMeaning
25VT100emusetModeMODE_CursorMeaning
47xtermemusetModeMODE_AppScreenMeaning
1000xtermemusetModeMODE_Mouse1000Meaning
1001xtermemuIgnoredMeaning
1047xtermemusetModeMODE_AppScreenMeaning
1048xtermscrsaveCursorMeaning

DECSTBM + Set Top and Bottom Margins + VT100 +

+ ESC [ Pn;Pn r + Default: 1 ScreenLines +

This sequence sets the top and bottom margins to define the scrolling + region. The first parameter is the line number of the first line in + the scrolling region; the second parameter is the line number of the + bottom line of the scrolling region. +

+ Default is the entire screen (no margins). + The minimum region allowed is two lines, i.e., the top line + must be less than the bottom. The cursor is placed in the home + position (See DECOM). +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrsetMarginsp,qsee above

DECSWL + Single-width Line + VT100 +

+ ESC # 5 +

This causes the line which contains the cursor to become single-width, + single-height. The cursor remains on the same character position. + This is the default condition for all new lines on the screen. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

DECTST + Invoke Confidence Test + ECMA VT100 +

+ ESC [ 2;Ps y +

Ps is the parameter indicating the test to be done. It is computed by + taking the weight indicated for each desired test and adding them + together. If Ps is 0, no test is performed but the VT100 is reset. +

WeightMeaning
1POST (ROM checksum, RAM NVR, keyboardm and AVO)
2Data Loop Back (Loopback connector required)
3EIA Modem Control Test (Loopback connector req.)
4Repeat Testing until failure

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

DEL + Delete Character + VT100 +

+ 0x7f +

Ignored +

DL + Delete Line + ECMA KONSOLE +

+ ESC [ Pn M +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AkonsolescrdeleteLinespsee above

DLE + Data Link Escape + VT100 XTERM Linux KONSOLE +

+ 0x10 +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

DSRREP + Device Status Report Reply + ECMA VT100 +

+ ESC [ Status n +

Reports the general status of the VT100 according to the + following parameters. +

+ DSRREP with a parameter of 0 or 3 is always sent as a response to a + requesting DSRREQ with a parameter of 5. +

StatusMeaning
0Ready, no faults detected
3Malfunction detected

DSRREQ + Device Status Report + ECMA VT100 +

+ ESC [ Ps n +

Requests status of the VT100 according to the following parameters. +

SubcodeEmulationScopeOperationArgsMeaning
5VT100emureportStatusReport Status (using a DSRREP control sequence)
6VT100emureportCursorPositionReport Active Position (using a CPR sequence)

ECH + Erase Character + ECMA KONSOLE +

+ ESC [ Pn X +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AkonsolescreraseCharspsee above

ED + Erase in Display + ECMA VT100 +

+ ESC [ Ps J + Default: 0 +

This sequence erases some or all of the characters in the display + according to the parameter. Any complete line erased by this sequence + will return that line to single width mode. +

SubcodeEmulationScopeOperationArgsMeaning
0VT100scrclearToEndOfScreenErase from the cursor to the end of the screen.
1VT100scrclearToBeginOfScreenErase from the start of the screen to the cursor.
2VT100scrclearEntireScreenErase the entire screen.

EL + Erase in Line + ECMA VT100 +

+ ESC [ Ps K + Default: 0 +

Erases some or all characters in the active line, according to the + parameter. +

SubcodeEmulationScopeOperationArgsMeaning
0VT100scrclearToEndOfLineErase from cursor to the end of the line.
1VT100scrclearToBeginOfLineErase from the start of the line to the cursor.
2VT100scrclearEntireLineErase the entire line.

EM + End Of Medium + VT100 XTERM Linux KONSOLE +

+ 0x19 +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

ENQ + Enquiry + VT100 +

+ 0x05 +

Transmit the ANSWERBACK message. The answerback message can be loaded + in SET-UP B (i.e. is a configurable string). +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emureportAnswerBacksee above

EOT + End Of Transmission + VT100 XTERM Linux KONSOLE +

+ 0x04 +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

ESC + Escape + ECMA VT100 +

+ 0x1b +

Introduces a control sequence. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

ETB + End Of Transmission Block + VT100 XTERM Linux KONSOLE +

+ 0x17 +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

ETX + End Of Text + VT100 XTERM Linux KONSOLE +

+ 0x03 +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

FF + Form Feed + VT100 +

+ 0x0c +

Same as LF. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuNewLinesee above

FS + File Separator (IS4 - Information Separator Four) + VT100 XTERM Linux KONSOLE +

+ 0x1c +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

GS + Group Separator (IS3 - Information Separator Three) + VT100 XTERM Linux KONSOLE +

+ 0x1d +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

HT + Horizontal Tabulation + VT100 +

+ 0x09 +

Move cursor to the next tab stop, or to the right margin + if no further tabs are set. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrTabulatesee above

HTS + Horizontal Tab Set + ECMA VT100 +

+ ESC H +

Set a tab stop at the current cursor position. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrchangeTabStopTRUEsee above

HVP + Horizontal and Vertical Position + ECMA VT100 +

+ ESC [ Pn;Pn f + Default: 1 1 +

Moves the cursor to the position specified by the parameters. The + first parameter specifies the line, and the second specifies the + column. A parameter of 0 or 1 causes the active position to move to + the first line or column in the display. In the VT100, this control + behaves identically with it's editor counterpart, CUP. + The numbering of hte lines depends upon the state of the Origin Mode + (DECOM). +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrsetCursorYXp,qsee above

ICH + Insert Character + ECMA KONSOLE +

+ ESC [ Pn @ +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AkonsolescrinsertCharspsee above

IL + Insert Line + KONSOLE +

+ ESC [ Pn L +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AxtermscrinsertLinespsee above

IND + Index + ECMA VT100 +

+ ESC D +

This sequence causes the cursor to move downward one line without + changing the column. If the cursor is at the bottom margin, a scroll + up is performed. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrindexsee above

KEYBOARD + Keyboard Events + KONSOLE +

FIXME. explain +

KeyCode
AltButton"\033"
ReturnMODE_NewLine ? "\r\n" : "\r"
BackspaceMODE_BsHack ? "\x7f" : "\x08"
DeleteMODE_BsHack ? "\033[3~" : "\x7f"
Up!MODE_Ansi ?"\033A" : MODE_AppCuKeys ?"\033OA" : "\033[A"
Down!MODE_Ansi ?"\033B" : MODE_AppCuKeys ?"\033OB" : "\033[B"
Right!MODE_Ansi ?"\033C" : MODE_AppCuKeys ?"\033OC" : "\033[C"
Left!MODE_Ansi ?"\033D" : MODE_AppCuKeys ?"\033OD" : "\033[D"
F1Xterm? "\033[11~": "\033[[A"
F2Xterm? "\033[12~": "\033[[B"
F3Xterm? "\033[13~": "\033[[C"
F4Xterm? "\033[14~": "\033[[D"
F5Xterm? "\033[15~": "\033[[E"
F6"\033[17~"
F7"\033[18~"
F8"\033[19~"
F9"\033[20~"
F10"\033[21~"
F11"\033[23~"
F12"\033[24~"
Home"\033[7~"
End"\033[8~"
Prior"\033[5~"
Next"\033[6~"
Insert"\033[2~"
Control_Space"\x00"
Control_PrintreportAnswerBack()
AsciiCharacter

LF + Line Feed + VT100 +

+ 0x0a +

Causes either a line feed or new line operation (See LNM.) +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuNewLinesee above

LNM + Line Feed/New Line Mode + ECMA VT100 +

This is a parameter to SM and RM control sequences. + The reset state + causes the interpretation of the LF character to imply only vertical + movement of the cursor and causes the RETURN key to send the single + code CR. +

+ The set state causes the LF character to imply movement + to the first position of the following line, and causes the RETURN key + to send the code pair CR LF. This is the New Line option. +

+ This mode does not affect the Index (IND) or the next line + (NEL) format effectors. +

LS0 + Lock Shift Zero (Shift Out - SO) + VT100 +

+ 0x0e +

Invoke the G1 character set, as designated by the SCS control sequence. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scruseCharset1see above

LS1 + Lock Shift One (Shift In - SI) + VT100 +

+ 0x0f +

Invoke the G0 character set, as selected by the <ESC>( sequence. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scruseCharset0see above

LS2 + Lock Shift Two + KONSOLE +

+ ESC n +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AxtermscruseCharset2see above

LS3 + Lock Shift Three + KONSOLE +

+ ESC o +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AxtermscruseCharset3see above

MC + Media Copy + ECMA VT100 +

+ ESC [ Pn i +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
0VT100emuIgnoredMeaning

MOUSE + Mouse Events + KONSOLE +

FIXME. explain +

NAK + Negative Acknowledge + VT100 XTERM Linux KONSOLE +

+ 0x15 +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

NEL + Next Line + ECMA VT100 +

+ ESC E +

This causes the cursor to move to the first position of the next line + down. If the cursor is on the bottom line, a scroll is performed. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrNextLinesee above

NUL + Null + VT100 XTERM Linux KONSOLE +

+ 0x00 +

NUL is used as media- or time-fill. It is ignored by Konsole, but may + be sensible for devices which requiere a recognizable amount of time + to complete some commands (e.g. form feed on a non-buffering printing + device). +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

PRINT + Printable Characters + ECMA VT100 +

+ 0x20..0x7e,0xa0..0xff +

Printable characters are basically displayed. They my cause a line + wrap when the cursor is already located at the end of the line. +

+ The VT100 has a unique way to do this by producing a line wrap before + the character would be displayed on the next line. This feature allows + to print at the rightmost column without producing an implicit line feed. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrShowCharacterpsee above

RI + Reverse Index + ECMA VT100 +

+ ESC M +

Move the cursor up one line without changing columns. If the cursor is + on the top line, a scroll down is performed. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrreverseIndexsee above

RIS + Reset to Initial State + ECMA VT100 +

+ ESC c +

Resets the VT100 to the state is has upon power up. This also causes + the execution of the POST and signal INT H to be asserted briefly. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuresetTerminalsee above

RM + Reset Mode + ECMA VT100 +

+ ESC [ Ps;... l +

Resets one or more VT100 modes as specified by each selective parameter + in the parameter string. Each mode to be reset is specified by a + separate parameter. See MODES and SM. +

SubcodeEmulationScopeOperationArgsMeaning
4xtermscrresetModeMODE_InsertMeaning
20VT100emuresetModeMODE_NewLineLNM

RS + Record Separator (IS2 - Information Separator Two) + VT100 XTERM Linux KONSOLE +

+ 0x1e +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

SCS + Select Character Set + ECMA VT100 +

+ ESC Pc;Cs +

The appropriate D0 and G1 character sets are designated from one of the + five possible sets. The G0 and G1 sets are invoked by the characters + LS1 and LS0, respectively. +

+ The United Kingdom and ASCII sets conform to the "ISO international + register of character sets to be used with escape sequences". The + other sets are private character sets. Special graphics means that the + graphic characters fpr the codes 0137 to 0176 are replaced with other + characters. The specified character set will be used until another SCS + is received. +

CsCharacter Set
AUnited Kingdom Set
BASCII Set
0Special Graphics
1Alternate Character ROM (Standard Character Set)
2Alternate Character ROM (Special Graphics)

PcCharacter Selection
(Select G0 Set
)Select G1 Set

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emusetCharsetp-'(',qsee above

SGR + Select Graphic Rendition + ECMA VT100 +

+ ESC [ Ps;... m +

Invoke the graphic rendition specified by the parameter(s). All + following characters transmitted to the VT100 are rendered according + to the parameter(s) until the next occurrence of an SGR. +

+ All other parameter values are ignored. +

+ Without the Advanced Video Option, only one type of character attribute + is possible, as determined by the cursor selection; in that case + specifying either underscore or reverse will activate the currently + selected attribute. +

SubcodeEmulationScopeOperationArgsMeaning
0VT100scrsetDefaultRenditionAttributes Off
1VT100scrsetRenditionRE_BOLDBold or increased intensity
4VT100scrsetRenditionRE_UNDERLINEUnderscore
5VT100scrsetRenditionRE_BLINKBlink
7VT100scrsetRenditionRE_REVERSENegative (reverse) image
10konsoleemuIgnoredMeaning
11konsoleemuIgnoredMeaning
12konsoleemuIgnoredMeaning
22VT100scrresetRenditionRE_BOLDMeaning
24VT100scrresetRenditionRE_UNDERLINEMeaning
25VT100scrresetRenditionRE_BLINKMeaning
27VT100scrresetRenditionRE_REVERSEMeaning
30xtermscrsetForeColor0Meaning
31xtermscrsetForeColor1Meaning
32xtermscrsetForeColor2Meaning
33xtermscrsetForeColor3Meaning
34xtermscrsetForeColor4Meaning
35xtermscrsetForeColor5Meaning
36xtermscrsetForeColor6Meaning
37xtermscrsetForeColor7Meaning
39xtermscrsetForeColorToDefaultMeaning
40xtermscrsetBackColor0Meaning
41xtermscrsetBackColor1Meaning
42xtermscrsetBackColor2Meaning
43xtermscrsetBackColor3Meaning
44xtermscrsetBackColor4Meaning
45xtermscrsetBackColor5Meaning
46xtermscrsetBackColor6Meaning
47xtermscrsetBackColor7Meaning
49xtermscrsetBackColorToDefaultMeaning
90xtermscrsetForeColor8Meaning
91xtermscrsetForeColor9Meaning
92xtermscrsetForeColor10Meaning
93xtermscrsetForeColor11Meaning
94xtermscrsetForeColor12Meaning
95xtermscrsetForeColor13Meaning
96xtermscrsetForeColor14Meaning
97xtermscrsetForeColor15Meaning
100xtermscrsetBackColor8Meaning
101xtermscrsetBackColor9Meaning
102xtermscrsetBackColor10Meaning
103xtermscrsetBackColor11Meaning
104xtermscrsetBackColor12Meaning
105xtermscrsetBackColor13Meaning
106xtermscrsetBackColor14Meaning
107xtermscrsetBackColor15Meaning

SM + Set Mode + ECMA VT100 +

+ ESC [ Ps;... h +

Causes one or more modes to be set within the VT100 as specified by + each selective parameter string. Each mode to be set is specified by a + seperate parameter. A mode is considered set until it is reset by a + Reset Mode (RM) control sequence. + See RM and MODES. +

SubcodeEmulationScopeOperationArgsMeaning
4VT100scrsetModeMODE_InsertMeaning
20VT100emusetModeMODE_NewLineLNM

SOH + Start Of Heading + VT100 XTERM Linux KONSOLE +

+ 0x01 +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

STX + Start Of Text + VT100 XTERM Linux KONSOLE +

+ 0x02 +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

SUB + Substitute + VT100 +

+ 0x1a +

Same as CAN. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100scrShowCharacter2see above

SYN + Synchronous Idle + VT100 XTERM Linux KONSOLE +

+ 0x16 +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

TBC + Tabulation Clear + ECMA VT100 +

+ ESC [ Ps g +

If the parameter is missing or 0, this will clear the tab stop at the + cursor's position. If it is 3, this will clear all of the tab stops. + Any other parameter is ignored. +

SubcodeEmulationScopeOperationArgsMeaning
0VT100scrchangeTabStopFALSEMeaning
3VT100scrclearTabStopsMeaning

US + Unit Separator (IS1 - Information Separator One) + VT100 XTERM Linux KONSOLE +

+ 0x1f +

Ignored +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuIgnoredsee above

VPA + Vertical Position Absolute + ECMA KONSOLE +

+ ESC [ Pn d +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AxtermscrsetCursorYpsee above

VT + Vertical Tabulation + VT100 +

+ 0x0b +

Same as LF. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT100emuNewLinesee above

VT52ANSI + VT52 ANSI Ansi Mode + VT100 XTERM VT52 KONSOLE +

+ ESC < +

This is an extension to the VT52 commands to embed the emulation into VT100. + It allows to return back to VT100 emulation (ANSI mode). + See also DECANM and SM. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT52emusetModeMODE_Ansisee above

VT52CUB + VT52 Cursor Back + KONSOLE +

+ ESC D +

See CUB. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT52scrcursorLeft1see above

VT52CUD + VT52 Cursor Down + KONSOLE +

+ ESC B +

See CUD. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT52scrcursorDown1see above

VT52CUF + VT52 Cursor Forward + KONSOLE +

+ ESC C +

See CUF. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT52scrcursorRight1see above

VT52CUH + VT52 Cursor Home + KONSOLE +

+ ESC H +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT52scrsetCursorYX1,1see above

VT52CUP + VT52 Cursor Position + KONSOLE +

+ ESC Y X;Y +

Line and column numbers for direct cursor address are single + character codes whose values are the desired number plus + 37 (in Octal). Line and column numbers start at 1. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT52scrsetCursorYXp-31,q-31see above

VT52CUU + VT52 Cursor Up + KONSOLE +

+ ESC A +

See CUU. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT52scrcursorUp1see above

VT52EDL + VT52 Clear To End Of Line + KONSOLE +

+ ESC K +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT52scrclearToEndOfLinesee above

VT52EDS + VT52 Clear To End Of Screen + KONSOLE +

+ ESC J +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT52scrclearToEndOfScreensee above

VT52KPAM + VT52 Enter alternate keypad mode + KONSOLE +

+ ESC = +

+

SubcodeEmulationScopeOperationArgsMeaning
N/AVT52emusetModeMODE_AppKeyPadsee above

VT52KPNM + VT52 Exit alternate keypad mode + KONSOLE +

+ ESC > +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT52emuresetModeMODE_AppKeyPadsee above

VT52REP + VT52 Report Terminal Type + KONSOLE +

+ ESC Z +

Response to ESC Z is ESC / Z. +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT52emureportTerminalTypesee above

VT52RI + VT52 Reverse Index + KONSOLE +

+ ESC I +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT52scrreverseIndexsee above

VT52SCSF + VT52 Select special graphics character set + KONSOLE +

+ ESC F +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT52scrsetAndUseCharset0,'0'see above

VT52SCSG + VT52 Select ASCII character set + KONSOLE +

+ ESC G +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
N/AVT52scrsetAndUseCharset0,'B'see above

XTERESTORE + XTerm Private Restore Mode + XTERM KONSOLE +

+ ESC [ ? Ps;... r +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
1xtermemurestoreModeMODE_AppCuKeysMeaning
6xtermscrrestoreModeMODE_OriginMeaning
7xtermscrrestoreModeMODE_WrapMeaning
1000xtermemurestoreModeMODE_Mouse1000Meaning
1001xtermemuIgnoredMeaning

XTESAVE + XTerm Private Save Mode + XTERM KONSOLE +

+ ESC [ ? Ps;... s +

FIXME. explain +

SubcodeEmulationScopeOperationArgsMeaning
1xtermemusaveModeMODE_AppCuKeysMeaning
6xtermscrsaveModeMODE_OriginMeaning
7xtermscrsaveModeMODE_WrapMeaning
1000xtermemusaveModeMODE_Mouse1000Meaning
1001xtermemuIgnoredMeaning
+

+ + + + +
On VT100
+

+ +The VT100 is an upward and downward software-compatible terminal; +that is, previous Digital video terminals have Digital's private standards +for control sequences. The American National Standards Institute has since +standardized escape and control sequences in terminals in documents X3.41-1974 +and X3.64-1977. +

+The VT100 is compatible with both the previous Digital standard and +ANSI standards. Customers may use existing Digital software designed around +the VT52 or new VT100 software. The VT100 has a "VT52 compatible" mode in +which the VT100 responds to control sequences like a VT52. In this mode, most +of the new VT100 features cannot be used. +

+Throughout this document references will be made to "VT52 mode" or +"ANSI mode". These two terms are used to indicate the VT100's software +compatibility. +

+NOTE: The ANSI standards allow the manufacturer flexibility in implementing +each function. This document describes how the VT100 will respond to the +implemented ANSI central function. +

+ +

+ + + + +
Modes
+

+ + + +The Following is a list of VT100 modes which may be changed with Set +Mode (SM) and Reset Mode (RM) controls. + +

ANSI Specified Modes

+ + + + + + +
ParameterMnemonicFunction



0 Error (Ignored)
20 LNM Line Feed/New Line Mode
+ + +

DEC Private Modes

+ +If the first character in the parameter string is ? (077), the +parameters are interpreted as DEC private parameters according to the +following: + + + + + + + + + + + + + +
ParameterMnemonicFunction +



0 Error (Ignored)
1DECCKM Cursor Key
2DECANM ANSI/VT52
3DECCOLMColumn
4DECSCLMScrolling
5DECSCNMScreen
6DECOM Origin
7DECAWM Auto Wrap
8DECARM Auto Repeat
9DECINLMInterlace
+ +Any other parameter values are ignored. + +

+The following modes, which are specified in the ANSI standard, may be +considered to be permanently set, permanently reset, or not applicable, +as noted. + + + + + + + + + + + + + + + + + + + + +
MnemonicFunction State
CRM Control Representation Reset
EBM Editing Boundary Reset
ERM Erasure Set
FEAM Format Effector Action Reset
FETM Format Effector Transfer Reset
GATM Guarded Area Transfer NA
HEM Horizontal Editing NA
IRM Insertion-replacement Reset
KAM Keyboard Action Reset
MATM Multiple area transfer NA
PUM Positioning Unit Reset
SATM Selected Area Transfer NA
SRTM Status Reporting TransferReset
TSM Tabulation Stop Reset
TTM Transfer Termination NA
VEM Vertical Editing NA
+

Keyboard Codes

+ +The notation <ESC> denotes a single ASCII Escape character, 1Bx. + + + + + + + + + + + + +
Cursor KeyVT52 modeANSI mode w/cursor
key mode reset
ANSI mode w/cursor
key mode set
UP <ESC>A<ESC>[A<ESC>OA
DOWN <ESC>B<ESC>[B<ESC>OB
RIGHT<ESC>C<ESC>[C<ESC>OC
LEFT <ESC>D<ESC>[D<ESC>OD
+

Special Graphics Characters

+ +If the Special Graphics set is selected, the graphics for ASCII codes +0137 through 0176 will be replaced according to the following table (see the +SCS control sequence). +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Octal
Code
ASCII
Graphic
Special Graphic



0137_Blank
0140`Diamond
0141aCheckerboard
0142bDigraph: (HT)
0143cDigraph: (FF)
0144dDigraph: (CR)
0145eDigraph: (LF)
0146fDegree Symbol: °
0147g+/- Symbol: ±
0150hDigraph: (NL)
0151iDigraph: (VT)
0152jLower-right corner
0153kUpper-right corner
0154lUpper-left corner
0155mLower-left corner
0156nCrossing lines (+)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Octal
Code
ASCII
Graphic
Special Graphic



0157oHoriz Line - scan 1
0160pHoriz Line - scan 3
0161qHoriz Line - scan 5
0162rHoriz Line - scan 7
0163sHoriz Line - scan 9
0164tLeft "T" (|-)
0165uRight "T" (-|)
0166vBottom "T" (|_)
0167wTop "T" (T)
0170xVertical Bar (|)
0171yLess/Equal: ≤
0172zGraeter/Egual: ≥
0173{Pi symbol: π
0174|Not equal: ≠
0175}UK pound symbol: £
0176~Centered dot: ·
+
+
+NOTE 1: Codes 0152-0156 and 0164-0170 are used to draw rectangular grids" each +piece of this set is contiguous with other so the lines formed will be +unbroken. +

+NOTE 2: Codes 0157-0163 give better vertical resolution than dashes and +underlines when drawing graphs; using these segments, 120 x 132 resolution may +be obtained in 132 column mode with the Advanced Video Option installed. +

+ +

References

+

+


+ +This text is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +

+Lars Dölle, 1998 + + + + diff --git a/konsole/doc/VT100/vt100.gif b/konsole/doc/VT100/vt100.gif new file mode 100644 index 000000000..0d3e21d49 --- /dev/null +++ b/konsole/doc/VT100/vt100.gif @@ -0,0 +1,401 @@ +/* XPM */ +static char*vt100[]={ +"188 161 237 2", +".N c #5d5d5d", +"bA c #040404", +".f c #f4f4f4", +".Y c #9b9b9b", +"Qt c None", +"#Z c #424242", +".w c #d9d9d9", +"#W c #808080", +"aF c #272727", +"bq c #bebebe", +".M c #656565", +"bz c #0c0c0c", +"aI c #a3a3a3", +"#h c #4a4a4a", +".x c #e1e1e1", +"a2 c #888888", +"ao c #2f2f2f", +"bK c #c6c6c6", +"#. c #6d6d6d", +"bt c #141414", +".3 c #ababab", +"aT c #525252", +".Z c #e9e9e9", +"aX c #909090", +"#M c #373737", +"aP c #cecece", +"#x c #757575", +"aK c #1c1c1c", +"#s c #b3b3b3", +"ag c #5a5a5a", +"bC c #010101", +".s c #f1f1f1", +"ba c #989898", +"#2 c #3f3f3f", +"ac c #d6d6d6", +".H c #7d7d7d", +"av c #242424", +"bL c #bbbbbb", +".P c #626262", +".F c #a0a0a0", +"#J c #474747", +".p c #dedede", +"ae c #858585", +"ar c #2c2c2c", +"#r c #c3c3c3", +".R c #6a6a6a", +"bg c #111111", +"az c #a8a8a8", +"#e c #4f4f4f", +".i c #e6e6e6", +"a5 c #8d8d8d", +"#P c #343434", +"#q c #cbcbcb", +"#A c #727272", +"aW c #191919", +"bh c #b0b0b0", +"#D c #575757", +".e c #eeeeee", +"ad c #959595", +"#k c #3c3c3c", +".B c #d3d3d3", +".6 c #7a7a7a", +"aL c #212121", +"#7 c #b8b8b8", +"#a c #5f5f5f", +"bF c #060606", +".# c #f6f6f6", +"bd c #9d9d9d", +"#H c #444444", +".v c #dbdbdb", +"b# c #828282", +"aE c #292929", +"bp c #c0c0c0", +".L c #676767", +"bj c #a5a5a5", +"#g c #4c4c4c", +".j c #e3e3e3", +"a1 c #8a8a8a", +"at c #313131", +".1 c #c8c8c8", +".8 c #6f6f6f", +"bl c #161616", +"#R c #adadad", +"#E c #545454", +".A c #ebebeb", +"#p c #929292", +"#j c #393939", +"ai c #d0d0d0", +".I c #777777", +"aM c #1e1e1e", +"bx c #b5b5b5", +".U c #5c5c5c", +"bG c #030303", +".g c #f3f3f3", +".4 c #9a9a9a", +"#3 c #414141", +"aa c #d8d8d8", +"af c #7f7f7f", +"au c #262626", +".D c #bdbdbd", +".V c #646464", +"be c #a2a2a2", +"#0 c #494949", +".k c #e0e0e0", +"a0 c #878787", +"aD c #2e2e2e", +"bH c #c5c5c5", +".K c #6c6c6c", +"bu c #131313", +"bs c #aaaaaa", +"#f c #515151", +".c c #e8e8e8", +".G c #8f8f8f", +"#4 c #363636", +"aB c #cdcdcd", +".7 c #747474", +"aJ c #1b1b1b", +"bO c #b2b2b2", +"a. c #595959", +"bB c #000000", +".0 c #f0f0f0", +"a9 c #979797", +"#I c #3e3e3e", +"ah c #d5d5d5", +"a4 c #7c7c7c", +"aR c #232323", +"bI c #bababa", +".T c #616161", +"bD c #080808", +"bi c #9f9f9f", +"#1 c #464646", +".r c #dddddd", +"aY c #848484", +"aC c #2b2b2b", +"ax c #c2c2c2", +"## c #696969", +"aH c #a7a7a7", +"#F c #4e4e4e", +".n c #e5e5e5", +"a6 c #8c8c8c", +"#N c #333333", +".C c #cacaca", +".9 c #717171", +".E c #afafaf", +"#d c #565656", +".h c #ededed", +"#u c #949494", +"#L c #3b3b3b", +"#5 c #d2d2d2", +"#y c #797979", +"aO c #202020", +"#T c #b7b7b7", +"#b c #5e5e5e", +"bE c #050505", +".a c #f5f5f5", +"bc c #9c9c9c", +"#n c #434343", +".y c #dadada", +"#9 c #818181", +"as c #282828", +"bN c #bfbfbf", +".W c #666666", +"bw c #0d0d0d", +"#t c #a4a4a4", +"#Y c #4b4b4b", +".m c #e2e2e2", +".5 c #898989", +"aw c #303030", +"#S c #c7c7c7", +"#C c #6e6e6e", +"#8 c #acacac", +"ak c #535353", +".d c #eaeaea", +"aS c #919191", +"#Q c #383838", +"ap c #cfcfcf", +"#w c #767676", +"aQ c #1d1d1d", +"bP c #b4b4b4", +"bJ c #5b5b5b", +"by c #020202", +".z c #f2f2f2", +"bb c #999999", +"#i c #404040", +"ab c #d7d7d7", +"#v c #7e7e7e", +".2 c #bcbcbc", +".O c #636363", +"bv c #0a0a0a", +"bf c #a1a1a1", +"#G c #484848", +".l c #dfdfdf", +"aZ c #868686", +"al c #2d2d2d", +"bM c #c4c4c4", +"#B c #6b6b6b", +"bn c #a9a9a9", +"an c #505050", +".u c #e7e7e7", +"a7 c #8e8e8e", +"#m c #353535", +"br c #cccccc", +"#z c #737373", +"bo c #1a1a1a", +"aG c #b1b1b1", +"#c c #585858", +".b c #efefef", +"#V c #969696", +"#K c #3d3d3d", +"aq c #d4d4d4", +".X c #7b7b7b", +"am c #b9b9b9", +".S c #606060", +"aj c #9e9e9e", +"#o c #454545", +".q c #dcdcdc", +"a3 c #838383", +"aA c #2a2a2a", +"bm c #c1c1c1", +".Q c #686868", +"bk c #0f0f0f", +"#U c #a6a6a6", +"#X c #4d4d4d", +".o c #e4e4e4", +"b. c #8b8b8b", +"#O c #323232", +"#6 c #c9c9c9", +".J c #707070", +"aN c #171717", +"bQ c #aeaeae", +"aU c #555555", +".t c #ececec", +"a8 c #939393", +"#l c #3a3a3a", +"ay c #d1d1d1", +"aV c #787878", +"a# c #b6b6b6", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.a.b.b.c.d.b.e.bQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.#.f.f.f.g.e.h.c.i.j.k.l.m.k.l.l.m.l.k.m.n.m.m.m.o.o.m.m.k.o.m.m.k.l.l.k.k.k.m.k.k.p.k.q.k.k.m.l.m.j.o.o.m.m.r.jQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.a.f.f.f.f.f.a.#.f.f.#.f.s.s.b.t.u.o.l.v.w.v.r.l.l.m.m.m.j.x.x.m.m.m.o.o.o.o.o.i.i.c.i.u.i.n.n.i.o.o.o.j.o.j.o.j.m.m.x.m.x.m.k.x.x.m.m.k.k.m.m.o.o.o.o.o.m.m.x.yQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.g.g.g.s.z.g.s.h.A.h.u.u.o.o.k.j.o.m.j.x.q.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.M.O.Q.R.L.M.R.O.S.T.U.V.V.M.W.J.X.Y.y.Z.u.i.n.u.i.i.u.u.u.u.i.u.n.o.m.m.m.r.k.k.x.m.x.x.m.m.m.m.x.x.r.q.wQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.f.g.a.g.s.0.h.h.A.i.o.o.m.m.m.o.o.o.m.v.B.1.2.3.4.5.6.7.8.9#.#..K#..K.K#.##.R#.#..W.L.V####.P.O#a.N#a#b#c#d#e#f#g#h#i#j#k#l#j#m#n#o#o#h#p.b.Z.i.i.u.i.i.n.i.i.o.o.j.n.j.o.j.o.j.o.j.o.m.l.m.k.l.q.q.r.r.r.w.lQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.#.f.a.a.a.z.g.h.h.A.u.o.o.u.j.o.n.j.j.o.r.y#q#r#s#t#u#v.6#w#x#v#y#x#x#w.7#x#z.K#A#.#B.Q#..Q#.#C.K#C.K.V.V#D#E#F#g#G#G#h#o#H#I#J#n#n#o#G#n#K#L#i#M#N#O#M#P#O#L#Q#L#k#i#H#R.A.u.u.n.i.o.i.o.o.n.o.m.m.m.l.k.m.x.x.m.k.m.m.x.l.k.p.q.q.r.v.w.yQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.a.#.g.f.z.f.b.h.A.A.d.i.i.i.i.i.i.u.n.o.v.B#S#T#U#V#W#y#z.7#A.7.K#A#x#x.9#x.9.J#C.9.9#x.9#.#z#C.8#B.R.Q.N#c#d#D#D#F#f#F#X#Y#n#i#Z#0#1#I#i#i#K#2#I#Q#3#3#o#k#1#i#H#I#i#Q#L#Q#M#4#j#Q#4#L#M#i#K#2#I#J#5.i.o.m.o.m.k.l.l.r.r.q.r.l.p.k.q.q.r.r.r.l.v.r.q.v.y.y.v.q.y.v.vQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQt.s.0.h.h.t.A.t.t.Z.Z.d.c.c.u.i.w#5#6#7#8#V#9#x.8.R.V.R#..8#.#A.9#.#..K#C#.#C.K.J.K.J#B.8#A.9.M.Q.T.M.V.V.O#da.#c#F#F#0#g#H#n#I#k#i#k#i#i#o#Z#Z#i#i#n#j#L#M#k#Q#Q#M#l#Q#k#n#i#2#Z#H#i#1#2#K#k#k#L#k#i#L#j#o#2#k#2#K#L#Ha#.o.o.m.k.l.q.r.v.q.v.w.q.v.y.y.w.w.y.waa.w.w.y.w.wab.wac.w.w.y.y.xQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQt.g.b.h.e.b.e.h.A.h.A.t.t.d.Z.m#sadaeaf.7.6#A#B.V.W.Uag.P#b.V.R#..J#z#x.8##.L.R.V.Q#..R.L.S.O.Q##.U.U#c#F#h#f#f#e#0#Y#n#0#X#X#0#Y#3#i#3#l#2#l#I#4#L#I#Z#K#3#i#K#Z#i#n#n#2#l#Q#4#N#I#K#M#i#k#L#M#I#i#m#L#i#i#i#m#N#4#l#M#i#K#J#p.r.k.p.q.r.q.r.q.q.q.r.r.yaaab.y.v.w.wab.w.waaaaaaabababaaabahab.lQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQt.b.b.0.s.0.0.0.0.0.0.b.b.t.A.c.mai#Taj#v.S.S.R.L.T.V.T.V.S.M.Q.O#.#..L#..R.V#..T#a.Oakak#f#e#Y#n#X#0#F#H#h#Y#Z#h#h#X#1#g#K#n#n#n#Q#3#n#2#l#Q#K#k#I#i#i#Q#m#K#2#n#H#L#n#Z#l#L#Z#2#n#k#l#I#l#Mal#m#n#4#j#i#i#K#3#k#I#M#M#L#4#Q.O.y.x.r.q.q.y.w.w.y.w.y.w.w.w.w.w.w.q.w.w.waaacabahahahacab.w.w.w.rQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.b.e.e.e.h.e.b.h.b.e.h.h.h.h.h.b.h.h.b.h.h.h.t.d.u.qam#2#Y#G#Y#Gan#g#X#1#h#han#h#Y#h#H#1#n#3#i#2#i#n#o#J#i#Yan#2#Z#K#K#2#2#n#2#2#K#l#L#M#i#K#n#K#j#kao#j#K#2#k#l#4#m#Z#i#l#Q#N#O#n#J#Z#n#l#3#k#i#j#k#i#L#j#I#2#i#2#M#M#M#i#i#l#nap.r.v.y.yaaabab.w.wababaaaqabacabacahababab.Baq.Babababac.yab.y.vQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.b.A.t.t.A.A.t.A.A.d.A.h.A.h.A.A.A.h.h.t.e.h.b.s.h.d.Z.n.5ar#m#P#M#L#m#L#i#3#Z#i#o#Z#3#2#i#4#M#l#I#L#K#i#H#i#3#n#2#i#n#n#i#n#H#k#H#3#o#l#L#i#l#3#n#M#N#Q#P#Q#k#K#L#M#k#K#n#k#i#m#i#m#P#M#j#i#2#Z#P#n#n#3#n#L#2#I#i#l#jas#Parat#l#S.yaaababahacacaqahahacahab.Bababacabahah.B.Baqaq.Bahahahabab.waaQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.f.b.h.A.A.t.h.t.A.h.h.t.t.h.h.d.A.d.A.A.A.A.h.A.z.b.d.Z.Z.r#vauavaw#K#L#Z#i#J#3#l#i#n#o#2#N#l#L#K#L#M#i#Q#3#j#M#k#i#m#L#I#j#4#j#Q#Qao#N#4#m#2at#m#m#Q#i#I#l#K#M#L#N#K#P#N#4#O#m#M#i#3#2#j#M#4#2#i#K#i#i#k#k#N#2#i#K#I#Pasatal#4#Oaxaaac.Baq.B.Bay#5#5ai#5ah#5ahahabaq.BahahaqabahahahaaababacacahaaQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.#.h.d.A.A.h.t.h.h.h.h.h.t.t.t.t.A.A.A.A.A.h.h.h.b.0.Z.u.i.lazaA#4#K#1#L#K#i#L#I#L#k#j#H#K#i#Z#2#2#L#2#2#G#L#4#Nal#4#P#Q#2#l#P#l#l#H#I#3#l#P#O#Pao#j#4#Q#j#I#j#K#j#4at#K#Oaoaw#M#Oalao#m#M#K#m#1#L#j#k#2#Q#Q#L#P#4#j#l#L#l#M#m#O#l.Dacaqaqahahah.B#5.Baiapaiap#5.B.Bahahahacah.BacacahaqaqahahacahacQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.#.h.A.Z.h.A.A.h.h.h.h.h.h.t.t.t.t.A.A.h.A.t.A.A.h.0.d.i.n.oaBaraC#L#3#P#Z#J#m#L#K#3#n#L#K#2#j#L#m#m#M#P#M#P#P#2#k#L#L#i#l#M#I#k#2#j#i#K#i#L#lat#Q#m#PaD#kaE#P#2#N#P#O#m#P#Mar#m#mao#N#P#i#l#j#Q#l#L#K#l#K#K#3#i#4#k#L#Nar#4#mat#M.2ahahah.B.B.B#5.B.Baiay.B#5ah.B.Bahah.Bah.B.Baqabahaaabac.wahaqabQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.#.h.t.A.h.A.d.h.A.h.t.t.Z.A.A.A.A.A.A.Z.d.A.A.h.t.0.A.n.o.o.v#fao#M#k#M#2#lat#4#m#n#Q#Oar#Oaw#k#4#4#P#2#i#j#I#i#j#1#k#Z#M#l#L#I#K#3#i#M#i#k#i#l#mawao#4#i#P#M#n#l#k#Mao#4#l#M#O#l#K#O#M#P#M#O#l#2#P#M#MaCaDataoawaDaAaF#m#j#M#MaCaGabaqah.B#5#5.B.B#5ah#5.B#5.B#5.Bayaiayaqah.Bacahabaaababahahahah.sQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.#.e.d.d.d.d.Z.Z.d.d.t.t.A.d.A.A.Z.t.t.t.A.i.t.h.h.b.t.x.j.jabaH#4#jat#P#i#k#N#L#M#2#2#Q#M#L#2#3#j#Z#I#k#K#i#i#K#i#k#2#K#N#N#Q#k#K#I#L#L#H#j#3#l#l#4#L#2#j#K#l#jaw#l#I#P#M#m#jatawaC#OalaCaEaFaCaoasauararaoaFaAavaralawaA#L#Q#4alaIah.B.Bayai#5#5.B#5ai.Bayaiaiai#5.B#5aqahahahacabahaaac.Bacahaqac.AQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.#.t.d.Z.d.d.A.Z.Z.t.h.A.t.t.t.d.A.t.A.A.t.t.h.h.h.h.A.j.m.mac.B#Q#K#g#J#h#h#1#P#4#j#l#L#i#Q#m#M#m#P#j#L#4#4#n#k#M#4#j#m#j#2#i#Q#j#i#L#P#P#N#i#i#L#4#K#Q#maDaoaDaDaCasasaAaJaKavaLaJaMaKaAaJaNasaEaoaAaAaKavauaNaOaJasasauaA#Oas#k.4.B.B#5aiai.Bai#5#5#5#5apaPapapapai#5#5ah.B.B.Baqahabacaqah.Baqah.iQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.#.A.Z.t.d.c.Z.Z.Z.Z.A.t.A.h.h.e.h.h.h.t.h.h.t.t.A.t.Z.m.x.jab.w#k#1#n#o#Z#i#iat#Q#Q#I#m#K#O#Nalat#P#P#P#L#j#l#L#L#i#k#i#2#kaw#MaD#lat#j#j#M#P#N#P#PataDatavauaCauaEaFaQaRaOatalal#NaraDararaD#PaDar#O#2#L#L#NaMararaQ#maCaCaDaDaEaS.Baiaiapapaiaiai.Baiapaiaiaiai.B#5aiaqah.B.B.Baqayahabahahahac.w.oQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.#.h.Z.Z.Z.Z.Z.Z.d.d.d.A.A.h.h.h.A.A.t.A.A.A.h.h.h.h.A.o.m.maa.r#l#N#O#P#L#K#2#Q#Q#O#L#K#N#l#I#L#Z#i#i#o#k#L#L#M#4#4al#3#m#PaoaAalatar#jao#OaraCalao#OawawaDaEataAaD#OaCaw#M#l#k#L#n#g#h#YaT#X#X#XanaUag#DaU#JaMar#MaD#m#P#Q#4aoawae#5.B#5aiaiaiapaBaiaiaiapaiaiaiaiaiay.B.B.B.Bah.B.Bahabahaqaq.Bab.mQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.a.A.A.A.A.A.Z.Z.A.t.t.t.d.h.t.t.h.A.A.t.t.t.t.t.h.h.c.m.x.m.w.r#OaA#maA#M#2#H#3#k#M#3#4#O#M#2#I#2#M#m#O#j#N#MaFaOaOalavavaFawavalaLalatasaw#M#4#3#nanaU.P.O.W#..7.9.I#A#z#x#x#x#z#w.6.XaV#w#A#A.8#.aV#A.I.7.8aW#N#j#k#O#k#K#PaoaE#x#5.Baqaiahai#5apap#5apaPaiaPapaiaiai#5.B#5#5ay#5.Baiay.BahacahacaaQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.#.Z.Z.Z.Z.Z.d.t.A.A.A.h.t.h.t.t.A.h.h.t.h.h.h.h.h.h.Z.x.k.l.q.x#iar#Q#QaX#J#1awat#malatas#4awaEalaEaraEaLaEatawataC#jaw#I#o#X#e.U.O#..8.7#v.X#9#9aYaZafa0.5aea1aea2aYaea2aZaYa3afaY#Waea3#v#va4#v#va2afafaV.6aDau#O#Mat#M#4#m#PaC.Lap.B.B#5#5aiaiapaPaBaBaPapapaiai#5.Baq#5.B.Bai.Bay.B.B.B#5ahababaaQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.#.A.Z.t.A.t.A.A.A.A.A.A.A.t.A.A.A.A.A.t.t.t.h.h.A.h.o.p.l.l.r.r#bataEa5#GaCaJaJaWaRaEaLaCatataw#l#P#l#Y#Gak#b#B#A#wafaeaea1a6a7a6.G.Gad#ua7#paSa7#p#pa8a9aSa7a6a5a5a5.5a0.5.5a2b..5a0aYa2a0aZaZa3aYa0a0a0b#b##XaL#KaDaoaO#MaCau#P#d#q#5.B.Bayaiapayaiap#5aiapai#5aiayayayai#5#5ai.Bai.Baiah.B#5ahab.wQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.a.d.d.d.A.A.d.A.t.A.A.t.h.A.A.A.A.A.h.A.d.h.h.h.h.h.i.k.q.r.q.y#vao#N#W#Iasaoaw#l#i#i#Eag.V#..I.X#9a3a6.Ga7a5#pa7adadad.4#V#Vbabbbaad.4bb#Va9#uad#uba#Vad#V#Vadbaa9a9ad#p#Vada5#Va5a5a5a6a2a2a6a6a0aXa0aZa3a3.VaJaDat#4aAaAaFaKaO#L.Cah#5ai#5aiaiaPapapapapai#5#5ay.B#5#5#5aq.Bai#5ai#5ay.BayahahacabQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.g.Z.d.A.A.A.d.A.t.A.d.Z.d.Z.A.d.A.d.Z.Z.A.A.t.h.A.t.u.l.q.q.r.w#uaEaw#kar#O#Kag.Ha0a7#p.G#ua9bbbbbc.4bbbc.4bd.4ajbd.4bd.FajbdbebdbdaIbfaIaj.4.Y.4.4.Ybc.4.4bbad#V#uad#uaXaS#p#uaS#paSa5a7a5b.a5.5.5a0.5aeaf#W#xbg#NasaDaw#NaraCaF#N#Saq#5ay#5aiaiaiaiapapapapai.B#qaiaiaiap.B#5ai#5ay.B#5.Baq#5.BaqabQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.g.c.Z.A.A.t.A.A.d.Z.Z.d.c.c.Z.d.Z.d.A.Z.d.A.A.A.A.d.u.l.r.q.q#5bharal#J#l#l.Ra6.4bibi.Ybd.4bcbd.YbdbcajajbdaIaIbf.F#taI#U.F#UaIaI#t#tbjajajbiajbdbdbdbbbdbb.4bb#V.4a9.4bbad#V#u#ua7#pa5a6a1a6a5a6a2a6.5a3#va4.7bkauasataDalalaEaO#P#r#5aiaiai#5aBapapapayai#5aiai#5.B.Bah.Baiaiapaiai.Bap.Baqah.B#5#5.cQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.f.A.A.A.d.A.A.d.d.h.A.A.d.d.c.Z.Z.Z.A.A.Z.A.A.Z.d.Z.n.q.q.q.qaB#raE#P#G#m#F#vadbcbjbjbj.F#tbfbebj#UbjaIaIbj#U#t.FbebjbjbebjaI#t#t#tbj#U#tbeaI.Fbeaj.Y.4ba#V#Vbaba#ua8ba#Vadada8#u#p#paSa6a6b.a1a2.5a0a1aeaYb##yaFaLavaEauavaoblaMaFbmaqayaiaiaiapapapapaiaiaiap#5ap#5#5.B.Baiaiai#5apay#5.Babah.Bahaq.rQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.f.Z.Z.Z.d.Z.d.d.A.A.A.A.A.A.Z.c.A.Z.c.c.Z.Z.d.d.Z.A.i.r.q.q.w#q#6#PataT#Q#daf#u#taHaH#Ubjbe#Ubj#tbj#U#t#U#U#Uaz#t#U#tbnazaHbn#t#U#Uaz#tbe#tbiaj.F.4.Y.4a9bbbbba#Va9adbb#ua8a8#uaX.GaSaSa7b.b..5aeaZ.5a2aZ#W#v.6aAbobgaQaOaAasblau#Pbp.BayaiaP#5.B#5aiaiaiaiaPapaiapai#5#5ai#5.Baiaiaiaq.Baiaqahay.B.B.vQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.s.Z.A.A.d.Z.Z.Z.Z.d.c.Z.Z.Z.Z.A.d.A.Z.Z.Z.A.c.d.d.c.i.q.v.q.q.CaBavaoan#Q#faZba#UbnaH#UaH#Ubjbn#U#t#t#U#Uaz#t#Ubj#t#t#U#U#tbj#U#U#UaIbe#UaIbibdbd.4aj.4bb.4bbbbbababa#V#V#uba#V#pa7#pa5aX.G.G.5.5a0aZaeaY#Wa3.X#ZauaOaKblaQasblbkaEbq#5aiapaiaiaiapapapaiapai#5#5.B.B#5#5.B.B.B.Baiai#5#5.B#5.B.B.B#5.vQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.s.Z.Z.d.A.A.c.d.Z.A.A.Z.d.Z.Z.Z.c.c.u.u.u.c.u.u.c.c.o.q.y.q.ybracal#maU#I#fb#bibjazbs#UaH#Ubsbnbn#Ubnbnbn#UbnbnbnbjaH#t#tbe#taIaIbe#taIbfaI.Ybe.4aj.4.4a9bbbb#ubbad#ua9a9ad#u#u#u#paXa7aS.GaSa5b.aZa0aYaYafa4.IanbkaKaFaObtaKblaMaLbqayaiapaPapaBapaPapaiaiaiai.B.B.B.B#5#5#5#5ai#5#5#5ah.B#5ahahaqahaaQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.0.Z.Z.A.A.Z.d.c.c.d.Z.A.Z.Z.Z.Z.Z.d.c.c.i.u.u.u.c.u.o.q.y.y.w#q.waraD#h#l#f#9aj#Ubn#Ubjbn#UaHaHbjbj#Ubnazbnbn#U#Ubn#U#t#Ubj#Ubn#U#Ubj#t#Ubfaj.4.4bbaj.Ybb.4ad.4bb#Vbabba9ad#paSa7a7a7b.a5a6.5b..5a2a0a3#W#W#v.X#dboaJaQaLavaRboaJbo.2aibraBaBaBaPapapaiapaiayaiai.Baq.B#5.B#5.B#5aq#5.Bahah.B.BahabaqabQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.s.Z.d.Z.d.Z.u.Z.u.c.u.A.Z.d.Z.Z.u.c.u.u.i.u.i.u.u.u.o.y.w.v.v#5.waDao#K#m#ia4baazaH#UbjbjaI#Ubjbj#U#U#U#U#U#UbjaH#U#UaIbe#tbjbjaIbebfajbcbdbibd.Ybi.4.4bbbba8bbadad#V#u#u#p#pa7#pa5a6a7a1a6a6a6aeaYa3aYaf.XaV#w#cbkbtaKbkblaQbtbubv#Tapbr#q.CaPaPaPai#5aqahah.B.B.B.Bay.B.B.B.Bah.B.Bahaqahababah.B#5aqQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.e.d.d.Z.Z.c.u.u.u.c.Z.Z.Z.c.u.Z.u.c.i.u.i.i.i.i.i.u.o.w.wacabaiabaDas#4al#1afbcbjbn#Ubjaz#taI#Ubj#UaI#U#U#t#UbjbjaH#Ubj#taIaIbebfbfbibdaIbdbd.4a9a9.4.4ba#V#ubb.4ada8#pa7aSa5.5a7a6a5a6a6a7b.a0aYaZaYaZafaf#y#v.PbuaNaFauaMbobwaNbtbx#5aPaBapapapapapai.B.B.Bah.Bah.B.Baqaqaqay.B#5aq#5ay.Baq.BahahahabQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.h.c.Z.Z.Z.u.i.u.u.Z.c.Z.Z.Z.Z.u.c.u.u.o.i.u.u.i.n.u.o.yababah.Bac#Nalawaw#Ja4bb#Ubnbn#U#U#Ubebjbn#tbjbjazbjbj#U#Uazbj#tbj#t#UaIbiajbfbdaIbdbb.4bb.4#Vadad#V#V#Vadadad#u#p.GaXa5.5b.a0a2a0aZa3aYaeaZaYa3a3af.6.6.VbvaKaWblaJaMblbubo.EaB.C#qaBaPayaiaiahaq#5aqaq#5.B.B.B.B.B.Baq.B#5.B.Bah.B.B.B.Bah.Baq.bQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.b.u.Z.i.u.Z.c.u.u.u.u.Z.u.Z.Z.u.i.i.i.u.u.c.c.c.Z.i.jababah.B#5aq#lal#Oat#i#x#ubeaIbeaIbebj#tbjaHaH#U#U#U#t#t#Ubfbf#t#taIajbiajaj.4bi.Y.4.4.4.4ba#Vada9.4ad#ua8#u#uaSaSa7#pa5b.a5a6aYaZa0a2b.a0afaYb##9b#.X.I#A#BaMbyaWbgbzbgbvblbk.4aPaPaBai.Baq#5.Bahahay#5#5aq#5#5ai#5#5.B.B#5.B#5#5.Bah.Baqai#5#5aq.dQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.0.u.u.c.i.i.i.u.i.u.i.u.i.i.i.i.i.Z.Z.c.Z.i.j.o.o.o.jabaqaq.B.B.B#aaQaEaWal.QaSajaj.Fbe.F#taIaIbfaI.F#UaIbjbebebfaIaIbeajbf.4ajajbc.4bbbb#V#Vbaad#uaS#paXa8#pa6aX#paS.Ga5a6a1a6a2a2aea2a0aY#Wa3b#b#b##v#W.6#xaV#AbobAbtbzbwbobgbwaJa6#qapaBaPayaiaiayai#5ap#5ayay.B.B.Baiaq#5#5ayai#5#5.Baiaiaiai#5#5.B.nQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.A.i.u.u.u.n.i.i.Z.u.i.u.i.i.o.n.o.n.j.o.o.n.n.o.j.o.jacahah#5.Bap.XaMaOaQar#Db.#Vajbcbibd.F.4.F.Fbibebj#UbebebiaIbe.Fajbdaj.Y.Y.Ybd.4.4bb#V.4#V#p#u#uaSaS#pa7a8aSaXa5a6b.b.a1.5aeaYaZaYa0aZ#9#W#W#W.H.X.H#w.9.9.LaJbBbybCbzbwbvbybD#w#qapaiayaiapaiaiapapapaiap#5ai#5ayaiaiaiapayapap#5apayapapaiayay#5.lQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.A.u.u.i.i.n.i.u.i.n.o.u.n.i.o.o.o.o.o.u.o.o.j.o.j.m.kabahah#5.Baia2aJaMboaRag.5.4.4ajbibdbibfbebfajaj.FaIbe.F.4.Fbibiajbc.4.4.4ada9#Vadada9ad#p#p#p#u#p#uaS#p#u#uaSa5a7a6b.a1.5a0a2.5a0a1aZb##W#va4#v.6.Xa4.I#A.RaAbCbDbEbvbFbwbwbF#a.CaPapapapaBbrbraB#5apaiayay#5#5ap#5apaiaiaBapaBaPai#5ai#5ay.B.B.B.vQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.A.i.Z.u.u.i.o.i.i.i.i.n.n.o.o.o.j.o.j.o.o.j.o.o.o.o.mac.B.Bai.B#q#paKaNaMaR#c.5bb.4aj.4bebfbebdajbeaj.F.F.Fajbd.Y.4bbbc.4bc.4.4.4ba#Vadad#u#uaS.Ga8a1a7aX#pa7aS#ua7aXaSa6a5a5b..5aZa2aY.5a0aeaY#vaf.6aV#y.6#A.8.RawbFbybvbGbFbgbvaO#e.CaiaiaBap#qap#q#q#q#qaPapaPaBaiaiaiaiaiay#5aiapapaiapaiapaiaiap.BahQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.e.u.u.u.u.u.u.u.o.o.o.o.o.o.o.o.o.m.j.j.x.j.o.j.m.x.paqayapap#5bHazaJaWaLaRan#Wadbb.Ybibd.4.4bd.4ajbiaIaj.Ybd.F.4biajbd.4ajbb#Vadadad#V#V#u#uaXa7#p#paXa8#uaS.G.Ga7a7a6a2a5a0aYa3a3aZa3aYaYa2a3#W.6a4#y.6aV.7.8#b#mbBbCbvbCbybDbFbt#Q.C.B.Bay#5apaiaB#q#q#q#qaBaB#qaiaBaP#qapaiaiaPaiaPapapapaiai#5ai#5.BQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.c.i.i.o.o.m.m.m.j.o.o.i.o.n.o.j.m.j.j.m.m.j.o.m.m.m.xah#5#5apapax#Tbzbvavbt#3#vaS#ubabbbi.Y.4.4a9.4.4ba.4ba.4bd.4.4.4aj.4bb#V#V#uadaSaXadaSaXa6a5a7aSa8a7a5a7aSa7a7a1a2b..5a2.5.5a0a0aeaZaZaYaY#v#v.6.X.X#x.9#.#C#GbybDbybGbAbFbybwaFbHayaiayayaB#qaBaP#q#qaB#qbraBaiapaiayapaiayapapaiaPaBapaPaiai.B#5aqQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.o.o.o.n.m.o.m.o.o.o.n.j.o.o.m.m.x.k.x.m.m.m.x.m.l.k.r.B.B#5apapbpbHbFaWawbo#l#yaXa8#u#Vbaba#Vbb.Y.4bdbdaj.4bbbbbbbbbc.4bb#uad#uaS#pa8aSaSa2aXa7a6a6a7aSa5a6a1.5a0a0aZa2a2a2a2aZaZaZa0.5a2aea3a3#v.Ha4#W.X.I.7.K#.anbEbvbwbFblaJbkaKaCbp#5ayaiayaP#qapaB#q.C#q.1brbraP#qbr#qapaiaPaiaPapaiapapapaiaiapaiaqQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.Z.o.o.i.i.i.o.o.o.x.o.j.m.m.m.x.m.m.x.m.m.m.m.k.k.x.lahayapapaiax#qaKaNaLaQ#j.8.5aSa8ba#V#V#Vbbad#Vbbbba9#V.4a9#Vbaa9a9bb#u#u#paS#p#paX.GaS#pa7a5a5a5.G.5.5a6a1a1.5.5a1a0.5a2.5a0a2aYaY#9b#afaf.6a4#v.6#y#A#x.K.MaTbgaWbgaJblbgbgbtawbpaq#5apapaBapapbr#q#q#q#qaPaBapaPaBaBaP#qaPaPapaPaiaiaiaiai#5ai#5.B.eQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.o.o.o.j.o.o.n.m.j.j.o.o.o.o.m.m.o.m.j.m.j.m.m.m.l.k.lah#5aiaPai#raBaNaKaAaL#m#.a0aX#pba#Vbbba.4.4.4bb.Y.4#Vbba9.4#Vadad#V#p#paSaXaSa8.Ga7a5aS.Ga5a6a7b.a2.5a2a0a0aZa0a0aZ.5a2aeb#aY#9aY#W#W#W#W.H#v#v.H.I.X.I#A#.#EbwbwaNaJaLaJbgaNavbIai#5aPapaBbr#q#qaBaB.C.C#q#q#q#qapaPaBaB#qbrbraBbraB#5aiaiay#5.B#5.AQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.m.j.j.j.m.o.o.o.j.x.m.m.m.x.j.m.x.l.m.k.j.m.j.m.k.x.lab#5#5apap#6aBbFbFaObu#P.WaeaS#pbababaad.4bbadbba9#u#uadaS#uadad#V#ua8#V#uaS#p#paS#paXb.a7aXb.a5a1.5a1a6.5a0a6aYa0aZaea3aea0aZaYa3.6af.HaV.H.X.6.X.6#A#x#A.8#DaJbgavaJavaQaRaKaCbq.B#5ap#5aPbrbrbraPaBaPaPbr#qaPaB#q.C#q#q#q.CaB#qbraP#qaiaiayayaiai.iQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.n.o.j.o.o.j.j.o.j.o.o.j.m.m.m.j.m.x.k.m.k.x.x.m.r.m.raqaiayaBaPbrapbkbDbtbwaA.NaYa5.G#uad#V#ua9ad.4#Vba#V#u#u#u#p#pa8a8a8#paSaXa7a7aSaXa7a5aSa5a7a7a1.5a6a5b.a2a0a2aYaeaZa2a3aeaYaYaYafb#a4#Waf.6a4.6.X.6#A#x.8.8#FaJboaJaNaEaJboaNaubqay#5apapaPaP#qaB#q#q#q#qbrbraP.CaB.C#q#qaPaBapaBbrapapai#5apaiai.B.lQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.o.j.o.o.o.j.m.j.o.o.j.j.o.o.j.j.m.x.k.m.k.k.k.k.x.l.pahaiai.CaB.CaBblbwbwbkaJaU#9a6aS#uad#u#u#Va8#u#p#ua8aX#pa7#pa8aS#p#p#u#p#paSaXa7#p.5a7a5a1a5a7b..5a1a0aeaYb#aYa3aea3a0aZ#W#Wa3#9a3#9#W#9#v.H.6.X.I.6.7#z#A#.#ebuaKaQboaOaMaMaJaAax.BaiaPap#qaBaPaB.Cbr#q.C#q.Cbr.1#q#6#qbraBaBaPaPaPaBapaBapayapapay.wQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.n.o.i.o.n.o.o.n.o.o.o.o.j.m.m.m.l.m.m.m.x.m.m.k.k.k.lahaiaPbraBbraPbzbkbubkaC#d#9a6a7aS#paX.G#u.4ad#uad#pa7#uaS.GaSad#p#pad#V#u.G#paXa7a7a1a5a5.Ga1.5.5a0a2a3#vaYa3aYaeaea0a0aea2a3#9#vafafaf#v#v.X.X#x.7#z#x.9#CagbDbzbuaNaKaNaMaLaubmay#5apaPaBaPaBaBbr.CaB#qaB.C#q.C.C#q.C.C.C#q#qaBaBaBaPaBaPapapaiayabQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.r.m.o.m.m.o.o.j.o.o.o.o.o.o.o.o.o.j.j.m.x.k.k.l.l.r.qahapayaiaiapai#jbFbobBaM#Xa4b.a0a5aXa5#paSa8#p#uad#paSaS.Ga7aXa5a1a7b.a5a7.5b.a5a2a5a0.Gb.b..5a2a0a2.5a2.5.5a0a3a3aYaYb#a3aYa3#v.X#va4.H.6#W.XaV.I#A#w#A.8#.#DblblaMaNbwbgaNbwavbxaiapbraBaB#qaP#q#q.C#q#q#q#q.C.C.C.C.C.C.C#q.C#6#q#qaPaPaiapayapai#5QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.m.j.o.o.o.j.o.o.o.o.o.n.o.o.j.j.m.x.m.m.m.m.x.x.k.l.lahaiai#qapap#q#gbGbAblaN#H#xa0a7aXa6aSaX#pada8#p#u#u#paS.GaS#pa7aSaSa6a5a5a1.Ga5a5a5a6a0a1a1a2a3.5b##Wb#b#aYafaea3b#a3aYafaY#vaY#Waf#9af#vaV.X.X#x.6#w#A.K#.agbubFaKaJaWblaKaRaA#s#5aiapapbr.C#6.C.C.1.C#6#6.C.C#6.C#q#q.C#q#q#q.CaB.CbraBaPapaB#qaBaiQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.l.x.j.j.o.o.m.o.m.m.n.o.o.j.m.m.m.x.m.m.k.m.m.m.k.r.raqaiayapaiaibHaVbybEbwaN#3#xaea2a2a6a5a7a7a7a5a7a7a7a7aS#pa5a8aXb.a5a5b.a1a0a2a2a6.5a0.5a1.5a0.5aYa6a6a0.5a0aYaeaeaYaYb#aYa3#vaf.Xa4#y.H.H#v#y.6#x#z.6.9.9#C#fbzaNboblaJboaOaOaA.4aBaiaBaPaPaP#q.Cbr#q.C.C#q#q#q#q#q#6#q#q#q#q.CaBbr#q.CaBaPaBapaBaBapQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.l.j.m.m.m.o.m.m.i.o.j.j.o.x.m.m.m.l.k.m.m.m.x.m.l.l.rah#5aiaBaBaP#ra3bEbzblaK#j#wa0.5.5aSa6a7a6aSa5a5a7a5a1a6a7#pa7a7a6a6a1a1a2b.a2a1.5aZaY.5.5a0.5a1aZa0.5a0a2a0aYaYa3aeaYa0b#a3#W#W#9af.X.6.XaV.6#y#x#x#A.9.J.K#DbwbwaNaJbtaRaOasboa9apapaBaBbr#q.Cbr.C#q.C.CaB.C#qaBaPbr.C.C#q.C#6#qaP.C#q#qaP#qaPaiaP#5QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.m.j.m.m.x.m.m.o.o.o.m.n.m.j.l.j.m.m.m.x.m.k.m.l.r.l.rab.B#5aiai#5bpb.bBbvbwbu#L#xa0b.a7aXa7aS#uadaXaSa7a5.Ga6a7aXaSa7aSa1.5a6a2a0.5.5b.a0a2.5aea2a5a1a2aZ#Wa3#9aY#9a3a3b#b#aYa3a3afa3#v#v#v#v.X.6.X#xaV#y#y.7#A.RanbzbDaJbtaNbDboboaMa5.CaiaPaBaPaB.C#q.CaPaB.C#q.C#q.C#q.1.Cbr.C#q#q#q#q.C#q#q#qbr#q#qaPaiQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.l.k.m.x.o.j.j.j.j.o.o.o.o.o.m.j.x.x.k.l.k.l.x.x.k.k.kabay.Bapaiaybpbebgbobobtal.9#vaYa0a5a7a7aSaS.G.Ga1a7a2#paSa7a6a5a7a5a7a0a5a6a5a5.5.5a6.5a2.5ae.5aea2aYaYaY#Wa3aYa3#Wb#a3#Wafaf.6.X.X#w#y.6#x#w.7#y#x.8#x.9.T#JbkblboblbwaRaMblaR#y#SapaiaBapaBaB#qaB.C.1.C.C.C.C.C#S#6#q#6#6#6.Cbr#qaB.CapaPaBaBaPaB#q.ZQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.x.j.m.o.m.j.m.k.m.j.j.m.x.m.k.m.x.k.x.k.m.m.m.p.x.k.labaiayapai#5bq#sbEbgaKaKaw.Qb#aea0a6.Ga6aSaSa7a1a5a2b.a7.5a1a7b.aXa6a5.5.5a2a1a2a1.5a1.5a0aYaYaZaY#9a3aZb#aY#v#vaZ#WaY#vafaf.H#v#W.H#v.H.H.6#w.7.7#x.9#..K.L#kbvbuaWbobtaKaNaQaRak#rapaPaBapaB#q#6.C#6.C#6.C.C#6.1.C.C.C.CaB#q#q.C.C.C.C.C#qapaBapaBai.xQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.k.m.j.m.m.j.x.m.j.o.j.o.x.m.k.x.m.r.l.q.x.l.l.p.m.x.paaaPayaiapaibq.DblboauaWal.M.Hb#aY.5a1.5a1a1a2a1a5b.a6a7a6a6a6a5a7.5a2a1a0a0aea6a2a0aZa0a0a0aYaZaZ#Waea3af#v#Wafafaf#Wa3.Xaf.6.H.H.H.6a4af.X#w#x#y.8#z.R#..S#nbkbgbuaKaNaRaNaRbo#4bpapaPaP#qaB.CaB.Cbr#q#6.C#S.C#q#6aB.1#6#S.2bsaS#.#Y#n#X.CapaBapbrap.rQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.m.o.o.m.x.m.x.m.j.k.m.m.m.m.k.k.l.k.m.x.k.x.k.l.k.p.labaiaiapaPapbpbpbzbyaCaOao.M#vaYaYa0.5a2a2a2a2aYa0b.a2a2aZa0.5.5a0b..5a6.5.5ae.5.5aZa2.5.5a0a0a0aZa3aY#W#W#W#9#va4aYaYafaY.HaV#v.6.H#w#w#y.7.6.7#y#C#A.K##.M#nbEblbubtblaJblaWaJ#Mbqai#q.C#q.Cbr#q#q.C#q#qbr.C.C.1#Sbm.Ea5#.#Z#G#g#F#F#f.P#SaiapaibraPahQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.x.x.o.m.o.m.m.j.j.j.k.m.x.m.k.k.l.r.p.l.l.x.k.l.x.m.laaaiayaiapaPax#SblboaCbvaKbJa4#9aZa2.5a2b.b.a0.5a1a2a2a0a2a2aZa0aYa2a1.5a2a1a0aZaYa3ae.5aZa2aeaYa0aZa3b#afaeb#aV.X#9#Waf#v#v.Xa4.XaV.6#y.I.6#x.7#A#C#..L#a#d#NbFaJboboboaNbgaLblaD.DapapaP#q#q.C#q.C.1bK#S#S.Dbna7#A#K#i#2#d#faU#d#d#D.Oag.DaiaPaPaPap#5QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.m.k.k.j.j.m.l.m.k.k.m.k.m.x.r.l.p.l.l.l.l.x.k.k.r.m.labaiaPapaiaB#S#qbkaWaFaLaAa..XaYaeaYaeaY.5.5a2.5a6.5aeaZb..5.5a2a2b.a2a0.5.5a0a0a3a3aeaYaea3aYa3a0a3aYb##Waf#v.Ha4#v#W#v#v#w.X#va4#y#Waf.6aV#xaVaV#B#.#.#B#basbwbyblblaNaOaNaQaQaRa#aB#qaB#q.C.1.C#q#LauaEakb#a5be.B#5.2#sam#FbJ.S#D#dagakbnaiaPapaP#qaPQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.m.o.m.o.m.x.m.m.k.x.l.j.m.m.x.m.m.m.k.x.x.j.x.k.k.l.labaiaiapapaP#qapaWaWaObuaA#daV#va3a3#WaYaeaf#9aYaYaY#9a3a0a2aZa0.5.5.5a1a1a1a2a0a2aYa2a0a3a0aea0a3aeb#b##9#9afaf.H#Wafaf.H.6aV.6.H#ya4.XaV#w#x#x.K#B#B.P.TaUaKbobvaJbwblblaLaWaQaObLaPaBaPaB#q.C.C.1aLaE#nbIbmbsbe#8bsbja5#Uan.Ua.#c#d#D#daXaiapaPaPapaiQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.m.x.m.m.x.o.k.x.m.m.j.j.o.m.m.k.r.k.k.m.x.j.o.x.k.k.r.wapaiapapaiaBaPbubuaMaQau#F#y#W#W#W#9#9a3aY#Wa3a0aea3a0a2a0a2a3a0aYa2aeaeaf#9aY#9#vafaYa3#9aea0a3a3aYa3aZ#W#9a4#vaf#Waf.6.X#y.6a4.6.X.IaVaV.I.I#A#x.9#A#B.TbwbGbzbtbwbobubzaNbgbobLaB#q.C.C#6.1#6.CaNal#jbd#SaH.G.CbM.Gad#x#G#F#1#H#a#Waj.DaB#q.C#q.CaBQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.x.m.x.x.m.o.j.j.m.o.j.o.x.x.j.m.x.k.m.m.x.j.m.m.m.x.m.y#5aiapayaiaPapaNbtaWbgaW#i.9.6.X#W#W#Wa3a3a3#9b##9#Wa3b#a3#9aYaYaZa0a2a0a0.5a0a2a0aeaYa0aYa0a3b##WaY#W#9af#W#x.XaVa4af.X#v.X.H.X.6#x#z.7#z#..R#..W.ObJ.M.ObzaAblaWaJaNaKbwboboaM.DaB.C.C#q#S#6bH#SaOaMawb##H#i#2#3#X.Xbb.3bpaxbMbMbHbH#S.1#q.C#q#q#qaPQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.k.x.x.m.m.j.k.m.o.j.m.j.j.o.x.o.m.m.j.o.x.m.m.m.l.m.l.w.B.Baiaiaiai#qaMbtbtbwaQ#K#.#w#y.X#v#vaf#vafb#b#a3.H#va3a3a3aYa3a0afaYa3aZaeaY#9a3a3a3a0#9aZa2a3aZaY#W#Waf#Wa3#W.H#9.H.H#v.X.IaV.7#A#A#..K.R.L.Sagag#c#e#obl#N#P#mboaJbkaNbvaKaN#rap#q#q#q#6.1.C#q.7#B.5azbIax#rbKbH#SbKbM#SbK.1#S#S#S.C.1#q#qbr#q#q#q.AQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.j.l.m.k.k.m.m.j.m.m.m.j.j.o.j.m.m.j.m.m.o.m.x.j.k.m.x.yai#5#5aiaPapbMaEbububvbt#4###A.6aVa4#vaf#v#Wb#aYa3#W#9aYb##W#9b#a0b#aZa3a2aYa2a2a0a0a3a3#9aeaYa3#9aYaf#Wafaf#v#W.6#v#W.6.6aV#x.8#C.K.L.L#a#b#D#E#D#X#1albtblauaLaM#OawaAaKaKaLaK.2ap#q#q.C#6#6.1.CbHbH#r#SbH#S#SbK#S#S#S.1#6#S.1#r.1bK#S.1#6br#q#q#qaB.oQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtab.x.j.m.m.m.l.m.m.o.o.o.i.o.o.o.o.o.j.j.k.m.m.k.l.m.k.waiap#5ayapaPbN#3bybGbDbuao#D.J#w.6.6.6.H.X.H.X#9af#vb##W#9aYa3#W#W#v#vaV#Waf#9aYaYaZaea3a3aea3aYa3aY#9ae#WaY.H.X.X#x#w.I#x#A#B.L.O.N#daU#n#laDaMaLboavbtbtbkbEbuaWbuboaR#KaKbgaNbp#q.C.C.C.1#6.1#6#q#S#S#S.1.C#S#6#S#S#6#6.1.1.1#q#q.C#q#6.C#q.C#q.C#q.yQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtah.r.m.m.j.j.x.j.o.m.x.o.m.m.o.j.k.k.x.k.l.l.m.x.m.m.l.r#5aiaiaBaBaB.2#dbCbgbzbgaWaU.K#ya4.6.X.X#v#W#9#W#W#v.Xaf#9#9b#afafa3#9afae#9b#ae#Wafb#a3#WaZ#W#vaea3#vaf#vafa4.XaV#y#A.7.J.K.W.O#d#f#n#OboaKaJaKblbububwbgbwbvbzbzaWaKaQ#maMblaO#r#q#q#q.C.1#S#S#6#S.CbMbHbH#S#S.1.C.C.1#S#S#S#q.1bK#S.1.1#q#6#q#q.Cap.wQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtabab.o.o.o.o.o.m.o.j.m.m.m.o.m.m.m.m.j.m.x.m.x.k.l.l.r.yapaiaPap.CaB#7.KbAbgbvbgar#c.K.I#y.Xa4#v.H#vaf#vafb##W#Wb#a3#9#W#va3af#9a3a3a0b##WaYb##Wa3aYaf.X.X#v.6.X.X.6#y#x#A#C#C#B.M.TbJ#GaFbwaOaKbgaMaRaMauaJaWaWaJbtbubkbvblbvbkaQbkaW#4#r#q.CbH.1#S#S#S#6#S#S#S.1bKbKbH.1#S#S.1.C#6#6.C#6.1.C#6.1#6.C.1#6.C.C.BQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.B.w.q.o.o.o.j.j.x.o.k.j.o.j.j.o.m.o.o.o.k.k.l.x.k.j.x.yapaPbrbr#q#q#T#9bCbGbubgaJ#h#B#A.7aV.I.Ha4.6.H#v#v#Wa4#vaf#W#Wa4af#va3a3a3b#af.Ha4.H#vaf#W#v.X.6#v#vaVaVaV#x.J#BaU#KauaJaKboblblaWaNaWaMbwboaMaLaKaWaNaLaJaNbtbzbDbtaWaNbtblaKbNaB.C#q.C#6.1#6.C.C.C.C#S#SbK#6#6#S.1#6#6#S#q.C#q.C.C#qaP.C#q#q#q.C#6#qapQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtabab.w.r.n.o.o.j.o.m.x.j.m.o.o.o.k.m.k.l.l.x.x.m.m.x.r.wapapaBaBbr#qam#pbBbBbFbtaQ#0#.#x.X.X#W#v#9.Ha4af.H#v.6.H#vaVa4.H#Waf.6.XaV#y#y.H.X#w#y.6.X.6#A#..M#X#NaFaOaMavasblaQaLavaJaNbtbgblblaQaWaWaLbgbvbwbgbvbuaNaWbEbobgbFbEblaWaL.3.C.C.1#S.1bK#6#6.1#6#S#SbK#S#r#rbM#SbH#S#q.C.C#6#S.1#S#S#6.1.C.C.C.1.1.1#qQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtac.v.w.r.r.k.m.o.o.j.o.o.o.o.m.j.x.o.x.l.k.x.m.x.l.l.p.vapaBapaBaPaBbL#UbubAbgbybk#F.8.9#A#AaV#y.6.X#x#y#w.6.H.6.X.6#w#y#y.7aV.I#x.X#x#C#a#F#NaraEaCavaCauasaEaQarauavaDaKaNauavblaQbwbzbDbwbDblbtaNbtboaWaLbwaJbubtbtbkaQaMaJaO#3bM#S.1#q#S#S#S#6.C.C.1#S#SbKbK#S.CbKbM.1#SbK.C#S.C.C#q.CaB.C.C#6#6.C#6.C#qaBaPQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtac.v.y.q.p.r.m.j.m.j.m.m.m.j.j.m.m.o.m.m.j.x.j.x.m.l.r.vapaBaBaB#qaB.2bnbBbBbkbwaJ#g#..J.9#x#y#y#x#w#A#x#A.J#.#w#A.7#z#y.7.8.L#c#h#kaAasaLaJaRavaMavaMaMaAaOaCasaKaFaObtaOaNbtbtbDbzbobDbCbEbvaOaNbgbvaWblaOaNaQaObgbvaKaJaRaD.J.D#r.C#q#S#S#S#S#S#S#SbHbMbKbMbM.1#S#6bK#S#S.C.C.1br.C.1#S#S.1.C.C.C.C#q#qaB#qaPQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.qabab.w.q.r.o.o.o.o.m.m.m.o.j.o.x.m.k.x.l.k.k.l.r.l.r.yaiaiaBaBaPaBbpbObBbEbubAaW#J#a#B.8#x#A#z.I#w#x#A#x#z.J#z#..LaT#iaoaOaOaOauarauaEaA#NalawaOaFaOaMblaWaLaKaLaLaWaObtbgaNaNbtbwaQbDbwbgaWaQbtaWauaLaQaFaWbobzbtaOana3a9aGaxbp.1bK.C.1#6#S#S.1.1.CbM#SbHbm#SbHbMbKbKbK#6#S.C.C#q.C.C.C#6#S#SbK#6#6.C#q.C.CaBQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.kab.v.w.w.q.q.x.o.o.o.o.o.o.o.o.o.m.j.k.l.m.x.r.p.r.p.qai#qbr#q.C.C#S.2bBbBbgbAbFaR#GaU#f#i#LaraRaWaKaOavaQblbgaQaOaMaMaEaMavaLaJavaEaAav#P#NaFaWaKaNaKaQbgbuaWblaMaQaQaNbubvbEaKbvbkbgbDbuaKaLaJaD#Q#bafbi#s#TbLbqbpbmbMaxaxbM#rbK#rbMbHbMbHbK#S.1#6#6#SbKbKbM.1#S#r#r.1bK#S.1.C.1#6.C.1.1.1.C#S#S#S.1.C.C.C#qQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.oab.r.q.r.q.y.q.x.o.o.o.j.m.j.m.o.m.k.k.l.l.l.l.p.r.r.yaiapapaB.C#q.1#rbCbCbFbCbwbzaWaWaOaMaOaLaOaQaOaMaMaQaWaMaKbobobuaQasasaLaMaOaKaQaLaLbtbuaWbgaWbtaWboaWaFaRaKavasaFaMaMbubkbkaR#G.I.4.Ea##T.2bqbm#r#r#rbM#r#rbH#rbM#rbHbK#rbMbKbK#S.1bKbH#S#S.1.C#6.1#SbHbH#S.1#S#S.CbK#q#q.1#S.C.1#6#S#S#S.1#6#q.C.C#qbmQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.Aaa.q.q.y.y.q.v.p.k.o.o.o.j.o.m.k.k.l.k.x.k.k.k.l.k.r.vapbr#qaB.C#q.C#rbBbBbDbvbwaWboaNaNbuavaNaJaOaQauaAaWaJbFbybFbvbkbgbAaObvbkblboaQaNaWaKaQaRaKblaNaubgaWaMaLaLaE#X.XadbnbPbIbL.Dbpbmbmbmbpbm#rbMbMbHbM#SbH#SbK#SbH.1#S#S#SbM#SbMbM#r#rbH#S#S.1.1#S.C#S#rbKbK#6#SbH#S.C.1.CbHbHbHbK#S#SbKbqbO.E#8bO.2bL.2axQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.hac.w.q.q.y.y.q.r.l.o.n.o.o.o.j.x.m.m.m.k.k.x.p.l.r.r.waP#q#q#q.C#q#q#SbBbBbBbBbyboaNblaQblboaMaWaWbubzbFbGbybubCbFbkbgbuaJaLaWbwaLboaKboblaFaEauaFaOaLaRaMat#o#wadaH#s#T.2bpaxbpbmbmaxbm#rbpax#r#rbp#rbpbMax#rbM#rbHbMbM#SbH#S#SbMbHbK#6#S#SbK#SbH.1#SbK.C#S.C.1#6#6.C.C#S#6bK.1#r#rbL#saG.E#sam#7bL.2bpbN.2bNQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtab.y.q.q.q.q.q.l.q.l.l.n.n.j.m.x.m.x.x.l.p.k.l.r.r.q.q#5aP#qbr#q#q#q#rbybBbzbvbBbzaJboblbwblaObtbgbDbtbzbCbybybybDbwbgbkbgaNboaWaWaQaKaJaOaLaQaMaCat#e.H#V#UbPa#bLbL.2#rax#rbpbmax#rbm#r#r#rbMax#r#rbmbmax#r#raxbm#raxbmbMbMbM#r#rbK#SbM#6bH#S#SbH#S#S.C#6#SbKbM.1#6#6.C#S#S.D#T#s#R#s#T#T#T.2.2ambIam.2bI#T.2QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.B.v.q.v.v.v.q.r.r.q.l.o.o.m.m.x.x.l.x.l.p.l.r.r.r.p.qaibr#q.C#6#q.Cax.4bBbybCbtbybGbDbybEbybCbFbybzbGbDaNbtblbubvbkaOaOaJaJaRaQaQ#4.Na2.4#Ra#.2.2bpbM#S#rbHbMax#r#r#r#rbm#r#rbpbmbM#rbmaxaxbM#r#r#r#r#r#SbH#rbMbHbHbK#r#rbmbK#r#rbpbmbp#rbKbH#S#SbK.1#S#rax.2#sbO.EbP#TamambIbL#T#TbP#Ta#bP#sbObQbnaHazaj.4.4QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtai.w.r.q.q.r.q.q.r.q.q.k.o.n.j.x.m.k.k.l.r.q.l.r.r.q.vaiaPaiaB.C#q.C.CbMagbBbBbCbGbCbvbybFbzbwblbzbububtbgbkaNblaO#Q#Ca1#U#s#T.2bN#r#SbH#S.1#S#S#6.C#SbHbKbK#r#rbMbM#r#r#raxaxbpbpaxaxax#rax#r#r#rbH#r#rbK#SbMbK#raxax#r#rbHbMbK#SbKbH#S#SbH.2a##R#8bQa#bPbP#Tam.2#7am#Tama##7#s#Rbs#UaIbcba#pa2a3af#A.S#E#VQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt#qah.q.q.w.q.q.y.q.y.q.l.r.o.o.k.k.k.x.p.r.k.l.r.q.r.qay#q.CaP#q#q.C#qbr#S#vbEbBbGbFbvbGbAbtaWblaDaTa3.4bQ#7.2.D#r#rbK.C.C#q.C#6#6#SbH#SbK#S#6bKbH#rbMbHbMbM#rax#r#r#r#rbMbH#rbMbM#rbM#r#r#rbmaxbMbK.1bH#S#S#r#6#SbMbKbMbM#rbL#s#8bj.EaGbxbP#Tbx#7#T#s#s#s#s#saG.Ebn#U#tbdbaaSa2b##v.8.Oak#F#M#QQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.Baa.w.q.r.l.q.y.w.v.q.r.r.q.k.p.l.l.m.l.p.l.r.q.l.r.vapaB#q#q#q#q#q.C#6#6#S.Da5a.#aaYbe#sbI.DbpaxbM#S.1.C.1bK.1#S#6.1.1.C#q#6#S#S#S#6.1.1#6.1#SbK#rbMbm#rbpaxbm#r#r#rbpaxbpax#r#raxbpaxaxax#r#r#rbMbM#S#SbHbIaG.E#RaG#s#saGa#bx#Tam#TbP#T#s#RaG.3#8#tbebb#ub.a0b##y#A.T#f#X#F#2atavaMaAaraRaO#mbpQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtayaqaa.v.v.y.v.yab.w.y.v.r.v.r.r.k.x.l.l.k.l.p.r.q.q.qap#q#6brbraP#q.C.C.C#q.C#rbp#r#S#SbK#rbMbKbK.C.1bK#SbK#S#S.1#6#S#S#S#S#6#S.1bKbKbH#S.1#S#SbK#r#raxaxaxbmaxaxbMbH#rbM#rbH#S#rbHaxbm#rbN#TbO#s#samam#T#TbxbPa##T#TbObO.E.Ebsbnbjajbdadada6a2#9aV#A.Ka.#h#n#maraFbwbgaWboavas#O#k#h.T.RaV#9a5blbgaC.7QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.yac.w.q.r.q.q.q.y.v.v.v.q.vab.w.w.w.l.p.r.l.q.v.r.v.vai#q.Cbr#qaBbr#q.C.C#6.1bHbMbHbHbKbM#S#S#S#S#S#S#S#q#6#S#6#6#SbK#6bK#6#S#S#6#S#S#S#S#6#S#rbMbMbHbpbmbmbqbmbm#rbMaxbm#r#TbOaGbOam#T#7bxam#TbLbI#TbPbP#sbObQbQ#Ubjbebb#u.Ga2a2a4#A.V#D#Han#i#maFbkbzauaMaQaKauaF#k#Z#d#..6b#b.aSa9.4ajajaIaIbvbwbzaWaQaC#LQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.oac.w.q.v.v.r.r.qab.w.w.y.w.q.waa.v.q.l.l.x.p.r.r.q.qap#q#qaBaBaB#qaybr.C.1#6.1#6#S#S.1bKbH#SbM#r#SbK#SbKbHbK.1.1bK.1.1bKbMbK#S.1bK#6.1#S#6#SbK#Sax#raxbpbm#7bOaGbPbI.2bIbIa#am#Tam#T#s.E.E#Rbn#U#UaIajbb#p.Ga2a3#v#z.Ran#X#o#2#jaQbobwbkaNbFbtaraFat#lak.P#xafaZ.5a8#u.4.4.Ybibe#t#U#UbnbnbsbfbFbkbwblavaWbkaNaKa1QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.Aab.q.q.q.y.y.q.qaa.v.q.v.qaaaa.w.y.r.r.l.l.r.p.q.r.rayaB#q#qaPaBap#q#q#6.1#q.1.1#6#6.1.C.C.1#S.1.1bK#rbKbHbK#S#6#6#6#S#S#S#rbK#S#SbM#SbM#SbHbKbMbpambObQaGbPbIbIbxbP#T#T#Ta##TambP.E#8#8bnaI.4.4#uaSa6a3#v.J.W#E#n#i#NaCblbobobubobtaWasaKaE#Q#g#f#.aVa4b.#p#Vba.4ajbi#taIbjbj#t#U#UazbsbnbhbcbkbkaOaLaWbzaRbzbvaOaR.DQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.c.w.y.r.q.q.l.q.q.q.q.y.w.w.y.wabaa.w.q.l.r.q.q.r.y.vapaB#qaB#qaBbr#q#q.C.1.C.C#SbH.1bMbK#SbK#S#S#S.1#6.C.1#6#6bK#S#S.1#r#r#S#6bKbKbHbKbMbK.DbO#R.E#TbI#Ta#bx#Tbx#TbP#sbObhaG.E#RbnbjaI.4#u#ua5a3.H#x#.aU#J#Z#QasaFbvbDbkboaKaWaFauaC#i#n#d.W#A#vaZa7a5#pbbbbbibf#t#taIbj#t#U#U#U#UbnbnbQ#8bh#ublblaQaNbzbzbgau#laLaC#m#8QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.hac.w.q.y.q.q.r.q.y.v.w.y.q.w.q.w.w.w.w.q.l.l.q.v.y.vap.Cap.1#q#q#6#6.C.1.C.C.C#S#SbHbH#SbK#rbK#S#S#S#SbHbHbHbKbKbKbH#SbM#rbqbxbP#sa#.2.2ambIamama#ambx#s.EbQbh#Rbn#UbfajbbadaSa2aY.X#z.N#E#n#kawaFbtbzbgbzbuboboaJas#P#H#D.N.9afa3a5.5ad#ua9.4aj#t#t#U.Fbebjbjbnbnbsbh#R#8bn#8bn#8#8#8bQbhbPQtQtQtbcbybybAblaMaQavaQaLasaFaoQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.0ap.w.v.q.v.r.r.p.y.y.v.qababab.w.waaabab.v.q.q.q.q.vap#q.C.C.CaB#q.C.C.C.C#S#6#S#S#S.C.1#6#6.1.C#S#S#q#S#SbHbI#8#8.EbPa##T#TbI.2amam#T#TbP#s#s.E#8#Ubjbe.4#ua5a2b##y.7.QaU#1#1#latalaJbzbFaNbFaJboaQaC#M#1#d##.I#Wae.5a5#ubb.4bdaj.F#t#U#U#UbnbnaHbjaHbn#UbnbnbnazbsbQ.EbQaG#8bh.Ebh#sbQbh#sQtQtQtQtQtQtQtavaJaKaNaRaOaL#JaraOawa9QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.zbIaaab.v.w.q.r.l.v.y.w.y.y.vab.w.w.w.y.w.w.qab.p.q.rai.C#6.C.1#6.C.CaB.C.C.C.C#6#6.C#6.C#S#S.2bObQbh.EbxbxbP#T#7.2ambIa##T#T#TbxbO#R#8#UbfbibbaSa2a3.6#.aT#J#3#jaDaAavaKaNbuaNaKaKaMaFao#Z#a#b#B#x#vaYa1a7a8a8ba.4.FajaI#t.FbjbnbsbsaHbn#8bn#R#R#8bn#8bQ#8.3#R#R.E#saGbhbhbQ.Ebh#8.3bObObxbOQtQtQtQtQtQtQtQtQtQta0aJboaWaQaQaraO#G#4.WQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.z#Sab.v.q.r.v.w.q.w.q.y.waaacabababaaaaaaabab.w.r.r.qaiaB#q#6.C.C.C.Cbr.C#q#q#6.C#6.1axa#bQ.3aGbPbxbPa#bI.2ambIam#Ta#bPaGbQ.Ebnaz#UbiadaXa1a3a4#A#b#f#H#i#JaDaRbtbzaNbubDaWbtaCar#IaU.N#.#x.Xa3a2a1aSaXadba#Vba.Ya9bc#tbebe#t#Ubsbnbn#8bn.3#8.3bs#8bh.EbQ#8#8.E#8.EaGbObPbx#sbO.Ebs#R.3.E#R.EQtQtQtQt.D#TbLbqQtQtQt#faWaMaMaRaE#PbJaw#4#.QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQt.macab.w.r.v.v.v.q.q.q.q.waaaaab.w.wah.waaaq.Bab.r.qapaP#6#6.C.C#q#qaB#q.C#6bM#TbQ#R.E#TbIa#bLbN.D.2bL#Ta#bxbx#s#sbhbs#Ubeajbb#ua1a0#v#x#B.N#c#f#Z#MasbvasbgbkbobgaNaK#P#M#h#c#BaVafa2a0a5a5#pada9a9#u.4.Fbdbibibfbebebj#taI#tazbn#8#8bsbs#R#8#8bQ#8.E.E#R#8#8bQaGbhbObhbQ.E.E#Rbn#Rbsbnbs#Rax.2.2bpbpbpbmaxaxQtQtQt#gavavaFaDaAaD#L#Z#LQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQt.g.iaqab.v.q.v.v.r.q.q.r.y.y.wacabahababaaacacabaa.vap.C.C#q#SbLaG#8bnbOa#.Dbqbpbpbp.D.2.2bIama##sbQ.Ebs#Ubn.4baada6ae.X.9#D#c#F#J#LaraRaKboaNbobuaQaQaE#j#nan.V.7#yb#b.a6.G#ubb#V.4bc.4bibd.4.4bibcbdaj.FaI#tbn#UbnbnaHbnbnazbQ.E#R.E.E#s.E#8bsbnbQbhaG.EbhbQaGbh.E.3#8bQbO#s#7.2bpbM#r#rbHbM#r#TaIaY#c#Jaf.D#rQtQtQtQtQtavaQasaCaCaD#Nar#nQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQt.z.uaqab.p.v.v.q.v.q.q.q.y.w.w.y.waaabab.wacahaa.q.2a#bLbqbpaxbH#r#rbp.2bpbLbIa##Ta#bh.3bs#tbf#V.Gae#v#x.Q#d#Y#o#KaFaNaWbgbtaNaLaEasat#k#n#f.P#A#x#Wa0a6.G#uadbbbcbibcaj.F.FajajaI#U#Ubjbj#Ubnbnbjbj#tbn#UbnaH#Ubn.3#U.3#8#8#RbO.Ebhbh#sbQbQbQbh.E.E.EbO#T.2bN#rbmbM#r#r#r#r.2bh.4.X#e#NaCawarar#mataCaD#Oarbn.CQtQtQtQtQtQt#kaKavaFavauas#PQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.0.m.B.w.y.v.v.w.l.q.q.v.w.w.y.v.waaaa.wabababab#rbMbKbMbHbm.DbLa##sbQbQbnbs#t.YaXaea4.J##bJan#1aDaMbgbtbubtaNaRalaw#2#3#d.L#Ca4a3b.a7a1a7adad#Vbabibdajbibi#tbfbj#t#UaIaI#Ubj#Ubnbn#Uazbsbsazazbnbs.3bnbs#R#RbQ.E.E.EbsaGaGbsbsbs#RbxambNbpbM#rbH.1bKbmbpbh.Yaf#E#l#OaDasaRaEauav#M#M#i#Oaw#maA#m#Oawaraw#QbqbrQtQtQtQtQtQtQtaFaraMavavala.QtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQt.0ah.y.q.r.w.v.q.q.v.yaa.v.yaa.w.y.v.w.waaaaab#rbmax#rbN.2ambxaGbsbnbea9a6a0.H.8.V.U#F#j#4aLaMblaWbFaOaQar#m#nakag#.#wa3a2a7#p#u.4.4.4bcbdaIajbdbfbi#taIbf#tbnbnaH#tbj#taH.3bnbnbnbn.3bsbnbn#Uazbs#R#R#R#8bs#R.3#UbnaH#RbObI.2bmbpaxbK#SbMbHax.D#Ua5.J#n#Pawaoasasat#O#OalaDaEaD#Q#Q#Qaw#m#jalaDalaDaw#N#4.RaBQtQtQtQtQtQtQtbsaEaFaKaMau#1QtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQt.naqab.v.y.q.p.r.q.v.w.y.w.waa.waaaaabab.wab.1bMbmbpam#TbP.E#Ubd#u.5.H#A.T#d#oataAaKaubuaOaOasalaw#2#g.U.L#z.HaY.5aSadbabb.4bd.FaIbiaI#taHaI.FaI#UaI#UaIaH#U#U#Ubj#Ubj#Ubnbn#8bsbn.3#8#8#R.3bnaH.3.3aH#UaIbjbn#R#sambIbpbqaxbMbm#rbNbO.4afag#l#Par#NaraD#NaEalawarao#NawaAaCaoatatao#Q#O#Q#4atawaw#K#i#n#j#qaPQtQtQtQtQtQtQt#FaMaMauaR#j#tQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQt.x.B.w.w.k.q.v.y.q.y.w.w.wabab.waaa#bQ.wahbq#sbnaIada5aYaV.8#F#H#jaw#Masat#L#I#2#Fag.M#B.X.Haeb..Gba.Yaj.F.Fbj#UbnazaHaHbn#UbjaHbjaH#U#UbjaI#tbjaIbj.3bsbs.3#8bnbs#Rbsbs#R.E#8bn#Rbs#Ubnbn.Ea#ambLbpbqbp#r#r#rbp#sbcaeagataDaDaEaF#QauaAat#OatasalaDataE#OalasaCaAaual#Oataw#Nao#k#K#N#2#d.6a4#m#G.8.P#J#n.CaBQtQtQtQtQtQtQt#favaLaFas#IQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQt.kaa.y.q.p.r.r.r.y.w.yab.w.waaabbx.4a3.4a1#x#b#f#J#g#1#J#o#Y#ha.#D.Q#z.X.5.5.G.4.Ybiajbi#t#U#Ubs#Ubnazbn#tazbs#U#UaHbnbsbnbs#8#8#8#R#8#8#8bs#8#8#R#R#RbQ#8#R#UaIaIbj.3bQa##7.2bqbNbqbqbNbNbLbQbcafanavbuaWaJaFboaEasaOaAaAaAasaCawavaoaCauas#Nataoataw#4aoaAat#N#j#H#.#Las#3.X#y#Aatal#n#I#kaD#m.6#Q#M#m#G#qapQtQtQtQtQtQtQtavaJasao#4QtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.oabaa.w.q.q.vacab.wab.w.waaaabp#sbha9.9#DbJ.O.O.7a4#vb.ad#Vbi#tbnbs.3.3#8bQ#8.3bs.3#8bn#8#U.3#Rbs#8#R#R.3#R.3aHaHbs.3#RbQ#8#R#8.3#8bs#Ubj#t#tbn.EaGbx#TbqbpbmbM#r#rbp.Dbhbc#9#davbublbtaJboaKbgaRbkaWbtaLaLaRauaRaAaEalaAavasat#N#K#javasaCar#PawalaFaEaD#Pal#2#2#I#QaR#O.H#K#kawar#v#kat#naD.T#o#k#h#X.O.CbrQtQtQtQtQtQtavaMaEaR#MQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.r.w.w.r.r.v.w.w.wabac.wacabbHbpbq#TbsbibeaIbjaHbj#tbnbnbnbQbObQbQ#RaG.Ebh#R#R#8#8bhbhbQ#8#R#R#8#RbQbhbO.EbhbQ.E#RbQ#8aHaH#UbQbPbL.2.2.DbpaxbpbpbpbLbPaIa7#.#QaKaJaWbubzbkaJaJaKaJbtbkbubzbvblbtbyboblaLal#LataC#m#Gbc.Jatas#N.Naf#naOaDaRaraE#4awaAaravaKaR#Nag#N#Pawar.L#Han#W#i#H#h#ibb#k#O#4#f#i#o#kae.C#qQtQtQtQtasaFaMaL#3#MQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.qaa.v.w.r.wabaaabaaababab.CbH#rbp.2bPbPbObPaGaGbhbO#sbPa##s#sbObO#s#s#s#s#sbO#sbhbhbQaGaGbh#R#8#8bn.3bnbQ#s#7.2bpbmaxbp#r#rbmbp#7#Ua1###QaRaNaOaOaKaQblauavaNaJaFaJaWauaObtaNbgbwaKbtblaMaR.6aWaNaRat#n#rawaraF#1#g#n#jbkav#9aDauawataA#P#Q#l#malaAaCbkaLaAao#i.K.4#Yar#I#G.6#F#l#PbJ#m#O#Nav#9#l#M#laA.F#qa9boaKaKaKaOaOaD#K#4QtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.s.rac.w.wabacabaa.wah.waa.C#6#rbpbLambI#7bxbxbP#sbxa##s#7#T#sbObxbx#s#sa##s#saG#8#8#RbQa#.2bNbpbNax#rbH#SbHbHbp.Ea9aV#iboboaJbgbzaMaWaNaKaJbgaQaFaNbtaNaWaKaOaMaKaOaQaOaNbtaNbgbobFbwaWaWavalboaJaKau#v#N#QavboakatawalaKaQ#i#j#j#n#jaD#L.Xb#ad#PavaDaDboaE#j#3.V#3#iaEaoaV#M#PataO#W#Nas#Qas#D#K#I#n#Zat.E.CaZaJaJasavavaoaAQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.0abah.wab.waa.w.y.w.w.waP#q#Sbq.2bpbLbLbI#T#7a##T#TbI.2#Ta##T#TbL.Dbp#r#rbK.1.C#6.1#6.C.1#r#sbia3#XavaMasas#NaLasaMauaQaQaQbwbkauaJaMaNaQaFaMaOaJaLaQaMbgboaKaWboaLboauaMaKbkbwbkbvbtaQaTaFaKaMbkaQ#Dauat#mbgag#P#P#yalalaQ#o.4bibbal#O#D#0#iaoaFawararasaD#Pa2#i#N#Nav#B#k#i#J#n#K#f#Iaj#E#Pak#g#n#L#natbq.C#vaK#nboaA#Fa7QtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.Z#5.w.wab.waaab.waaabap#6#rbpbmax.2bLbq.2am#TbNbm#S#qapapai.Baqaq.Bah.B.BaiapaBbM#s.4#y#naubtbgaNbgaNaNaRaRaObtaMaEavaMaQaWaKbwbuaWbwboboblaNaQboaWaQauauaQaLaLaFbublaNbtbDbtbuaNaNaK#waJaLaNaWbu#m#Q#3#b#i#L#k#G#X#1#oav#PaV.V#naLaR.Nav#mat#4#PawatblaE#k.R#4#Q#F#K#i#d#objaU#L#f#o#v#.#K#2#D#M#M#O#O#xbraxaQ#KaDas#OQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtahabababaa.w.waa.w.waP#SbMbHbmbqbNbp#r#qayab.y.q.l.q.q.v.y.q.yaaaaabaibKbQ#p#B#maraFbtboaQboaMaLavaraRaraAaRaLaNaWaNaLaRaQbkaWaKaJaWaFaQbtaWaNblbtaNaQbuaJaLaEaLasbkaQaWbzbGbBbDbvbv.Uao#4#l#iaNaC#X.V.W#naraD#G#G.Q#gboata3#KasataM.6aDao#OaR#mal#4aDao#l#4#h#Fazag#i.O#H#9.X#J#lbJ#nat#maC#f#Nalaras#P#S#q#daRaoaoaXQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.wababab.wab.w.w.v.w.y.y.q.r.q.r.r.r.r.x.r.r.r.r.w.C#Tbb.I#d#3#j#k#K#mawalaDaRawaDaoaAaualauaLaEawaOavaLaFaRaQavaLauaEaQbgaFaEboaNaNbtaWavaWaJaNblbvaWbwbkbtbE#P#n#i#nbDbE#P#c#N#laOaw#4#G#J#IaL#N.N.N#kaFbo#i#QasaoblaL#y#Q#Nao#MaU#F#iar#OawaEaraEaOar#N#G.J#dan#2#j.Q#i#P#Par#Aar#Nawaw#Jar#P#L#i#O#laBaB#SQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtahah.w.wab.r.n.m.l.p.r.r.qaaaqbm.E#u#z#E#0#i#n#f#n#n#L#i#Z#i#l#K#M#o#k#n#L#k#KaD#maE#P#4#karararauaAaEaAauaJaRaRaOavaRaLaLaFbkaMbububybgbGbDbAbgaJ#Pa8#JaJaM#X#2ajaTaE#Q#G#K.X#QaRaE#CalaDaAbkaCa3#4alavaK#G#k#NaAao#o#i#0#N#3a0aXa1.K#QalaCarataw#MaO#j#1ae#l#j#laA.9aA#iana.#G#o#f.MaI#0#l#f#Za2an#i#Fap.CQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtahacaaabaa.o.j.m.la2#X#e#f#f#I#J#1#h#G#3#i#H#1#i#i#n#K#n#I#j#L#Latawat#K#marar#j#N#j#l#l#M#l#m#N#N#LaDaDaoaFaRauaOaObEbE#YaT#Aakbwbu#G#s.T#FbyaT#1a6aS#gaE#3.5awauaWbDal#daWaQbtbz#9al#Oat#j#i.L#Haw#oak.Waf#EaD#k#0#faT#gav#MaYaCaw#O#Pat#NaC#4arawaA#k#F#G#1#x#YaU.S#Cag.6#h#k#X.Vaoalao#4.U#Ya7#D#Y.VaBaBQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.oacacahab.m.o.p#S#h#X#0#JaT#n#Z#F#0an#1#g#1#n#o#3#n#2#i#MaD#M#m#j#m#l#Q#O#m#maw#Lawaw#Q#k#PaCaraRauasaQaNbl#ka4#V#fbkav.V#E.3agbl#I#ZaVajagbz#f.7.Lbb#LbF#I#vaCaFavbuaEalauauauaJ#E#L#Oao#D#fa3#H#i#3#D.Wbc.O#N#k#i.OaU#gaC#kagaraA#OaE#P#O#M#K#NaoaFaC#P#0#D#n#2#M#I#f#3aCalav#n#eaFaC#2ao#D#a#X#.#X#G.CaB#SQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.y.Bah.w.r.n.xbx#1#F#H#F#F#0#G#3#o#1#i#H#n#o#i#3#H#3#1#Q#j#2#2#I#P#K#m#Oaw#kaD#Q#O#O#O#OalavbuaJ#Q.9#hbtbv.LaYbL.OaL#1#zanbp#A#lan.W#hbh#eaF#l.V#PaDaLbDal#naMawasbtaQ#NaEaA#h#0bda4#ZaA#FaUa0#F#J#O#n#b#j#Nal#L#J#dakaT#Earalao#3#F#1aFar#N#P#P#Z#kalat#G#d#iataDas#n#QawaFalasaw#i#Q#3#oaU#x#A#X#0#G.Hap.CQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtacabaaaa.i.m.r#n#h#o#1#o#l#Z#3#K#n#i#Z#k#Han#d.P.O.V#y#z#K#Oao#Nal#PalasaLaublbubkau#M#LbubFafaU#U.SaU#I.R.Pa8#.#j#G.Nb#araDasbG#o#mauaJaLbo#.aDasaE#O#M#F#YaE#O#o.3aY#0ar#o.S#z#c#0aw#i#9aw#NalaF#n#P#4#o#F#ha.#b#A.6.Tan#Lan#fa4.VaUaA#M#l#l#4#jaAal#IagaD#m#L#P#2#0an#Y#Fa.#Kag#c#0#1#I#1.5#j#M#m#Qa9aB#qQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaaabab.x.o.kb.#3#g#H#n#Y#h#G#f#faU#G#G#D#xa0bnaea4#A#.#P#NbzblbwbA.RaUaa.W#gbF#z#FbL#a#b#L.K.Hak#IaC#P#Xa9#NaDaobv#2#maCavaCbtaF#maL#P#D#daU.6#gaE.P#Zbn#d#Y#1#d#A#kaFaRbo.MataCataAaK.NaoaA#H.Ma.anal#f.O.S#A.LbJ#f#Z#Pbo#M.XawaoaCaE#4#M#4#O#Q#kal#ia.#D#F#D#a.M.H#.#K#Q#QaD#2#W#Oat#laE#1#M#OaE#Pat.3apbKQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.xac.yab.o.k.w#k#H#0#k#n#i#n#I#G#e#gaQ.J#W#D#Z#2#2aw#K.Va.#t.M#oaJ#c.R.7a8#fbAbJaV.8ae#2al#e#Wal#NaoaNaO#KaC#Pau#I#Gak#FaQ#Y#J.4#z#daQak#Ab#.6#gaw#J.5alaOaLbu#Y#OaAasaAaO#D#4#QbJ.V#u.LaU.S.V#E#uak#2#i.O#4at#Pawavaoaraobu#1#oak#FaCar#2#l#Z#k#k#LaQ#Z.U.U#KaAaCao#jaCaCaAaCbt#EaDas#4aD#l#m#PaoaAaFaobOaP.CQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.xab.waa.i.k.l#2#O#j#L#j#0ak#g#j#o#ibvak.I#F#f.U.PaD#4aV#b#W#..VaFa.#W#i#NaOaQ#n.GaraFavbk#M#JaCas#OaMbl#2#law#lanaj.5.Sbo#bbJ.K#zagaM#n.6aD#OasaW#La4araCaFboaoaRaL#F#Y#J#f#h#h.O.S.I.O#g#FbJ#z#OasataM#BaAasaOavawaw#M#MaF.T.5bQ#v#jaEao#j#I#Z#3#k#MaD#gagatawararalaRarasaFav#MarawaoaAalaFaFaFavaraw.TaibrQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.kab.wab.j.m.p#zaw#M#L#L#I#n#G#1#J#0#N#0.9.7.7#p#V#Har.Mag.SaV.R#lbJbbawaoasbtaJa0aFaKaMbgaL#maRaRar#f.5#v#aaC#c.T.P#t.PaCag.9#Y#maEbg#N.HaoaAaFaRbo#4#m#P#K#e.W#E#P#D#aa7#w.M#XanaYatav#OaF#c#F#lat#PaR#xar#j#j#3#gawaD#I#M#A#v#b#iaoaCaFaw#M#2#2#k#m#m#1.U#NataDavaKaraD#4awalaDaRaRaLaA#O#PalaDal#Q#j#ibp#qaBQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.rahabac.v.n.lai#Q#P#k#4#Z#1#n#J#e#F#oaF.Oaf#.##.K#FaL#Ea7#i#NarboasaTaEaOaEaRbw#i#ZboaKa.bjaH#BaraU.LaV#w.P#M#n.U#naRaJbobw#.alauavaDav.Rar#3#2#faf.L#P#c.Lae.IbJaF#da2#4aEaAavatagar#K#P#m#H#f#0#j#N#O#Y#A.7#d#2awal#o#Yan#b#x#Laoal#N#i#l#Q#M#4#i#K#M#k#galasasaCaDauaQaLaral#P#Oawar#Patataoaw#NaC#O#N#K#6aBaiQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaaacabab.v.u.m.k#nawal#m#I#I#k#o#o#X#3#P#0a4.GataFavbDbg.RaCaEal#G.U.X.Mavau.V#8am.8#i#Y#b.9.8#faC#Oa.#kaAaOaRbkag#P#O#k#G#0.Mav#h.OaGbs#.#2#e#D.P#A#iao#Q#.#NaFaDaCbg#E#P#OaE#n#D#u#D#J#K#A.X#E#Mas#D.L.6.Q#zaoalataAaR#J.S#e#M#NawataDaEalaw#L#2#i#Q#M#P#n#MatatawawaD#Oasao#N#k#4#j#j#m#PaoaCaraD#m#Oat#L#AapaPapQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.wahabab.w.l.o.l#raD#M#2#i#M#l#l#J#G#0#Z#O.H#i#i#n#dagagbJ.PaK#h.QbjaI.Waw#I.P.R#e#2auaW.N#LaAaOaDbt#haoaw#1#0#C.R#I#Z.O.T#Ua2aT#G.S#XaEalaAboakaFasav#MaJ#Y#K#Z#Oag#b#U#x#JaQ.M.8#PatataD#D#AaualaCavaT##.RaDaraDaw#P#4#Q#LaQ#m#M#QawaDaFasaE#m#P#n#4#j#k#Ialar#Pao#4aA#P#4#Q#L#Mat#N#2#Q#M#M#l#j#i#Z.Pa1bs.CaB.C.C#5QtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.yahahahab.w.i.l.q#Kalal#4#j#i#k#H#I#M#kaFa.#n.Vag.Q#W.X.K#B#j#n.W#XauaEaFaW###mawavalat#D#N#M##a2.4#w.L#HbJ#..H#f#M#L#c#vaDavaEbk#JaFas#Q#P#k#a#yaUaE#D.8adb##Haw#c.KalaCavaR#i.KauaAaCaFas#YaoaCauaFaQaCaDauataD#4#m#NaDawasaRas#malaD#L#Q#n#L#j#m#j#P#l#L#l#K#malat#j#j#4#M#i#i#i#n#F.6bd#T#r.C.C.C#6.C.C.C.C.C#S.1QtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.qahahac.wah.l.l.rbjaraw#m#G#n#4#i#I#k#4#MaKag#z#ialavataEasaRbB#faLaMaC#2#f#baE#O#A.8#U#u#A#h.T.6#NaDaCau#D.PalarauaWawawao#N#M#Fa2bf#D#k#D.J.J#Z#Oau#c.N#Mararawav#DasaRaQar#3#D#i#G#i#i#n#K#laCaraQboaLaMaOaOasaEaDal#Naw#m#P#Q#m#m#3#i#1#i#Z#l#j#i#l#2#L#j#M#Z#i#K#2#D#vajbL#q#q.C.C.C.C#6#S#S#S#S#S#S#S#S#S#S#SbK#rQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.x.Bahaqabab.y.n.l.qal#4#P#i#I#Q#Q#l#j#L#3aW#3#aauaNaRasaAasasaL#NaL#j.Oa.bba2.L#Ha.a3aCaEauaQ#h#LaJaLaQasao#0#1aC#M#fa5bh#0ar#f#d.6asaRbuaCa.aDaOaMaAaR#Xal#K#n#n#F#e#2#n#law#mararasaDauaRaMaQawaoaLaCalasal#l#i#l#K#2#3#I#i#i#3#Z#i#o#H#n#n#i#1#3#J#1#F.Ma5bs#rbraB#q.C.C#q.C.C.C.1.1#S#SbHbK#r#rax#r#r#rbMaxaxbpbpbpQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.y.qah.wababaa.o.m.raZao#matatawaraoat#K#f.Na..9auaJ#o.Ma5.QaWaOaubk#g#e.MaLaMaCbu#HaoaFar#O#l.L#9aU#4#i#A#Waf#3aD#eag#laAaFaOaF#YalaRaKasaC#3#M#P#3#l#g#I#i#4#NaoauaRbkauauaLaQboboaQaNaLaKaJaOasaW#Q#4#j#m#N#i#H#o#3#3#Z#Z#i#i#1#n#XanaU.U#vajam#qapapaiapaPaBap.C.C.C#S#6#6.C.1#SbMbMbMbH#rbmbp#rbNbqbpbNbpbqbqbqbpbpaqQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtai.racabacaaab.m.m.xbpalaw#Nao#i#MaD#m#d#z#9bs.4aw#FaUbbbi#9aMaC#gaE#IaU#4ataravasal#J#iaC#Nagb.#R#f#j.U.T#x#OauaKatbJalaraMaoaW#jawaE#O#M#o#0#F#3#Z#O#4ataFawavaRaRaraFavaQaLaOavaKbubublbobtblaKaRaE#4#Z#2#M#k#j#O#L#i#J#X#g#X#E#DaVbcam#q.Bay#5aiaiaiapap#qaBaP#q.C.C.1bHbH#6bHbHbH#rbmaxaxbpbNbN.2.2bqbq.2.DbNbq.2bN.BQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtah.rah.Bahahab.w.o.xabaraw#M#l#P#4aw#P#.#W#waY.8aD#g#Bae#A#Xbw#D.J#b#O#FaraCaC#N#cad#8.LaraU#B.L#Zaoav#H#b#kasaEasaN#FataLaF#O#I#0#Z#J#J#3#I#M#NaoavaraKauauaFaAaJaQaLblaJaKaKbubgaEaRaMaKaLaOauaQavar#j#2#i#0#n#n#X#g#f#f#f.6.4bx#qaqaq.Bay#5.BaiapapaiapapaB#q#q.C.1#SbKbH#r#SbH#r#r#rbpbpbpbpbp.2.Dbqbqbq.D.2.2bIbL#TQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.r.B.yabababacah.o.m.k.Vavar#OaCaE#PbB#b#.avaLaraAby#xaFawaE#Qa.#A#xb#.WbkaJaW.N.J#e#MaAaJ#f.OawataEaAaQ#G#N#Q#Q#l#H#X#H#3#2#jalaFaQbtblauaQalauaRaOaraMaAasaRaKaLavaRaOaOaNaKaKaFauasavaKaQaLaWaQaE#l#N#G#f.LaS#s.1ahacab.waaabaq.Bah.B#5.BaiaBaPaP#q#q#q.C#6#6#6bMbMbH#r#SaxbMax#rbpbpbN.2.2.2.D.DbL.2a#bhbQbhbx#Tbx#RaBQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.uaiahababaaaa.w.x.j.kapaEaDalau#malar#1#haC#O#E#.#OaraCaE#D#B.J#Y#3ataC#N.Q#F#fbJ#laoaCaraO#h#4#M#1#n#F#g#1#i#Z#PauaraFaFaKaMaMaRbtaQaQavaWaKaMboauaMaQavaRaLaCasaAauaWaCaJavaLaAaFawasat#k#G#WaHbmah.w.y.v.yaa.yahababaaacabah.BaiayapapaBaB#q#q.C.C.C#6#6bKbH#SbHbMaxbpbNbp#rbpbpbNbpbIa#aG.E#sa#a#bxbO#sbObh#8#8#8bsQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.bai.B.kaaabahab.y.o.m.qaDaD#OataA#Q#Pboal#.baag.L#Qbu#d#.aYakaEaCauasaLaL#Q.Mal#Kaoat#E#Z#J#n#1#Q#MataEaFaKasaOaOaJblbtbtaKboaWaNavaQaKaKaKaLboasaQaFaQaEaMaOasaRaEarawaw#K#Eafbe.D#5.w.q.qab.r.w.w.w.wababaaaaahacaq#5aq.B#5ayaPapap#q#6.C.1.C#q#6bK.1bKbHbMbH#rbpbpbNbN.D#T#sbO#sam#T#7bxbx#sbO.Ebh#8bnbjbfaj#VaS.5#UQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.v#5.w.q.waa.q.v.Z.m.kaZaAao#P#I#4#Lbtal.8aYaCaFaQbw.S.Ka2bJawaLaLaMaLarao#jbvaoaE#P#j#Pao#laRaDauaLaWaMaKaCaRaNaWaOaOasaQauaFaCauaQboaWaOaWaOaJaQaQaRaFaDaC#M#k#I#F.6#Ubpaq.y.q.q.v.q.q.r.wacabab.v.yababacah.B.B#5aiaiaiaPaPaBaBaPapaP.C#6.1#S#S#SbK#SbHbMbH#raxbIbx.E#s#TbLam#TbPbP#s#s.EbQ.3bjbebiajbb#pa5b#.5#UQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.o.Baq.r.yabaa.y.i.m.kbpar#N#N#PaE#LaQ#m#xanaoaWboaM#i.LaV#nblaLaAauaMavaraEav#NaD#k#mauauaJaNaRaKbuaQaJaKaRaQauaNasaRaRaLaNaKboaOaJauaFaRasavavavaFaE#L#2#Xaf#Ubpaq.q.v.q.qab.r.q.v.q.y.w.y.waaacahabahacahaqaqai.Bai#5apapapaibr#qaBaP.C#q.C#6#6.1.1#S#S#r#7#7bxambIbI#7#Tbxbx#s#R#8bsbn#taj.Ybaa7.5a3a0.Ya#QtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtacab.m.l.r.p.r.o.d.i.jaCaraoaC#l#P#Nar#zataOaRasarbFaDaCaRaFauaOaFarasaOaRaF#l#Naw#NauaRaJauavauauaAaJawaMaMaRaWaKaKaJaRaFaLaRaraC#N#K#3#f.Ibi.Dah.r.m.x.k.r.p.q.r.l.r.q.waa.y.w.y.w.wabahabah.B.B.B.B.B.Baiay#5#5apapaPaBaBaB#q#S.1.1#S#S#r.DamambNbNbq.DbIbLa#bxaGbhbnaz#Uaj.4#Va7aY#WaebjbNaiQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.bab.w.m.q.l.l.r.h.u.i#U#4ar#I#I#m#PboanaJaFaMaJaNbFaKaKavauaraAalaAaA#P#Q#2#4#IaW#NaQboaQaKaJaKaOaOaRauasaLauaAatal#Nal#n.SaS#sap.l.k.m.k.x.k.l.l.x.l.k.p.r.q.q.w.wacababacacacab.B.B.B#5#5aiaiap#5#5apapaPaPaB#qaB#q#q.C#6ax.2am.2#rbpbp.DbqbqbIama##sbQbnbnbeaja9a1aY.6afbf.DahQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.oab.w.l.k.l.m.d.A.c.jasaCaw#m#maD#I#javaFaCaKaFawaA#P#Q#i#M#O#4#K#i#n#M#l#2#LalaFaMavauaJaQaJavaFao#P#k#X.X#UbH.r.m.x.x.x.k.l.q.r.r.q.r.v.y.l.v.q.q.w.waaababah.Bai.B#5ay#5ayapaiaiaiaiapapap#qaBbr#q.1.C#r.DbIbIbpbpbpbpbp.2bL.2ama##saG#R#8bjajbb#pb.#W#W.Fbq.BQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtacab.m.x.l.x.u.A.c.i#maAawao#Nal#M#m#mat#OaA#M#I#N#Z#l#L#P#L#M#l#P#Q#l#N#Q#k#ialaEar#NaDaual#O#Ga4bfbpac.k.k.k.p.l.p.r.q.q.r.v.q.q.y.vaa.vaaabab.B.Baq.Baq#5.BayaiaiaiapaBaBaPbrap#qbraB#q#q#q#q.1bNbI#T.2bpbp.DbI.2amam#T#7a#bPbhbnazbebia8a5#W.6a8.E.CQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtahaq.k.l.q.q.p.d.u.o.XaO#L#m#i#j#4#L#M#Q#N#P#k#i#4#I#L#N#Pat#N#l#n#I#i#3#i#I#Z#I#k#I#L#n#A.4.2#5.w.p.k.r.k.r.r.r.v.q.v.vababababababacacah.B#5aqaqaiaiaiaBapaPaPaP#qbrapapaBaB#qaBbr#6#qbK.2#TbI.2#r#rbpbpbpbq.2bL#TbxbObQbnbn#Ubeada5a0#v.XbebNahQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.Z#5.B.r.p.q.q.c.o.naaaAat#L#l#2#M#Q#P#j#M#2#L#K#n#i#I#2#H#k#j#j#L#2#M#0.J.4#TaP.q.r.p.r.r.r.r.q.q.v.q.v.y.waaaaaa.wahah.Bah.Bah.Bay.B.B.Bayaiaq#5aPaPapapapapaB.C#qbr#q.C#r.DamambpbM#r#rbmbmbqbp.2#TbP#s.Ebnbjbi.4a8a6a3#v.HbbamaqQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaq#5.v.p.q.r.j.c.o.o#X#O#j#j#I#L#P#N#j#N#K#N#P#k#3#i#YbJa1bQ#S.w.r.k.k.x.k.l.l.r.y.v.y.vababahacaaahahabaaababahah.Bai.B#5aiaiaiaPaPaPaB#qbraBaB#q#6.C#6bHbLbxa#.2bmaxbmbmbNbq.D.2#7#TbObhbh#8bnbfbaa5a0a4#z.I.4bp.qQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.s#5aq.m.p.q.w.Z.i.oaPaD#k#Q#4#1#h#i#naTa0bQ#6.q.l.m.k.r.r.v.w.w.v.w.y.wabab.wababahacacah.Bah.B.B.Baq.Bayayai#5apaiapaBaB#qaB#qaBaB#q#q.CbNambI.2bMbH#SaxbpbpbqbLam#Tbx#sbQbQbsbj.4#pa6aY.X.7af.3aPQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.mayah.r.yaa.n.i.o.o.kbHbOaxaa.m.j.m.l.k.x.r.p.r.r.q.q.y.yabacabacacacaqaqah.B#5#5ai#5apapapapapaPapaiaB#qbraBaB#q.C#q.C#S.2bI#TbLax#r#rbpbN.2bN.2#T#Tbx.E#Rbs#Uajba#pa2b##x#.a6bx#5QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaiah.m.q.y.v.h.o.j.o.j.o.x.l.l.q.p.l.q.q.y.v.v.wab.w.Bahahaq.Baq.B#5aiaiaiaiayapapaPaiaBbrbr#q#q#q#q#6#S.2bObh#7bpax#raxaxaxbmam.2am#TbP#sbQbs#U.F.4#pa6af#A#w.4bq.vQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.h#5ah.m.raa.Z.j.k.k.r.r.v.l.v.w.w.w.wabaa.wabacacah#5ai.B#5.Bai#5#5#5apaB#q#6.C#6#6.1.1#rbI#Tbx#TbqbmbqbL.2.2.2.DbIambPbh#8bs#Ubi.4a8.5#v.6.JaYbn#q.iQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.qaq.y.p.w.o.x.q.y.v.wab.wabahababacahahab.BaqaiaiapaiapaPai#qaP.C#q.1#S.2#T#sbxbqbpbp.2.Dbm.2.2bLbx#sbO.3aH#Ubi.Y.4aSa0af#z#A#u.2.qQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.Aai.B.x.y.k.m.v.qabababahacahahab.B#5#5aq#5ayaiapapaB.C.C.C.1#Sax#TbO.E#sax#r.D.2bp.D.2a#bxbhbQ.Ebsbn#UbdadaXaY.H.I#Aa6aG#5.ZQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaBai.mab.q.mab.wabacababah.Baq.Bahah#5#5#5aP#q#q#q.C.C#SbqbxbPambmbpbpbNbq.2am#Ta#a#bO#8bsaIbi.4adaSa1b#.6.J.X#U#6.oQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.iaBai.qab.kac.Baq.B.B.B#5apaB#5aP#q.C.1bma##sbx.2bpaxbNaxbq.2bLbI#Tbx#saG#8#Ubfajada6a2.H.7.J#p#TaqQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#5ap.rababaiapapapaiaB.1bpbI#Tbmbmbm.2.DbLbp.2am#Ta##sbO.3bs#Ubi#V#pa5a3aV.R.Ibf#r.pQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.eaPai.obM.D#T.D#r#SbM#rbm#rbp.2bLama##s#saGbnbjbd#ua6b#.X#x.RaYbh#5QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.l#5aqah#SbK#SbMaxbmbNbLa#bQ.3#Ubi#VaXa0.X.7#Abbbq.r.tQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaiaibNbq#TbPbhazbjbdada6a3#y.5bQbr.uQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#rbjada6a2aebfbp.yQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.tQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"}; diff --git a/konsole/doc/color-schema b/konsole/doc/color-schema new file mode 100644 index 000000000..37f754a17 --- /dev/null +++ b/konsole/doc/color-schema @@ -0,0 +1,114 @@ +[README.color.schema] + +Having made parts of the rendition process configurable, some explanation +seem to be required, to. Since I'm writing a color schema configuration +program in the moment, these notes are also some of the preparations for it. + + +First of all, the redition process deals with a lot of parameters, making +a useful configuration program for it quite complicated. + +Looking at TECommon.h, the current implementation of a character cell allows +not less then 256 different foreground and background colors, together with +256 rendition values, with, forming a bit vector can be treated as 8 different +rendition attributes (like blink, bold, underlined, etc.) + +[From the later, one already sees one misconception within the current + implentation. Attributes like bold, underlined, etc. belong to font. + Now because we do not have a proper terminal font family, this goes + into the rendition attributes instead. Sooner or later, no way will + lead around getting a proper family of scalable fonts for konsole.] + + +Upon further investigation one has carefully to distinguish between +the ability of the protocol to express rendition and the abilities of +the terminal widget to do them. + +The protocol is able to express 18 different colors, this is 8 colors +taken from an RBG cube and an additional default color (which is intentionally +one of the 8 but it needn't be) both for fore- and background. + +For simplicity, we interpret the fore- and background colors of the RGB cube +to be identical, thus ending up with 10 different colors (8 RBG + 2 default). +Note that this is not necessary, but just konsole's interpretation, it may +well make quite a lot of sense to have different sets of (real) colors for fore- +and background. + +Now the xterm protocol can further express the following attributes: + +- bold +- underlined +- blink +- reverse + +The Linux console protocol knows also the attribute + +- half-bright + +Now, when it comes to interpretation, things become pretty messed up. + +Xterm interprets "bold" as "font bold" + "foreground intensive" +Linux interprets "bold" as "foreground intensive" + +Xterm interprets "blink" as nothing +Linux interprets "blink" as "background intensive" + +Xterm interprets "underlined" as "font underlined" +Linux interprets "underlines" as "foreground intensive" + +Xterm interprets "half-bright" as nothing +Linux interprets "half-bright" as "foreground dim" +ANSI interprets "half-bright" as "font italic" + +all interprets "reverse" as "exchange fore- and background color" + + +A flexible interpretation engine is needed to cope with all this. +A proper configuration should also take care of it. + +Since intensive and faint colors can also be expressed by the protocols, +the number of colors double or tripple (we do not have implemented +half-bright, yet, since we've just started to do the Linux console emulation.) + +Note that the protocol is not able to express "intense", which causes part +of the confusion listed above. Xterms interpretation of bold as intensive+bold +is most probably caused by the fact, that in a black on white color display +(which is their default), "black" cannot be intensified, thus the attribute +would get lost. Linux gets around this problem by having the regular black as +dark gray, and only intensive black as black. + +As a matter of personal taste, the author strongly dislikes the apparence of +the this combination when it comes to colorful applications. Thus the default +schema of konsole is configured to render only the default foreground color +as bold, while the others are rendered intensive. By this, the interpretation +device (and it's configuration) is even more complex as it appears above. + + +Konsole's rendition engine is currently not able to cope with font attributes +by changing the font. Instead, it does some (costly) operations with the +character images themselves to produce: + +- bold +- underlined + +It cannot render italic and is (by a parameter) limited to 20 different +colors. That fore- and background colors are interpreted identically, is +also build-in to the engine (and interpretation). These aren't severe +limitations, it can be changed easily. + +Other then the emulations mentioned above, konsole can interpret "blink" +as blink. Just to have a little more fun, konsole can display background +images, meaning that some background colors have to be interpreted as +"transparent" when a background image exists. Practically, this can only +be the default background color, so a least this one could be hard-wired. + +To set up a proper configuration, I do not want the users to cope with +all this unnecessary complications. Instead, a approach has to be found, +that allows to configure the already existing interpretations and other, +that do make sense. As stated above, it does not make sense individual +colors beside the default background colors to become transparent. Nor +does it make sense, to set all the 52 possible colors individually, since +an RGB color cube is intented with some intensity attributes. Some +experimentation is certainly necessary to get things right. E.g. VGA and +X11 colors are different for one of the yellow sorts, beside just being +gamma corrected. diff --git a/konsole/doc/framework b/konsole/doc/framework new file mode 100644 index 000000000..b07f8e6d5 --- /dev/null +++ b/konsole/doc/framework @@ -0,0 +1,33 @@ +/*! \page framework + The terminal emulation framework + +The structure of the framework is as follows: + +

+              - - - - - - >               - - - - - ->
+     TEWidget              VT102Emulation              Shell
+              <------------               < - - - - - 
+                                  |
+                                  |
+                                  V
+                              TEScreen
+
+ +Within the drawing, a solid line (A --> B) mean A calls B while the dashed +lines means connected by signal. + +Thus the AnsiEmulation knows about TEWidget and TEScreen, but not the other +way round. `main.C' connects the whole framework. + +The state of the emulation is somewhat like `version 0.8'. It knows most +xterm/vt100 escape codes and does well with bash, vi and mc right now. + +'man' shows a little different output since underlines are missing. + +The `Shell' material is a dump but of no real importance. + +The current implementation does not longer fit to 'kom' since we +are using block operations with the modem. May be we can implement +this within the main program to indicate the end of bulk there. + +*/ diff --git a/konsole/doc/histBuffer b/konsole/doc/histBuffer new file mode 100644 index 000000000..4eb419f6b --- /dev/null +++ b/konsole/doc/histBuffer @@ -0,0 +1,24 @@ +[histBuffer] + +|Documentation|---------------------------------------------------------------- + +The `history' is a facility, that allows to get access to lines +scrolled out from the visible part of the display. It is mainly used +to present the complete result of an operation that produces much +output, such as compilation runs. + +This facility is offered by virtually any terminal around on Linux. + +There are basically two means to control the visible section of the +history. One can both use the keyboard, by pressing Shift-PageUp and +Shift-PageDown, and, if the scrollbar is visible, one can use it to +page through the history also. + +Once parts of the history become visible, konsole maintains this +position, even if new text is added to the history meanwhile. Thus, it +is in history display mode. One can revert to normal operation most +quickly by typing any character (which is then not passed to the +application) or scroll down to the end. + +|Implementation|-------------------------------------------------------------- + diff --git a/konsole/doc/konsole.Doxyfile b/konsole/doc/konsole.Doxyfile new file mode 100644 index 000000000..02a5e0175 --- /dev/null +++ b/konsole/doc/konsole.Doxyfile @@ -0,0 +1,10 @@ +PROJECT_NAME = "Konsole" +OUTPUT_DIRECTORY = konsole +GENERATE_LATEX = NO +INPUT = ../src ../include framework +FILE_PATTERNS = *.C *.h +PERL_PATH = /usr/bin/perl +TAGFILES = qt.tag +QUIET = NO +EXTRACT_PRIVATE = YES +#EXTRACT_ALL = YES diff --git a/konsole/doc/missing.codes b/konsole/doc/missing.codes new file mode 100644 index 000000000..9320a2902 --- /dev/null +++ b/konsole/doc/missing.codes @@ -0,0 +1,89 @@ +Contained in here is a list of VT100 facilities (and extension based on it), +that have very low priority or are not likely to be ever implemented by me. +The order is more or less by priority, so you'll find the most interesting +stuff in the beginning. All this is mainly included so that you can see, what +you miss. + +- some modes ----------------------------------------------------------------- + + The next two modes are difficult to implement (for me). + May be i do them, may be not. Think, smooth scroll would be kool. + + '?4'= Jump scroll (set); Smooth scroll (reset) + '?8'= Auto repeat on (set); Auto repeat off (reset) + + following are not in VT100, nor in xterm, check Linux console + + '2'= Lock keyboard (set); Unlock keyboard (reset) + '12'= Echo on (set); Echo off (reset) + +Hmm, one can easily dig out more other which may originate from different +VT100/VT102 variants. We'll keep things simple, but have to check trough xterm +and Linux console to be sure. + +- rendition material ---------------------------------------------------------- + +This is mainly not implemented because the fonts are too weak. +Eventually, i can do better if i dig a little... + +Set graphic rendition + Where is + 2 = Half // Not in vt100, ansi italic + 21 = Normal intensity (this might well be a spelling mistake i.e. == 22) + Check linux console for some sco-ish stuff. + +Line attributes + Double-height Top half Esc # 3 + Bottom half Esc # 4 + Single-width, single-height Esc # 5 + Double-width Esc # 6 + +- printing related stuff, will not be implemented ---------------------------- + +Don't think this is of any use today. +These codes seem not to appear in VT100 only, may be it was an option. +Implement a log instead? +Implement "save screen and buffer"? + +Modes // not in VT100 + '?18'= Send FF to printer after print screen (set); No char after PS (reset) + '?19'= Print screen prints full screen (set); PS prints scroll region (reset) + +Printing + Esc [ i + Where is + ''= Same as '0' + '0'= Prints screen (full or scroll region) + '4'= Printer controller off + '5'= Printer controller on (Print all received chars to printer) + '?1'= Print cursor line + '?4'= Auto print off + '?5'= Auto print on (Prints line to printer when you exit from it) + +VT52 sequences + Auto print on Esc ^ + Auto print off Esc - + Printer controller on Esc W + Printer controller off Esc X + Print cursor line Esc V + Print screen Esc ] + +- huh, that could be fun! ---------------------------------------------------- + +Programmable LEDs Esc [ Ps q + 0 - All LEDs off + (1 - 4) - Turn respective LED on + +- does not produce a reply, anyway ------------------------------------------- + +Invoke confidence test + Esc [ 2 ; y + Where is + '1'= Power-up test + '2'= Data loopback test + '4'= EIA loopback test + '9'= Power-up tests (continuously) + '10'= Data loopback tests (continuously) + '12'= EIA loopback tests (continuously) + '16'= Printer loopback test + '24'= Printer loopback tests (continuously) diff --git a/konsole/doc/missing.keys b/konsole/doc/missing.keys new file mode 100644 index 000000000..8d0688842 --- /dev/null +++ b/konsole/doc/missing.keys @@ -0,0 +1,124 @@ +KEYPAD AND FUNCTION KEY SUMMARY: +------------------------------- + + CURSOR CONTROL KEYS: + ------------------- + Vt52 ANSI and Cursor Key modes + Arrow Key Mode Reset Set + --------------------------------------------------- + Up Esc A Esc [ A Esc O A +DONE Down Esc B Esc [ B Esc O B + Right Esc C Esc [ C Esc O C + Left Esc D Esc [ D Esc O D + +Comes out to be more complicated than it first appeared... +Troll did something to the key pad. Evtl. i must get raw X11 key events. +The mapping below is quite useless anyway, since it referes to the VT100 +keypad (see doc/More/vt100-numeric-keypad.txt for more). A proper Linux +implementations should send the codes written on the keys of the keypad. + + AUXILLIARY KEYPAD: + ----------------- + + VT52 Mode ANSI Mode + Key Numeric Application Numeric Application + ---------------------------------------------------------------------- + 0 0 Esc ? p 0 Esc O p + 1 1 Esc ? q 1 Esc O q + 2 2 Esc ? r 2 Esc O r + 3 3 Esc ? s 3 Esc O s + 4 4 Esc ? t 4 Esc O t + 5 5 Esc ? u 5 Esc O u + 6 6 Esc ? v 6 Esc O v + 7 7 Esc ? w 7 Esc O w + 8 8 Esc ? x 8 Esc O x + 9 9 Esc ? y 9 Esc O y + - - Esc ? m - Esc O m + , , Esc ? l , Esc O l + . . Esc ? n . Esc O n + ENTER ^M Esc ? M ^M Esc O M + + PF1 Esc P Esc P Esc O P Esc O P + PF2 Esc Q Esc Q Esc O Q Esc O Q + PF3 Esc R Esc R Esc O R Esc O R + PF4 Esc S Esc S Esc O S Esc O S + +-------------------------------------------------------------------------- +(due to Eterm) Key Codes +-------------------------------------------------------------------------- + Normal Shift Control Application +Up ESC [ A ESC [ a ESC O a ESC O A +Down ESC [ B ESC [ b ESC O b ESC O B +Right ESC [ C ESC [ c ESC O c ESC O C +Left ESC [ D ESC [ d ESC O d ESC O D + + Normal Shift Control +Tab ^I ESC [ Z ^I +BackSpace ^H ^? ^? + + Normal Shift Control Ctrl+Shift +Home == Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @ +Insert ESC [ 2 ~ paste-mouse ESC [ 2 ^ ESC [ 2 @ +Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @ +End == Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @ +Prior ESC [ 5 ~ scroll-up ESC [ 5 ^ ESC [ 5 @ +Next ESC [ 6 ~ scroll-down ESC [ 6 ^ ESC [ 6 @ + +Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @ + +Function Keys: +(Note: Shift + F1-10 generates F11-20) + Norm Shift Control Ctrl+Shift +F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^ +F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^ +F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^ +F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^ +F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^ + +F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^ +F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^ +F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^ +F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^ +F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^ + +F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @ +F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @ +F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @ +F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @ + +F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @ +F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @ + +F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @ +F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @ +F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @ +F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @ + +Keypad: + use Shift to temporarily override Appl-Keypad setting + use Num_Lock to toggle Appl-Keypad setting + if Num_Lock is off, escape sequences toggle Appl-Keypad setting +------ + Normal Application +KP_Enter ^M ESC O M +KP_F1 ESC O P ESC O P +KP_F2 ESC O Q ESC O Q +KP_F3 ESC O R ESC O R +KP_F4 ESC O S ESC O S +XK_KP_Multiply * ESC O j +XK_KP_Add + ESC O k +XK_KP_Separator , ESC O l +XK_KP_Subtract - ESC O m +XK_KP_Decimal . ESC O n +XK_KP_Divide / ESC O o +XK_KP_0 0 ESC O p +XK_KP_1 1 ESC O q +XK_KP_2 2 ESC O r +XK_KP_3 3 ESC O s +XK_KP_4 4 ESC O t +XK_KP_5 5 ESC O u +XK_KP_6 6 ESC O v +XK_KP_7 7 ESC O w +XK_KP_8 8 ESC O x +XK_KP_9 9 ESC O y +-------------------------------------------------------------------------- diff --git a/konsole/doc/mkDocs b/konsole/doc/mkDocs new file mode 100755 index 000000000..dd22eabfc --- /dev/null +++ b/konsole/doc/mkDocs @@ -0,0 +1,6 @@ +#!/bin/sh +PATH=$PATH:/opt/doxygen-0.4/bin +export PATH +# doxytag -t qt.tag $QTDIR/html +doxygen konsole.Doxyfile +./konsole/html/installdox -l qt.tag@$QTDIR/html ./konsole/html/*.html -- cgit v1.2.3