Server for Information Technologies ������ ��������������
������� �������������� ����������
(095) 932-9212, 932-9213, 939-0783
E-mail: [email protected]
������ �������� ����(!) ������������� ���������� CIT Forum CD-ROM

SCREEN(HW)

��������
screen - ����� tty[01-n], color, monochrome, ega, vga - ������� ������� � ������������.

��������
����� ��������� tty[01-n] ������������� ���������� ����/����� ����� ��������, �������� ������������� � �����������. ������ �� ���� ������ ������������� ���������� ���������� ���������. ���� ���������� ������� �������������� 12, ������ ����� (n) ��������� ������� ������� �� ������ ������ ����������. �� ��������� ������ ��������������� � ����� ��������� ASCII 80x25.

��������� ���� ������� �� ������� ������������ � /dev/console, ������ ���������������� �������� ������. ���� �� ��������� ��� ������ ��������� ��������� �� ������� ����������� ���������� ������ /dev/console, � ������������ ����� ������������� � ����������� �����, �� ��������� �� ������� �� �������������. ����� ��������������� ������������ � ��������� �����, �� ������������� ��������������� �������������� ���������, � ����� ��������� �� ������� ����� ���� ������������ �� ����� /usr/adm/messages.

���� ��� ���������� tty[01-n] ����� ���� ������� ������������, ������ ���� �� ��� ����� ���� �������� � ������ ������. �������� ���������� ��������� ���� ����� � ������������� �� ���� ���������� �����������. ����� ������� �������� �������� ������ � ������ color, monochrome ��� ega, ���� ����������� ��������������� ������� ��� ��� ���������� � ��� ������ � ������������� ������.

��� ������������ �� ��������� ����� ������� ��� Ctrl-PrtSc � ������� ������ Ctrl � PrtSc. ����� �������� ����� ����� ���� ������ ��������� ���� alt-Fn, ��� Fn - ���� �� �������������� ������. ��������, F1 ��������� � ���������� tty01.

������ ����������
��� ��������� ������ ������� ������������� �������� ����, ��������������� ����� ������. ��������, ��� ������������ ������ �� ������� CGA ��������� ������ ������� ���� /dev/color � ������������ ����������� ��������� ioctl s, ������������� ����� ������ open (������� ��������), �� �������� ����������. ���������� ������ ��������� ������� ���������� ����������� ������������� � �������.

������ ����� ���� ��������� ��������� ��������� (� ��������������� ��������) � �������������� ��������� ioctl s:

SWAPMONO
�������� ����������� ������� � �������� ���������� ������ �������������.
SWAPCGA
�������� ���������� ������� ������� � �������� ���������� ������ �������������.
SWAPEGA
�������� ���������� ������� ������� � �������� ���������� ������ �������������.
SWAPVGA
�������� ���������������� ��������� ������� ������� � �������� ���������� ������ �������������.

����� ������ ����� ��� �������� ������� � ��������� ������ ����������� � �������������, �� ������ ������������ ioctl(2) �� ��������� ����������:

CONS_CURRENT
���������� ��� �������� ������� ��������������� � ������� ������ � �������������: MONO, CGA, EGA ��� VGA.

������ �������
��� ��������� ����������� ������� ����� �������������� ��������� ��������� ioctl s:

