Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ data(7) — AIX/RT 2.2.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

display symbols

hft

data stream

Purpose

     Defines the data stream that an HFT virtual terminal uses
     in KSR mode.

Description

     The IBM RT PC is capable of addressing 1024 distinct dis-
     playable characters.  To designate these characters using
     8-bit bytes, a  code page convention is  used.  Each code
     page is an ordered set of up to 256 characters, which are
     called code  points.  The  first 32  code points  of each
     code page are reserved for control codes and are the same
     for  all  code pages.   The  control  codes do  not  have
     graphic  representations, so  each code  page can  have a
     maximum of 224 distinct graphic characters.

     The  remaining characters  are  divided  into three  code
     pages called P0,  P1, and P2.  Two  additional code pages
     called  USER1 and  USER2  are  provided for  user-defined
     symbols.

     Code points in the range 32 to 127 (0x20 to 0x7F) of code
     page  P0 represent  the standard  7-bit US  ASCII graphic
     symbols.  P0  code points 128  to 255 (0x80 to  0xFF) and
     code points  in pages P1  and P2 are  collectively called
     extended characters.

     The following code page  maps show the predefined graphic
     display symbols  and their code point  values within each
     of the three code pages.

                                   ol811306

Figure  7-1.  Code Page P0

                                   ol811307

Figure  7-2.  Code Page P1

                                   ol811305

Figure  7-3.  Code Page P2

     CODE PAGE SWITCHING

Characters from code page P0 are represented  in a character data stream by a
single 8-bit byte corresponding to their code points.

Characters from other code pages  are selected with single-shift controls.  A
single-shift control is one of the  single-byte control codes SS1 (0x1F), SS2
(0x1E), SS3 (0x1D),  and SS4 (0x1C).  Each of these  codes indicates that the
following byte specifies  a character from a code page  other than P0.  These
control codes are  called "single shifts" because they shift  to another code
page for a single character; that is, they are nonlocking shifts.

The byte that  follows a single shift  corresponds to the code  point for the
desired character,  but with the most  significant bit set.  In  other words,
SS1, SS2, SS3, and SS4 must be followed  by a byte in the range 0x80 to 0xFF.
A single shift  followed by 0x00 to  0x7F is not a valid  code sequence.  The
single shift that is used specifies the upper or lower half of a code page as
follows:

SS1   Lower half of code page P1 (P1 0x20 to 0x7F)
SS2   Upper half of code page P1 (P1 0x80 to 0xFF)
SS3   Lower half of code page P2 (P2 0x20 to 0x7F)
SS2   Upper half of code page P2 (P2 0x80 to 0xFF).

Note that  in this scheme, code  points in the  range 0x00 to 0x7F  (7-bit US
ASCII) are unique  in the data stream,  and that they are  never validly pre-
ceded by a single-shift control.   This encoding scheme minimizes the changes
necessary to existing software that is oriented toward 7-bit ASCII.

If a single-shift control is followed by a byte with the most significant bit
set to  zero (that is, a  byte in the range  0x00 to 0x7F), then  the single-
shift prefix  is ignored, and  the byte is  processed as an  unprefixed char-
acter.

