.\" $NetBSD: cons.4,v 1.3 1998/01/09 06:35:21 perry Exp $ .\" .\" .\" 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986,1987,1988 .\" LICENSED MATERIALS - PROPERTY OF IBM .\" REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 .\" .\"WISC: Header:cons.4_ca 11.3$ .\"WISC: ACIS:cons.4_ca 11.3$ .\"WISC: Source: /ibm/acis/usr/man/man4/RCS/cons.4_ca,v $ .\" This file uses -man macros. .TH CONS 4 "Sept 1988" "Space overwritten by .AC macro" " " .AC 1 0 .SH NAME cons \- keyboard and console display interface .SH DESCRIPTION The keyboard and various possible displays combine to provide a terminal-like interface to the system. Internally, these are separate devices which software combines to emulate a normal terminal. See the appropriate manual pages for information about each display and the keyboard. .PP The keyboard adapter also supports the speaker, which is activated when the ASCII character \fBbel\fP (\fB^G\fP) is sent to the display with software. For additional information on speaker control, see \fIspeaker\fP(4). .PP .B Console Device Control .PP The display devices, \fI/dev/ttyaed\fR, \fI/dev/ttyap16\fR, \fI/dev/ttyap8c\fR, \fI/dev/ttyapa8\fR, \fI/dev/ttyega\fR, \fI/dev/ttymono\fR, \fI/dev/ttympel\fR, \fI/dev/ttyvga\fR, and \fI/dev/tty8514\fR are all minor devices under \fI/dev/console\fR, and are all capable of displaying console output. Unique to this system is the fact that you may have one or more of these displays on your workstation at a time and any one can act as a console. With only one keyboard and system mouse, the console driver multiplexes these input devices to the many displays. All of the displays may have simultaneous logins and the user can ``hot key'' between each display. At first, this ``input focus'' is on the first device in the above sequence to be found at initialization time. The input focus can be manually switched to the next available display by pressing the default ``hot key'' . When the input focus is on a display, all keyboard and mouse data are sent to the process(es) that read from that display. .PP If no other console tty device is open, and only the default input emulator is used (see \fIkbdemul\fP(4)), the input focus is set to \fI/dev/console\fP. In this case, only switches which display gets console output. In the case where one or more tty devices are open, or the default input emulator changes, \fI/dev/console\fP gets no input. It tries to send output to the currently focused device. A user can redirect these console messages to any tty devices with the TIOCCONS ioctl. .PP To support the many displays and the multiplexing between them, an emulator package was developed to work with the console driver. This package allows different types of emulation on input and output to be written independently of device. .PP The display devices \fI/dev/aed\fP, \fI/dev/apa16\fP, \fI/dev/apa8c\fP, \fI/dev/apa8\fP, \fI/dev/ega\fR, \fI/dev/mono\fP, \fI/dev/mpel\fR, \fI/dev/vga\fR, and \fI/dev/ibm8514\fR are also minor devices to \fI/dev/console\fP. They are typically used by window managers and other graphic applications. When the focus is pointed to one of these display devices, the console messages are put in a circular buffer (see \fIbufemul\fP(4)) unless redirected with the TIOCCONS ioctl. The buffer is flushed to the screen upon closing the display device. .PP The following are generic console \fIioctls\fP defined in \fIscreen_cousf.u\fP: .TP 20 CON_SELECT_SCREEN Output focus is set to display number (arg > 0) or to next display in list (arg < 0). Previous display number is returned. .TP 20 CON_GET_SCREEN Just returns the current output focus display number. .TP 20 EIGETD Gets the number of the current input emulator for this display. .TP 20 EOGETD Gets the number of the current output emulator for this display. .TP 20 EISETD Sets the input emulator and returns the previous for this display. .TP 20 EOSETD Sets the output emulator and returns the previous for this display. .TP 20 CON_INIT_SCREEN Initializes the specified display (arg >=0) or this display (arg < 0). .TP 20 CON_GET_FOCUS_CODE Gets the current keyboard code for setting the console focus (affects xemul only). .TP 20 CON_SET_FOCUS_CODE Sets the current keyboard code for setting the console focus (affects xemul only), and return the previous code. .PP All of the above commands take integer arguments. .PP The following are generic console \fIioctls\fP defined in \fIconsio.h\fP: .TP 20 SCRIOCGETF Gets the screen control flags for the given display number. .TP 20 SCRIOCSETC Sets the screen control flags for the given display number. .PP .in +10 SCRIOCGETF and SCRIOCSETC use the following structure: .DT .nf struct screen_control { int device; /* which screen/display to control */ int switches; /* Flags for this screen */ }; .fi .sp 2 .RS 6 .TP 20 CONSDEV_PRESENT Display is present on this system. This bit cannot be changed by SCRIOSETC. .TP 20 CONSDEV_KERNEL Display is available to the kernel. .TP 20 CONSDEV_USER Display is available to the user. .TP 20 CONSDEV_INIT Display has been initialized for output. .TP 20 CONSDEV_TTY Diplay has been initialuzed for output. This bit cannot be changed by SCRIOSETC. .TP 20 CONSDEV_GRA Graphics display has been opened directly by minor device number. This bit cannot be changed by SCRIOSETC. .TP 20 CONSDEV_NOINPUT Prevents the "round-robin" console focus-switching from finding this display. This flag is cleared when \fIbuf_emul\fP is closed. .TP 20 SCRSETNIP Sets the no-input bit in the screen control flags for the display's current file description. .TP 20 SCRCLRNIP Clears the no-input bit in the screen control flags for the display's current file description. .RE .PP The following \fIioctl\fP is defined in \fIbufemul.h\fP: .TP 20 BUFDISPINFO \fIArg\fP returns the following information about the display: .PP .RS 6 .TP 20 BUF_IS_ATR(arg) True when the CPU is an IBM 6152 Academic System. .TP 20 BUF_IS_RTPC(arg) True when the CPU is an IBM RT PC. .TP 20 BUF_GET_PCCODE(x) Get PC-Code version/type byte (IBM 6152 only). .bp .TP 20 BUF_GET_VGA(arg) Get the type of display connected to the VGA. 0=none, 1=color, 2=gray. Valid only for the IBM 6152 Academic System. .TP 20 BUF_GET_8514(arg) Get the type of display connected to the IBM 8514/A. 0=none, 1=color, 2=gray. Valid only for the IBM 6152 Academic System. .TP 20 BUF_GET_EGA(arg) Returns the value of the switches on the EGA display. Valid only for the IBM RT PC with an EGA card installed. .RE .PP All of the above \fIioctl\fP system calls are device-independent controls for dealing with the emulators. .PP Each emulator has its own set of \fIioctls\fP for its own emulation purposes. These other \fIiotls\fP are used in window-manager emulators for operations such as passing/positioning the mouse locator for/on the display. See the man page for any particular emulator for more information. .PP .SH NOTE On the IBM RT PC, the kernel flashes ``98'' on the LEDs if it cannot find any configured display during initialization, and then proceeds. .SH DIAGNOSTICS None. .SH FILES .PP For the IBM RT PC: .br /dev/console .br /dev/aed .br /dev/apa16 .br /dev/apa8c .br /dev/apa8 .br /dev/ega .br /dev/mono .br /dev/mpel .br .PP For the IBM 6152 Academic System: .br /dev/vga .br /dev/ibm8514 .SH "SEE ALSO" bufemul(4), bus(4), ibm5081(4), ibm5151(4), ibm6153(4), ibm6154(4), ibm6155(4), ibm8514(4), ibmaed(4), ibmemul(4), kbdemul(4), speaker(4), stdemul(4), tty(4), vga(4), xemul(4), setscreen(8) .br ``IBM/4.3 Console Emulators'', in Volume II, Supplementary Documents