222 lines
11 KiB
HTML
222 lines
11 KiB
HTML
<HTML>
|
|
<HEAD>
|
|
<TITLE>console(4)</TITLE>
|
|
</HEAD>
|
|
<BODY>
|
|
<H1>console(4)</H1>
|
|
<HR>
|
|
<PRE>
|
|
|
|
</PRE>
|
|
<H2>NAME</H2><PRE>
|
|
console, keyboard, log - system console
|
|
|
|
|
|
</PRE>
|
|
<H2>DESCRIPTION</H2><PRE>
|
|
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".
|
|
|
|
<STRONG>The</STRONG> <STRONG>Screen</STRONG>
|
|
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.
|
|
|
|
These are the characteristics of the adapters in text mode:
|
|
|
|
Adapter Usable memory Mono/Colour
|
|
MDA 4K M
|
|
Hercules 4K M
|
|
CGA 16K C
|
|
EGA 32K M or C
|
|
VGA 32K M or C
|
|
|
|
MDA and Hercules are the same to the console driver, because the graphics
|
|
mode of the Hercules is of no use to Minix. 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.
|
|
|
|
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".
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
A number of control characters and escape sequences are implemented by
|
|
the driver. The result is upward compatible with the ANSI standard
|
|
terminal. The <STRONG><A HREF="../man5/termcap.5.html">termcap(5)</A></STRONG> type is <STRONG>minix</STRONG>. 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:
|
|
|
|
Sequence Name Function
|
|
^@ Null Ignored (padding character)
|
|
^G Bell Produce a short tone from the speaker
|
|
^H Backspace Move the cursor back one column, wrapping
|
|
from the left edge up one line to the
|
|
right edge
|
|
^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.
|
|
^J Line Feed Move one line down, scrolling the screen
|
|
up if necessary
|
|
^K Vertical Tab Same as LF
|
|
^L Form Feed Same as LF
|
|
^M Carriage Return Move to column 1
|
|
^[ Escape Start of an escape sequence
|
|
^[M Reverse Index Move one line up, scrolling the screen
|
|
down if necessary
|
|
^[[<EM>n</EM>A Cursor Up Move the cursor up <EM>n</EM> lines
|
|
^[[<EM>n</EM>B Cursor Down Move the cursor down <EM>n</EM> lines
|
|
^[[<EM>n</EM>C Cursor Forward Move the cursor right <EM>n</EM> columns
|
|
^[[<EM>n</EM>D Cursor Backward Move the cursor left <EM>n</EM> columns
|
|
^[[<EM>m</EM>;<EM>n</EM>H Cursor Position Move the cursor to line <EM>m</EM>, column <EM>n</EM>
|
|
^[[<EM>s</EM>J Erase in Display Clear characters as follows:
|
|
<EM>s</EM> = 0: From cursor to end of screen
|
|
<EM>s</EM> = 1: From start of screen to cursor
|
|
<EM>s</EM> = 2: Entire screen
|
|
^[[<EM>s</EM>K Erase in Line Clear characters as follows:
|
|
<EM>s</EM> = 0: From cursor to end of line
|
|
<EM>s</EM> = 1: From start of line to cursor
|
|
<EM>s</EM> = 2: Entire line
|
|
^[[<EM>n</EM>L Insert Lines Insert <EM>n</EM> blank lines
|
|
^[[<EM>n</EM>M Delete Lines Delete <EM>n</EM> lines
|
|
^[[<EM>n</EM>@ Insert Characters Insert <EM>n</EM> blank characters
|
|
^[[<EM>n</EM>P Delete Characters Delete <EM>n</EM> characters
|
|
^[[<EM>n</EM>m Character Attribute Set character attribute as follows:
|
|
<EM>n</EM> = 0: Normal (default) attribute
|
|
<EM>n</EM> = 1: Bold (mono) / Yellow (colour)
|
|
<EM>n</EM> = 4: Underline (M) / Light green (C)
|
|
<EM>n</EM> = 5: Blinking (M) / Magenta (C)
|
|
<EM>n</EM> = 7: Reverse Video
|
|
<EM>n</EM> = 30: Black foreground colour
|
|
<EM>n</EM> = 31: Red
|
|
<EM>n</EM> = 32: Green
|
|
<EM>n</EM> = 33: Orange
|
|
<EM>n</EM> = 34: Blue
|
|
<EM>n</EM> = 35: Magenta
|
|
<EM>n</EM> = 36: Light blue
|
|
<EM>n</EM> = 37: White
|
|
<EM>n</EM> = 40 - 47: Same for background colour
|
|
|
|
The console device implements the following ioctl to copy a font into
|
|
font memory on EGA and VGA adapters:
|
|
|
|
<STRONG>ioctl(</STRONG><EM>fd</EM><STRONG>,</STRONG> <STRONG>TIOCSFON,</STRONG> <STRONG>u8_t</STRONG> <EM>font</EM><STRONG>[256][32]);</STRONG>
|
|
|
|
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. The 80x25 video mode used by Minix has an 8x16
|
|
character cell, which means that only the first 16 lines of a character
|
|
are displayed.
|
|
|
|
<STRONG>The</STRONG> <STRONG>Keyboard</STRONG>
|
|
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 <STRONG><A HREF="../man5/keymap.5.html">keymap(5)</A></STRONG>. The character codes can be read from the console
|
|
device unless they map to special hotkeys. The hotkeys are as follows:
|
|
|
|
Name Key Function
|
|
CTRL-ALT-DEL Send an abort signal to process 1 (init). Init then
|
|
halts the system
|
|
CTRL-ALT-KP-. Likewise for keypad period
|
|
F1 Process table dump
|
|
F2 Show memory map
|
|
F3 Toggle software/hardware scrolling
|
|
F5 Show network statistics
|
|
CTRL-F7 Send a quit signal to all processes connected to the
|
|
console
|
|
CTRL-F8 Send an interrupt signal
|
|
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-\ to send interrupt and quit signals.
|
|
ALT-F1 Select virtual console 0 (/dev/console)
|
|
ALT-F2 Select virtual console 1 (/dev/ttyc1)
|
|
ALT-F(<EM>n</EM>+1) Select virtual console <EM>n</EM> (/dev/ttyc<EM>n</EM>)
|
|
ALT-Left Select previous virtual console
|
|
ALT-Right Select next virtual console
|
|
|
|
The keyboard map is set with the <STRONG>KIOCSMAP</STRONG> ioctl whose precise details are
|
|
currently hidden in the <STRONG>loadkeys</STRONG> utility.
|
|
|
|
<STRONG>Log</STRONG> <STRONG>device</STRONG>
|
|
The <STRONG>log</STRONG> 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.
|
|
|
|
|
|
</PRE>
|
|
<H2>SEE ALSO</H2><PRE>
|
|
<STRONG><A HREF="../man4/tty.4.html">tty(4)</A></STRONG>, <STRONG><A HREF="../man1/loadkeys.1.html">loadkeys(1)</A></STRONG>, <STRONG><A HREF="../man5/keymap.5.html">keymap(5)</A></STRONG>, <STRONG><A HREF="../man8/boot.8.html">boot(8)</A></STRONG>.
|
|
|
|
|
|
</PRE>
|
|
<H2>NOTES</H2><PRE>
|
|
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.
|
|
|
|
|
|
</PRE>
|
|
<H2>AUTHOR</H2><PRE>
|
|
Kees J. Bot (kjb@cs.vu.nl)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</PRE>
|
|
</BODY>
|
|
</HTML>
|