CONSOLE.4
资源名称:os_source.zip [点击查看]
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:11k
源码类别:
操作系统开发
开发平台:
C/C++
- CONSOLE(4) Minix Programmer's Manual CONSOLE(4)
- NAME
- console, keyboard, log - system console
- 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".
- 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.
- 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
- 1
- CONSOLE(4) Minix Programmer's Manual CONSOLE(4)
- 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 termcap(5) type is 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:
- 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
- ^[[nA Cursor Up Move the cursor up n lines
- ^[[nB Cursor Down Move the cursor down n lines
- ^[[nC Cursor Forward Move the cursor right n columns
- ^[[nD Cursor Backward Move the cursor left n columns
- ^[[m;nH Cursor Position Move the cursor to line m, column n
- ^[[sJ Erase in Display Clear characters as follows:
- s = 0: From cursor to end of screen
- s = 1: From start of screen to cursor
- s = 2: Entire screen
- ^[[sK Erase in Line Clear characters as follows:
- s = 0: From cursor to end of line
- 2
- CONSOLE(4) Minix Programmer's Manual CONSOLE(4)
- s = 1: From start of line to cursor
- s = 2: Entire line
- ^[[nL Insert Lines Insert n blank lines
- ^[[nM Delete Lines Delete n lines
- ^[[n@ Insert Characters Insert n blank characters
- ^[[nP Delete Characters Delete n characters
- ^[[nm Character Attribute Set character attribute as follows:
- n = 0: Normal (default) attribute
- n = 1: Bold (mono) / Yellow (colour)
- n = 4: Underline (M) / Light green (C)
- n = 5: Blinking (M) / Magenta (C)
- n = 7: Reverse Video
- n = 30: Black foreground colour
- n = 31: Red
- n = 32: Green
- n = 33: Orange
- n = 34: Blue
- n = 35: Magenta
- n = 36: Light blue
- n = 37: White
- n = 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:
- ioctl(fd, TIOCSFON, u8_t font[256][32]);
- 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.
- 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 keymap(5). 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
- 3
- CONSOLE(4) Minix Programmer's Manual CONSOLE(4)
- 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(n+1) Select virtual console n (/dev/ttycn)
- ALT-Left Select previous virtual console
- ALT-Right Select next virtual console
- The keyboard map is set with the KIOCSMAP ioctl whose precise details are
- currently hidden in the loadkeys utility.
- Log device
- The 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.
- SEE ALSO
- tty(4), loadkeys(1), keymap(5), boot(8).
- 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.
- AUTHOR
- Kees J. Bot (kjb@cs.vu.nl)
- 4