On both input and output, graphic character code points that are not prefixed
with a single-shift  control select a display symbol from  the active graphic
display set (G0 or G1) to be  echoed or displayed on the screen.  By default,
both G0 and G1  are set to P0, and G0 is the  active display set.  The active
graphic display  set can be set  to G0 or G1  with the SI and  SO single-byte
controls, respectively (see "Single-Byte Controls").  The mapping used for G0
and G1  can be set  with the SG0 and  SG1 control sequences  (see "Multi-Byte
Controls").

On both input  and output, valid graphic character code  points that are pre-
fixed with SS1,  SS2, SS3, or SS4  bypass the active graphic  display set and
echo or display characters directly from code page P1 or P2.

     NONSPACING CHARACTERS

For convenience  when typing diacritical (accented)  characters, a nonspacing
or "dead" character facility is provided.  A nonspacing character sequence is
a two-key  sequence consisting  of one  of the 13  diacritics followed  by an
alphabetic character  or a  space.  The  virtual terminal  subsystem converts
this two-key sequence  into a single code point that  may have a single-shift
prefix.  The resulting character is  the alphabetic character with the speci-
fied  diacritic mark.   A diacritic  followed by  a space  translates to  the
diacritic character itself.

The 13 valid diacritics are:

                    ]  Acute Accent or Apostrophe  0xEF or 0x27
                    `  Grave Accent                0x60
                    ^  Circumflex Accent           0x5E
                    —  Umlaut Accent               0xF9
                    ~  Tilde Accent                0x7E
                       Caron Accent                0x1FF3
                       Breve Accent                0x1E9D
                    =  Double Acute Accent         0x1E9E
                    E  Overcircle Accent           0x1FFD
                    E  Overdot Accent              0x1E85
                    &maMacron Accent               0x1EA3
                       Cedilla Accent              0xF7
                       Ogonek Accent               0x1E87

If a nonspacing character and the  following character do not combine to form
a diacritical  character in the set  of predefined graphic symbols,  then the
diacritic is  treated as  a separate  character code.   For example,  "~Q" is
treated as two characters, "~" and "Q".

Note that  nonspacing characters apply only  to keyboard input and  are not a
feature of the  data stream used by applications.  Also,  a diacritic must be
explicitly designated  as being nonspacing  in the keyboard mapping  for this
facility to operate.  None of the  keys on the standard U.S. keyboard mapping

are defined to be nonspacing  characters.  However, nonspacing characters can
be defined.  See "Set Keyboard Map (HFSKBD)" for details.

     CONTROLS

Two types of controls are valid in a character stream data:

o   Single-byte controls (also called  control characters and control codes),
    which have character values from 0 to 31 (0x00 to 0x1F)

o   Multi-byte controls, which  are also called escape  sequences and control
    sequences.

     Single-Byte Controls

The single-byte  controls are common to  all code pages.  The  following list
shows the single-byte controls and their interpretation in KSR coded data.  A
line introducing  each control gives  its mnemonic,  its code value,  and its
function.

o   NUL, 0x00, (Null) has no terminal function.

o   SOH, 0x01, (Start of Header) has no terminal function.

o   STX, 0x02, (Start of Text) has no terminal function.

o   ETX, 0x03, (End of Text) has no terminal function.

o   EOT, 0x04, (End of Transmission) has no terminal function.

o   ENQ, 0x05, (Enquiry) has no terminal function.

o   ACK, 0x06, (Acknowledge) has no terminal function.

o   BEL, 0x07, (Bell) causes an audible alarm to sound.

o   BS,  0x08, (Backspace) moves the cursor  position to the left one column,
    unless the cursor is at the  left boundary of the presentation space.  In
    that case, the cursor position does not change.

o   HT, 0x09, (Horizontal Tab) moves the  cursor position forward to the next
    tab stop.  If  the cursor is already  in the last column of  a line, then
    the cursor  position does not  change.  Note  that the CHT  (cursor hori-
    zontal tab)  multi-byte control  performs a  similar operation,  but also
    performs line wrapping.

o   LF, 0x0A, (Line Feed)  if the LNM mode is reset, the  line feed moves the
    cursor position  down one line.   If the LNM  mode is set  (default), the
    line feed is treated as a NEL  and moves the cursor position to the first
    position of the next  line.  In either case, if the  cursor is already on
    the last line of  the PS, the PS lines scroll up one  line.  The top line
    of the PS disappears and a blank line is inserted as the new bottom line.

o   VT, 0x0B, (Vertical Tab) moves the  cursor position down to the next line
    that is defined as a vertical tab stop.  Tabs stops are always set at the
    first and last  lines of the PS.   If the cursor was already  on the last
    line of the PS  and HFWRAP mode is not set, the cursor  stays on the last
    line in the PS.  If HFWRAP mode is  set, the cursor moves to the top line
    in the PS.  The column position does not change in any case.

o   FF, 0x0C, (Form Feed) treated as a line end; see NEL.

o   CR, 0x0D, (Carriage Return) if the  CNM mode is reset (default), the car-
    riage return moves the cursor position to the first character of the line
    indicated by the cursor.  If the CNM  mode is set, the carriage return is
    treated as  an NEL and  causes the cursor position  to move to  the first
    position of the next line.  In this case, if the cursor is already on the
    last line of  the PS, the PS lines  scroll up one line.  The  top line of
    the PS disappears and a blank line is inserted as the new bottom line.

o   SO, 0x0E,  (Shift Out)  maps the subsequently  received graphic  codes to
    display symbols according  to the active G1 character  set.  See "display
    symbols" for a list of the display symbols.

o   SI,  0x0F, (Shift  In) maps  the subsequently  received graphic  codes to
    display symbols according  to the active G0 character  set.  See "display
    symbols" for a list of the display symbols.

o   DLE, 0x10, (Data Link Escape) has no terminal function.

o   DC1, 0x11, (Device Control 1) has no terminal function when output.

o   DC2, 0x12, (Device Control 2) has no terminal function.

o   DC3, 0x13, (Device Control 3) has no terminal function when output.

o   DC4, 0x14, (Device Control 4) has no terminal function.

o   NAK, 0x15, (Negative Acknowledgment) has no terminal function.

o   SYN, 0x16, (Synchronous) has no terminal function.

o   ETB, 0x17, (End of Block) has no terminal function.

o   CAN, 0x18, (Cancel) has no terminal function.

o   EM, 0x19, (End of Medium) has no terminal function.

o   SUB, 0x1A, (Substitute) has no terminal function.

o   ESC,  0x1B,  (Escape)  defines  the beginning  of  a  multi-byte  control
    sequence as defined in "Multi-Byte Controls."

o   SS4, 0x1C, (Single  Shift 4) causes the following byte  to be interpreted
    as  belonging  to  the  upper  half  of code  page  P2  (see  "Code  Page
    Switching").

o   SS3, 0x1D, (Single  Shift 3) causes the following byte  to be interpreted
    as belonging to the lower half of code page P2.

o   SS2, 0x1E, (Single  Shift 2) causes the following byte  to be interpreted
    as belonging to the upper half of code page P1.

o   SS1, 0x1F, (Single  Shift 1) causes the following byte  to be interpreted
    as belonging to the lower half of code page P1.

o   DEL, 0x7F, (Delete) has no terminal function.

     Multi-Byte Controls

This section defines the code points  and effects on the virtual terminal for
multi-byte control  sequences that are recognized  in KSR mode.  All  of them
begin with the ESC code (0x1B) followed  by a "[" (0x5B) and include all sub-
sequent bytes  up to and  including the first  code in the  range 0x40--0x7F.
Any  multi-byte control  sequences not  defined below  are ignored.   Invalid
sequences return  an error Device  Status Report to the  program.  Multi-byte
control sequences of more than 16  codes are considered invalid on receipt of
the 17th  code.  The  next code is  not considered a  part of  that sequence.
Also, numeric parameters in control sequences  contain no more than 3 digits.
The numeric value of the parameter may be incorrect if more than three digits
are used, and the numeric value never exceeds 255.

Controls effect a virtual terminal's  presentation space (PS) and its related
cursor (pointer into  the PS).  The presentation space is  a logical array of
display symbols, N columns by M lines.

The following list gives the valid multi-byte control code sequences.  A line
introducing each control gives its mnemonic, its code sequence, and its func-
tion.  The code sequence is shown in terms of ASCII characters.  For example,
the sequence ESC A represents two codes with a value of 0x1B41.

o   CBT     ESC [ PN Z          Cursor Back Tab

    Moves the cursor back the number of horizontal tab stops specified by PN.
    Tab stops are always set at the  first and last columns of each line.  If
    the cursor is  already in the first  column of a line and  HFWRAP mode is
    set, the  cursor moves to  the last column.  If  AUTONL is also  set, the
    cursor moves to the  last column of the previous line.   In this case, if
    the cursor is  already on the first row  of the PS, it moves  to the last
    row.

o   CHA     ESC [ PN G          Cursor Horizontal Absolute

    Moves the cursor to the column specified by PN, unless the column exceeds
    the PS width.   If the column exceeds  the PS width, the  cursor moves to
    the PS column farthest to the right.

o   CHT     ESC [ PN I          Cursor Horizontal Tab

    Moves the cursor  position forward to the PN(th) following  tab stop.  If
    the cursor  is already in the  last column of  a line and HFWRAP  mode is
    set, then the cursor returns to the  first column of the line.  If AUTONL
    mode is also set,  then the cursor moves to the first  column of the next
    line.  In this case, if the cursor is already on the last line of the PS,
    then the cursor moves  to the first column of the  first line.  Note that
    the HT  (horizontal tab) single-byte  control does not cause  wrapping to
    occur.

o   CTC     ESC [ PS W    Cursor Tab Stop Control

    0   Set a horizontal tab at cursor.
    1   Set a vertical tab at cursor.
    2   Clear a horizontal tab at cursor.
    3   Clear a vertical tab at cursor.
    4   Clear all horizontal tabs on line.
    5   Clear all horizontal tabs.
    6   Clear all vertical tabs.

    Sets or  clears one or more  tabulation stops according to  the parameter
    specified.  Tab  stops on  the first  or last  column cannot  be cleared.
    When  horizontal tab  stops  are  set or  cleared,  the  number of  lines
    affected is  all (if Tabulation Stop  Mode is set) or  one (if Tabulation
    Stop Mode is reset).  This control  does not change the position of char-
    acters already in the presentation space.

o   CNL     ESC [ PN E          Cursor Next Line

    Moves the cursor  down the number of  lines specified by PN,  and over to
    the first position of that line.  If the cursor was already on the bottom
    PS line and HFWRAP mode is not  set, it is positioned at the beginning of
    that line.  If HFWRAP mode is set,  the cursor wraps from the bottom line
    to the top PS line.

o   CPL     ESC [ PN F          Cursor Preceding Line

    Moves the cursor  back the number of  lines specified by PN,  and over to
    the first position of that line.  If the cursor was already on the top PS
    line and HFWRAP mode  is not set, the cursor is  positioned at the begin-
    ning of that line.  If HFWRAP mode  is set, the cursor wraps from the top
    line to the bottom line of the PS.

o   CPR     ESC [ PN ; PN R    Cursor Position Report

    Reports the current cursor position.   The first numeric parameter is the
    line number,  and the second is  the column.  Line and  column values are
    sent to the  application as information.  However, if  the information is
    received by the virtual terminal, it is treated as a CUP control.

o   CUB     ESC [ PN D          Cursor Backward

    Moves the  cursor backward on the  line the specified number  of columns.
    If this cursor  movement exceeds the left PS boundary  and HFWRAP mode is
    not set, the cursor stops at the leftmost PS position.  If HFWRAP mode is
    set, the cursor wraps from the leftmost column to the rightmost column of
    the preceding  PS line.  In  HFWRAP mode the  cursor also wraps  from the
    home to the rightmost bottom position of the PS.

o   CUD     ESC [ PN B          Cursor Down

    Moves  the cursor  down the  number of  lines specified  by PN.   If this
    cursor movement  exceeds the bottom  PS boundary  and HFWRAP mode  is not
    set, the cursor  stops on the last  PS line.  If HFWRAP mode  is set, the
    cursor wraps from the bottom line to the top line of the PS.

o   CUF     ESC [ PN C          Cursor Forward

    Moves the cursor forward on the line the specified number of columns.  If
    this cursor movement exceeds the right PS boundary and HFWRAP mode is not
    set, the  cursor stops at the  rightmost PS position.  If  HFWRAP mode is
    set, the cursor wraps from the rightmost column to the leftmost column of
    the following line in the PS.  In HFWRAP mode, the cursor also wraps from
    rightmost bottom position to the home position of the PS.

o   CUP     ESC [ PN ; PN H    Cursor Position

    Moves the cursor to the line specified by the first parameter, and to the
    column specified by the second parameter.   If this movement crosses a PS
    boundary, the cursor stops at the PS boundary.

o   CUU     ESC [ PN A          Cursor up

    Moves the cursor up the specified  number of lines.  If this cursor move-
    ment exceeds the top  PS boundary and HFWRAP mode is  not set, the cursor
    stops on the first PS line.  If HFWRAP mode is set, the cursor wraps from
    the top line to the bottom line in the PS.

o   CVT     ESC [ PN Y          Cursor Vertical Tab

    Moves the  cursor down the number  of vertical tab stops  specified.  Tab
    stops are  assumed at  the top  and bottom  PS lines.   If there  are not
    enough vertical  tab stops  in the  PS and  HFWRAP mode  is not  set, the
    cursor stops  on the last  line in  the PS.  If  HFWRAP mode is  set, the
    cursor wraps from the bottom line to the top line of the PS.

o   DCH     ESC [ PN P          Delete Character

    Deletes the  cursor character  and the following  PN-1 characters  on the
    line indicated by the cursor.  The characters following the deleted char-
    acters on the line overlay the  deleted character positions.  The line is
    cleared from the end  of the line to the edge  of the presentation space.
    If the number  of characters to be deleted exceeds  the number of columns
    from the  cursor to the PS  right boundary, then all  the characters from
    the cursor to  the PS boundary are  replaced with empty spaces  and a DSR
    control sequence identifying an error is returned to the application.

o   DL      ESC [ PN M          Delete Line

    Deletes the line and the PN-1 following  lines in the PS.  The lines fol-
    lowing the deleted lines are scrolled up PN lines and PN blanks lines are
    placed at the bottom of the PS.  If there are less than PN lines from the
    line indicated by the cursor to the  bottom of the PS, the line indicated
    by the  cursor and  all the  following PS lines  are replaced  with empty
    lines.

o   DSR     ESC [ PN n      Device Status Report Request

         6        Request Cursor Position Report

        13        Error Report

    A request  cursor position  report (CPR) sends  a cursor  position report
    from the  virtual terminal to the  application.  An error report  is sent
    from the  virtual terminal to  the application when the  virtual terminal
    receives an invalid control sequence.   Error reports are private reports
    which conform to the ANSI standard for private parameters.

o   DMI     ESC ' (left quote)   Disable Manual Input

    This control,  when received  in an output  data stream,  causes keyboard
    input  to this  terminal to  be ignored.   This control  is ignored  when
    received from the keyboard.

o   EMI     ESC b               Enable Manual Input

    This control, when  received in an output data  stream, restarts keyboard
    input recognition and buffering if  previously disabled with a DMI multi-
    byte control.  This control is ignored when received from the keyboard.

o   EA      ESC [ 0 0           Erase to End of Area

              ESC [ 1 0           Erase from Start of Area

              ESC [ 2 0           Erase All of Area.

    This control is treated like an EL control sequence.

o   ED      ESC [ 0 J           Erase to End of Display

              ESC [ 1 J           Erase from Start of Display

              ESC [ 2 J           Erase All of Display.

    Erases certain characters within the  PS.  Erased characters are replaced
    with empty  spaces.  Erase to end  of display erases the  character indi-

    cated by the  cursor and all following characters in  the PS.  Erase from
    start of  display erases the first  character of first line  and the fol-
    lowing  characters up  to and  including the  character indicated  by the
    cursor.  Erase all of display erases all the characters on the PS.

o   EF      ESC [ 0 N           Erase to End of Field

              ESC [ 1 N           Erase from Start of Field

              ESC [ 2 N           Erase All of Field.

    Erases certain  characters between horizontal tab  stops.  Erased charac-
    ters are  replaced with empty spaces.   Erase to end of  field erases the
    character indicated by the cursor and all following characters before the
    next tab stop.  Erase from start of field erases the character at the tab
    stop preceding the cursor an the following characters up to and including
    the character  indicated by the  cursor.  Erase  all of field  erases the
    character at the tab stop preceding the cursor, and the following charac-
    ters up  to and  including the  character at the  tab stop  following the
    cursor.  Tab stops  are assumed at the  first and last columns  of the PS
    when executing this control.

o   EL      ESC [ 0 K           Erase to End of Line

              ESC [ 1 K           Erase from Start of Line

              ESC [ 2 K           Erase All of Line.

    Erases certain characters within a  line.  Erased characters are replaced
    with empty spaces.   Erase to end of line erases  the character indicated
    by the cursor and all following characters on the line.  Erase from start
    of line erases the first character  of first line and the following char-
    acters up to and including the  character indicated by the cursor.  Erase
    all of line erases all the characters on the line.

o   ECH     ESC [ PN X          Erase Character

    Erases the character indicated by the cursor and the following PN-1 char-
    acters on that  line.  Erased characters are replaced  with empty spaces.
    If there  are less  than PN characters  from the cursor  to the  PS right
    boundary, then  the character indicated  by the  cursor and all  the fol-
    lowing characters on the line are replaced empty spaces.

o   HTS     ESC H               Horizontal Tab Stop

    Sets a horizontal tab stop at the current horizontal position.  If TSM is
    set, then the tab stop applies only  to this line.  If TSM is reset, then
    the tab stop applies  to all PS lines.  This control  does not change the
    positioning of characters already in the presentation space.

o   HVP     ESC [ PN ; PN f     Horizontal and Vertical Position

    Moves the cursor to the line specified by the first parameter, and to the
    column specified by the second parameter.  If this movement would cross a
    PS boundary, the cursor stops at the current PS boundary.

o   ICH     ESC [ PN @          Insert Character

    Inserts PN  empty spaces  before the character  indicated by  the cursor.
    The string  of characters  starting with the  character indicated  by the

    cursor and ending with last character  of the line are shifted PN columns
    to the  right.  Characters shifted past  the PS right boundary  are lost.
    The cursor does not move.

o   IL      ESC [ PN L          Insert Line

    Inserts PN empty lines before the line indicated by the cursor.  The line
    indicated by  the cursor is  scrolled down.   The cursor position  on the
    screen is not affected.

o   IND     ESC D               Index

    Moves cursor down one line.  If the cursor was already on the bottom line
    of the PS, then  the top line is lost, the other lines  move up one line,
    and a blank line becomes the new bottom line.

o   NEL     ESC E               Next Line

    Moves the  cursor to the  first position of  the following line.   If the
    cursor was  already on the bottom  line of the  PS, then the top  line is
    lost, the  other lines  move up  one, and  a blank  line becomes  the new
    bottom line.

o   KSI     ESC [ PS p          Keyboard Status Information

    The  virtual  terminal  generates   this  control  whenever  HFHOSTS  and
    HFXLATKBD are set and the status of the keyboard changes.  Each selective
    parameter is the character-coded decimal value of a keyboard status byte.
    For example, if  the keyboard has two status bytes,  the control sequence
    is ESC [ xxx;yyy p, where xxx is the value of the high-order byte and yyy
    is the value of the low-order byte.   This is a private control that con-
    forms to the  ANSI standards for private control  sequences.  The virtual
    terminal display  handler ignores  this sequence  whether it  is received
    from  the application  or echoed.   The values  of the  status bytes  are
    described in "Untranslated Key Control."

o   PFK     ESC [ PN q        PF Key Report

    The control sequence  is sent by the virtual terminal  to the application
    when a  program function key  (PFK) code  is received from  the keyboard.
    The parameter  PN is a PF  key number from 1  to 255.  This is  a private
    control  that  conforms  to  the   ANSI  standards  for  private  control
    sequences.   This sequence  is ignored  by the  virtual terminal  display
    handler whether received from the application or echoed.

o   RCP     ESC [ u             Restore Cursor Position

    Moves the cursor  to the position saved  by the last SCP  control.  If no
    SCP has been received, then the cursor position is set to the first char-
    acter of the first line.  This is  a private control that conforms to the
    ANSI standards for private controls.   This control has no terminal func-
    tion when received from the keyboard.

o   RI      ESC L                Reverse Index

    Moves the cursor up one line, unless  the cursor is already on the PS top
    line.  In that case, if HFWRAP mode  is not set, then the cursor does not
    move.  If HFWRAP mode is set, the  cursor moves to the bottom line of the
    PS. The column position does not change.

o   RIS     ESC c               Reset to Initial State

    Resets the virtual  terminal to the state of a  newly-opened virtual ter-
    minal: erases all PS data, places the cursor at the home position, resets
    graphic rendition to normal,  resets subscripting and superscripting, and
    sets tab  stops, modes,  keyboard map,  character maps  and echo  maps to
    their default values.

    Note:   The  RIS  multi-byte  control resets  the  VRM  virtual  terminal
    defaults, which  are not necessarily the  same as the defaults  of an HFT
    device.

o   RM      ESC [ PS l          Reset Mode

    20    LNM - Line Feed - New Line Mode
    4     IRM - Insert Mode
    12    SRM - Send Receive Mode (set ECHO off)
    18    TSM - Tabulation Stop Mode
    ?21   CNM - Carriage Return - New Line Mode
    ?7    AUTONL - Wrap character to following  line when end of current line
          reached

    Resets the modes specified in  the parameter string.  Multiple parameters
    must be separated by semicolons.  The  modes that can be reset are listed
    above with the appropriate parameter code.  All other mode parameters are
    ignored.

    TSM mode determines whether horizontal tabs apply identically to all line
    (TSM reset) or uniquely to each line on which they are set (TSM set).

o   SCP     ESC [ s             Save Cursor Position

    Saves the current cursor position.   Any previously saved cursor position
    is  lost.  The  cursor  can be  restored  to this  position  with an  RCP
    control.  This is  a private control that conforms to  the ANSI standards
    for  private  controls.   This  control has  no  terminal  function  when
    received from the keyboard.

o   SD  ESC [  PN T              Scroll Down

    Moves all the  PS lines down PN   lines.  The bottom PN   lines are lost,
    and PN empty lines  are put at the top of  the presentation space.  Phys-
    ical cursor position does not change due to the scroll.

o   SL      ESC [ PN SP @        Scroll Left

    Moves all the PS characters PN column positions to the left.  The charac-
    ters in the PN leftmost PS columns  are lost, and empty spaces are put in
    the rightmost PN columns of all lines.  Physical cursor position does not
    change due to the scroll.

o   SR      ESC [ PN SP A        Scroll Right

    Moves all the PS characters PN  column positions to the right.  The char-
    acters in the PN rightmost PS columns  are lost, and empty spaces are put
    in the leftmost  PN columns of all lines.  Physical  cursor position does
    not change due to the scroll.

o   SU      ESC [  PN S              Scroll Up

    Moves all the PS  lines up PN  lines.  The top PN lines  are lost, and PN
    empty lines are  put at the bottom of the  presentation space.  The phys-
    ical cursor position does not change due to the scroll.

o   SGR     ESC [ PS m           Set Graphic Rendition

    0     Normal (none of attributes 1-9)
    1     Bold or Bright
    4     Underscore
    5     Slow Blink
    7     Negative (reverse image)
    8     Cancelled On (invisible: set to background color)
    10    Primary Font
    11    First Alternate Font
    12    Second Alternate Font
    13    Third Alternate Font
    14    Fourth Alternate Font
    15    Fifth Alternate Font
    16    Sixth Alternate Font
    17    Seventh Alternate Font
    30    Color palette entry 0 foreground
    31    Color palette entry 1 foreground
    32    Color palette entry 2 foreground
    33    Color palette entry 3 foreground
    34    Color palette entry 4 foreground
    35    Color palette entry 5 foreground
    36    Color palette entry 6 foreground
    37    Color palette entry 7 foreground
    40    Color palette entry 0 background
    41    Color palette entry 1 background
    42    Color palette entry 2 background
    43    Color palette entry 3 background
    44    Color palette entry 4 background
    45    Color palette entry 5 background
    46    Color palette entry 6 background
    47    Color palette entry 7 background
    90    Color palette entry 8 foreground
    91    Color palette entry 9 foreground
    92    Color palette entry 10 foreground
    93    Color palette entry 11 foreground
    94    Color palette entry 12 foreground
    95    Color palette entry 13 foreground
    96    Color palette entry 14 foreground
    97    Color palette entry 15 foreground
    100   Color palette entry 8 background
    101   Color palette entry 9 background
    102   Color palette entry 10 background
    103   Color palette entry 11 background
    104   Color palette entry 12 background
    105   Color palette entry 13 background
    106   Color palette entry 14 background
    107   Color palette entry 15 background.

    Causes the next  characters received in the data stream  or from the key-
    board to have  the display attributes specified by  the parameter string.
    Any parameter not listed above is ignored.

    The attributes  corresponding to parameters  1 through 9  are cumulative.
    For example, specifying underscore and  then specifying blink causes fol-
    lowing characters  to be underscored  and blink.   To reset one  of these

    attributes,  specify normal  and then  reinstate the  desired parameters.
    Multiple parameters are processed in the order listed.

    Whether  the  characters really  have  the  requested attributes  on  the
    display depends on  the capabilities of the physical  display device used
    by the virtual terminal.

    Note that switching between loaded fonts  with the SGR sequence causes no
    data loss,  but loading new fonts  does cause data loss.   (See "Untrans-
    lated Key Control" for more information.)

    Characters that cannot be displayed do not exist in the system.

o   SG0A     ESC ( f           Set G0 Character Set

     SG0B     ESC , f           Set G0 Character Set (Alternate form)

    :     Unique One (User-defined)
    ;     Unique Two (User-defined)
    <     P0       (Display Symbols 32-255)
    =     P1       (Display Symbols 256-479)
    >     P2       (Display Symbols 480-703)
    ?     User1    (Display Symbols 704-927)
    @     User2    (Display Symbols 928-1023)

    Designates the set of characters to use as  the G0 set when the G0 set is
    invoked by  SI.  The default  G0 set is  the 224-character code  page P0.
    Unique One  and Unique Two may  have unique definitions for  each virtual
    terminal.  When a  virtual terminal is opened, these two  sets are equiv-
    alent to <.  See "Character Set Definition" about defining Unique One and
    Unique Two.

o   SG1A     ESC ) f             Set G1 Character Set

     SG1B     ESC - f             Set G1 Character Set (Alternate)

    :       Unique One (User-defined)
    ;       Unique Two (User-defined)
    <       P0         (Display Symbols 32-255)
    =       P1         (Display Symbols 256-479)
    >       P2         (Display Symbols 480-703)
    ?       User1      (Display Symbols 704-927)
    @       User2      (Display Symbols 928-1023)

    Designates the set of characters to use as  the G1 set when the G1 set is
    invoked by  SO.  The default  G1 set is  the 224-character code  page P0.
    Unique One  and Unique Two may  have unique definitions for  each virtual
    terminal.  When a  virtual terminal is opened, these two  sets are equiv-
    alent to <.  See "Character Set Definition" about defining Unique One and
    Unique Two.

o   SM      ESC [ PS h          Set Mode

    2 0     LNM - Line Feed - New Line Mode (default = 1)
    4       IRM - Insert Replace Mode (default = 0)
    1 2     SRM - Send Receive Mode (set echo off) (default = 0)
    1 8     TSM - Tabulation Stop Mode (default = 0)
    ? 2 1   CNM - Carriage Return - New Line Mode (default = 0)
    ? 7     AUTONL - Wrap to next line when end of line reached (default = 1)

    Sets the  modes specified in  the parameter string.   Multiple parameters
    must be  separated by semicolons.  The  modes that can be  set are listed
    above with the appropriate parameter code.  All other mode parameters are
    ignored.

    SRM mode affects translated keyboard input handling.  If SRM mode is set,
    translated keyboard input is never echoed by the virtual terminal, but is
    immediately returned to the application.

    TSM  mode determines  whether horizontal  tabs apply  to all  lines iden-
    tically (TSM reset) or if horizontal  tabs apply uniquely to each line on
    which they are set (TSM set).

o   TBC     ESC [ PS g          Tabulation Clear

    0   Horizontal tab at cursor column
    1   Vertical tab at line indicated by the cursor
    2   Horizontal tabs on line
    3   Horizontal tabs in presentation space
    4   Vertical tabs in presentation space.

    Clears  tabulation stops  specified  by the  parameters.  Horizontal  tab
    changes affect only the  line indicated by the cursor if  TSM is set, and
    horizontal tab changes affect all lines  if TSM is reset.  Any parameters
    not listed  above are ignored.   This control  does not change  the posi-
    tioning of characters already in the presentation space.

o   VTA     ESC [ r        Virtual Terminal Addressability

    This private  control sequence  precedes a  binary header  and associated
    data that provide status information on the IBM 5081 Display Adapter.

o   VTD     ESC [ x        Virtual Terminal Data

    This private  control sequence  precedes a  binary header  and associated
    data.  The  block of data  can be  in formats other  than character-coded
    data, such  as binary format.   See "Output"  for details about  how this
    control sequence is used.

o   VTL     ESC [ y        Virtual Terminal Device Input

    This private  control sequence precedes  binary format input data  from a
    mouse, tablet, LPFK,  or valuator device.  See "Input  Device Report" for
    details about how this control sequence is used.

o   VTR     ESC [ w        Virtual Terminal Raw Keyboard Input

    This  private control  sequence  precedes  "raw" (untranslated)  keyboard
    input data, which is in a  binary format.  See "Untranslated Key Control"
    for details about how this control sequence is used.

o   VTS     ESC I               Vertical Tab Stop

    Sets  a vertical  tab stop  at the  line indicated  by the  cursor.  This
    control  does not  change the  positioning of  characters already  in the
    presentation space.

Files

/usr/pub/ibmcharset  Contains RT PC character set.

Related Information

In this book:  "display symbols" and "hft."

Keyboard Description and Character Reference.

"Overview of International  Character Support" in Managing  the AIX Operating
System.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026