# Kermit 95 Control Sequences

This document attempts to describe the control sequences implemented by Kermit 95s ANSI terminal emulator. It is roughly modeled on xterms excellent ctlseqs document to make comparing implemented control sequences easier.

Previously there was no documentation on the control sequences supported by Kermit 95. This document was produced by reading through several thousand lines of ANSI C recording what appeared to be implemented and what, if any, terminal type restrictions applied to various behaviours. There are sure to be errors and the styling is a bit inconsistent at the moment. If you notice any errors or omissions please log a bug to have it corrected!

Kermit 95 emulates many different ANSI terminal, not just those from DEC like the VT100. Where one or more terminals may have different behaviour for a particular control sequence, this is marked with a badge such as these: VT320 WY370

Sometimes Kermit 95 has code to recognise a particular control sequence but otherwise doesn't actually act on it. This may be because that control sequence doesn't make sense in a software emulation of the real terminal, or because that functionality just hasn't been implemented yet. These not-implemented behaviours are still documented here in this style to make it clear that for particular terminal types Kermit 95 may simply do nothing when it encounters a control sequence rather doing something else.

## Index

- V100 Mode Single-character functions
- Controls beginning with ESC
- Application Program-Command functions
- Device-Control functions
- Functions using CSI, ordered by the final character(s)
- Operating System Commands
- Privacy Message

## V100 Mode Single-character functions

### BEL

Bell

### BS

Backspace

Moves the cursor left 1 column

QNX Moves the cursor one column left. If the cursor is already at the start of the line, moves the cursor to the end of the previous line

SNI-97801 HP Moves the cursor left 1 column if it is currently to the right of the left margin

### CR

Carriage Return

Sends the cursor to the start of the line

SNI-97801 HP Sends the cursor to the left margin

### ENQ

If answerback is enabled (off by default, enabled with `set term answerback on`). By default the answer back is "K-95" followed by the C-Kermit numeric version number and the current terminal emulation profile. It can be extended with `set term answerback message` which will append an underscore followed by the supplied message to the answerback string.

VIP7809 Responds with the escape sequence (ETX control char in bold):

    7813  P GC  AETX

### FF

Treated the same as LF

SUN SCOANSI AT386 ANSI Clear screen and home cursor

SNI-97801 HP Move cursor one to the right if to the left of the right margin

### NUL

SNI-97801 Treated the same as SP

### SI

All terminals except SCOANSI, AT386 and ANSI: Switch to Standard Character set (invoke G0 character set as GL) A comment notes that SCOANSI, AT380 and ANSI are excluded for "ANSI music protection".

LINUX Invoke G2 character set as GR.

### SO

All terminals except SCOANSI, AT386 and ANSI: Switch to Alternate Character set (invoke G1 character set as GL) A comment notes that SCOANSI, AT380 and ANSI are excluded for "ANSI music protection".

LINUX Invoke G3 character set as GR.

### SP

Space

### SYN

AVATAR Ctrl-V - AVATAR AVTCODE

### LF

Line Feed or New Line (NL)

If autoscroll is on (`set term autoscroll on`), the cursor is at the bottom margin, and the cursor is not in a protected region the terminal scrolls up one line. Otherwise, the cursor remains at the end of the line

SNI-97801 If in page mode and the cursor is at the bottom margin, the cursor is sent to the start of the line

### TAB (HT)

Horizontal Tab - sends the cursor to the next tabstop

### VT

Vertical Tab. This is treated the same as LF

### XEM

AVATAR Repeat character

## Controls beginning with ESC

### ESC SP F

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN

Switches to sending 7-bit control characters

### ESC SP G

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN

Switches to sending 8 bit control characters

### ESC SP 0

WY370 WYID: Responds with "370\r"

### ESC SP L
ESC SP M
ESC SP N

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN

Set ANSI conformance level 1/2/3. As ISO-4873 does not specify that lower levels cannot support the capabilities of higher levels, K95 treats them all the same.

### ESC SP }

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN

DECKBD: Pn[1] specifies the keyboard layout, Pn[2] specifies the national keyboard language.

There is code present to implement this in K95, but it is currently disabled for unknown reasons.

### ESC #

J19 Not Implemented: Transmit page (lines 1-24) to host

### ESC # 3

DECDHL: DEC double-height line, top half

### ESC # 4

DECDHL: DEC double-height line, bottom half

### ESC # 5

DECSWL: DEC Single Width line

### ESC # 6

DECDWL: DEC Double Width line

### ESC # 7

Not Implemented: Hardcopy (VT100)

### ESC # 8

DECALN: DEC Screen Alignment test. Fills the screen with "E"

### ESC # :

WYDHL: Wyse double-height line, top half, single-wide characters

### ESC # ;

WYDHL: Wyse double-height line, bottom half, single-wide characters

### ESC 6

Behaviour depends on the selected terminal type.

Terminal Type Specific Behaviour
AAA

Does nothing. Should be: zTI - Toggle IRM

Terminal Type Specific Behaviour
VT100
VT102
VT220
VT320
WY370
SNI-97801
BEOS
QANSI
LINUX
SUN
VIP7809
HFT
AIXTERM
BA80

DECBI - Back Index. Moves the cursor left. If the cursor is already at the left margin, then all data on the screen is moved one column to the right.

### ESC \

H19 Not Implemented: Exit Hold Screen Mode

### ESC @

H19 Enter insert character mode

### ESC 1

H19 Enter keypad shift mode

### ESC 7

Saves the cursor position and attributes

Terminal Type Specific Behaviour
SCOANSI
AT386
ANSI
AAA

Saves the cursor position only, does not save attributes.

### ESC 8

Restores the cursor position and attributes

Terminal Type Specific Behaviour
SCOANSI
AT386
ANSI
AAA

Restores the cursor position only, does not restore attributes.

### ESC 9

AAA zCGR - Change Graphic Rendition to Qualified Area. Default area goes from Current Cursor position to End of Screen.

Terminal Type Specific Behaviour
VT100
VT102
VT220
VT320
WY370
SNI-97801
BEOS
QANSI
LINUX
SUN
VIP7809
HFT
AIXTERM
BA80

DECFI - Forward Index. Moves the cursor right one. If the cursor is already at the right margin, it scrolls the screen one column to the left.

### ESC =

DECKPAM: Set keypad to application mode

### ESC >

DECKPNM: Set keypad to numeric mode

### ESC <

Switches from VT52 mode to VT102 mode

H19Switches to VT100 mode, not VT102

### ESC :

AAA Not implemented: zGUA - Guard Unprotected Areas

### ESC `

VIP7809 Clears the screen, cursor does not move

Terminal Type Specific Behaviour
SNI-97801
HFT
AAA

Enables the key lock

### ESC A

VT52 Cursor Up

### ESC a

AAA Not implemented: Interrupt

### ESC B

VT52 Cursor Down

### ESC b

H19 Erase to beginning of display

Terminal Type Specific Behaviour
SNI-97801
HFT
AAA

Disables the key lock

### ESC C

VT52 Cursor Right

### ESC c

RIS: Full reset

### ESC D

Terminal Type Specific Behaviour
VT52

Cursor Left

Terminal Type Specific Behaviour
VT100
VT102
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN
VIP7809
HFT
AIXTERM
BA80

IND - Index. If the cursor is at the bottom margin, the screen is scrolled upwards, otherwise the cursor is moved down one.

### ESC E

NEL - Next Line

H19 Clear display and home cursor

### ESC F

VT52 Enables VT52 Graphics

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN

Not Implemented: SSA - Start Select Error (VT220)

### ESC G

VT52 Disables VT52 Graphics

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN

Not Implemented: ESA - End Select Error (VT220)

### ESC H

VT52 Cursor Home

Terminal Type Specific Behaviour
VT100
VT102
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN
VIP7809
HFT
AIXTERM
BA80

HTS - Set Tab Stop

### ESC I

AAA Not implemented: HTJ - Horizontal Tab with Justify

VT52 Reverse Linefeed

### ESC J

VT52 Clear to end of screen

### ESC j

H19 Save cursor position

### ESC K

VT52 Clear to end of line

### ESC k

H19 Restore cursor position

### ESC L

H19 Insert line

### ESC l

H19 Erase entire line

SCOANSI Lock Memory Area (sets margins)

### ESC M

H19 Delete Line

Terminal Type Specific Behaviour
VT100
VT102
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN
VIP7809
HFT
AIXTERM
BA80

Reverse Index - moves the cursor up one, scrolling the screen if the cursor is already at the top margin.

### ESC m

SCOANSI Unlock Memory Area (sets margins)

### ESC P

Device Control String (DCS, 0x90)

### ESC p

H19 Enter reverse video mode

### ESC Q

Private Use One (PU1) Introducer (SNI-97801-5xx)

SCOANSI AT386 ANSI Function key assignments. SCOANSI break ANSI X.64-1979. See vtescape() in ckoco3.c for implementation details.

### ESC q

H19 Exit reverse video mode

### ESC R

Private Use Two (PU2) Introducer (SNI-97801-5xx)

### ESC r

H19 Modify Baud Rate. K95 doesn't do this and just consumes the next character.

### ESC S

AAA Not Implemented: STS - Set Transmit State

### ESC u

H19 Exit Keypad Shift Mode

### ESC V

VT52 Print cursor line

AAA Not Implemented: SPA - Start Protected Area

### ESC v

H19 Enable wrap around at end of line

### ESC W

VT52 Enable transparent print

AAA Not Implemented: EPA - End Protected Area

### ESC w