SW_B80x25
�������� ���������� ��������� ����� 80x25 (MONO, CGA, EGA, VGA).
SW_C80x25
�������� ������� ��������� ����� 80x25 ( CGA, EGA, VGA).
SW_BG320
�������� ���������� ����������� ����� 320x200 (CGA, EGA, VGA).
SW_CG320
�������� ������� ����������� ����� 320x200 ( CGA, EGA, VGA).
SW_BG640
�������� ���������� ����������� ����� 640x200 ( CGA, EGA, VGA).
SW_EGAMONO80x25
�������� ����� EGA 7 - ��������� ���������, ��������������� ����������� ��������.(EGA, VGA).
SW_EGAMONOAPA
�������� ����������� ����� EGA F 640x350. (EGA � ���������� ���������.)
SW_ENHMONOAPA2
�������� ����� EGA F* (EGA � ����������� ���������).
SW_ENHB40x25
�������� �����-����� ��������� ����� 40x25 EGA. (EGA, VGA).
SW_ENHC40x25
�������� ������� ��������� ����� 40x25 EGA. (EGA, VGA).
SW_ENHB80x25
�������� �����-����� ��������� ����� 80x25 EGA. (EGA, VGA).
SW_ENHC80x25
�������� ������� ��������� ����� 80x25 EGA. (EGA, VGA).
SW_CG320_D
�������� ����������� ����� EGA 320x200 (����� EGA D.) (EGA, VGA).
SW_CG640_E
�������� ����������� ����� EGA 640x200 (����� EGA E.) (EGA, VGA).
SW_CG640x350
�������� ����������� ����� EGA 640X350 (����� EGA 10.) (EGA, VGA).
SW_ENH_CG640
�������� ����������� ����� EGA 10*. (EGA, VGA).
SW_MCAMODE
�������������� ����������� ������� .(MONO).
SW_VGA40x25
�������� ������� ����� VGA 40X25 (����� VGA 1+). (VGA).
SW_VGA80x25
�������� ���������� ����� VGA 80X25 (����� VGA 2+). (VGA).
SW_VGAM80x25
�������� ����� VGA 7+ - ��������� ���������, ��������������� ����������� ��������. (VGA � ���������� ���������.)
SW_VGA11
�������� ����������� ����� VGA 640x480 (����� VGA 11.) (VGA).
SW_VGA12
�������� ����������� ����� VGA 640x480 (����� VGA 12.) (VGA).
SW_VGA13
�������� ����������� ����� VGA 320x200 (����� VGA 13.) (VGA).

������� ������������ � �����, �� ��������������� ���������� �������, �������� ������.

��������� ���������� � ������ �������
��������� ������� ioctl() ������������ ��������� ���������� � ������� ������ �������:

CONS_GET
���������� ������� ����� �������, ������������� ��� �������� �������� �������. (��� ����.)
CGA_GET
���������� ������� ����� �������, ������������� ��� ������������ �������� �������. (������ CGA.)
EGA_GET
���������� ������� ����� �������, ������������� ��� ����������� ������������ �������� �������. (������ EGA.)
MCA_GET
���������� ������� ����� �������, ������������� ��� ������������ �������� �������. (������ MONO.)
VGA_GET
���������� ������� ����� �������, ������������� ��� ����������������� ���������� �������� �������. (������ VGA.)

������ ����������� ������
��������� ioctl(2) ������������ ��� ����������� ������ ������� ��������� ��������� � ������� ������ ������������. �� 20286-� ������� ioctl() ���������� �������� ������ �������. ������ sotofar ������������ ��� �������� �������� ��������� ����� ��������� ���, ����� ����� ���� �������� � ������� �������. ������ sotofar ��������� � ����� /usr/include/sys/sysmacros.h. �� 80386-� ������� ioctl() ���������� ���������� ��������� (char *).

�� ��������� ����������� � ��������� ��������, ��������� � ������������ ����������� � ������������ �� ���������� �����.

��� ����������� ������ ������� ����� ������������ ��������� ������� ioctl():

MAPCONS
���������� ������ ������� ��������, ������������� � ������� ������, � ������� ���������������� ������. (��� ���� ���������.)
MAPMONO
���������� ������ ������� ������������ ��������, ������������� � ������� ������, � ������� ���������������� ������. (������ MONO.)
MAPCGA
���������� ������ ������� �������� ������������ ��������, ������������� � ������� ������, � ������� ���������������� ������. (������ CGA.)
MAPEGA
���������� ������ ������� ����������� ������������ ��������, ������������� � ������� ������, � ������� ���������������� ������. (������ EGA.)
MAPVGA
���������� ������ ������� ����������������� ���������� ��������, ������������� � ������� ������, � ������� ���������������� ������. (������ VGA.)

��������, ��� ��������� ��������� �� ������ ������� ���������������� ������, ��������� � ������� ������� �������� CGA ����� ������������ ��������� ���:

    char far *dp;
    int selector;
          .
          .
          .
    fd=open("/dev/color",O_WRONLY);
    selector=ioctl(fd,MAPCGA,0);
    dp=sotofar(selector,0);
          .
          .
          .

