268 lines
8.8 KiB
Groff
268 lines
8.8 KiB
Groff
.TH CONSOLE 4
|
|
.SH NAME
|
|
console, keyboard, log \- system console
|
|
.SH DESCRIPTION
|
|
The TTY device driver manages two devices related to the main user
|
|
interface, the system screen and the keyboard. These two together are
|
|
named "the Console".
|
|
.SS "The Screen"
|
|
The screen of a PC can be managed by a Monochrome Display Adapter, a
|
|
Hercules card, a Color Graphics Adapter, an Enhanced Graphics Adapter,
|
|
or a Video Graphics Array. To the console driver these devices are
|
|
seen as a block of video memory into which characters can be written to
|
|
be displayed, an I/O register that sets the video memory origin to the
|
|
character that is to be displayed on the top-left position of the
|
|
screen, and an I/O register that sets the position of the hardware
|
|
cursor. Each character within video memory is a two-byte word. The low
|
|
byte is the character code, and the high byte is the "attribute byte",
|
|
a set of bits that controls the way the character is displayed,
|
|
character and background colours for a colour card, or
|
|
intensity/underline/reverse video for monochrome.
|
|
.PP
|
|
These are the characteristics of the adapters in text mode:
|
|
.PP
|
|
.RS
|
|
.nf
|
|
.ta +15n +15n
|
|
Adapter Usable memory Mono/Colour
|
|
.ta +1n +15n +15n
|
|
MDA 4K M
|
|
Hercules 4K M
|
|
CGA 16K C
|
|
EGA 32K M or C
|
|
VGA 32K M or C
|
|
.fi
|
|
.RE
|
|
.PP
|
|
MDA and Hercules are the same to the console driver, because the graphics
|
|
mode of the Hercules is of no use to MINIX 3. EGA and VGA are also mostly
|
|
seen as the same in text mode. An EGA adapter is either a monochrome or a
|
|
colour device depending on the screen attached to it. A VGA adapter can run
|
|
in either monochrome or colour (grayscale) mode depending on how the Boot
|
|
Monitor has initialized it.
|
|
.PP
|
|
The driver uses the video origin to avoid copying the screen contents when
|
|
scrolling up or down. Instead the origin is simply moved one line. This is
|
|
named "hardware scrolling", as opposed to copying memory: "software
|
|
scrolling".
|
|
.PP
|
|
The video origin is also used to implement several virtual consoles inside
|
|
the video memory of the adapter. Each virtual console gets a segment of
|
|
video memory. The driver chooses which console to display by moving the
|
|
video origin. Note that an MDA or Hercules adapter can only support one
|
|
console. CGA can support up to four 80x25 consoles, and EGA and VGA can
|
|
have eight. It is best to configure one less console to leave some video
|
|
memory free so that hardware scrolling has some space to work in.
|
|
.PP
|
|
Character codes are used as indices into a display font that is stored in the
|
|
adapter. The default font is the IBM character set, which is an ASCII
|
|
character set in the low 128 codes, and a number of mathematical, greek,
|
|
silly graphics, and accented characters in the upper 128 codes. This font
|
|
is fixed in the MDA, Hercules and CGA adapters, but can be replaced by a
|
|
user selected font for the EGA and VGA adapters.
|
|
.PP
|
|
A number of control characters and escape sequences are implemented by the
|
|
driver. The result is upward compatible with the ANSI standard terminal.
|
|
The
|
|
.BR termcap (5)
|
|
type is
|
|
.BR minix .
|
|
Normal characters written to the console are displayed at the cursor
|
|
position and the cursor is advanced one column to the right. If an entire
|
|
line is filled then the cursor wraps to the first column of the next line
|
|
when the next character must be displayed. The screen is scrolled up if
|
|
needed to start a new line. Some characters have special effects when sent
|
|
to the console. Some even have arguments in the form of comma separated
|
|
decimal numbers. These numbers default to the lowest possible value when
|
|
omitted. The top-left character is at position (1, 1). The following
|
|
control characters and escape sequences are implemented by the console:
|
|
.PP
|
|
.ta +10n +20n
|
|
Sequence Name Function
|
|
.in +31n
|
|
.ti -30n
|
|
^@ Null Ignored (padding character)
|
|
.ti -30n
|
|
^G Bell Produce a short tone from the speaker
|
|
.ti -30n
|
|
^H Backspace Move the cursor back one column, wrapping from the
|
|
left edge up one line to the right edge
|
|
.ti -30n
|
|
^I Horizontal Tab Move to the next tab stop, with each tab stop at
|
|
columns 1, 9, 25, etc. Wrap to the next line if necessary.
|
|
.ti -30n
|
|
^J Line Feed Move one line down, scrolling the screen up if
|
|
necessary
|
|
.ti -30n
|
|
^K Vertical Tab Same as LF
|
|
.ti -30n
|
|
^L Form Feed Same as LF
|
|
.ti -30n
|
|
^M Carriage Return Move to column 1
|
|
.ti -30n
|
|
^[ Escape Start of an escape sequence
|
|
.ti -30n
|
|
^[M Reverse Index Move one line up, scrolling the screen down if
|
|
necessary
|
|
.ti -30n
|
|
^[[\fIn\fPA Cursor Up Move the cursor up \fIn\fP lines
|
|
.ti -30n
|
|
^[[\fIn\fPB Cursor Down Move the cursor down \fIn\fP lines
|
|
.ti -30n
|
|
^[[\fIn\fPC Cursor Forward Move the cursor right \fIn\fP columns
|
|
.ti -30n
|
|
^[[\fIn\fPD Cursor Backward Move the cursor left \fIn\fP columns
|
|
.ti -30n
|
|
^[[\fIm\fP;\fIn\fPH Cursor Position Move the cursor to line \fIm\fP,
|
|
column \fIn\fP
|
|
.ti -30n
|
|
^[[\fIs\fPJ Erase in Display Clear characters as follows:
|
|
.br
|
|
\fIs\fP = 0: From cursor to end of screen
|
|
.br
|
|
\fIs\fP = 1: From start of screen to cursor
|
|
.br
|
|
\fIs\fP = 2: Entire screen
|
|
.ti -30n
|
|
^[[\fIs\fPK Erase in Line Clear characters as follows:
|
|
.br
|
|
\fIs\fP = 0: From cursor to end of line
|
|
.br
|
|
\fIs\fP = 1: From start of line to cursor
|
|
.br
|
|
\fIs\fP = 2: Entire line
|
|
.ti -30n
|
|
^[[\fIn\fPL Insert Lines Insert \fIn\fP blank lines
|
|
.ti -30n
|
|
^[[\fIn\fPM Delete Lines Delete \fIn\fP lines
|
|
.ti -30n
|
|
^[[\fIn\fP@ Insert Characters Insert \fIn\fP blank characters
|
|
.ti -30n
|
|
^[[\fIn\fPP Delete Characters Delete \fIn\fP characters
|
|
.ti -30n
|
|
^[[\fIn\fPm Character Attribute Set character attribute as follows:
|
|
.br
|
|
\fIn\fP = 0: Normal (default) attribute
|
|
.br
|
|
\fIn\fP = 1: Bold (high intensity fg colour)
|
|
.br
|
|
\fIn\fP = 4: Underline (mono) / Cyan (colour)
|
|
.br
|
|
\fIn\fP = 5: Blinking
|
|
.br
|
|
\fIn\fP = 7: Reverse Video
|
|
.br
|
|
\fIn\fP = 30: Black foreground colour
|
|
.br
|
|
\fIn\fP = 31: Red
|
|
.br
|
|
\fIn\fP = 32: Green
|
|
.br
|
|
\fIn\fP = 33: Brown
|
|
.br
|
|
\fIn\fP = 34: Blue
|
|
.br
|
|
\fIn\fP = 35: Magenta
|
|
.br
|
|
\fIn\fP = 36: Cyan
|
|
.br
|
|
\fIn\fP = 37: Light Gray
|
|
.br
|
|
\fIn\fP = 39: Default fg colour (lt gray)
|
|
.br
|
|
\fIn\fP = 40\-47: Same for background colour
|
|
.br
|
|
\fIn\fP = 49: Default bg colour (black)
|
|
.br
|
|
Note: The "bold" versions of black, brown and lt gray become dark gray,
|
|
yellow and white.
|
|
.in -31n
|
|
.PP
|
|
The console device implements the following ioctl to copy a font into
|
|
font memory on EGA and VGA adapters:
|
|
.PP
|
|
.RS
|
|
.BI "ioctl(" fd ", TIOCSFON, u8_t " font "[256][32]);"
|
|
.RE
|
|
.PP
|
|
Font memory consists of 256 character definitions of 32 lines per character
|
|
and 8 pixels per line. The first line is the topmost line of the character.
|
|
The leftmost pixel is lit if the most significant bit of a line is set, etc.
|
|
How many lines are used depends on the current video mode. The 80x25 video
|
|
mode used by MINIX 3 has an 8x16 character cell, 80x28 has 8x14 characters,
|
|
and 132x43 or 132x50 has 8x8 characters. The boot variable
|
|
.B console
|
|
is used by both the Boot Monitor and the console driver to set the video
|
|
mode, software scrolling on/off, and VGA screen blank timeout. See
|
|
.BR boot (8).
|
|
.SS "The Keyboard"
|
|
The keyboard produces key codes for each key that is pressed. These keys
|
|
are transformed into character codes or sequences according to the current
|
|
keyboard translation table. The format of this table is described in
|
|
.BR keymap (5).
|
|
The character codes can be read from the console device unless they map to
|
|
special hotkeys. The hotkeys are as follows:
|
|
.PP
|
|
.ta +17n
|
|
Name Key Function
|
|
.in +18n
|
|
.ti -17n
|
|
CTRL\-ALT\-DEL Send an abort signal to process 1 (init). Init then
|
|
halts the system
|
|
.ti -17n
|
|
CTRL\-ALT\-KP-. Likewise for keypad period
|
|
.ti -17n
|
|
F1 Process table dump
|
|
.ti -17n
|
|
F2 Show memory map
|
|
.ti -17n
|
|
F3 Toggle software/hardware scrolling
|
|
.ti -17n
|
|
F5 Show network statistics
|
|
.ti -17n
|
|
CTRL\-F7 Send a quit signal to all processes connected to the console
|
|
.ti -17n
|
|
CTRL\-F8 Send an interrupt signal
|
|
.ti -17n
|
|
CTRL\-F9 Send a kill signal. If CTRL\-F8 or CTRL\-F7 don't get 'em,
|
|
then this surely will. These keys are for disaster recovery. You would
|
|
normally use DEL and CTRL\-\e to send interrupt and quit signals.
|
|
.\" .ig VC
|
|
.ti -17n
|
|
ALT\-F1 Select virtual console 0 (/dev/console)
|
|
.ti -17n
|
|
ALT\-F2 Select virtual console 1 (/dev/ttyc1)
|
|
.ti -17n
|
|
ALT\-F(\fIn\fP+1) Select virtual console \fIn\fP
|
|
(/dev/ttyc\fIn\fP)
|
|
.ti -17n
|
|
ALT\-Left Select previous virtual console
|
|
.ti -17n
|
|
ALT\-Right Select next virtual console
|
|
.\" ..
|
|
.in -18n
|
|
.PP
|
|
.\"XXX
|
|
The keyboard map is set with the
|
|
.B KIOCSMAP
|
|
ioctl whose precise details are currently hidden in the
|
|
.B loadkeys
|
|
utility.
|
|
.SS "Log device"
|
|
The
|
|
.B log
|
|
device can be used by processes to print debug messages onto the console.
|
|
The console is a terminal type device, so it is taken from processes when a
|
|
session leader exits. This does not happen with the log device.
|
|
.SH "SEE ALSO"
|
|
.BR tty (4),
|
|
.BR loadkeys (1),
|
|
.BR keymap (5),
|
|
.BR boot (8).
|
|
.SH NOTES
|
|
Output processing turns Line Feeds into CR LF sequences. Don't let this
|
|
surprise you. Either turn off output processing or use one of the synonyms
|
|
for LF.
|
|
.SH AUTHOR
|
|
Kees J. Bot (kjb@cs.vu.nl)
|
|
.\" minor editing of man page by asw 07.08.96
|