H19 Discard at end of line (don't wrap)

### ESC X

Start of String (SOS, 0x98)

VT52 Disable transparent print

### ESC x

H19 Set modes. Next character should be one of the following:

Character | Action
--- | ---
1 | Enable 25th line (status line)
2 | Turn off key click
3 | Not Implemented: Hold Screen Mode
4 | Switch to block cursor
5 | Turn off cursor
6 | Turn on keypad shifted
7 | Alternate keypad mode
8 | Turn on auto line feed on receipt of CR
9 | Auto CR on receipt of LF

### ESC Y

VT52 Direct cursor address

### ESC y

H19 Reset modes. Next character should be one of the following:

Character | Action
--- | ---
1 | Disable 25th line (status line)
2 | Turn on key click
3 | Not Implemented: Exit Hold Screen Mode
4 | Switch to underline cursor
5 | Turn on cursor
6 | Turn off keypad shifted
7 | Exit alternate keypad mode
8 | Turn off auto line feed on receipt of CR
9 | No Auto CR on receipt of LF

### ESC Z

DECID (0x9A) - Identify Terminal

### ESC z

H19 Reset Terminal

### ESC [

Control Sequence Introducer (CSI, 0x9B)

H19 Not Implemented: Hold Screen Mode On

### ESC ]

Operating System Command (OSC, 0x9D)

H19 Not Implemented: Transmit 25th line to host

VT52 Print Screen

### ESC ^

Privacy Message (PM, 0x9E)

VT52 Turn on Autoprint

### ESC _

Application Program Command (APC, 0x9F)

VT52 Turn off Autoprint

### ESC % @

Return to ISO 2002 mode

### ESC % G

Select UTF-8 character set with standard return

### ESC ( C

Select 94 Character Set into G0. If in National Replacement Character Set mode, and parameter C is a valid NRC, then this is also selected into G1, G2 and G3. Valid values are:

Character(s) | Valid for NRC | Description
--- | --- | ---
@ | No | United Kingdom (UK). SNI-97801 - Not quite US ASCII, but close
A | Yes | United Kingdom (UK)
B | Yes | United States ASCII
C or 5 | Yes | Finnish
E or 6 | Yes | Norwegian
` | No | Norwegian
G | No | Swedish
H or 7 | Yes | Swedish
K | Yes | German, or for the LINUX tyASCII
K | N/A | Linux terminal type: user mapping - ASCII
9 | No | French Canadian
Q | Yes | French Canadian
R or f | Yes | French
Y | Yes | Italian
Z | Yes | Spanish
4 | Yes | Dutch
= | Yes | Swiss
0 | No | DEC Special Character and Line Drawing Set
1 | Yes | ASCII (DEC Alternate ROM)
> or 2 | No | DEC Technical
< | No | DEC MCS, or for VT320: User Preferred Supplemental
% 5 | No | DEC MCS
% 6 | No | Portuguese
L | No | Portuguese
i | No | Hungarian
J | No | J201R
I | No | J201K
* | No | IBM C0 Graphics
U or ? | No | ASCII
e | No | APL-ISO
SP @ | No | Not implemented: soft character set

Additional character sets for SNI-97801 emulation
SNI-97801

K95s SNI-97801 emulation provides a few additional character sets in addition to those listed above. These are:

Character(s) | Valid for NRC | Description
--- | --- | ---
c | No | FACET character set
u | No | Euro symbols
v | No | IBM character set
w | No | SNI Brackets character set

### ESC ) C

Select 94 Character Set into G1. If in National Replacement Character Set mode, and parameter c is a valid NRC, then this is also selected into G0, G2 and G3. Valid values for parameter C are the same as for `ESC ( C`.

Differences for Linux terminal emulation
LINUX

The following differences apply for Linux emulation for the list of values for `ESC ( C`:

Character(s) | Description
--- | ---
B | Latin-1 character set
K | CP850

### ESC * C

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
SCOANSI
AT386
ANSI
SUN

Select 94 Character Set into G2. If in National Replacement Character Set mode, and parameter c is a valid NRC, then this is also selected into G0, G1 and G3. Valid values for parameter C are the same as for `ESC ( C`.

### ESC + C

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
SCOANSI
AT386
ANSI
SUN

Select 94 Character Set into G3. If in National Replacement Character Set mode, and parameter c is a valid NRC, then this is also selected into G0, G1 and G2. Valid values for parameter C are the same as for `ESC ( C`.

### ESC - C

Select 96 character set into G1. Valid values for parameter C are:

Character(s) | Description
--- | ---
< | DEC User-preferred Supplemental
A | Latin-1
B | Latin-2
C | Latin-3
D | Latin-4
F | Latin/Greek
F | SNI-97801 Only: Latin/Cyrillic
@ | Latin/Greek
G | Latin/Arabic
H | Latin/Hebrew
L | Latin/Cyrillic
T | SNI-97801: Ignored
T or M | Latin-5
V | Latin/Arabic
% 5 | DEC MCS
* | IBM C0 Graphics
U or ? | CP437
b | Latin-9
d | Data General MCS
e | Data General PC Graphics
f | Data General Line Drawing
g | Data General Word Processing Graphics
h | HP Roman-8
i | HP Math-8
j | HP Line-8

### ESC . C

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN
SCOANSI
AT386
ANSI

Select 96 character set into G2. Valid values for parameter C are the same as those for `ESC . C`

### ESC / C

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN
SCOANSI
AT386
ANSI

Select 96 character set into G3. Valid values for parameter C are the same as those for `ESC . C`

### ESC ~

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN
SCOANSI
AT386
ANSI

Lock shift G1, right

### ESC }

H19 Enable keyboard lock (disable keyboard)

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN
SCOANSI
AT386
ANSI

Lock shift G2, right

### ESC n

H19 Cursor Position Report

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN
SCOANSI
AT386
ANSI

Lock shift G2, left

### ESC o

H19 Erase to beginning of line

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN
SCOANSI
AT386
ANSI

Lock shift G3, left

### ESC |

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN
SCOANSI
AT386
ANSI

Lock shift G3, right

### ESC N

H19 Delete character

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN
SCOANSI
AT386
ANSI

Single shift G2, left

### ESC O

H19 Insert character mode

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
BEOS
QANSI
LINUX
SUN
SCOANSI
AT386
ANSI

Single shift G3, left

### ESC {

H19 Disable keyboard lock (enable keyboard)

## Application Program-Command functions

Kermit 95 supports the execution of Kermit commands via APC. As this could be hazardous, APC sequences are disabled by default and must be turned on with the slightly risky `set term apc on` command or the far more risky `set term apc unchecked`.

With APC sequences on, the remote host can request the execution of any Kermit command except those considered dangerous, such as: push, run, !, redirect, delete, rename, output, enable, disable, script and set terminal apc.

The unchecked option removes the above safety mechanism allowing the remote host to run any Kermit command at all on your PC including those which could cause damage such as deleting files and disabling other security features.

You should only enable APC support when connecting to hosts you trust, and you should think twice about enabling unchecked APCs. See page 278 of Using C-Kermit for more on this topic.

## Device-Control functions

### DCS Ps ; Ps | Pt ST

DECUDK - User Defined Keys

The first parameter can be either 0 (clear all UDK definitions before starting, default), or 1 (erase below).

The second parameter can be either 0 (lock the keys, default), or 1 (do not lock the keys)

The third parameter is a ;-seperated list of key definitions. A key definition consists of the key code for one of the function keys, a / character and then the string to send in response to that function key being pressed.

Not Implemented: K95 does not currently support specifying the shift-state of function keys, or the direction the response to pressing the key is to be sent in.

### DCS Ps + m Pt ST

Kermit 95 Hyperlink Extension. This pre-dates the now widely implemented OSC 8 hyperlink escape sequence, but it works much the same way - you specify a destination for the hyperlink and some text. Where it differs from OSC 8 is that you can specify the type of hyperlink with both URI and UNC path destinations supported.

The parameter Ps specifies the type of link - a value of 1 indicates a URI to be opened in a browser (eg, https://www.kermitproject.com), while a value of 2 indicates a UNC path to be opened in the file manager or the application associated with the file specified. A value of 0 is used to terminate a hyperlink.

The second parameter, Pt, is the destination in wrapped in quotes.

#### Examples

To start a hyperlink to `https://www.kermitproject.com`, issue the following sequence which begins the hyperlink and sets the destination:

    DCS 1 + m " h t t p s : / / w w w . k e r m i t p r o j e c t . c o m " ST

Then send the text for the hyperlink:

    K e r m i t   P r o j e c t   W e b s i t e

Then terminate the hyperlink with:

    DCS 0 + m ST

Linking to a UNC path is much the same:

    DCS 2 + m " \ \ m y s e r v e r \ s h a r e d " ST

Then send the text for the hyperlink:

    S h a r e d   F i l e s

Then terminate the hyperlink with:

    DCS 0 + m ST

### DCS $ q Pt ST

Not Implemented: DECRQSS - Request Status String. The string Pt specifies the setting or selection being requested. K95s responses all start `DCS` and end with `ST`. If sending of 8-bit controls is disabled, then `DCS` is replaced with `ESC P` and `ST` is replaced with `ESC`.

If the value of Pt is not recognised, K95 indicates request was not valid by responding with:

    DCS 1 $ r ST

K95 recognises the following values for Pt for which it currently just echos back the nonsense replies below.

#### Pt = m ⇒ SGR

Not Implemented: K95 responds with:

    DCS 0 $ r m ST

#### Pt = " q ⇒ DECSCA

Not Implemented: K95 responds with:

    DCS 0 $ r " q ST

#### Pt = " p ⇒ DECSCL

Not Implemented: K95 responds with:

     DCS 0 $ r " p ST

#### Pt = r ⇒ DECSTBM

Not Implemented: K95 responds with:

    DCS 0 $ r r ST

#### Pt = s ⇒ DECSLRM - Set Left and Right Margins

Not Implemented: K95 responds with:

    DCS 1 $ r s ST

#### Pt = t ⇒ DECSLPP

Not Implemented: K95 responds with:

    DCS 0 $ r t ST

#### Pt = } ⇒ DECPRO

Not Implemented: K95 responds with:

    DCS 0 $ r } ST

#### Pt = $ | ⇒

Not Implemented: K95 responds with:

    DCS 0 $ r $ | ST

#### Pt = $ } ⇒ DECSASD

Not Implemented: K95 responds with:

    DCS 0 $ r $ } ST

#### Pt = $ ~ ⇒ DECSSDT

Not Implemented: K95 responds with:

    DCS 0 $ r $ ~ ST

#### Pt = * x ⇒ DECSACE - Select Attrib Change Extent

Not Implemented: If DECSACE is on, K95 responds with:

    DCS 2 $ r * x ST

otherwise, K95 responds with:

    DCS 1 $ r * x ST

#### Pt = * | ⇒ DECSNLS - Set Num Lines Per Screen

Not Implemented: K95 responds with:

    DCS 1 $ r * | ST

#### Pt = | ⇒ DECTTC

Not Implemented: K95 responds with:

    DCS 0 $ r | ST

#### Pt = ' s ⇒ DECTLTC

Not Implemented: K95 responds with:

    DCS 0 $ r ' s ST

#### Pt = + q ⇒ DECELF - Enable Local Functions

Not Implemented: K95 responds with:

    DCS 1 $ r + q ST

#### Pt = + r ⇒ DECSMKR - Select modifier key reporting

Not Implemented: K95 responds with:

    DCS 1 $ r + r ST

#### Pt = = } ⇒ DECLFKC - Local Function Key Control

Not Implemented: K95 responds with:

    DCS 1 $ r = } ST

## Functions using CSI, ordered by the final character(s)

### CSI Ps SP @

Scroll Left - Pan right Ps columns.

### CSI Ps @

VT102 VT220 VT320 WY370 SNI-97801 AAA BEOS QANSI LINUX SUN VIP7809 HFT AIXTERM SUN BA80 SCOANSI AT386 ANSI ICH - Insert Ps characters.

### CSI Ps A

Cursor Up Ps lines (default = 1)

SNI-97801 Ignored if outside scroll region

### CSI = Ps A

SCOANSI AT386 ANSI Set Border Color. Ps contains the new color.

BA80 Not Implemented: Ps of 0/1 should turn dead key mode off/on, Ps of 2/3 should do block start/block/end

### CSI Ps SP A

Scroll Right - Pan left Ps columns.

### CSI Ps B

Cursor Down Ps lines (default = 1)

SNI-97801 Ignored if outside scroll region

### CSI = Ps ; Ps B

SCOANSI AT386 ANSI Set Beep Frequency and Duration. Comments note that K95 may not be handling the beep frequency correctly in some way ("??? this isn't correct").

### CSI = Ps B

BA80 Alters the cursor in one of the following ways:

#### Ps = 0 ⇒ Cursor Off

#### Ps = 1 ⇒ Cursor On

#### Ps = 2 ⇒ Alternate Cursor (Block)

#### Ps = 3 ⇒ Normal Cursor (Underline)

### CSI Ps C

Cursor Right Ps times (default = 1) staying on the same line

### CSI = C

BA80 Not Implemented: Close Virtual Window

### CSI = Pa ; Pb C

SCOANSI AT386 ANSI Set Cursor Height. If Pa > Pb then the cursor is disabled. If Pb - Pa <= 1, the cursor is set to underline. If Pb - Pa < 10 then the cursor is set to half. Otherwise the cursor is set to block.

### CSI Ps D

Cursor left Ps characters

### CSI = Ps D

Cursor Left Ps times (default = 1) staying on the same line

### CSI = Ps D

SCOANSI AT386 ANSI Turn on/off background colour intensity

### CSI E

BA80 Window Status Request. Responds with the format string:

    CSI = D HHH : WWW ; 001 : 001 ; Lohn    D

Where HHH is the terminal height, and WWW is the terminal width.

### CSI Ps E

Cursor next line Ps times (default = 1)

### CSI = E

BA80 Window Status Request

### CSI = Ps E

SCOANSI AT386 ANSI If Ps is 0 then blink is simulated with bold background intesnity, any other value enables true blink.

### CSI ? E

AIXTERM Erase status line

### CSI Ps F

Cursor previous line Ps times (default = 1)

### CSI ? F

AIXTERM Return from status line

### CSI = F

BA80 Not Implemented: Fetch virtual window from the background

### CSI = Ps F

SCOANSI AT386 ANSI QANSI Set Normal Foreground Color to Ps.

### CSI Ps G

SCOANSI AT386 ANSI QANSI HFT LINUX Cursor Horizontal Absolute: Move cursor to column Ps

### CSI = Ps G

SCOANSI AT386 ANSI QANSI Set Normal Background Color to Ps.

### CSI ? H

HFT Hide status line

### CSI = Ps H

SCOANSI AT386 ANSI Set Reverse Foreground Color to Ps

### CSI Ps I

Cursor Horizontal Tab Ps tab stops

### CSI = I

BA80 Not Implemented: Input

### CSI = Ps I

SCOANSI AT386 ANSI Set Reverse background colour to Ps

### CSI = ? I
CSI ? = I

BA80 Not Implemented: screen saver off

### CSI Ps J

ED - Erases an area within the display (including attributes)

Not Implemented: When emulating an SNI-97801 terminal K95 should only clear within the scroll region, but currently K95 ignores the left and right margin clearing entire lines when it shouldn't.

#### Ps = 0 ⇒ Clear to end of screen with Space

SNI-97801 Only clears to end of scroll region

#### Ps = 1 ⇒ Clear to beginning of screen with Space

SNI-97801 Only clears to start of scroll region

#### Ps = 2 ⇒ Clear whole screen with Space

Clears within the cursors current screen area (terminal or status line), the cursor is not moved

SNI-97801 If clearing within the terminal area (not the status line), only the scroll region is cleared. The cursor is not moved.

SCOANSI AT386 ANSI Clears the entire screen and homes the cursor.

#### Ps = 3 ⇒ Clear to end of screen with Space (SNI-97801)

SNI-97801 Clears to the end of the screen staying within the scroll region

#### Ps = 4 ⇒ Clear to beginning with NUL (SNI-97801)

SNI-97801 Fills to the beginning of the screen with NUL staying within the scroll region.

#### Ps = 5 ⇒ Clear whole screen with NUL (SNI-97801)

SNI-97801 Fills the current screen area (terminal or status line) with NUL staying within the scroll region

#### Ps = 6 ⇒ Clear to end of screen with space (SNI-97801)

SNI-97801 Fills to the end of the screen with the space character staying within the scroll region. Not Implemented: Additionally, attributes should be reset to the last valid attribute (if attributes are not stored). K95 does not do this - attributes are just reset to normal - same behaviour as Ps = 0.

#### Ps = 7 ⇒ Clear to beginning of screen with space (SNI-97801)

SNI-97801 Fills to the beginning of the screen with the space character staying within the scroll region. Not Implemented: Additionally, attributes should be reset to the last valid attribute (if attributes are not stored). K95 does not do this - attributes are just reset to normal - same behaviour as Ps = 1.

#### Ps = 8 ⇒ Clear whole screen with space (SNI-97801)

SNI-97801 Fills the whole screen with the space character staying within the scroll region. Not Implemented: Additionally, attributes should be reset to the last valid attribute (if attributes are not stored). K95 does not do this - attributes are just reset to normal - same behaviour as Ps = 2.

#### Ps = 9 ⇒ Clear to end of screen with NUL (SNI-97801)

SNI-97801 Fills to the end of the screen with the NUL character staying within the scroll region. Not Implemented: Additionally, attributes should be reset to the last valid attribute (if attributes are not stored). K95 does not do this - attributes are just reset to normal.

#### Ps = 10 ⇒ Clear to beginning of screen with NUL (SNI-97801)

SNI-97801 Fills to the beginning of the screen with the NUL character staying within the scroll region. Not Implemented: Additionally, attributes should be reset to the last valid attribute (if attributes are not stored). K95 does not do this - attributes are just reset to normal.

#### Ps = 11 ⇒ Clear whole screen with NUL (SNI-97801)

SNI-97801 Fills the whole screen with the NUL character staying within the scroll region. Not Implemented: Additionally, attributes should be reset to the last valid attribute (if attributes are not stored). K95 does not do this - attributes are just reset to normal.

#### Ps = 12 ⇒ Clear to end of screen with space preserving attributes (SNI-97801)

SNI-97801 Fills to the end of the screen with the space character staying within the scroll region. Not Implemented: Additionally, attributes should be preserved. K95 resets attributes normal - same behaviour as Ps = 0.

#### Ps = 13 ⇒ Clear to beginning of screen with space preserving attributes (SNI-97801)

SNI-97801 Fills to the beginning of the screen with the space character staying within the scroll region. Not Implemented: Additionally, attributes should be preserved. K95 resets attributes normal - same behaviour as Ps = 1.

#### Ps = 14 ⇒ Clear whole screen with space preserving attributes (SNI-97801)

SNI-97801 Fills the entire screen with the space character staying within the scroll region. Not Implemented: Additionally, attributes should be preserved. K95 resets attributes normal - same behaviour as Ps = 2.

#### Ps = 15 ⇒ Clear to end of screen with NUL preserving attributes (SNI-97801)

SNI-97801 Fills to the end of the screen with the NUL character staying within the scroll region. Not Implemented: Additionally, attributes should be preserved. K95 resets attributes normal.

#### Ps = 16 ⇒ Clear to beginning of screen with NUL preserving attributes (SNI-97801)

SNI-97801 Fills to the beginning of the screen with the NUL character staying within the scroll region. Not Implemented: Additionally, attributes should be preserved. K95 resets attributes normal.

#### Ps = 17 ⇒ Clear whole screen with NUL preserving attributes (SNI-97801)

SNI-97801 Fills the entire screen with the NUL character staying within the scroll region. Not Implemented: Additionally, attributes should be preserved. K95 resets attributes normal.

### CSI ? Ps J

DECSED - Selective Clear Screen. If Ps is 0, selective clear to end of screen, if 1 selective clear to beginning, if 2 selective clear whole screen.

### CSI = Ps J

SCOANSI AT386 ANSI Set Graphic Foreground Color to Ps.

### CSI = ? J
CSI ? = J

BA80 Not Implemented: Screen Saver On

### CSI Ps K

EL - Erase in Line

Erases within a single line

#### Ps = 0 ⇒ Clear to end of line with space

Clears to the end of the line with the space character. Clears attributes.

#### Ps = 1 ⇒ Clear to beginning of line with Space

Clears to the beginning of the line with the space character. Clears attributes.

#### Ps = 2 ⇒ Clear whole cursor line with Space

Clears the entire currently line with the space character. Clears attributes.

#### Ps = 3 ⇒ Clear to end of line with NUL (SNI-97801)

Clears to the end of the line with the NUL character. Clears attributes.

#### Ps = 4 ⇒ Clears to beginning of line with NUL (SNI-97801)

Clears to the beginning of the line with the NUL character. Clears attributes.

#### Ps = 5 ⇒ Clears entire line with NUL (SNI-97801)

Clears the entire line with the NUL character. Clears attributes.

#### Ps = 6 ⇒ Clear to end of line with Space (SNI-97801)

Clear to end of line with the space character. Not Implemented: Additionally, attributes should be preset to the last valid SGR attribute (if attributes are not stored). K95 instead clears attributes giving the same behaviour as Ps = 0

#### Ps = 7 ⇒ Clear to beginning of line with Space (SNI-97801)

Clears to the beginning of the line with the Space character. Not Implemented: Additionally, attributes should be preset to the last valid SGR attribute (if attributes are not stored). K95 instead clears attributes giving the same behaviour as Ps = 1

#### Ps = 8 ⇒ Clear entire line with Space (SNI-97801)

Clears the entire line with the Space character. Not Implemented: Additionally, attributes should be preset to the last valid SGR attribute (if attributes are not stored). K95 instead clears attributes giving the same behaviour as Ps = 2

#### Ps = 9 ⇒ Clear to end of line with NUL (SNI-97801)

Clear to end of line with the NUL character. Not Implemented: Additionally, attributes should be preset to the last valid SGR attribute (if attributes are not stored). K95 instead clears attributes.

#### Ps = 10 ⇒ Clear to beginning of line with NUL (SNI-97801)

Clears to the beginning of the line with the NUL character. Not Implemented: Additionally, attributes should be preset to the last valid SGR attribute (if attributes are not stored). K95 instead clears attributes.

#### Ps = 11 ⇒ Clear entire line with NUL (SNI-97801)

Clears the entire line with the NUL character. Not Implemented: Additionally, attributes should be preset to the last valid SGR attribute (if attributes are not stored). K95 instead clears attributes.

#### Ps = 12 ⇒ Clear to end of line with Space (SNI-97801)

Clear to end of line with the Space character. Not Implemented: Additionally, attributes should be preserved. K95 instead clears attributes resulting in the same behaviour as Ps = 0.

#### Ps = 13 ⇒ Clear to beginning of line with Space (SNI-97801)

Clear to the beginning of the line with the Space character. Not Implemented: Additionally, attributes should be preserved. K95 instead clears attributes resulting in the same behaviour as Ps = 1.

#### Ps = 14 ⇒ Clears the entire line with Space (SNI-97801)

Clear the entire line with the Space character. Not Implemented: Additionally, attributes should be preserved. K95 instead clears attributes resulting in the same behaviour as Ps = 2.

#### Ps = 15 ⇒ Clear to end of line with NUL (SNI-97801)

Clear to end of line with the NUL character. Not Implemented: Additionally, attributes should be preserved. K95 instead clears attributes.

#### Ps = 16 ⇒ Clear to beginning of line with NUL (SNI-97801)

Clear to the beginning of the line with the NUL character. Not Implemented: Additionally, attributes should be preserved. K95 instead clears attributes.

#### Ps = 17 ⇒ Clear the entire line with NUL (SNI-97801)

Clear the entire line with the NUL character. Not Implemented: Additionally, attributes should be preserved. K95 instead clears attributes.

### CSI = K

BA80 Begin reading function key labels

### CSI = Ps K

SCOANSI AT386 ANSI Set Graphic Background Color to Ps.

### CSI ? Ps K

VT220 VT320 WY370 SNI-97801 AAA BEOS QANSI LINUX SUN DECSEL - Selective erase from cursor to end of line and clear attributes. Ps is one of: 0 (to end of line), 1 (to beginning) or 2 (whole cursor line).

### CSI Ps L

VT102 VT220 VT320 WY370 SNI-97801 AAA BEOS QANSI LINUX SUN VIP7809 HFT AIXTERM SUN BA80 SCOANSI AT386 ANSI IL - Insert Ps lines.

### CSI = Ps L

SCOANSI Set Emulation Feature. Only two of these are currently implemented. Ps = 6 turns off backwards compatibility mode, while Ps = 7 turns it on. AT this time when enabled, backwards compatibility mode causes colours to be reset by SGR Select Primary Font and Display GL Control Characters as Graphic Characters.

SCOANSI AT386 ANSI Turn fill (erase?) mode on (use normal color) or off (use current color).

### CSI Ps M

VT102 VT220 VT320 WY370 SNI-97801 AAA BEOS QANSI LINUX SUN VIP7809 HFT AIXTERM SUN BA80 SCOANSI AT386 ANSI DL - Delete Ps lines.

### CSI = M

BA80 Go to status line

SCOANSI AT386 ANSI ANSI - Report Color Attributes. The response is the background and foreground colours separated by a space.

### CSI Ps N

HFT LINUX AAA EF - Erase Field

#### Ps = 0 ⇒ Erase to End of Field (Cursor to tab stop)

#### Ps = 1 ⇒ Erase from Field Start (tab stop to cursor)

#### Ps = 2 ⇒ Erase All of the field (tab stop to tab stop)

### CSI Ps O

HFT LINUX AAA EA - Erase Area

#### Ps = 0 ⇒ Erase to end of area (line)

#### Ps = 1 ⇒ Erase from area start (line)

#### Ps = 2 ⇒ Erase all of the area (line)

### CSI = O

BA80 Not Implemented: Open Virtual Window

### CSI Ps P

VT102 VT220 VT320 WY370 SNI-97801 AAA BEOS QANSI LINUX SUN VIP7809 HFT AIXTERM SUN BA80 SCOANSI AT386 ANSI DCH - Delete Ps characters

### CSI Ps Q

AAA Not Implemented: SEE - Select Editing Extent

### CSI R

CPR - Cursor Position Report. This is sent to the host (see: DSR), not processed by the terminal. No action is performed on receipt of CSR R

### CSI Ps $ R

SCOANSI Delete lines - alternate form of `CSI Ps M`

### CSI = Ps $ R

BA80 Not Implemented: Reset virtual window to the background

### CSI Ps S

VT320 VT320PC VT420 VT520 WY370 AAA SU - Scroll Up: Scrolls the characters up Ps lines.

SNI-97801 Behaviour for the SNI-97801 is a bit different when not in "Roll Mode". Instead, it treats the line the cursor on as the bottom margin and scrolls the screen between there and the top margin Ps lines.

HFT SCOANSI AT386 ANSI Scrolls the entire screen (excluding status line)up Ps lines ignoring top and bottom margins.

### CSI ? S

AIXTERM Show status line

### CSI ? Pm S

HFT Not Implemented: Save Modes.

### CSI = S

BA80 Return from Status Line

### CSI Ps T

VT320 VT320PC VT420 VT520 WY370 AAA SD - Scroll down Ps lines. The top Ps lines are cleared to blanks.

SNI-97801 For SNI-97801 emulation, if the terminal is in Roll Mode, the behaviour is the same as above (scroll down Ps lines). If in Scroll mode instead, the current cursor position is treated as the top margin and the screen between the cursor possion and the bottom margin is scrolled down Ps lines.

HFT SCOANSI AT386 ANSI The entire screen is scrolled down Ps lines ignoring top and bottom margins, with the top Ps lines cleared to blanks.

### CSI ? Ps T

AIXTERM Go to column Ps of the status line

### CSI U

SCOANSI Reset Terminal

### CSI Ps V

SCOANSI Erase in region

#### Ps = 0 ⇒ Clear to end of region

Clears to the end of the region with the space character and resets attributes

#### Ps = 1 ⇒ Clear to beginning of region

Clears to the beginning of the region with the space character and resets attributes

#### Ps = 2 ⇒ Clear whole region

Clears the whole scroll region with the space character and resets attributes

### CSI Ps W

HFT LINUX AAA CTC - Cursor Tab Stop Control

### CSI Ps X

VT220 VT320 WY370 SNI-97801 AAA BEOS QANSI LINUX SUN HFT LINUX AAA SCOANSI AT386 ANSI ECH - Erase Ps characters

### CSI Y

HFT Not Implemented: Cursor Vertical Tab

### CSI = Z

SCOANSI AT386 ANSI Reset colours

### CSI Ps Z

CBT - Cursor Backward Tabulation. Moves active cursor position back Ps tab stops.

### CSI Ps a

Horizontal Position Relative - moves active position Ps characters to the right.

### CSI Ps b

QANSI Repeat previous character Ps times.

### CSI Pc ; Pn b

SCOANSI AAA Comment says "Horizontal Position Relative". Code repeats character Pc Pn times

### CSI c

SNI-97801 Resets the terminal

### CSI Ps c

Device Attributes (Primary). Kermit 95s response depends on the selected terminal type. Some of the VT-compatible responses are included below:

Terminal Type | Response
--- | ---
HFT, AIXTERM, VT100 | CSI ? 1 ; 2 c
VT102 | CSI ? 6 c
VT220 | CSI ? 6 2 ; 1 ; 2 ; 6 ; 8 ; 9 ; 1 5 ; 4 4 c
VT320 | CSI ? 6 3 ; 1 ; 2 ; 6 ; 8 ; 9 ; 1 5 ; 4 4 c
WY370 | CSI ? 6 3 ; 1 ; 2 ; 6 ; 8 ; 9 ; 1 5 ; 4 4 c
SNI-97801 | CSI ? 6 2 ; 1 ; 2 ; 6 ; 8 ; 9 ; 1 5 ; 4 4 c

### CSI > Ps c

VT220 VT320 WY370 SNI-97801 AAA BEOS QANSI LINUX SUN Secondary Device Attributes Report Request. If Ps is 0 then K95 claims to be a VT320 with firmware version 0 and ROM cartridge registration number 0 by responding with: `CSI > 2 4 ; 0 ; 0 c`

### CSI = Ps c

VT220 VT320 WY370 SNI-97801 AAA BEOS QANSI LINUX SUN Tertiary Device Attributes Report Request. If Ps is 0 then K95 responds with `DCS ~ | 0 0 0 0 0 0 0 0 ESC`

SCOANSI AT386 ANSI Set Cursor Type. Cursor types are numbered from 0: underline, block, no cursor.

### CSI ? Ps ; Pa ; Pc c

LINUX Set Cursor appearance. Parameter Ps sets the cursor size and other settings, while Pa and Pc specify character attributes. Kermit 95 only supports setting the cursor size and visibiltiy - the other bits in Ps are ignored, while the Pa and Pc parameters are ignored entirely.

Ps (lower four bits) | Cursor
--- | ---
0 or 2 | Cursor enabled, underline
3, 4, 5, 6 or 7 | Cursor enabled, half
8 | Cursor enabled, block
1 | Cursor disabled

### CSI Ps d

Vertical Position Absolute: Moves active position to row Ps

### CSI Ps e

Vertical Position Relative - moves active position Ps rows down

### CSI Ps ; Ps f

Send cursor to row;column. Default is 1;1

SNI-97801 If DECSASD is set to the status line, it is reset to terminal.

### CSI Ps g

Tab clear at position Ps

SCOANSI Ignored.

### CSI Ps g

SCOANSI Displays the character Ps in G2. This should only occur when not in SCO ANSI BCS2 mode, but as there is no way to turn SCO ANSI BCS2 mode on this is always true.

### CSI = Ps g

SCOANSI AT386 ANSI Displays the character Ps in G2

### CSI Pm h

Non-private / ANSI Set Mode

#### Ps = 2 ⇒ Keyboard lock

Locks the keyboard

#### Ps = 3 ⇒ Controls Mode On, or SCO: 132 Column Mode

Controls Mode On

SCOANSI Switches to 132 Column Mode

#### Ps = 4 ⇒ ANSI Insert Mode, or SCO: Enable Smooth Scrolling

SCOANSI Enable Smooth Scrolling. Only supported in the console version of K95 at this time (not K95G).

VT102 VT220 VT320 WY370 SNI-97801 AAA BEOS QANSI LINUX SUN VIP7809 HFT AIXTERM BA80 AT386 ANSI Enable insert mode

#### Ps = 6 ⇒ Erasure Mode Set, or SCO: Relative Origin

Erasure Mode Set

SCOANSI Returns the cursor to 1,margintop

#### Ps = 7 ⇒ Auto Wrap Mode

SCOANSI Enables auto wrap mode

#### Ps = 12 ⇒ Send Receive ON

Switches to full duplex mode

#### Ps = 13 ⇒ Control execution off

Not Implemented: display control codes

#### Ps = 16 ⇒ TTM - Send through cursor position

Not Implemented: Send through cursor position

#### Ps = 20 ⇒ LNM - Line Feed / new line mode

Turns on terminal new line and display crlf (equivalent to `set terminal cr-display crlf` and `set terminal newline on`

#### Ps = 25 ⇒ Cursor On

SCOANSI Turns on the cursor

#### Ps = 30 ⇒ SCO: Scrollbars On, WY370: Display off

SCOANSI Not Implemented: Scrollbars On

WY370 Turns the screen off

#### Ps = 31 ⇒ WYSTLINM - Display status line

Not Implemented: Display status line

#### Ps = 32 ⇒ WYCTRSAVM - Screen Saver off

Not Implemented: Screen Saver off

#### Ps = 33 ⇒ WYSTCURM - Cursor steady

Not Implemented: Cursor steady

#### Ps = 34 ⇒ WYULCURM - Underline cursor

WY370 Changes to the underline cursor

#### Ps = 35 ⇒ WYCLRM - Width change clear off

Not Implemented: Width change clear off

#### Ps = 36 ⇒ WYDELKM - Set delete key to BS/DEL

Not Implemented: Set delete key to BS/DEL

#### Ps = 37 ⇒ WYGATM - Send all characters

Not Implemented: Send all characters

#### Ps = 38 ⇒ WYTEXM - Send full page

Not Implemented: Send full page

#### Ps = 40 ⇒ WYEXTDM - Extra data line

Not Implemented: Extra data line

#### Ps = 42 ⇒ WYASCII - Select Wyse 350 personality

Not Implemented: Select Wyse 350 personality

#### Ps = 44 ⇒ Margin Bell On

SCOANSI Enables the margin bell

#### Ps = 48 ⇒ Cursor On

SCOANSI Turns on the cursor

#### Ps = 50 ⇒ 97801-5XX - Compose key table on

SNI-97801 Not Implemented: Compose key table on

#### Ps = 51 ⇒ 97801-5XX - Dead key table on

SNI-97801 Not Implemented: Dead key table on

#### Ps = 53 ⇒ 97801-5XX - 132-character mode

SNI-97801 Switch to 132 character mode

#### Ps = 1048 ⇒ Cursor On

SCOANSI Turns on the cursor

### CSI ? Pm h

DECSET: DEC Private Mode Set

#### Ps = 1 ⇒ DECCKM

Application Cursor Keys

#### Ps = 2 ⇒ DECANM

Switch to VT52 mode

H19Turn off VT52 graphics and switch to H19 mode

#### Ps = 3 ⇒ DECCOLM - 132 column mode

Switches the screen to 132 columns and moves homes the cursor

#### Ps = 4 ⇒ DECSCLM - Smooth scroll

Console version only: Enable smooth (slow) scrolling mode. K95G (the GUI version) presently ignores this setting.

#### Ps = 5 ⇒ DECSCNM - Reverse screen

Switches to reverse video

#### Ps = 6 ⇒ DECOM - Relative origin

Switches to relative origin mode

#### Ps = 7 ⇒ DECAWM - Auto Wrap mode

Turns auto-wrap mode on

#### Ps = 8 ⇒ DECARM - Autorepeat

Not Implemented: enable auto-repeat mode

#### Ps = 9 ⇒ DECINLM - Interlace / X10 mouse reporting

Not Implemented: enable interlaced video mode

LINUX SCOANSI AT386 ANSI Send mouse X & Y on button press (X10 mouse reporting).

#### Ps = 10 ⇒ DECEDM - Block Mode On

Not Implemented: K95 does not support the VT132 block editing mode

#### Ps = 18 ⇒ DECPFF - Print Form Feed

Enables print form-feed (sends a form-feed to the printer after printing some or all of the screen)

#### Ps = 19 ⇒ DECPEX - Printer extent

Set print extent to print the entire screen

#### Ps = 25 ⇒ DECTCEM - Cursor On

Turn on the cursor

#### Ps = 34 ⇒ DECRLM - Right to Left Mode

Not Implemented: right-to-left mode

#### Ps = 35 ⇒ DECHEBM - Hebrew Keyboard Mode

Switches the keyboard mode to Hebrew

#### Ps = 36 ⇒ DECHEM - Hebrew Encoding Mode

Not Implemented: Enter hebrew encoding mode

#### Ps = 38 ⇒ DECTEK - Enter Tektronix 4010/4014 mode

Not Implemented: K95 does not (yet) support the Tektronix mode

#### Ps = 40 ⇒ XTERM - Allow 80 - 132 Mode

Not Implemented: XTERM - Allow 80 - 132 Mode

#### Ps = 41 ⇒ XTERM - more(1) fix

Not Implemented: XTERM - more(1) fix

#### Ps = 42 ⇒ DECNRCM - Use 7-bit National Replacement Character Sets

Switch to using 7-bit national replacement character sets

#### Ps = 43 ⇒ DECGEPM - Graphics Expanded Print mode

Not Implemented: VT340 Graphics Expanded Print Mode

#### Ps = 44 ⇒ DECGPCM - Graphics Print Color mode

Not Implemented: VT340 Graphics Print Color Mode

XTERM Not Implemented: Xterm - Turn on Margin Bell

#### Ps = 45 ⇒ DECGPCS - Graphics Print Color syntax = RGB

Not Implemented: Graphics Print Color syntax = RGB

XTERM Not Implemented: Xterm - Reverse-wraparound mode

#### Ps = 46 ⇒ DECGPBM - Graphics Print Background mode

Not Implemented: Graphics Print Background mode

XTERM Not Implemented: Xterm - Start Logging (XTLOGGING)

#### Ps = 47 ⇒ DECGRCM - Graphics Rotated Print mode

Not Implemented: Graphics Rotated Print mode

XTERM Not Implemented: Xterm - Use Alternate Screen Buffer

#### Ps = 53 ⇒ DEC131TM - VT131 Transmit

Not Implemented: VT131 Transmit

#### Ps = 60 ⇒ DECHCCM - Horizontal cursor coupling

Not Implemented: Horizontal cursor coupling

#### Ps = 61 ⇒ DECVCCM - Vertical cursor coupling

Not Implemented: Vertical cursor coupling

#### Ps = 64 ⇒ DECPCCM - Page cursor coupling

Not Implemented: Page cursor coupling

#### Ps = 66 ⇒ DECNKM - Numeric Keyboard - Application

Switches the numeric keypad to application mode

#### Ps = 67 ⇒ DECBKM - Backarrow key sends BS

Adjusts the keymap so that the backarrow key sends backspace. The previous key definition is saved so it can be restored later.

#### Ps = 68 ⇒ DECKBUM - Keyboard Usage - Data Processing

Not Implemented: K95 stores this setting, but does not currently use it for anything

#### Ps = 73 ⇒ DECXRLM - Transmit rate limiting

Not Implemented: transmit rate limiting

#### Ps = 80 ⇒ WY161 - 161-column mode

Not Implemented: Enable Sixel Display Mode

WY370 Switch to 161-column mode

#### Ps = 83 ⇒ WY52 - 52 line mode

WY370 Switch to 52 line mode

#### Ps = 84 ⇒ WYENAT

WY370 Not Implemented: enable separate assignment of SGR attributes to erasable and non-erasable characters

#### Ps = 85 ⇒ WYREPL

WY370 Not Implemented: set replacement character to current character background color

#### Ps = 1000 ⇒ XTERM - Send Mouse X&Y on button press and release

Sends mouse X & Y on button press and release

#### Ps = 1001 ⇒ XTERM - Use Hilite Mouse Tracking

Not Implemented: Hilite mouse tracking

#### Ps = 1002 ⇒ XTERM - Cell Motion Mouse Tracking

Enables button event mouse reporting

#### Ps = 1003 ⇒ XTERM - All Motion Mouse Tracking

Enables all motion mouse tracking

#### Ps = 1004 ⇒ XTERM - Send FocusIn / FocusOut events

Not Implemented: Send FocusIn / FocusOut events

#### Ps = 1005 ⇒ XTERM - Enable UTF-8 Mouse Mode

Not Implemented: UTF-8 Mouse Mode

#### Ps = 1006 ⇒ XTERM - Enable SGR Mouse Mode

Enables SGR mouse reporting

#### Ps = 1007 ⇒ XTERM - Enable Alternate Scroll Mode

Not Implemented: enable alternate scroll mode

#### Ps = 1010 ⇒ RXVT - Scroll to bottom on tty output

Not Implemented: scroll to bottom on tty output

#### Ps = 1011 ⇒ RXVT - Scroll to bottom on key press

Not Implemented: scroll to bottom on key press

#### Ps = 1015 ⇒ URXVT - Enable URXVT Mouse Mode

Enables URXVT mouse reporting

#### Ps = 2004 ⇒ XTERM - Enable Bracketed Paste Mode

Enables bracketed paste mode. `ESC [ 2 0 0 ~` will be sent before the pasted text, and `ESC [ 2 0 1 ~` after it.

### CSI > Pm h

Zenith, Heath and AnnArbor set mode

AnnArbor values 25-61 (excluding 50, 58 and 60) are parsed but not implemented.

#### Ps = 1 ⇒ Enable 25th line

Disables the status line

#### Ps = 2 ⇒ No Key Click

Disables key click

#### Ps = 3 ⇒ Hold Screen Mode

Not Implemented: hold screen mode

#### Ps = 4 ⇒ Block Cursor

Switches the cursor to a block

#### Ps = 5 ⇒ Cursor Off

Turns off the cursor

#### Ps = 6 ⇒ Keypad Shifted

Not Implemented: While K95 stors the keypad shifted setting, it does not currently use this value for anything

#### Ps = 7 ⇒ Alternate keypad mode

Switches the keypad to application mode

#### Ps = 8 ⇒ Auto Line Feed on receipt of CR

Enables automatic line feed on receipt of CR

#### Ps = 9 ⇒ Auto CR on receipt of LF

Enables automatic carriage return on receipt of LF

### CSI Pm i

Media Copy

#### Ps = 0 ⇒ Print whole screen

Sends the entire screen to the configured printer

#### Ps = 2 ⇒ Transmit Screen

This is possibly to support the "Instant Screen Read" feature of DOUBLEVISION v1.x by Maxim Computer Technologies. This looks to be a kind of remote control package - like TeamViewer but for terminals.

If send-data is enabled (`set terminal send-data on`), every character on the screen is transmitted to the host. If send-data is off, it sends space characters instead. Attributes are not sent.

#### Ps = 4 ⇒ Turn off Transparent Print

Turns off Transparent Print

#### Ps = 5 ⇒ Transparent Print

Sends every character received to the configured printer

#### Ps = 6 ⇒ Turn off screen display
Ps = 7 ⇒ Turn on screen display

Described in the VT125 manual, these are really ANSI Media Copy sequences which should control the flow of data from the printer port to the host. In Kermit 95, they just turn the screen off and on.

### CSI ? Pm i

Media Copy

#### Ps = 1 ⇒ Print cursor line

Sends the line the cursor is currently on to the configured printer

#### Ps = 4 ⇒ Turn off Autoprint

Turns off Autoprint

#### Ps = 5 ⇒ Autoprint

Enables Autoprint mode - sends each line to the configured printer as the cursor leaves it (line feed, form feed, vertical tab, wrap)

### CSI Pm k

Turns key click off (Ps = 1) or on (Ps = 0)

### CSI = ? l
CSI ? = l

Insert line up

### CSI Pm l

Mode Reset

#### Ps = 2 ⇒ Keyboard unlocked

unlocks the keyboard

#### Ps = 3 ⇒ Controls Mode off, or SCO: 80 columns

Controls mode off

SCOANSI Switch to 80 column mode

#### Ps = 4 ⇒ ANSI Insert Mode, or SCO: Jump Scroll

VT102 VT220 VT320 WY370 SNI-97801 AAA BEOS QANSI LINUX SUN VIP7809 HFT AIXTERM SUN BA80 SCOANSI AT386 ANSI Turn off insert mode

SCOANSI Switch to Jump scrolling. Only has an effect in the console version of K95, the GUI version (K95G) doesn't support smooth scrolling so is always in jump scrolling mode.

#### Ps = 6 ⇒ Erasure Mode Reset, or SCO: Absolute Origin

Erasure mode reset

SCOANSI Sends the cursor to 1,1

#### Ps = 7 ⇒ Auto Wrap

SCOANSI Turns off auto-wrap

#### Ps = 12 ⇒ Send Receive Off

Turns on local echo

#### Ps = 13 ⇒ FEAM - Control execution on

Not Implemented: control execution on

#### Ps = 16 ⇒ TTM - Send through EOL or EOS

Not Implemented: Send through EOL or EOS

#### Ps = 20 ⇒ LNM - linefeed / newline mode

Turns off terminal new line and display crlf

#### Ps = 25 ⇒ Cursor off

SCOANSI Disable cursor

#### Ps = 30 ⇒ WYDSCM - Turn display on, or SCO: Scrollbars Off

WY370 Turn display on

SCOANSI Turn scrollbars off

#### Ps = 31 ⇒ WYSTLINM - Turn off status line

Not Implemented: Turn off status line

#### Ps = 32 ⇒ WYCTRSAVM - Screen Saver on

Not Implemented: Screen Saver on

#### Ps = 33 ⇒ WYSTCURM - Cursor blinking

Not Implemented: Cursor blinking

#### Ps = 34 ⇒ WYULCURM - Block cursor

WY370 Switch to block cursor

#### Ps = 35 ⇒ WYCLRM - Width change clear on

Not Implemented: Width change clear on

#### Ps = 36 ⇒ WYDELKM - Set delete key to DEL/CAN

Not Implemented: Set delete key to DEL/CAN

#### Ps = 37 ⇒ WHGATM - Send erasable characters

Not Implemented: Send erasable characters

#### Ps = 38 ⇒ WYTEXM - Send scrolling region

Not Implemented: Send scrolling region

#### Ps = 40 ⇒ WYEXTDM - Extra data line

Not Implemented: Extra data line

#### Ps = 44 ⇒ Margin Bell Off

SCOANSI Turn margin bell off

#### Ps = 48 ⇒ Cursor off

SCOANSI Disable cursor

#### Ps = 50 ⇒ 97801-5XX - Compose key table off

SNI-97801 Not Implemented: Make compose key send Compse Key String

#### Ps = 51 ⇒ 97801-5XX - Dead key table off

SNI-97801 Not Implemented: Dead key table off

#### Ps = 53 ⇒ 97801-5XX - 80-character mode

SNI-97801 Switch to 80 column mode

#### Ps = 1048 ⇒ Cursor off

SCOANSI Disable cursor

### CSI ? Pm l

DEC Private Mode Reset

#### Ps = 1 ⇒ DECCKM - Cursor key mode

Sets the arrow keys to normal

#### Ps = 2 ⇒ DECANM : ANSI/VT52

Switches to VT52 mode

#### Ps = 3 ⇒ DECCOLM - 80 Columns

Switches to 80 column mode

#### Ps = 4 ⇒ DECSCLM - Jump scrolling

Switches to Jump (fast) scrolling. Only has an effect on the console version of K95 - the GUI version (K95G) only supports jump scrolling at the moment so is always in this mode

#### Ps = 5 ⇒ DECSCNM - Normal screen

Normal screen

#### Ps = 6 ⇒ DECOM - Absolute origin

Normal cursor mode

#### Ps = 7 ⇒ DECAWM - Auto wrap

Turn off autowrap

#### Ps = 8 ⇒ DECARM - Auto repeat

Not Implemented: turn off auto-repeat

#### Ps = 9 ⇒ DECINLM - Interlace

Not Implemented: Turn off interlaced video

LINUX SCOANSI AT386 ANSI Turn off X10 mouse reporting

#### Ps = 10 ⇒ DECEDM - Block mode off

Not Implemented: turn off block mode

#### Ps = 18 ⇒ DECPFF - Print Form Feed

Don't send form feed after printing screen

#### Ps = 19 ⇒ DECPEX - Print extent

Print scrolling region, not full screen

#### Ps = 25 ⇒ DECTCEM - Cursor Off

Turn off cursor

#### Ps = 34 ⇒ DECRLM - Right to Left Mode

Not Implemented: Right to left mode

#### Ps = 35 ⇒ DECHEBM - Enter english keyboard mode

Enter english keyboard mode

#### Ps = 36 ⇒ DECHEM - Hebrew Encoding Mode

Not Implemented: Hebrew encoding mode

#### Ps = 38 ⇒ DECTEK - Exit Tektronix 4010/4014 mode

Not Implemented: Exits tektronix mode. Tektronix mode doesn't currently do anything in K95.

#### Ps = 40 ⇒ XTERM - Disallow 80 - 132 mode switch

Not Implemented: Disallow 80 - 132 column switch

#### Ps = 41 ⇒ XTERM - No more(1) fix

Not Implemented: xterm more(1) fix

#### Ps = 42 ⇒ DECNRCM - 8-bit multinational character set

Use 8-bit multinational character set

#### Ps = 43 ⇒ DECGEPM - Graphics Normal Print mode

Not Implemented: Graphics Normal Print mode

#### Ps = 44 ⇒ DECGPCM - Graphics Print Monochrome mode

Not Implemented:Graphics Print Monochrome mode

#### Ps = 45 ⇒ DECGPCS - Graphics Print Color syntax = HLS

Not Implemented: Graphics Print Color syntax = HLS

#### Ps = 46 ⇒ DECGPBM - Graphics Print No-Background mode

Not Implemented: Graphics Print No-Background mode

#### Ps = 47 ⇒ DECGRCM - Graphics Unrotated Print mode

Not Implemented:Graphics Unrotated Print mode

#### Ps = 53 ⇒ DEC131TM - VT131 Transmit

Not Implemented: VT131 Transmit

#### Ps = 60 ⇒ DECHCCM - Horizontal cursor coupling

Not Implemented: Horizontal cursor coupling

#### Ps = 61 ⇒ DECVCCM - Vertical cursor coupling

Not Implemented: Vertical cursor coupling

#### Ps = 64 ⇒ DECPCCM - Page cursor coupling

Not Implemented: Page cursor coupling

#### Ps = 66 ⇒ DECNKM - Numeric Keyboard - Numeric

Sets the keypad to normal

#### Ps = 67 ⇒ DECBKM - Backarrow sends DEL

Changes the keymap so that backarrow sends DEL.

#### Ps = 68 ⇒ DECKBUM - Keyboard Usage - Typewriter mode

Not Implemented: While K95 stores this setting, it doesn't do anything with it

#### Ps = 73 ⇒ DECXRLM - Transmit rate limiting

Not Implemented: Transmit rate limiting

#### Ps = 80 ⇒ WY161 - 80-column mode

WY370 Switches to 80-column mode

#### Ps = 83 ⇒ WY52 - 24 line mode

WY370 Switches to 24 line mode

#### Ps = 84 ⇒ WYENAT

WY370 Enable attribute assignment (SGR) to extend to both eraseable and nonerasable characters

#### Ps = 85 ⇒ WYREPL

WY370 Set replacement character to color map background color

#### Ps = 1000 ⇒ XTERM - Don't Send Mouse X&Y on button press and release

Disable X11 mouse reporting

#### Ps = 1001 ⇒ XTERM - Don't use Hilite Mouse Tracking

Not Implemented: Hilite mouse tracking

#### Ps = 1002 ⇒ XTERM - Cell Motion Mouse Tracking

Turns off button-event mouse reporting

#### Ps = 1003 ⇒ XTERM - All Motion Mouse Tracking

Turns off all mose reporting

#### Ps = 1004 ⇒ XTERM - Send FocusIn/FocusOut events

Not Implemented: Send FocusIn/FocusOut events

#### Ps = 1005 ⇒ XTERM - UTF-8 Mouse Mode

Not Implemented: UTF-8 Mouse Mode

#### Ps = 1006 ⇒ XTERM - Disable SGR Mouse Mode

Turns off SGR mouse reporting

#### Ps = 1007 ⇒ XTERM - Alternate Scroll Mode

Not Implemented: Alternate Scroll Mode

#### Ps = 1010 ⇒ RXVT - Scroll to bottom on tty output

Not Implemented: Scroll to bottom on tty output

#### Ps = 1011 ⇒ RXVT - Scroll to bottom on key press

Not Implemented: Scroll to bottom on key press

#### Ps = 1015 ⇒ URXVT - Disable URXVT Mosue Mode

Disable URXVT mouse reporting

#### Ps = 2004 ⇒ XTERM - Disable Bracketed Paste Mode

Disable bracketed paste mode

### CSI > Pm l

Zenith/Heath Mode Reset

AnnArbor values 25-61 are not implemented (excluding 50, 58 and 60 which are ignored)

#### Ps = 1 ⇒ Disable 25th line

Enables the status line

#### Ps = 2 ⇒ Key Click

Enables key click

#### Ps = 3 ⇒ Exit Hold Screen Mode

Not Implemented: Hold screen mode

#### Ps = 4 ⇒ Underline Cursor

#### Ps = 5 ⇒ Cursor On

#### Ps = 6 ⇒ Keypad Unshifted

#### Ps = 7 ⇒ Exit Alternate keypad mode

#### Ps = 8 ⇒ No Auto Line Feed on receipt of CR

#### Ps = 9 ⇒ No Auto CR on receipt of LF

### CSI = Ps ; Ps }
CSI = Ps ; Ps m

SCOANSI Set margin to specified value. Margins are numbered 0-3 top/bottom/left/right.

The form of this control sequence ending with a `}` ( `CSI = Ps ; Ps }`) is marked with the comment "why this?" in the K95 source code — it is at this time uncertain if some particular terminal also accepts this form (or some particular application expects it), or if it is just a mistake/bug. Probably best not to rely on this behaviour and instead use the one ending with `m`.

### CSI Pm m Character Attributes (SGR)

#### Ps = 0 ⇒ Normal (default), VT100

Sets all attributes to normal (off/false): blinking, italic, bold, invisible, underlined, reversed, graphic, dim, wyse, hyperlink, sco8bit.

SCOANSI AT386 ANSI Also sets crm to off/false.

#### Ps = 1 ⇒ Turn on Bold

Turns on the Bold attribute

#### Ps = 2 ⇒ Turn on Faint/Dim (NORMAL), Set Foreground and Background Colour (SCOANSI)

SCOANSI If processing of SGR colors is enabled (`set term sgr-colors on`), sets the foreground (1st parameter) and background (2nd parameter) colors. The intensity bit is not altered. The colour codes are:

Value | Color
--- | ---
0 | Black
1 | Blue
2 | Green
3 | Cyan
4 | Red
5 | Magenta
6 | Brown
7 | Light Grey

Other Terminals Turns on the Faint/Dim (decreased intensity) attribute.

#### Ps = 3 ⇒ Turn on Italic

Turns on the Italic attribute.

SCOANSI The following parameter is supposed to indicate blink or bold background. K95 does not handle this so it is skipped.

#### Ps = 4 ⇒ Turn on Underline

Turns on the Underline attribute

AT386 If underline support is disabled (In K95G with `set terminal attribute underline off`) or unsupported (in K95.EXE), the color set with `set terminal color underline` is used instead of setting the underline attribute.

#### Ps = 5 ⇒ Turn on Blink

Turns on the Blink attribute. This is supposed to be slow blink for all terminals except SCOANSI, but there is no implementation difference at this time.

#### Ps = 6 ⇒ Turn on Fast Blink, or for SCOANSI turns off blink

Turns on fast blink, which is currently the same as regular blink.

SCOANSI Turns off Blink instead of turning on fast blink

#### Ps = 7 ⇒ Turn on Reverse Video

Turns on the Reverse Video attribute.

AT386 Instead of turning on the reverse video attribute, the foreground and background colours are swapped.

#### Ps = 8 ⇒ Turn on Invisible attribute
Ps = 9 ⇒ Turn on Invisible attribute (QANSI)

Turns on the Invisible attribute.

TODO:
Ps = 9 should only apply to QANSI, for all other terminals PS=9 should be crossed-out characters (ECMA-48 3rd Ed)

#### Ps = 10 ⇒ Select Primary Font

SCOANSI AT386 ANSI BEOS Disables sco8bit and crm modes, turns off the graphic attribute, switches to graphic set G1. If in SCOANSI backwards compatibility mode, colours are reset.

LINUX QANSI Disables sco8bit and crm modes, restores graphic sets.

#### Ps = 11 ⇒ Display GL Control Characters as Graphic Characters

SCOANSI AT386 ANSI Turns off sco8bit, turns on crm, switches to graphic set G2, and switches colours to the color set with `set term color graphic`. if in SCOANSI backwards compatibility mode, colours are reset.

LINUX Turns on sco8bit and crm. Sets G1, G2 and G3 to CP437

QANSI Turns on sco8bit and crm. Sets G1/G2/G3 to IBM C0 Graphics.

#### Ps = 12 ⇒

LINUX Select null mapping (CP437), set display control flag, set toggle meta flag (causes the high bit of a byte to be toggled before the mapping table translation is done). Turns on sco8bit and crm, turns off the graphic attribute, sets G1/G2/G3 to CP437.

#### Ps = 13 ⇒ Shift High Bit on before displaying characters
Ps = 14 ⇒ Shift High Bit on before displaying characters
Ps = 15 ⇒ Shift High Bit on before displaying characters
Ps = 16 ⇒ Shift High Bit on before displaying characters
Ps = 17 ⇒ Shift High Bit on before displaying characters

SCOANSI AT386 ANSI BEOS Turns on sco8bit, turns off crm and graphic attribute. Switches to G3.

QANSI Turns sco8bit on, turns crm off. Switches G1/G2/G3 to CP437

#### Ps = 21 ⇒ Set Normal Intensity

Turns off the Bold and Dim attributes

TODO:
ECMA-48 3rd Edition: This should turn on doubly-underlined
LINUX TODO:
Current behaviour is correct for linux versions before 4.17. Linux 4.17 and newer use this to turn on underline (as opposed to underscore set by Ps=2?)

#### Ps = 22 ⇒ Normal (turn off bold and dim)

Turns off the bold and dim attributes

#### Ps = 23 ⇒ Turn off Italic

Turns off the italic attribute

#### Ps = 24 ⇒ Turn off Underline

Turns off the underline attribute

#### Ps = 25 ⇒ Turn off Blink

Turns off the blink attribute

#### Ps = 26 ⇒ Turn off Blink, or (SCOANSI) turn on blink

Turns off the blink attribute

SCOANSI Turns On the blink attribute

#### Ps = 27 ⇒ Turn off Reverse Video

Turns off the Reverse Video attribute

#### Ps = 28 ⇒ Turn off Invisible
Ps = 29 ⇒ Turn off Invisible (QANSI)

Turns off the Invisible attribute

TODO:
Ps = 29 should only apply to QANSI, for all other terminals PS=29 should be not crossed-out characters (ECMA-48 3rd Ed)

#### Ps = 30 ⇒ Set Black Foreground
Ps = 31 ⇒ Set Red Foreground
Ps = 32 ⇒ Set Green Foreground
Ps = 33 ⇒ Set Brown Foreground
Ps = 34 ⇒ Set Blue Foreground
Ps = 35 ⇒ Set Magenta Foreground
Ps = 36 ⇒ Set Cyan Foreground
Ps = 37 ⇒ Set White Foreground

If processing of SGR colors is enabled (`set term sgr-colors on`), sets the foreground color.

SCOANSI Also sets the default foreground color, reverse video background colour, and the graphic attribute foreground colour

#### Ps = 38 ⇒ Not Implemented: Enable Underline Option

Comment for this one says "Enable underline option". The terminal type this behaviour should be for is not mentioned. It is not implemented in any case.

LINUX TODO:
Before Linux 3.16: Set underscore on. From Linux 3.16: 256/24-bit foreground color follows, shoehorned into 16 basic colors

#### Ps = 39 ⇒ Set foreground color to default

This is processed for all terminal types, where it resets the foreground color to the default value.

The comments say: Disable Underline Option: Supported by SCO ANSI, for QANSI restore foreground color saved with `CSI = Pn F`.

#### Ps = 40 ⇒ Set Black Background
Ps = 41 ⇒ Set Red Background
Ps = 42 ⇒ Set Green Background
Ps = 43 ⇒ Set Brown Background
Ps = 44 ⇒ Set Blue Background
Ps = 45 ⇒ Set Magenta Background
Ps = 46 ⇒ Set Cyan Background
Ps = 47 ⇒ Set White Background

If processing of SGR colors is enabled (`set term sgr-colors on`), sets the background color.

SCOANSI Also sets the default background color, reverse video foreground colour, and the graphic attribute background colour

#### Ps = 48 ⇒ Not processed

LINUX TODO:
256/24-bit background color follows, shoehorned into 8 basic colors

#### Ps = 49 ⇒ Set background color to default

This is processed for all terminal types, where it resets the background color to the default value.

The comemnts say: Supported by SCO ANSI. QANSI - restore bg color saved with `CSI = Pn G`

#### Ps = 50 ⇒ Not implemented.

SNI-97801 Does nothing. Comment says it should do be "Save Attributes": When the "save attributes" command is issued, all attributes then in effect for the entire screen are stored. These attributes will then apply to any new display data (without SGR command sequences) output to the screen. The stored attributes can be returned to normal by commands such as "erase in display with blanks/NULs; clear attributes".

SCOANSI Does nothing. Comment says it should: Reset to the original color pair. In backwards compatibility mode, set the normal attribute to white text on a black background, and reverse video to black text on a white background. In the default (new) mode, set the current attribute according to the current mode and the current values for reverse, normal or graphics

#### Ps = 51 ⇒ Not Implemented

SCOANSI Does nothing. Comment says it should: Resets all colors to the system default of gray for the foreground and reverse background, and black for the background and reverse foreground. Only valid in new mode.

#### Ps = 90 ⇒ Set Bright Black Foreground
Ps = 91 ⇒ Set Bright Red Foreground
Ps = 92 ⇒ Set Bright Green Foreground
Ps = 93 ⇒ Set Bright Brown Foreground
Ps = 94 ⇒ Set Bright Blue Foreground
Ps = 95 ⇒ Set Bright Magenta Foreground
Ps = 96 ⇒ Set Bright Cyan Foreground
Ps = 97 ⇒ Set Bright White Foreground

If processing of SGR colors is enabled (`set term sgr-colors on`), sets the foreground color.

While this is an aixterm feature, it is supported for all terminal types.

SCOANSI Also sets the default foreground color, reverse video background colour, and the graphic attribute foreground colour

#### Ps = 100 ⇒ Set Bright Black Background
Ps = 101 ⇒ Set Bright Red Background
Ps = 102 ⇒ Set Bright Green Background
Ps = 103 ⇒ Set Bright Brown Background
Ps = 104 ⇒ Set Bright Blue Background
Ps = 105 ⇒ Set Bright Magenta Background
Ps = 106 ⇒ Set Bright Cyan Background
Ps = 107 ⇒ Set Bright White Background

If processing of SGR colors is enabled (`set term sgr-colors on`), sets the background color.

While this is an aixterm feature, it is supported for all terminal types.

SCOANSI Also sets the default background color, reverse video foreground colour, and the graphic attribute background colour

### CSI Ps n

#### Ps = 0 ⇒ SCO: Transmit cursor position

SCOANSI Transmit Cursor Position

#### Ps = 5 ⇒ Terminal Status Report

Responds with `CSI 0 n` indicating the terminal si OK

#### Ps = 6 ⇒ CPR - Cursor position report

Transmits the cursor position to the host. Response is: `CSI x ; y R` where x and y are the cursor coordinates

#### Ps = 15 ⇒ DECDSR - Printer status

K95 responds with printer ready: `CSI ? 1 0 n`

#### Ps = 25 ⇒ DECDSR - UDK status

If User Defined Keys are locked, K95 responds with `CSI ? 2 1 n` or `CSI ? 2 0 n` if they're unlocked

#### Ps = 26 ⇒ DECDSR - Keyboard language, UK or US

Sends `CSI ? 2 7 ; 2 n` if G0 is British ISO 646, otherwise K95 sends `CSI ? 2 7 ; 1 n`

### CSI ? Ps n

#### Ps = 6 ⇒ DECXCPR - Cursor position report

Transmits the cursor position to the host. Response is: `CSI x ; y ; p R` where x and y are the cursor coordinates, and p is the page (always 1 in K95)

#### Ps = 15 ⇒ DECDSR - Printer status

K95 responds with printer ready: `CSI ? 1 0 n`

#### Ps = 25 ⇒ DECDSR - UDK status

If User Defined Keys are locked, K95 responds with `CSI ? 2 1 n` or `CSI ? 2 0 n` if they're unlocked

#### Ps = 26 ⇒ DECDSR - Keyboard language, UK or US

Sends `CSI ? 2 7 ; 2 n` if G0 is British ISO 646, otherwise K95 sends `CSI ? 2 7 ; 1 n`

### CSI o

AAA Not Implemented: DAQ - Define Area Qualification

### CSI Ps o

SCOANSI Transmit Margin Position. Responses are one or more numbers separated by spaces if required and followed by a line feed.

#### Ps = 0 ⇒ All margins (four numbers)

#### Ps = 1 ⇒ Margin Top

#### Ps = 2 ⇒ Margin Bottom

#### Ps = 3 ⇒ Margin Left

#### Ps = 4 ⇒ Margin Right

### CSI p

H19 Not Implemented: Transmit Page to host

SUN Not Implemented: SUNBOW - Black On White. This should set foreground to black, background to white, cursor to a solid black block, and characters in SGR revese white-on-black. This matches the initial settings for the frame buffer console on reset.

### CSI Ps p

SNI-97801 Set... things?

#### Ps = 0 ⇒ Blinking on

Not Implemented: Blinking on, lines 1-25 or 1-24

#### Ps = 1 ⇒ Blinking off

Not Implemented: Blinking off, lines 1-25 or 1-24

#### Ps = 2 ⇒ Blinking on, line 25

Not Implemented: Blinking on, line 25

#### Ps = 3 ⇒ Blinking off, line 25

Not Implemented: Blinking off, line 25

#### Ps = 5 ⇒ Request abbreviated cursor position

Responds with `<FS> <line+0x20> <column+0x20>`, 0 based

#### Ps = 6 ⇒ Cursor not visible

Hides the cursor

#### Ps = 7 ⇒ Activate cursor

Shows the cursor

#### Ps = 8 ⇒ Display off

This is supposed to fill the viewable screen with blanks but continue processing additional chars into the display buffer. K95 does its usual screen-off things.

#### Ps = 9 ⇒ Display on

Re-enable viewing the display buffer with real data.

#### Ps = 10 ⇒ Single inverting block cursor

Sets the cursor to half

#### Ps = 11 ⇒ Activate block cursor

Sets the cursor to full (block)

#### Ps = 12 ⇒ Activate underscore cursor

Sets the cursor to underline

#### Ps = 13 ⇒ Activate cursor blinking

Not Implemented: Activate cursor blinking

#### Ps = 14 ⇒ Deactivate cursor blinking

Not Implemented: Deactivate cursor blinking

### CSI Pa ; Pu ; Pl ; Ps ; Pc ; Pm ; p

AAA Set Display Parameters:

Parameter |
--- | ---
Pa | Active Memory Lines
Pu | Upper Host Area Lines
Pl | Lower Host Area Lines
Ps | Screen Lines
Pc | Screen Columns
Pm | Active Memory Columns

As K956 doesn't support memory pages different from the actual screen size, so behaviour isn't quite right here. Pa sets the number of rows, and the bottom margin is set to Ps. The number of screen columns is set to Pc. In K95G, if Pa < Ps then line spacing is adjusted.

### CSI ! p

DECSTR - Soft Reset: Resets the terminal

### CSI Pl ; Pc " p

DECSCL - Set compatibility level and set active status display to terminal. The second parameter is only recognised in combination with levels 2 and 3.

#### Pl = 6 1 ⇒ level 1

VT100Sets the terminal type mode to VT100

VT100 VT102 VT220 VT220PC VT320 VT320PC WY370 Sets the terminal type mode to VT102

#### Pl = 6 2 ⇒ level 2

VT220 VT220PC Sets the terminal type mode to VT220

VT320 VT320PC Sets the terminal type mode to VT320

WY370 Sets the terminal type mode to WY370

#### Pl = 6 3 ⇒ level 3

VT320 VT320PC Sets the terminal type mode to VT320

WY370 Sets the terminal type mode to WY370

#### Pc = 0 or 2 ⇒ 8-bit controls

VT220 VT220PC VT320 VT320PC WY370 Sets K95 to use 8-bit controls. Requires Pl=62 or Pl=63. For all other compatibility levels, Pc is ignored.

#### Pc = 1 or any other value ⇒ 7-bit controls

VT220 VT220PC VT320 VT320PC WY370 Sets K95 to use 7-bit controls. Requires Pl=62 or Pl=63. For all other compatibility levels, Pc is ignored.

### CSI ? Ps $ p

DECRQM (from host). Response is in the form: `CSI ? Ps; Pm $ y`

Values for Ps are:

Ps | Mode
--- | ---
1 | DECCKM: Cursor keys
2 | DECANM: ANSI
3 | DECCOLM: Column
4 | DECSCLM: Scrolling
5 | DECSCNM: Screen
6 | DECOM: Origin
7 | DECAWM: Autowrap
8 | DECARM: Autorepeat (permanently set to 3)
18 | DECPFF: Print form feed
19 | DECPEX: Printer extent
25 | DECTCEM: Text cursor enable
42 | DECNRCM: National replacement character set
66 | DECNKM: Numeric Keypad
67 | DECBKM: Backarrow key
68 | DECKBUM: Keyboard usage

### CSI $ p

ANSI DECRQM (from host). Response is in the form: `CSI Ps; Pm $ y`

Values for Ps are:

Ps | Mode
--- | ---
2 | KAM: Keyboard action
3 | CRM: Control representation
4 | IRM: Insert/replace
10 | HEM: Horizontal editing (permanently set to 4)
12 | SRM: Send/receive
20 | LNM: line feed/new line

### CSI Ps ; Ps , p

DECLTOD - Load Time of Day. K95 will attempt to set the local system time (your computers clock) to the time supplied if it can. First parameter is hour (0-23), second parameter is minute (0-59).

### CSI q

H19 Not Implemented: Transmit 25th line to host

SUN Not Implemented: SUNWOB - White On Black. Takes no parameters. Sets the screen mode to white- on-black. If the screen mode is already white-on- black, has no effect. In this mode spaces display as solid black, other characters as white-on-black. The cursor is a solid white block. Characters displayed in negative image rendition (see `Select Graphic Rendi- tion' above) is black-on-white in this mode. The ini- tial setting of the screen mode on reset is the alter- native mode, black on white.

### CSI Ps q

SNI-97801 Not Implemented: Turns CH.CODE LED off (Ps = 0) or on (Ps = 6). Does not affect actual mode.

### CSI Pm q

DECLL - Load LEDs

#### Ps = 0 ⇒ All LEDs off

#### Ps = 1 ⇒ Num Lock on

#### Ps = 2 ⇒ Caps Lock On

#### Ps = 3 ⇒ Scroll Lock On

#### Ps = 4 ⇒ LED 4 On

#### Ps = 21 ⇒ Num Lock off

#### Ps = 22 ⇒ Caps Lock Off

#### Ps = 23 ⇒ Scroll Lock Off

#### Ps = 24 ⇒ LED 4 Off

### CSI Ps " q

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN

DECSCA - Select Character Attributes. Valid values for the parameter are:

0 or 2 | Designate character erasable
1 | Designate character unerasable

### CSI Ps SP q

Set Cursor Type (VT520).

#### Ps = 0 ⇒ Blinking Block
Ps = 1 ⇒ Blinking Block

#### Ps = 2 ⇒ Steady Block

Not Implemented: While K95G does support non-blinking cursors, it doesn't handle them here so this currently gives the same result as Ps = 0 or Ps = 1

#### Ps = 3 ⇒ Blinking Underline

#### Ps = 4 ⇒ Steady Underline

Not Implemented: While K95G does support non-blinking cursors, it doesn't handle them here so this currently gives the same result as Ps = 3.

### CSI Ps r

H19 Not Implemented: Set Baud Rate to Ps

SUN Not Implemented: SUNSCRL - Set Scrolling Region. The parameter (default 0) sets how many lines the screen should scroll up when a line-feed function is performed with the cursor on the bottom line. A parameter of 2 or 3 introduces a small "jump" when a scroll occurs, while a parameter of 34 clears the screen rather than scrolling. A parameter of 0 initiates "wrap mode". In wrap mode, if a linefeed occurs on the bottom line, the cursor goes to the same character position in the top line of the screen. When any linefeed occurs, the line that the cursor moves to is cleared.

### CSI Ps ; Ps r

Set margin. Parameters are top and bottom.

SNI-97801 The bottom margin may include the status line even when it is separated from the main display area.

### CSI Ps ; Ps ; Ps ; Ps r

SCOANSISet margins. First two parameters are standard (top and bottom). The second two parameters are the left and right margin which default to 1 and the width of the terminal if not supplied;

### CSI = r

SCOANSI Reset/clear margins

### CSI ? Pm r

HFT Not Implemented: Restore Modes. K95 loops through all the parameters but performs no actions. There are no comments in the source code indicating what parameters should be accepted or what they should do.

### CSI Pt ; Pl ; Pb ; Pr ; Pm $ r

VT320 VT320PC VT420 VT520 WY370 SNI-97801 AAA DECCARA - Change attributes in rectangular area. Marked for VT420 but as K95 lacks a VT420 mode at the moment, VT420 is currently a synonym for VT320 and compatibles. `Pt ; Pl ; Pb ; Pr` is the rectangle. If DECSACE is off (1 or 0) then the DECCARA affects the stream of characters between the first and second character positions specified. The Pm is the SGR attributes to change, one of:

Pm | Attribute
--- | ---
0 | All attributes off (normal)
1 | Bold
4 | Underline
5 | Blink
7 | Negative image
22 | No bold
24 | No underline
25 | No blink
27 | Positive image

### CSI s

SUN Reset Terminal

SCOANSI AT386 ANSI SNI-97801 Save cursor position

AAA Not Implemented: zPSH - Push Line

### CSI Ps s

SNI-97801 Turn key click off (Ps = 2) or on (Ps = 3). Not Implemented: Repeat off (Ps = 0) and Repeat on (Ps = 1)

### CSI t

AAA Not Implemented: zPOP - Pop Line

### CSI Ps t

SNI-97801 Card Reader operations:

#### Ps = 0 ⇒ Disable ID card reader

Not Implemented

#### Ps = 1 ⇒ Enable ID card reader

Not Implemented

#### Ps = 2 ⇒ Query ID card reader status

K95 provides the "ID Card Reader broken or missing" response. If 8 bit controls are enabled, that is: `DCS P t A ST` Otherwise its; `ESC P P t A ESC`

### CSI Ps ; Ps ; Ps t

DECSLPP - Set Screen height (first parameter only), XTWINOPS - Window Manipulation (1-3 parameters). This does not apply to SNI-97801 emulation which uses the `CSI Ps t` control sequence for querying an ID card reader (see above).

#### Ps = 1 ⇒ Deiconify (Restore) window (xterm)

K95G only: Deiconify/restore/un-minimise window. Ignored by the console version of K95.

#### Ps = 2 ⇒ Iconify (minimize) window (xterm)

K95G only: minimizes the window. Ignored by the console version of K95.

#### Ps = 3 ; x ; y ⇒

K95G: Move window to (x,y). X and Y will default to 0 if not supplied. Ignored by the console version of K95.

#### Ps = 4 ; height ; width ⇒

K95G only: Size the window in pixels. If width or height is 0 then do not change that dimension.

#### Ps = 5 ⇒ Raise Window

Not Implemented: Raise Window

#### Ps = 6 ⇒ Lower Window

Not Implemented: Lower Window

#### Ps = 7 ⇒ Refresh the xterm window

Not Implemented: Refresh Window

#### Ps = 8 ; height ; width ⇒ Resize window in characters

Resizes the window to the specified number of rows and columns.

#### Ps = 9 ⇒ Maximise Window

Not Implemented: Maximise window in method specified by the second parameter (maximise, maximise vertically, maximise horizontally, or restore if the parameter is 0).

#### Ps = 10 ⇒ Full Screen Mode

Not Implemented: Undo full screen mode, Change to full screen mode, toggle full screen mode - the second parameter (0-2) indicates which one.

#### Ps = 11 ⇒ Report state of window (normal/iconified)

Not Implemented

#### Ps = 13 ⇒ Report position of window in pixels

Not Implemented: If the second parameter is 2, report the text area position in pixels, otherwise report the window position.

#### Ps = 14 ⇒ Report size of window in pixels

Not Implemented: If the second parameter is 2, report window size in pixels, otherwise report text area size in pixels.

#### Ps = 15 ⇒ Report size of the screen in pixels

Not Implemented

#### Ps = 16 ⇒ Report xterm character cell size in pixels

Not Implemented

#### Ps = 18 ⇒ Report the size of the text area in chars

Responds with: `CSI 8 ; height ; width t`

#### Ps = 19 ⇒ Report the size of the screen in characters

Not Implemented

#### Ps = 20 ⇒ Report icon label

Not Implemented

#### Ps = 21 ⇒ Report window label

Not Implemented

#### Ps = 22 ⇒ Save icon and window title on stack

Not Implemented. The second parameter (0-2) indicates which to save: icon and title, icon, title. The optional third parameter (1-10) indicates which position in the stack to store to rather than pushing on to the stack.

#### Ps = 23 ⇒ Restore title and/or icon from stack

Not Implemented. The second parameter (0-2) indicates which to restore: icon and title, icon, title. The optional third parameter (1-10) indicates which position in the stack to restore from rather than popping from the top of the stack.

#### Ps = 24 ⇒ DECSLPP - Set Screen Height
Ps = 25 ⇒ DECSLPP - Set Screen Height
Ps = 36 ⇒ DECSLPP - Set Screen Height
Ps = 41 ⇒ DECSLPP - Set Screen Height
Ps = 42 ⇒ DECSLPP - Set Screen Height
Ps = 48 ⇒ DECSLPP - Set Screen Height
Ps = 52 ⇒ DECSLPP - Set Screen Height
Ps = 53 ⇒ DECSLPP - Set Screen Height
Ps = 72 ⇒ DECSLPP - Set Screen Height

Sets the screen height to Ps rows. If the second and third parameters are supplied they are ignored - DECSLPP only uses the first parameter.

### CSI Pt ; Pl ; Pb ; Pr ; Pm $ t

VT320 VT320PC VT420 VT520 WY370 SNI-97801 AAA DECRARA - Reverse attributes in rectangular area. Marked for VT420 but as K95 lacks a VT420 mode at the moment, VT420 is currently a synonym for VT320 and compatibles. `Pt ; Pl ; Pb ; Pr` is the rectangle. If DECSACE is off (1 or 0) then the DECRARA affects the stream of characters between the first and second character positions specified. The Pm is the SGR attributes to change, one of:

Pm | Attribute
--- | ---
0 | All attributes off (normal)
1 | Bold
4 | Underline
5 | Blink
7 | Negative image

### CSI > Ps t

Not Implemented: XTSMTITLE - set one or more features of the xterm title mode

### CSI u

AAA Not Implemented: zSTP - Set Transfer Point

SCOANSI AT386 ANSI SNI-97801 Restore cursor position

### CSI Ps u

SNI-97801 Various mode options

#### Ps = 0 ⇒ 25-line mode on

Turns off the status line

#### Ps = 1 ⇒ 25-line mode off

Turns on the status line

#### Ps = 2 ⇒ Clear character NUL

Not Implemented

#### Ps = 3 ⇒ Clear character SP

Not Implemented

#### Ps = 4 ⇒ Video timeout off

Not Implemented

#### Ps = 5 ⇒ Video timeout on

Not Implemented

#### Ps = 8 ⇒ Page mode on

Turns on page mode

#### Ps = 9 ⇒ Auto Roll mode on

Turns on auto-roll mode (page mode off)

#### Ps = 10 ⇒ Roll Mode

Turns off scroll mode - only affects RD/SD - `CSI Ps T`

#### Ps = 11 ⇒ Scroll mode

Turns on scroll mode - only affects RD/SD - `CSI Ps T`

#### Ps = 18 ⇒ Reduced-intensity character display

Not Implemented

#### Ps = 19 ⇒ Reduced-intensity background display

Not Implemented

#### Ps = 20 ⇒ Dark background (white on black)

Switches to normal screen

#### Ps = 21 ⇒ Light background (black on white)

Switches to reverse video

### CSI v

AAA Not Implemented: zSRC - Start Remote Copy

### CSI Ps v

SNI-97801

#### Ps = 5 ⇒ Switch within G0 (national/international, 7-bit mode)

Switch to the other SNI CH.CODE mode if in SNI 7-bit mode.

#### Ps = 7 ⇒ Full screen mode off

Not Implemented: Full screen mode

#### Ps = 8 ⇒ Fill scroll area with characters (diagnostics)

Not Implemented: Fill scroll area with characters

#### Ps = 9 ⇒ Output entire character generator

Not Implemented: Output entire character generator

#### Ps = 10 ⇒ Disable CH.CODE key (7-bit mode)

Disables SNI CH.CODE key

#### Ps = 11 ⇒ Enable CH.CODE key (7-bit mode)

Enables SNI CH.CODE key

#### Ps = 13 ⇒ Query current code table

Responds with `ESC P 1 3 v STATUS ESC` if using 7-bit controls, or `DCS 1 3 v STATUS ST` if using 8-bit controls. STATUS is either 0 (SI: G0FEST active), 1 (SI: G0 active), 2 (SO: G0FEST active) or 3 (SO: G0 active).

#### Ps = 20 ⇒ Switch to alternative key assignment table (8-bit CH.CODE)

Switches to the other CH.CODE mode

#### Ps = 21 ⇒ Query current key assignment table (CH.CODE status, 8-bit mode)

Responds with `ESC P 2 1 v STATUS ESC` if using 7-bit controls, or `DCS 2 1 v STATUS ST` if using 8-bit controls. STATUS is either 0 (not in CH.CODE mode) or 1 (CH.CODE mode)

#### Ps = 22 ⇒ Disable CH.CODE key (8-bit mode)

Disables 8-bit mode CH.CODE key.

#### Ps = 23 ⇒ Enable CH.CODE key (8-bit mode)

Enables 8-bit mode CH.CODE key.

### CSI " v

Terminal Type Specific Behaviour
VT220
VT320
WY370
SNI-97801
AAA
BEOS
QANSI
LINUX
SUN

DECRQDE - Windows Report. The response is:

        CSI Ph; Pw; Pc; Pr; Pp " w

Where:

Ph
  Height of the terminal in lines (should be of the current page but K95 only supports one)
Pw
  Width of the terminal in columns (should be of the current page but K95 only supports one)
Pc
  1 - the column number at the top-left of the terminal
Pr
  1 - the row number at the top-left of the terminal
Pp
  1 - the current page number (K95 only supports one page)

### CSI Pt ; Pl ; Pb ; Pr ; Pp ; Pt ; Pl ; Pp $ v

VT320 VT320PC VT420 VT520 WY370 SNI-97801 AAA DECCRA - Copy rectangular area. Marked for VT420 but as K95 lacks a VT420 mode at the moment, VT420 is currently a synonym for VT320 and compatibles. `Pt ; Pl ; Pb ; Pr` is the source rectangle, Pp is the source page number, `Pt ; Pl` is the destination, and Pp is the destination page.

K95 doesn't support pages, so the page numbers are ignored.

### CSI w

HFT Not Implemented: VT raw keyboard input

### CSI Ps w

SNI-97801 Not Implemented: Transmit kelock switch status (Ps = 0), or Reinitialize character generator (Ps = 1).

### CSI Ps ; Ps ; Ps w

AAA Not Implemented: zSPF - Set Print Format. First parameter is printed lines per page (1-126), second parameter is total lines per page (1-126), third parameter is left margin (0-254).

### CSI Pf ; Pb ; Pa x

WY370 WYCDIR - Direct Color Mode, set color and attribute. The first two parameters are foreground and background colour, a value from 0-64 (the WY370 supports a 64-color colour palette). K95 currently maps whatever colour is specified to one of the 8 standard colours. The third parameter, Pa, specifies an attribute.

K95 assigns different meanings to the attribute numbers than described in the WY370 programmers guide (Table 5-9, page 5-19):

Pa | Attribute
--- | ---
0 | No attribute (turn all attributes off)
1 | Turn on bold
2 | Turn on DIM (QANSI)
3 | Turn on ITALIC (ANSI X3.64)
4 | Turn on UNDERLINE
5 | Turn on Slow BLINK
6 | Turn on Fast BLINK (same as slow blink in K95)
7 | Turn on REVERSE VIDEO
8 | Turn on INVISIBLE
9 | Turn on INVISIBLE (QANSI)

### CSI Ps x

DECREQTPARM - Request Terminal Parameters. Ps can either be a 0 or a 1 - any other value will result in the request being ignored. If Ps is a 0, then the first parameter in the response will be a 2, otherwise it will be a 3.

The response is of the form: `CSI Ps ; Pp ; Pb ; Px ; Pr ; Pc ; Pf x`

Where:

Parameter | Meaning
--- | ---
Ps | The original Ps value + 2
Pp | Parity - 1 for none, 5 for even, 4 for odd, 3 for mark, 2 for space
Pb | Terminal byte size - 1 for 8 bit, 2 for 7 bit
Px Pr | xspeed and rspeed in bits per second:
Value | Bits per second
--- | ---
0 | 50
8 | 75
14 | 133
16 | 110
32 | 150
40 | 200
48 | 300
56 | 600
64 | 1200
72 | 1800
80 | 2000
88 | 2400
96 | 3600
104 | 4800
112 | 9600
120 | 19200
128 | 38400 or 57600 or 115200 or 230400 or any other serial interface speed or a network connection
Pc | Always 1 indicating the bit rate multiplier is 16
Pf | Always 0

### CSI Pc ; Pt ; Pl ; Pb ; Pr $ x

VT320 VT320PC VT420 VT520 WY370 SNI-97801 AAA DECFRA - Fill rectangular area. Marked for VT420 but as K95 lacks a VT420 mode at the moment, VT420 is currently a synonym for VT320 and compatibles. Pc is the character to fill with, while `Pt ; Pl ; Pb ; Pr` is the rectangle to fill

### CSI Ps * x

VT320 VT320PC VT420 VT520 WY370 SNI-97801 AAA DECSACE - Select Attribute Change Extent. Marked for VT420 but as K95 lacks a VT420 mode at the moment, VT420 is currently a synonym for VT320 and compatibles. Parameter Ps is one of:

Ps |
--- | ---
0 | from start to end position, wrapped
1 | from start to end position, wrapped
2 | Rectangle (exact)

### CSI y

VIP7809 K95 responds with (ESC, ETX and NUL control codes in bold):

    ESC[8p  OTETXESC[y7813  P GC  A ETXNUL

HFT Not Implemented: Virtual Terminal locator report

### CSI Ps y

SNI-97801 Mostly various test functions most of which don't make a lot of sense for a terminal emulator (eg, "Execute hardware test for terminal"). Only three of the possible values of Ps are implemented:

### CSI 2 ; Ps y

Not Implemented: DECTST - VT100 confidence tests.

#### Ps = 20 ⇒ Activate 8-bit mode

US_ASCII to G0 (GL), Brackets to G1, Blanks to G2, ISO 8859-1 to G3 (GR)

#### Ps = 21 ⇒ Activate 7-bit mode

US_ASCII to G0 (GL and GR)

#### Ps = 22 ⇒ Query active mode

K95 responds with either: `DCS 2 2 y 7 ST` (7-bit mode) or `DCS 2 2 y 8 ST` (8-bit mode)

### CSI Pi ; Pg ; Pt ; Pl ; Pb ; Pr * y

VT320 VT320PC VT420 VT520 WY370 SNI-97801 AAA XTERM DECRQCRA - Request Checksum of Rectangular Area. Marked for VT420 but as K95 lacks a VT420 mode at the moment, VT420 is currently a synonym for VT320 and compatibles. Pi is the request Id, Pg is the page number (ignored), and `Pt ; Pl ; Pb ; Pr` is the rectangle to calculate the checksum for. Only available if send-data is enabled (`set terminal send-data on`)

### CSI z

H19 Reset terminal

AAA Not Implemented: zSTE - Set Transfer End

### CSI Ps z

SCOANSI Not Implemented: Switch to screen Ps

### CSI Ps ; Ps z

SNI-97801 Not Implemented: "Define left and right margins. This sequence affects only the character that immediately follows this sequence. That char is used to fill the scroll region using these borders, then the broders revert to 1,80"

### CSI Pt ; Pl ; Pb ; Pr $ z

VT320 VT320PC VT420 VT520 WY370 SNI-97801 AAA DECERA - Erase rectangular area. Marked for VT420 but as K95 lacks a VT420 mode at the moment, VT420 is currently a synonym for VT320 and compatibles. `Pt ; Pl ; Pb ; Pr` is the rectangle to erase

### CSI = z

SCOANSI Clear all tab stops

### CSI Pt ; Pl ; Pb ; Pr $ z

VT320 VT320PC VT420 VT520 WY370 SNI-97801 AAA DECSERA - Selective erase rectangular area. Marked for VT420 but as K95 lacks a VT420 mode at the moment, VT420 is currently a synonym for VT320 and compatibles. `Pt ; Pl ; Pb ; Pr` is the rectangle to selectively erase

### CSI Ps $ |

DECSCPP - Set Columns Per Page. The parameter Ps is required and specifies the new width of the terminal. Supplying 0, which should set the width to 80 columns, actually results in the terminal being set to the maximum width (512 columns on modern Windows, 256 on vintage windows and OS/2) - this is a bug.

### CSI Ps $ }

Select Active Status Display - Terminal

#### Ps = 0 ⇒ Terminal

Select the main display (terminal)

#### Ps = 1 ⇒ Status Line

Select status line only if the current status line type is host-writable

### CSI Ps '$' }

VT320 VT320PC VT420 VT520 WY370 SNI-97801 AAA DECIC - Insert Ps columns (default 1). Marked for VT420 but as K95 currently lacks a VT520 mode, VT420 is currently a synonym for VT320 and compatibles.

### CSI Ps ; Ps ~

DECTME - Terminal Mode Emulation

#### Ps = 0 ⇒ Return to VT220/VT320/WY370 mode
Ps = 1 ⇒ Return to VT220/VT320/WY370 mode

VT220 VT320 WY370 Returns from Terminal Mode Emulation

If two parameters are supplied, and the second parameter is 1 then switch to 7-bit controls, otherwise switch to 8-bit controls

#### Ps = 2 ⇒ Switch to VT100/VT102 mode

Switches to VT102 mode

VT100 Switches back to VT100 mode, not VT102

#### Ps = 3 ⇒ Switch to VT52 mode

#### Ps = 4 ⇒ VT420 PCTerm

Not Implemented: While K95 does support PCTerm mode, Ps = 4 currently does nothing.

#### Ps = 5 ⇒ WYSE 60/160

Switches to WY60 emulation

#### Ps = 6 ⇒ WYSE 60/160 PCTerm

Not Implemented: While K95 does support PCTerm mode, Ps = 6 currently does nothing.

#### Ps = 7 ⇒ WYSE 50+

Switches to WY50 emulation

#### Ps = 8 ⇒ WYSE 150/120

Not Implemented: WYSE 150/120 emulation

#### Ps = 9 ⇒ TVI 950

Switches to TVI950 emulation

#### Ps = 10 ⇒ TVI 925

Switches to TVI 925 emulation

#### Ps = 11 ⇒ TVI 910+

Switches to TVI 910 emulation

#### Ps = 12 ⇒ ADDS A2

Not Implemented: ADDS A2 emulation

#### Ps = 13 ⇒ SCO Console

Switches to SCO ANSI emulation

#### Ps = 14 ⇒ WYSE 325

Not Implemented: WY-325 emulation

### CSI Ps $ -
CSI Ps $ ~

Select status line type

#### Ps = 0 ⇒ Blank

No status line (default)

#### Ps = 1 ⇒ Indicator

Indicator

#### Ps = 2 ⇒ Host-writable

Host-writable - active status display can be set to the status line

### CSI Ps ' ~

VT320 VT320PC VT420 VT520 WY370 SNI-97801 AAA DECDC - Delete Ps columns (default 1). Marked for VT420 but as K95 currently lacks a VT520 mode, VT420 is currently a synonym for VT320 and compatibles.

### CSI < Ps ; Ps ; Ps ; Ps ; Ps ; Ps ; Ps ; Ps ; Ps ~

MS-DOS Kermit PRODUCT Macro: Runs the following Kermit command as though it were received as an APC: `do product Ps Ps Ps Ps Ps Ps Ps Ps Ps`

### CSI Ps `

Horizontal Position Absolute (HPA) - moves active position to column Ps

### CSI Ps ^

SD - Scroll Down Ps lines

### CSI Ps SP

SCOANSI Cursor left Ps columns.

### CSI Ps [

HFT Not Implemented: Select Reversed String. Ps=0 is End Push, Ps=1 is Start Push.

### CSI Pm ]

HFT Not Implemented: Select Alternate Presentation Variant (BIDI, Arabic numeric shapes, Hindi numeric shapes, symmetric swapping mode for directional characters, ...).

CSI Ps ; Ps ]

LINUX Not Implemented: Various display settings

### CSI & x

Not Implemented: Enable Session

## Operating System Commands

Kermit k95 currently only supports a limited selection of Operating System Commands for the purpose of setting the window title. These can be terminated with either an ST or, for compatibility purposes, a BEL:

        OSC Ps ; Pt ST
        OSC Ps ; Pt BEL

Ps specifies the type of operation:

#### Ps = 0 ⇒ Window title (xterm)

Sets the window title to the value supplied, up to 63 characters.

#### Ps = 2L ⇒ Set Icon Title

Not Implemented: DECSIN - Set Icon Title (VTxxx)

#### Ps = 21 ⇒ Set Window Title

DECSWT - Sets the window title to the value supplied, up to 63 characters.

## Privacy Message

Kermit 95 does not implement any privacy message functions