�������� ��������, ���, ����� ������ ������� ������������ � ��������������� ������������, �������� ���������� ������ �������� �� ���������������. ���� ��������� ����� ����� ���� ���������� ����� ���������, ��� ����� ��������� ����� ������ ������� �������������� �������� ������ ���� ������:

  1. ����������� ����� � ������� ioctl() ("������������" ����� ����������� � �� ��� ������������� �����). �������� ��������� "������ �������" � ������ �������.
  2. �������� ��������� ����� � ������� in-on-port/out-on-port (�������� ����� �����) ioctl().

��� �������� ����� �������������� ����� ��� ����������� �������� �������� �������� ���������� ������, � ����� ��� ��������� ��������� �� �������� �������� � ������������ ������������ ������.

���� �����/������ ������������ ��������
�� ������ ������������ ioctl(2) ��� ������ ����� � ���� ������������ �������� ��� ������ ����� �� ����� �����. �������� arg ������� ioctl ���������� ��������� ��������� ������ io_arg:

    struct port_io_arg {
      struct port_io_struct args[4];
    };

��� �������� ���� ��������� io_arg ��������� �� ������ �� ������� �������� ������ port_io. ��������� port_io ����� ��������� ������:

    struct port_io_struct {
       char  dir; /*direction flag (in vs. out)*/
       unsigned_int port; /*port address*/
       char data; /*byte of data*/
    };

��� ������ ������ ioctl �� ������ ������ ����, ���, ��� ��� ������ ��������� port_io_struct. �������� dir ����� ��������� �������� IN_ON_PORT ��� ������� ������ ����� �� ����� ������������ �������� ��� �������� OUT_ON_PORT ��� ������ ����� � ���� ����. �������� port �������� ����� ������, �������� ����� ������� ����� ������������ ��������. �������� data �������� ����, ����������� �� ����� ��� ���������� � ���� ����.

���� �� �� ����������� �� ���� �� �������� port_io, ��������� �������� port ������� �������� � �������� �������������� ��������� � ����� �������. ������ � ���������� ������ ��������� ��������� �������� � ������������ �� ���������� �����.

��� ������ � ������ ������������ �������� �� ������ ������������ ��������� ������� ioctl(2):

MGAIO
������ ��� ������ ����� � ���� ������������ ��������. (������ MONO.)
CGAIO
������ ��� ������ ����� � ���� �������� ������������ ��������. (������ CGA.)
EGAIO
������ ��� ������ ����� � ���� ����������� ������������ ��������. (������ EGA.)
VGAIO
������ ��� ������ ����� � ���� ����������������� ���������� ��������. (������ VGA.)
CONSIO
������ ��� ������ ����� � ���� �������� ������������ ��������. (��� ���� ���������.)

��� ������ ����� �� ������ ����� ������������ �������� ��������� �������� dir �������� IN_ON_PORT, � �������� port - ����� ����� ������������ ��������. ��������� ���� ����� ��������� � ���������� data.

��� ������ ����� ��������� �������� dir �������� OUT_ON_PORT, �������� port - ����� ����� ������������ ��������, � �������� data - ����, ������� �� ������ �������� � ����.

�������������� �������
ioctl(2) ����� �������������� ��� ������� ��� ��� ��������� �������� ���������� �������������� ������. ��� ���� �������� arg ������� ioctl ���������� ��������� ��������� ������ fkeyarg:

   struct fkeyarg {
      unassigned int keynum;
      char keydef [MAXFK];
        /*Comes from
      char flen; ioctl.h via comcrt.h*/
   }

��� ��������� ��� ���������� ����������� �������������� ������ �� ������ ������������ ��������� ������� ioctl(2):

GETKEY
�������� ������� ����������� �������������� �������. ����� ���� ������� ������ ���� ������� � keynum. ������, ����������� ������ �������, ����� ���������� � keydef, � ����� ���� ������ - � flen, ����� ioctl �������� ���� ������.
SETKEY
����������� ������ ������ �������������� �������. ����� ���� ������� ������ ���� ������� � keynum, � ����� ������ (���������� ��������) - � ���������� flen.

