.TH console "" "" "Device Driver"
.PC "Console device driver"
.PP
.II /dev/console
.II "driver^console"
.II "device driver^console"
.B /dev/console
is the device driver for the console of a \*(CO system.
It is currently assigned major device number 2 and minor device number 0.
.PP
.B /dev/console
interprets escape sequences in console output to control
output on the console monitor.
.II "ANSI X3.64-1979"
.II "ANSI X3.4-1977"
These escape sequences include the sequences from ANSI 3.4-1977
and ANSI X3.64-1979 that deal with terminal control.
.II "DEC VT-100"
.II "DEC VT-220"
.II "VT-100"
.II "VT-220"
Thus, they are similar to those
used by the DEC VT-100 and VT-220 terminals.
.SH "Escape Sequences"
In addition to the ASCII control characters BEL, BS, CR, FF, HT, LF, and VT,
.B /dev/console
recognizes a number of special sequences, each of which is
introduced by the ASCII character ESC.
You can type these on the keyboard, or write them in a file and invoke them by
.BR cat ing
the file to the standard output.
.PP
The following gives the escape sequences that
.B /dev/console
recognizes.
The text in parentheses gives the ANSI mnemonic for this escape sequence.
Note that in this table,
.B ESC
represents the ASCII character ESC (i.e., 0x1B).
.B CSI
stands for Control Sequence Introducer,
which here consists of the character ESC followed by the character `['
(0x5B).
Note, too, that this table inserts spaces between characters.
This is simply for the sake of legibility; at present,
no escape sequence can contain a literal space character.
.IP "\fBESC =\fR" 1.0i
Enter alternate keypad mode.
This escape sequence is non-standard and is slated for removal;
you should avoid embedding it in scripts or programs.
.IS "\fBESC >\fR"
Exit alternate keypad mode.
This escape sequence is non-standard and is slated for removal;
you should avoid embedding it in scripts or programs.
.IS "\fBESC \fIn\fR"
Print the special graphics character
.IR n .
.IS "\fBESC 7\fR"
Save the current cursor position.
This escape sequence is non-standard and is slated for removal;
you should avoid embedding it in scripts or programs.
.IS "\fBESC 8\fR"
Restore the previously saved cursor position.
This escape sequence is non-standard and is slated for removal;
you should avoid embedding it in scripts or programs.
.IS "\fBESC D\fR (IND, Index)"
Move the cursor down one line without changing the column position.
This command moves the scrolling region
text up and inserts blank lines if required.
Although this escape sequence now moves the cursor down,
it may not do so in the future when \*(CO supports writing systems other than
left-to-right, top-to-bottom.
Furthermore, this control sequence has been
marked for removal from future international standards.
This escape sequence has been slated for removal;
you should avoid embedding it in scripts or programs.
.IS "\fBESC E\fR (NEL, Next Line)"
Move the cursor to the first column of the next line.
This command
move the scrolling region down and inserts blank line if required.
.IS "\fBESC M\fR (RI, Reverse Index)"
Move the cursor up one line without changing column position.
As with IND, the direction of motion
depends on the writing system currently in use.
.IS "\fBCSI \fIn \fB@\fR (ICH, Insert Character)"
Insert
.I n
characters at the current position (default, one).
.IS "\fBCSI \fIn \fBA\fR (CUU, Cursor Up)"
Move the cursor up
.I n
rows (default, one).
Stop at top of page.
.IS "\fBCSI \fIn \fBB\fR (CUD, Cursor Down)"
Move the cursor down
.I n
rows (default, one).
Stop at bottom edge of scrolling region.
.IS "\fBCSI \fIn \fBC\fR (CUF, Cursor Forward)"
Move the cursor
.I n
columns forward (default, one).
Stop at right bottom corner of scrolling region.
.IS "\fBCSI \fIn \fBD\fR (CUB, Cursor Backwards)"
Move the cursor
.I n
columns backwards (default, one).
.IS "\fBCSI \fIn \fBE\fR (CNL, Cursor Next Line)"
Move the cursor
.I n
rows down (default, one).
Move scrolling region up and insert a blank line if required.
.IS "\fBCSI \fIn \fBF\fR (CPL, Cursor Preceding Line)"
Move the cursor
.I n
rows up (default, one).
Move the scrolling-region text down and insert a blank line if required.
.IS "\fBCSI \fIn \fBG\fR (CHA, Cursor Character Absolute)"
Move the cursor to column
.I n
of the current line.
.IS "\fBCSI \fIn \fB; \fIm \fBH\fR (CUP, Cursor Position)"
Move the cursor to column
.I m
of row
.IR n .
Position is relative to the scrolling region.
.IS "\fBCSI \fIn \fBI\fR (CHT, Cursor Horizontal Tabulation)"
Move the cursor
.I n
tabulation stops forward (default, one).
.IS "\fBCSI \fIc \fBJ\fR (ED, Erase in Display)"
Erase display, where
.I c
is one of the following characters:
.RS
.IP \fB0\fR 0.3i
Erase from cursor to end of screen.
.IS \fB1\fR
Erase from beginning of screen to cursor.
.IS \fB2\fR
Erase the entire screen.
.RE
.IP "\fBCSI \fIc \fBK\fR (EL, Erase in Line)"
Erase line, where
.I c
is one of the following characters:
.RS
.IP \fB0\fR 0.3i
Erase from cursor to end of line.
.IS \fB1\fR
Erase from beginning of line to cursor.
.IS \fB2\fR
Erase entire line.
.RE
.IP "\fBCSI \fIn \fBL\fR (IL, Insert Line)"
Insert
.I n
blanks lines (default, one).
.IS "\fBCSI \fIn \fBM\fR (DL, Delete Line)"
Delete
.I n
lines (default, one).
.IS "\fBCSI \fIc \fBO\fR (EA, Erase in Area)"
Erase scrolling region, where
.I c
is one of the following characters:
.RS
.IP \fB0\fR 0.3i
Erase from cursor to end of scrolling region.
.IS \fB1\fR
Erase from beginning of scrolling region to cursor.
.IS \fB2\fR
Erase entire scrolling region.
Reposition cursor at
top left corner of scrolling region.
.RE
.IP "\fBCSI \fIn \fBP\fR (DC, Delete Character)"
Delete
.I n
characters at the current position (default, one).
.IS "\fBCSI \fIn \fBS\fR (SU, Scroll Up)"
Scroll the characters in the scrolling region up by
.I n
lines (default, one).
The bottom of the scrolling region is cleared to blanks.
.IS "\fBCSI \fIn \fBT\fR (SD, Scroll Down)"
Scroll the characters in the scrolling region down
.I n
lines (default, one).
The top line of the scrolling region is cleared to blanks.
.IS "\fBCSI \fIn \fBX\fR (ECH, Erase Character)"
Erase
.I n
characters at the current position (default, one).
.IS "\fBCSI \fIn \fBZ\fR (CBT, Cursor Backward Tabulation)"
Move the cursor backwards by
.I n
tabulation stops (default, one).
.IS "\fBCSI \fIn \fB`\fR (HPA, Horizontal Position Absolute)"
Move the cursor to column
.I n
of the current line.
.IS "\fBCSI \fIn \fBa\fR (HPR, Horizontal Position Relative)"
Move the cursor forward (i.e., to the right)
.I n
columns in the current line.
.IS "\fBCSI \fIn\fB d\fR (VPA, Vertical Position Absolute)"
Move the cursor to row
.I n
of the display.
.IS "\fBCSI \fIn \fBe\fR (VPR, Vertical Postition Relative)"
Move the cursor down
.I n
rows.
.IS "\fBCSI \fIn \fB; \fIm \fBf\fR (HVP, Horizontal and Vertical Position)"
Move the cursor to column
.I m
of row
.IR n .
.II "color^setting on console"
.IS "\fBCSI \fIs1 \fB; \fR... \fIsN \fBm\fR (SGR, Select Graphic Rendition)"
Select graphics rendition on the terminal.
This command takes one or more colon-separated parameters
.I s1
through
.IR sN ,
each of which is one of the following strings:
.RS
.IP \fB0\fR 0.3i
All attributes off.
.IS \fB1\fR
Bold intensity.
.IS \fB4\fR
Underlining on.
On color terminals, underlining rendered as white characters on a red
background, in compliance with \*(UN practices.
.IS \fB5\fR
Blink on.
.IS \fB7\fR
Reverse video.
.IS \fB10\fR
Select primary font (see notes, below).
.IS \fB11\fR
Select first alternative font (see notes, below).
.IS \fB12\fR
Select second alternative font (see notes, below).
.IS \fB30\fR
Black foreground.
.IS \fB31\fR
Red foreground.
.IS \fB32\fR
Green foreground.
.IS \fB33\fR
Brown foreground.
.IS \fB34\fR
Blue foreground.
.IS \fB35\fR
Magenta foreground.
.IS \fB36\fR
Cyan foreground.
.IS \fB37\fR
White foreground.
.IS \fB40\fR
Black background.
.IS \fB41\fR
Red background.
.IS \fB42\fR
Green background.
.IS \fB43\fR
Brown background.
.IS \fB44\fR
Blue background.
.IS \fB45\fR
Magenta background.
.IS \fB46\fR
Cyan background.
.IS \fB47\fR
White background.
.\".IS \fB50\fR
.\"Black border.
.\".IS \fB51\fR
.\"Red border.
.\".IS \fB52\fR
.\"Green border.
.\".IS \fB53\fR
.\"Brown border.
.\".IS \fB54\fR
.\"Blue border.
.\".IS \fB55\fR
.\"Magenta border.
.\".IS \fB56\fR
.\"Cyan border.
.\".IS \fB57\fR
.\"White border.
.RE
.IP
For example, the following command sets the foreground color to cyan and
the background to black:
.DM
	echo '\e033[36;40m'
.DE
.IP
The following codes are not standard, and are slated for modification.
Do not embed these codes in scripts or programs:
.IP
In the default font (font 0),
.B /dev/console
ignores control characters other than
BEL, BS, CR, ESC, FF, HT, LF and VT and prints all other ASCII characters.
.IP
In font 1,
.B /dev/console
prints all characters (including control characters), except ESC.
.IP
.II "console^IBM graphics characters"
In font 2,
.B /dev/console
prints every character except ESC with the high bit toggled.
This provides access to the IBM graphics character set
using ordinary ASCII characters.
.IS "\fBCSI \fIn \fB; \fIm \fBr\fR"
Make rows
.I n
through
.I m
of the display into the scrolling region.
This is not a standard control sequence.
It implements functionality
included in standard sequences, and will be removed from a future
console driver that implements the standard sequence.
.IS "\fBCSI \fIc \fBv\fR"
Select cursor rendition, where
.I c
is one of the following characters:
.RS
.IP \fB0\fR 0.3i
Cursor visible.
.IS \fB1\fR
Cursor invisible.
.RE
.IP
This is not a standard sequence.
It implements functionality not provided by any standard sequence.
Developers are cautioned that
there is no truly portable equivalent (although on many systems
positioning the cursor off the screen has the same effect).
.IP "\fBCSI ? 4 h\fR (SM, Set Mode)"
Enable smooth scrolling.
This eliminates ``snow'' from the screen, but slows down the speed at
which the console scrolls.
The mode selected by the
private-use parameter
.B "?4"
is not a standard mode.
.IP
Note that the term ``smooth'' is somewhat misleading; it means that the driver
waits for vertical retrace before it updates video memory.
The reason for waiting for retrace was that the old CGA tubes were
poorly designed \(em the CRT logic and the main CPU were allowed simultaneous
access to the video memory, with the result that direct-memory screen writes
often produced static (snow).
Having code wait for vertical retrace obviates the problem,
but it also slows down the screen.
.IS "\fBCSI ? 4 l\fR (RM, Reset Mode)"
Disable smooth scrolling.
This is the default.
The mode selected by the private-use parameter
.B "?4"
is not a standard mode.
.IS "\fBCSI ? 7 h\fR (SM, Set Mode)"
Enable wraparound.
Typing past column 80 moves the cursor
to the first column of the next line, scrolling if necessary.
The mode selected by the private-use parameter
.B "?7"
is not a standard mode, but is mandated by iBCS2.
.IS "\fBCSI ? 7 l\fR (RM, Reset Mode)"
Disable wraparound.
The cursor will not move past column 80.
This is useful if the screen is being used as a block-mode interface.
The mode selected by the private-use parameter
.B "?7"
is not a standard mode, but is mandaetd by iBCS2.
.IS "\fBCSI ? 8 h\fR (SM, Set Mode)"
Erase in the current foreground color.
.IS "\fBCSI ? 8 l\fR (RM, Reset Mode)"
Erase in the original foreground color,
even if the current mode is reverse video.
.IS "\fBCSI ? 25 h\fR (SM, Set Mode)"
Enable line 25.
.IS "\fBCSI ? 25 l\fR (RM, Reset Mode)"
Disable line 25.
.IS "\fBCSI > 13 h\fR (SM, Set Mode)"
Enable the screen saver.
This is not standard.
.IS "\fBCSI > 13 l\fR (RM, Reset Mode)"
Disable the screen saver.
This is not standard.
.IS "\fBESC `\fR (DMI, Disable Manual Input)"
Disable manual input.
Terminal \*(QLbeeps\*(QR (outputs \fB<ctrl-G>\fR)
when you press a key on the keyboard.
Interrupt and quit signals are still passed to the terminal process.
Input may be renabled via \fBESC c\fR (power up reset)
or \fBESC b\fR (enable manual input).
.IS "\fBESC b\fR (EMI, Enable Manual Input)"
Enable keyboard input that has been disabled by \fBESC `\fR.
.IS "\fBESC c\fR (RIS, Reset to Initial State)"
Reset to power-up configuration 
.IS "\fBESC t\fR"
Enter keypad-shifted mode.
This is a non-standard sequence that conflicts with explicit provisions
of the relevant standards.
It will be removed from future versions of
the console driver in favor of a sequence that does not conflict.
.IS "\fBESC u\fR"
Exit keypad-shifted mode.
This is a non-standard sequence that conflicts with explicit provisions
of the relevant standards.
It will be removed from future versions of
the console driver in favor of a sequence that does not conflict.
.SH "Numeric Keypad"
The following describes the sequences sent by the numeric keypad.
.PP
The keypad sends the following escape sequences:
.IP "\fBKey 0\fR" 1.0i
Send \fBCSI L\fR.
.IS "\fBKey 1\fR"
Send \fBCSI F\fR.
.IS "\fBKey 2\fR"
Send \fBCSI B\fR.
.IS "\fBKey 3\fR"
Send \fBCSI G\fR.
.IS "\fBKey 4\fR"
Send \fBCSI D\fR.
.IS "\fBKey 5\fR"
Send \fBESC 7\fR.
.IS "\fBKey 6\fR"
Send \fBCSI C\fR.
.IS "\fBKey 7\fR"
Send \fBCSI H\fR.
.IS "\fBKey 8\fR"
Send \fBCSI A\fR.
.IS "\fBKey 9\fR"
Send \fBCSI I\fR.
.IS "\fBKey .\fR"
Send ASCII DEL.
.PP
When the
.B <shift>
key is pressed or the
.B <num-lock>
key is set,
the keypad sends the literal characters `0' through `9' and `.'.
If the
.B <num-lock>
key is set, pressing
.B <shift>
restores the escape sequences shown above.
.PP
The escape sequence \fBESC =\fR sets the alternate-keypad mode.
In this mode, the keypad sends the following escape sequences
when the
.B <num-lock>
key is not set:
.IP "\fBKey 0\fR" 1.0i
Send \fBESC ? p\fR.
.IS "\fBKey 1\fR"
Send \fBESC ? q\fR.
.IS "\fBKey 2\fR"
Send \fBESC ? r\fR.
.IS "\fBKey 3\fR"
Send \fBESC ? s\fR.
.IS "\fBKey 4\fR"
Send \fBESC ? t\fR.
.IS "\fBKey 5\fR"
Send \fBESC ? u\fR.
.IS "\fBKey 6\fR"
Send \fBESC ? v\fR.
.IS "\fBKey 7\fR"
Send \fBESC ? w\fR.
.IS "\fBKey 8\fR"
Send \fBESC ? x\fR.
.IS "\fBKey 9\fR"
Send \fBESC ? y\fR.
.IS "\fBKey .\fR"
Send \fBEsc ? n\fR.
.PP
The escape sequence \fBESC >\fR resets this mode.
.SH "Other Special Keys"
The following gives the escape sequences sent by the keyboard's special keys:
.IP \fB<home>\fR 1.0i
Send \*(QLcursor home\*(QR (\fB CSI H\fR).
.IS \fB<up>\fR
Send \*(QLcursor up\*(QR (\fBCSI A\fR).
.IS "\fB<pg up>\fR"
Send \fBCSI I\fR.
.IS \fB<left>\fR
Send \*(QLcursor left\*(QR (\fBCSI D\fR).
.IS \fB<right>\fR
Send \*(QLcursor right\*(QR (\fBCSI C\fR).
.IS \fB<end>\fR 
Send \fBCSI F\fR.
Note that this escape sequence does not do what users normally expect:
to send cursor to bottom left of screen, send the escape sequence
\fBCSI 24 H\fR.
.IS \fB<down>\fR
Send \*(QLcursor down\*(QR (\fBCSI B\fR).
.IS "\fB<pg dn>\fR"
Move cursor to previous page (\fBCSI G\fR).
.IS \fB<ins>\fR
Send \fBCSI L\fR.
Note that this escape sequence does not do what users normally expect.
.IS \fB<del>\fR
Send ASCII DEL.
.\"Note that this key does not do what users normally expect:
.\"to delete the character at the cursor, send the escape
.\"sequence \fBCSI P\fR.
.IS \fBF1\fR
Send \fBCSI M\fR.
.IS \fBF2\fR
Send \fBCSI N\fR.
.IS \fBF3\fR
Send \fBCSI O\fR.
.IS \fBF4\fR
Send \fBCSI P\fR.
.IS \fBF5\fR
Send \fBCSI Q\fR.
.IS \fBF6\fR
Send \fBCSI R\fR.
.IS \fBF7\fR
Send \fBCSI S\fR.
.IS \fBF8\fR
Send \fBCSI T\fR.
.IS \fBF9\fR
Send \fBCSI U\fR.
.IS \fBF10\fR
Send \fBCSI V\fR.
.IS \fB<shift>F1\fR
Send
.BR "CSI Y" .
.IS \fB<shift>F2\fR
Send
.BR "CSI Z" .
.IS \fB<shift>F3\fR
Send
.BR "CSI a" .
.IS \fB<shift>F4\fR
Send
.BR "CSI b" .
.IS \fB<shift>F5\fR
Send
.BR "CSI c" .
.IS \fB<shift>F6\fR
Send
.BR "CSI d" .
.IS \fB<shift>F7\fR
Send
.BR "CSI e" .
.IS \fB<shift>F8\fR
Send
.BR "CSI f" .
.IS \fB<shift>F9\fR
Send
.BR "CSI g" .
.IS \fB<shift>F10\fR
Send
.BR "CSI h" .
.IS \fB<ctrl>F1\fR
Send
.BR "CSI k" .
.IS \fB<ctrl>F2\fR
Send
.BR "CSI l" .
.IS \fB<ctrl>F3\fR
Send
.BR "CSI m" .
.IS \fB<ctrl>F4\fR
Send
.BR "CSI n" .
.IS \fB<ctrl>F5\fR
Send
.BR "CSI o" .
.IS \fB<ctrl>F6\fR
Send
.BR "CSI p" .
.IS \fB<ctrl>F7\fR
Send
.BR "CSI q" .
.IS \fB<ctrl>F8\fR
Send
.BR "CSI r" .
.IS \fB<ctrl>F9\fR
Send
.BR "CSI s" .
.IS \fB<ctrl>F10\fR
Send
.BR "CSI t" .
.IS \fB<ctrl><shift>F1\fR
Send
.BR "CSI w" .
.IS \fB<ctrl><shift>F2\fR
Send
.BR "CSI x" .
.IS \fB<ctrl><shift>F3\fR
Send
.BR "CSI y" .
.IS \fB<ctrl><shift>F4\fR
Send
.BR "CSI z" .
.IS \fB<ctrl><shift>F5\fR
.BR "CSI @" .
.IS \fB<ctrl><shift>F6\fR
.BR "CSI [" .
.IS \fB<ctrl><shift>F7\fR
.BR "CSI \e" .
.IS \fB<ctrl><shift>F8\fR
.BR "CSI ]" .
.IS \fB<ctrl><shift>F9\fR
.BR "CSI ^" .
.IS \fB<ctrl><shift>F10\fR
.BR "CSI _" .
.IS \fB<alt>F1\fR
Send
.BR "CSI 1 y" .
.IS \fB<alt>F2\fR
Send
.BR "CSI 2 y" .
.IS \fB<alt>F3\fR
Send
.BR "CSI 3 y" .
.IS \fB<alt>F4\fR
Send
.BR "CSI 4 y" .
.IS \fB<alt>F5\fR
Send
.BR "CSI 5 y" .
.IS \fB<alt>F6\fR
Send
.BR "CSI 6 y" .
.IS \fB<alt>F7\fR
Send
.BR "CSI 7 y" .
.IS \fB<alt>F8\fR
Send
.BR "CSI 8 y" .
.IS \fB<alt>F9\fR
Send
.BR "CSI 9 y" .
.IS \fB<alt>F10\fR
Send
.BR "CSI 0 y" .
.IS \fB<esc>\fR
Send ASCII ESC (0x1B).
.\"Mark the beginning of an escape sequence;
.\".B <esc><esc>
.\"sends ASCII ESC.
.IS \fB<tab>\fR
Send ASCII HT.
.IS \fB<ctrl>\fR
When combined with
`A' through `_', send the corresponding ASCII control character;
when combined with the \*(RT key, send ASCII LF;
when combined with the key
.BR <backspace> ,
send ASCII DEL ;
when combined with
.B <alt>
and
.BR <del> ,
issue system reset.
.\".B <ctrl-X>
.\"cancels an escape sequence.
.IS \fB<shift>\fR
Change alphabetic keys from lower case to upper case.
If the
.B <caps-lock>
is set, shift from upper case to lower case.
.IS \fB<alt>\fR
When combined with
.B <ctrl>
and
.BR <del> ,
issue a system reset.
.\"Pressing
.\".B <alt>
.\"with a normal key turns on the high-order bit of the ASCII code sent by
.\"that key.
.\"For example, pressing
.\".B <a>
.\"normally sends ASCII `a' (0x61); but pressing
.\".B <alt><a>
.\"sends 0xE1.
.IS \fB<backspace>\fR
Send ASCII BS;
when combined with
.BR <ctrl> ,
send ASCII DEL.
.IS \fB<return>\fR
Send ASCII CR; when combined with
.BR <ctrl> ,
send ASCII LF.
.IS \fB*\fR
Send ASCII `*'.
.IS "\fB<caps-lock>\fR"
Toggle \*(QLcaps lock\*(QR mode.
.IS "\fB<num-lock>\fR"
Toggle the interpretation of the numeric keypad, as described above.
.IS "\fB<scroll-lock>\fR"
Send
.B <ctrl-S>
and toggle the Scroll Lock LED.
.\"Toggle console output, like
.\".B <ctrl-S>
.\"and
.\".BR <ctrl-Q> .
.IS \fB-\fR
Send `-'.
.IS \fB+\fR
Send `+'.
.SH "Altering Console Configuration"
To change the hardware configuration of your console (i.e., to switch from
a monochrome to a color console, or modify your keyboard or configuration
of virtual consoles), log in as the superuser
.B root
and type the following commands:
.DM
	cd /etc/conf
	console/mkdev
	bin/idmkcoh -o /\fIkernel_name\fR
.DE
.PP
where
.I kernel_name
is what you wish to name the newly built kernel.
When you reboot, invoke
.I kernel_name
in the usual manner and your new configuration will have been implemented.
.PP
The following tunable kernel variables affect the behavior of the console
driver:
.IP \fBCON_BEEP_SPEC\fR
.II CON_BEEP_SHIFT
.II "kernel^CON_BEEP_SHIFT"
.II "console^beeping"
.II "beeping^turn off"
This tunable kernel parameter lets you toggle whether the console can beep.
If you set it to zero, the console will not beep, no matter what.
By default, this is set to one, which enables beeping.
.IP \fBSEP_SHIFT\fR
.II SEP_SHIFT
.II "kernel^SEP_SHIFT"
This tunable kernel variable
permits each virtual-console session to have its own settings for the
keyboard's shift keys.
When this variable is set to one,
you can have
.B "<CAPS LOCK>"
turned on in one screen and
.B "<NUM LOCK>"
in another, and the driver correctly remembers
the proper shift state when you switch sessions.
The default for this variable is zero \(em that is, the keyboard uses
the same settings for the shift keys in every virtual-console session.
.SH "See Also"
.Xr "Administering COHERENT," administe
.Xr "ASCII," ascii
.Xr "device drivers," device_dr
.Xr "virtual consoles" virtual_c
.SH Notes
Under \*(CO release 4.2,
the codes sent by the keys
.BR F1
through
.BR F10 ,
.BR "<pg up>" ,
.BR "<pg dn>" ,
.BR <ins> ,
.BR <del> ,
and
.B <end>
have changed from those sent under previous releases.
This was done so that \*(CO can more closely conform to the standard
expected by many third-party packages.
If this presents a problem, you can use the \*(CO command
.B fnkey
to change the codes sent by the function.
.PP
If you are using the keyboard driver
.BR vtnkb ,
you can remap the keyboard and (within limits) change the codes sent by
some keys.
For details, see the Lexicon entry
.BR vtnkb .
.PP
Beginning with \*(CO release 4.2, the console uses a 25-line screen,
rather than the 24-lines used in previous releases.
This is to support the numerous third-party packages that assume a 25-line
display.
A variant form of the \fBtermcap\fR and \fBterminfo\fR entries for
.B ansipc
returns the screen to 24 lines, should you need that feature.
.PP
Please note that as of this writing (March 1994), the sequences
.B "CSI \fIn m\fB\^\fB;\fR"
do not work, where
.I n
is between 50 and 57.
This is being worked repaired.