�������� ����������� ������������������
��������� ���������� ������������������ ������������ ���������� ANSI X3.64-1979 � ����� �������������� ��� ���������� � ����������� ������ �������. ��� ���������� ��������� ������� ������ Pn ����� �������� ��������������� ���������� ����� ASCII. ��������� ������� �������� ���� termcap(M), ��� "n/a" �������� "�� �����������".

������������� � ����������� ������������������ 7- � 8-��������� �������� �������� ���������� ��� ������� ������������� ��������. ��������, ������� ANSI ED ����� ���� ������� � ������� ������������������ "ESC[ Pn j" (0x1b-0x5b-Pn-0x4a, 7-��������� �������) ��� ������������������ "CSI Pn j" (0x9b-Pn-0x4n, 8-��������� �������).
����������� ISO����������������������������� termcap
ED
(Erase in Display)
CSI pN J������� ���� ������� ��� ��� �����. Pn=0: ������� � �������� ������� �� ����� �������. Pn=1: ������� �� ������ ������� �� �������� �������. Pn=2: ������� ����� �������. cd
EL
(Erase in Line)
CSI Pn K������� ��� ������ ��� �� �����. Pn=0: ������� � �������� ������� �� ����� ������. Pn=1: ������� �� ������ ������ �� �������� �������. Pn=2: ������� ���� ������. ce
ECH
(Erase Character)
CSI Pn X������� ������� Pn. n/a
CBT
(Cursor Backward Tabulation)
CSI Pn Z����������� �������� ������� ����� �� Pn ���������. bt
SU
(Scroll Up)
CSI Pn S������������ ����� ����� �� Pn �����, �������� ����� ������ ������. sf
SD
(Scroll Down)
CSI Pn T������������ ����� ���� �� Pn �����, �������� ������ ������ ������. sr
CUP
(Cursor Position)
CSI P1;P2 H���������� �������� ������� �� ���������� P1 �� ��������� � P2 �� �����������. cm
HVP
(Horizontal & Vertica Position)
CSI P1;P2 f���������� �������� ������� �� ���������� P1 �� ��������� � l P2 �� �����������. n/a
CUU
(Cursor Up)
CSI Pn A���������� �������� ������� �� Pn ����� �����. up(ka)
CUD
(Cursor Down)
CSI Pn B���������� �������� ������� �� Pn ����� ����. do(kd)
CUF
(Cursor Forward)
CSI Pn C���������� �������� ������� �� Pn ������� ������. nd(kr)
CUB
(Cursor Backward)
CSI Pn D���������� �������� ������� �� Pn ������� �����. bs(kl)
HPA
(Horizontal Position Absolute)
CSI Pn `���������� �������� ������� �� ������� Pn. n/a
HPR
(Horizontal Position Relative)
CSI Pn a���������� �������� ������� �� Pn �������� ������. n/a
VPA
(Vertical Position Absolute)
CSI Pn d���������� �������� ������� �� ������ Pn. n/a
VPR
(Vertical Position Relative)
CSI Pn e���������� �������� ������� �� Pn ����� ����. n/a
IL
(Insert Line)
CSI Pn L��������� Pn ����� ������ �����. al
ICH
(Insert Character)
CSI Pn @��������� Pn ������ ������� ��� Pn ��������. ic
DL
(Delete Line)
CSI Pn M������� Pn �����. dl
DCH
(Delete Character)
CSI Pn P������� Pn ��������. dc
CPL
(Cursor to Previous Line)
CSI Pn F���������� �������� ������� �� Pn ����� ����� � �� ������ ������. n/a
CNL
(Cursor to Next Line)
CSI Pn E���������� �������� ������� �� Pn ����� ���� � �� ������ ������. n/a
CGR
(Select Graphic Rendition)
CSI 0 m����� �����, ��������, ������, ������������ � ��������������� ��������. ����: ��������������� ���������� ��������� ������. n/a
SGRCSI 1 m������������� ������� �������. ����: ������������� ������� ������������� (������ color �� lt_color). n/a
SGRCSI 4 m������������� �������������. ����: ��� ���������. n/a
SGRCSI 5 m������������� �������. ����: ������ ��� � lt_color �� color; ������ ������. n/a
SGRCSI 7 m������������� ��������������. ����: ����������� ��������� �����. so
SGRCSI 10 m�������� ��������� �����. GE
SGRCSI 11 m�������� ������ �������������� �����. ��������� ������������ �������� ASCII � ������, �������� 32, � ���� ��������, ������� � ���. n/a
SGRCSI 12 m�������� ������ �������������� �����. ����� ������� � ���� ��������, ������� � ���, ����������� ������� ��� ������������ ���� ASCII. GS
SGRESC[ 4 m������������� �������������. ����: ��� ���������. n/a
SGRCSI3 C m����: ����� ����� ������� C (��. ������� 1 ����). n/a
SGRCSI4 C m����: ����� ����� ���� C (��. ������� 1 ����). n/a
SGRSCI 8 m������������� �������. n/a

��������� ���� ������ � ������������������ ���������� ������������� ������������ �� �������������� ISO DP 6429.

������� 1
����
0������
1�������
2�������
3������
4�����
5��������
6����
7�����

����������� ISO����������������������������� termcap
SM
(Set Mode)
ESC[2h���������� ����������. ���������� ���� � ����������, ���� ��� �� ����� ��������������. ������� �� �����������. n/a
MC
(Media Copy)
ESC[2i���������� ������ ������������ �� ������� �������. ������� ���������� ������ ���������� ���������� ���������. n/a
RM
(Reset Mode)
ESC[2l������� ���������� ���������� � ��������������� ����� ����� � ����������. n/a

��������� ���� ������ � ������������������ ���������� �������������� ����������� ������������������.

������� 2
�n����Cn����
0������8�����
1�������9�.-�������
2�������10�.-�������
3������11�.-��������
4�����12�.-�������
5��������13C. ��������
6����14������
7�����15C.-�����

����������� ISO����������������������������� termcap
n/aCSI=cA������������� ���� ������� �. c - ���������� ��������, ���������� �� ������� 2, ����������� ����. (��� ������������������ ���- ����������� �� �� ������ ����������.) n/a
n/aCSI=p;dB������ ��������� "������" p � d � ���������� ����. p - ������ �������� � �������� 840.3 ����������, � d - ������������ �������� � �������� 100 �����������. n/a
n/aCSI=s;eC������������� ��� ������� � ��������� ������ s � ��������� ������ e. n/a
n/aCSI=xD�������� ��� ��������� (x=1 ��� 0) ������������� ����� ����. n/a
n/aCSI=xE������������� ��� ���������� (x=1 ��� 0) ��� ������� ������ ���� ������������� ���� ����������� ������� 6845. n/a
n/aCSI=cF������������� ���������� ���� �������� �.(� - ���������� �����, ���������� �� ������� 2.) n/a
n/aCSI=c G������������� ���������� ���. (��. ������� 2.) n/a
n/aCSI=c H������������� ��������������� ���� ��������. (��. ������� 2.) n/a
n/aCSI=c I������������� ��������������� ���� ����. (��. ������� 2.) n/a
n/aCSI=c J������������� ���� �������� � �������. (��. ������� 2.) n/a
n/aCSI=c K������������� ���� ���� � �������. (��. ������� 2.) n/a
n/aESC[Png������������ ������ � ��������������� ������������ ������ ��������, ������� �� ��������� � ������� "������������ ������". �������� ������������ �� ����������/���������� ����� (Pn) � ��������� ������������� ��������. n/a
n/aESCQFn'string'����������� ������ string �������������� ������� Fn. �������������� ������ ' � ' ����� ������ ����� �������, �� ������������� � ���� ������. �������������� ������� ���������� �� 0 �� 9 (F1=0, F2=1 � �.�.) n/a
n/aESC[Pnz
CSIPnz
Pn ������ ���� ����� ������ ������, �� ������� �������������� ������������. ����������� ������ � ��� ������, ���� ����� ��� ��������������� �� ����� ��������, � ��������� ������ �������� ������� �� �����.n/a

�����

/dev/console
/dev/tty[02-n]
/dev/color
/dev/monochrome
/dev/ega
/dev/vga

��. �����
console(5), ioctl(2), keyboard(HW), keymap(5), mapkey(8), mapchan(5), multiscreen(5), setcolor(1), stty(1), systty(5), vidi(1), termcap(5), tty(5)
Comments: [email protected]
Designed by Andrey Novikov
Copyright © CIT