PCVT(4)

명칭
pcvt, vt - PC 콘솔 가상 스크린 시스템

서식
options “ PCVT_FREEBSD = version | PCVT_NETBSD = version ”
[options “PCVT_NSCREENS = number”]
[options “PCVT_XXXX”] ( 설정 의 항목을 참조해 주세요.)

device vt0 at isa? tty

설명

  개요
pcvt 드라이버는, 전통적인 콘솔 드라이버에는 없는 몇개의 기능을 가진 가상 스크린 시스템을 제공합니다. 복수의 가상 스크린을 취급할 수 있는 것 외에 아마 가장 중요한 것은 광범위하게 걸친다 DEC VT-220 (TM) 에뮬레이션입니다. 자세한 것은 특징 의 항목을 참조해 주세요.

pcvt 드라이버를 사용하려면 atkbd 키보드 드라이버가 커널로 설정되어 있는 것이 필요합니다.

  특징

•   거의 완전한 DEC VT220 (TM) 의 기능 ( VT320 (TM) 에 이행중)

•   MDA/HGC/CGA/EGA 및 VGA 를 위한 완전하게 독립인 가상 단말.

•   각각의 가상 스크린에 대한 25, 28, 35, 40, 43 혹은 50x80 의 스크린 해상도.

•   각국의 키보드를 서포트하기 위한 , 완전하게 재MAP 가능한 키보드.

•   모든 VT220 캐릭터 집합에 가세해 ISO Latin-1 와 DEC technical 를 서포트.

•   EGA/VGA 사용시에 있어서의 VT220 의 다운로드 가능한 캐릭터 집합의 이용.

•   각각의 가상 단말에 대한 VT220 유저 정의 키.

•   Hewlett-Packard 의 옵셔널인 function key label의 서포트.

•   펑션 코드의 표시 기능.

•   MDA, CGA, EGA 및 VGA 디스플레이 어댑터의 서포트.

•   VGA 칩 세트에 있어서의 132 컬럼의 서포트.

•   XFree86 버젼 1.2 이상에서는 pccons 모델, 2.0 이상에서는 syscons 모델을 이용한 X 윈도우 시스템의 서포트 ( PCVT_USL_VT_COMPAT 하지만 설정되어 있는 것이 필요합니다)
할 수 없는 것:

•   2 배각 캐릭터는 취급할 수 없습니다.

•   softscroll 는 없습니다.

•   배경의 반전은 할 수 없습니다.

•   VT220 의 프린터 출력은 서포트하지 않습니다.

•   VT52 의 기능의 서포트는 전혀 없습니다.

•   8 비트 컨트롤은 사용할 수 없습니다.

•   AT 키보드 (84 키) 에 대해서는, (아직도) 한정된 서포트 밖에 없습니다.

•   돈을 버는 것을 도울 수 없습니다...

  설정
현재 pcvt 콘솔 드라이버는, Intel 베이스의 BSD operating system이다 NetBSD/i386 (릴리스 0.9 이상) 및 FreeBSD (릴리스 1.0-GAMMA 이상) 그리고 이용할 수 있습니다. 시스템으로부터의 적절한 서포트를 얻기 위해서(때문에), PCVT_NETBSD 또는 PCVT_FREEBSD 중 어느 쪽인가의 옵션을 시스템의 설정 파일로 지정하지 않으면 안됩니다 (config(8) 을 참조해 주세요) 한층 더 FreeBSD 및 NetBSD 그럼, 이러한 옵션에 operating system의 버젼 번호를 설정할 필요가 있습니다. FreeBSD 그럼, 버젼 번호를 3 자리수의 숫자로 표현하지 않으면 안됩니다. 예를 들면, 1.0 release (실제로는 버젼 1.0. 2) (을)를 사용하고 있다면, PCVT_FREEBSD = 102 (와)과 같이 정의하지 않으면 안됩니다. NetBSD 그럼, NetBSD 0.9 의 경우, 이 버젼 번호는 9 로 표현되지 않으면 안되어, NetBSD-current (1.0 이전)의 경우는 9 보다 큰 임의의 값이 됩니다. NetBSD 1.0의 경우는 ( FreeBSD (와)과 같게) 100 을, NetBSD-current 에서는 999 를 사용하는 것이 추천 됩니다. 예를 들면 NetBSD 1.0 release 의 경우, PCVT_NETBSD = 100 (와)과 정의해야 합니다. pcvt 드라이버는, 모든 사람의 요구를 만족시키기 (위해)때문에, 고도로 설정 가능하도록 설계되어 왔습니다. 바람직한 설정 방법법은, 아마 기본값을 덧쓰기하는 것 같은 형태로, 설정 파일에 적절한 options 행을 기입하는 것입니다. 이렇게 하는 것으로, 각각 다른 행동을 한다 드라이버를 가지는 별개의 커널을 1 대의 머신상에서 컴파일 하는 것이 가능합니다. 이용 가능한 설정 옵션의 통람을 다음의 리스트에 나타냅니다. 자세한 것은 커널 소스 트리의 i386/isa/pcvt/pcvt_hdr.h (을)를 참조해 주세요. 노트: 모든 불리언 값 옵션에 대해, 다음과 같은 약속을 합니다. 만약 있는 옵션이 값없이 주어졌을 경우, 1 이라고 하는 값 (유효) (이)가 됩니다. 옵션치로서 0 이 주어졌을 경우, 그 옵션은 무효가 됩니다. 그 이외의 값으로는 1 이 됩니다. 옵션이 생략 되었을 경우, 디폴트의 동작이 가정됩니다.
PCVT_NSCREENS
    가상 스크린의 수를 정의합니다.
    디폴트: 8
PCVT_VT220KEYB
    유효하게 하면(자), DEC VT200 (TM)를 닮은 키보드 레이아웃이 생성됩니다. 무효 상태에서는, VT220 와 HP 의 혼성이 사용됩니다. 완전한 설명은, pcvt 의 문서 디렉토리에 있다 Keyboard.VT 및 Keyboard.HP 그렇다고 하는 파일을 참조해 주세요.
    디폴트: 오프
PCVT_SCREENSAVER
    내장 화면 보호기의 기능을 유효하게 합니다.
    디폴트: 온
PCVT_PRETTYSCRNS
    유효 상태에서는, 별이 점멸하는 화면 보호기가 사용됩니다. 무효로 하면(자), 스크린은 단순하게 암전합니다 (이것은 전력 절약 모니터에 대해서 유용하겠지요)
    디폴트: 온
PCVT_CTRL_ALT_DEL
    유효하게 하면(자), <Ctrl> <Alt> <Del> 그렇다고 하는 키의 조합으로 CPU 를 리셋트 합니다.
    디폴트: 오프
PCVT_USEKBDSEC
    키보드에 대한 보안 락을 오바라이드 하지 않습니다.
    디폴트: 온
PCVT_24LINESDEF
    유효하게 하면(자), 오리지날의 DEC VT220 (TM)에 대해서 호환성을 높이는 목적 (을) 위해서만, 디폴트의 25 행 모드로부터 24 행 모드로 합니다. ( VT 에뮬레이션은 25 행으로, HP 에뮬레이션은 28 행입니다) 따라서, 특히 변경을 하지 않아도, 그러한 단말을 위한 단말 정보를 이용한다 일이 생기겠지요. 이것은 스타트 업 옵션인 것에 주의해 주세요. scon(1) 유틸리티로 24 행 모드와 25 행 모드를 바꿀 수가 있습니다.
    디폴트: 오프
PCVT_EMU_MOUSE
    키패드 경유로 3 버튼 마우스를 에뮤레이트 합니다. 노트북으로 XFree86 를 사용할 때에 편리합니다. 후술의 마우스 에뮬레이션 의 항목을 참조해 주세요.
    디폴트: 오프
PCVT_META_ESC
    유효하게 하면(자), <Alt> 키와 함께 밀린 키는, <esc> 에 의해 구성되는 순차 순서의 뒤에, 통상의 키코드를 생성합니다. 무효 상태에서는, 통상의 키코드에 0x80 (을)를 가산한 것이 보내집니다.
    디폴트: 오프
주로 디버그나 하드웨어의 문제에 대처하기 위해서, 한층 더 옵션이 준비되어 있습니다. i386/isa/pcvt/pcvt_hdr.h 에 설명이 있습니다.

  내부 기능
pcvt 드라이버에 관련하는 디바이스 노드상의 오픈 파일 기술자를 이라고도 되어 ioctl(2) 시스템 콜을 부르는 것으로, 이하에 말하는 것 같은 기능에 액세스 할 수가 있습니다. 그것들을 이용하기 위해서는, 프로그램은 다음의 행을 포함할 필요가 있습니다:
    #include <machine/pcvt_ioctl.h>
이하에 인용된 파라미터의 정의는, 이 파일안에 찾아낼 수가 있겠지요. 키보드에 관련하는 기능 기본적인 키보드의 하드웨어에 관계하는 기능이 3 개 있습니다.
KBDRESET
    키보드를 리셋트 해, 기본값을 설정합니다.
KBDGTPMAT
    현재의 키 반복에 관한 값을 취득합니다. 파라미터는 값을 격납하는 int 형 변수에의 포인터입니다.
KBDSTPMAT
    현재의 키 반복에 관한 값을 설정합니다. 파라미터는 위의 명령와 같습니다.
적절한 정수를 나타내는 심볼치를 이용할 수 있습니다. 키 반복 지연 시간의 초기치를 지정하는 것은, 250 밀리 세컨드를 나타내는 KBD_TPD250 로부터, 1000 밀리 세컨드를 나타내는 KBD_TPD1000 까지의 250 밀리 세컨드 잘게 썰기의 값입니다. 키 반복 속도는, 매초 30.0 캐릭터를 나타내는 KBD_TPM300 로부터, 매초 2.0 캐릭터를 나타내는 KBD_TPM20 까지의 값이 있습니다. 중간치는, 매초 30.0, 26.7, 24.0, 21.8, 20.0, 18.5, 17.1, 16.0, 15.0, 13.3, 12.0, 10.9, 10.0, 9.2, 8.6, 8.0, 7.5, 6.7, 6.0, 5.5, 5.0, 4.6, 4.3, 4.0, 3.7, 3.3, 3.0, 2.7, 2.5, 2.3, 2.1, 2.0 캐릭터를 지정할 수 있습니다.
KBDGREPSW
    키 반복 스윗치의 값을 취득합니다.
KBDSREPSW
    키 반복 스윗치의 값을 설정합니다.
이것들도 값을 격납하는 int 형 변수에의 포인터를 파라미터로서 받아, 드라이버 내부의 키 반복 플래그를 조작합니다. 가능한 값은 KBD_REPEATOFF 혹은 KBD_REPEATON 입니다.
KBDGLEDS
    LED 상태를 취득합니다.
KBDSLEDS
    LED 상태를 설정해, 키보드의 인디케이터(indicator)를 조작합니다. 다만, 드라이버가 보관 유지하는 키의 락 상태에는 영향을 주지 않습니다.
인수인 포인터가 가리키는 int 형 변수는 KBD_SCROLLLOCK, KBD_NUMLOCK, KBD_CAPSLOCK 그렇다고 하는 값을 받아, 이것들은 논리합의 편성의 형태로 사용되겠지요.
KBDGLOCK
    SCROLL, NUM, CAPS 상태를 취득합니다.
KBDSLOCK
    SCROLL, NUM, CAPS 및 LED 상태를 설정합니다.
이것들도, 드라이버가 가지는 LED 플래그 상태를 설정하거나 취득하거나 하는 것과 같은 방법으로 사용되어야 합니다. 키보드의 재MAP pcvt 드라이버의 중요한 기능의 하나로서, 내장의 키 정의를 재정의할 수 있는 기능이 있습니다.
KBDGCKEY
    현재의 키의 값을 취득합니다.
KBDSCKEY
    새로운 키 할당치를 설정합니다.
KBDGOKEY
    오리지날의 키 할당치를 취득합니다.
이것들이 그 기능을 구성합니다. 이것들은 다음에 말한다 struct kbd_ovlkey 에의 포인터를 인수로서 받습니다. 더해, 다음과 같은 함수가 있습니다.
KBDRMKEY
    키 할당을 해제합니다. 대상이 되는 키 번호를 보관 유지하는 int 형 변수에의 포인터를 받습니다.
KBDDEFAULT
    모든 키 할당을 해제합니다.

    struct kbd_ovlkey                /* 키의 완전한 정의 */
    {
        u_short keynum;                      /* 키 그 자체 */
        u_short type;                        /* 키의 타입. 이하를 참조.  */
        u_char  subu;                        /* 아류형. 기입시에는 무시된다.  */
        char    unshift[KBDMAXOVLKEYSIZE+1]; /* 비 shift 시에 생성되는 캐릭터 라인.  */
        u_char  subs;                        /* 아류형. 기입시에는 무시된다.  */
        char    shift[KBDMAXOVLKEYSIZE+1];   /* shift 시에 생성되는 캐릭터 라인.  */
        u_char  subc;                        /* 아류형. 기입시에는 무시된다.  */
        char    ctrl[KBDMAXOVLKEYSIZE+1];    /* control 시에 생성되는 캐릭터 라인.  */
        u_char  suba;                        /* 아류형. 기입시에는 무시된다.  */
        char    altgr[KBDMAXOVLKEYSIZE+1];   /* altgr 시에 생성되는 캐릭터 라인.  */
    };

type 필드의 적절한 값은 다음과 같습니다.
KBD_NONE
    기능 없음. 키는 무효.
KBD_SHIFT
    키보드 쉬프트.
KBD_META
    오르타네이트시후트. ASCII 코드의 8 비트째를 세트.
KBD_NUM
    숫자 쉬프트. 숫자 키패드 모드 및 어플리케이션 모드.
KBD_CTL
    컨트롤 코드의 생성.
KBD_CAPS
    CAPS 쉬프트. 대문자 소문자를 바꿔 넣는다.
KBD_ASCII
    ASCII 코드를 생성하는 키.
KBD_SCROLL
    출력을 정지한다.
KBD_FUNC
    function key.
KBD_KP
    키패드 키.
KBD_BREAK
    무시된다.
KBD_ALTGR
    AltGr 변환 기능.
KBD_SHFTLOCK
    쉬프트 락.
KBD_CURSOR
    커서 키
KBD_RETURN
    “Return” 혹은 “Enter” 키.
아류형 필드는 다음 중 어떤 것이나 1 개의 값을 보관 유지합니다.
KBD_SUBT_STR
    키는 캐릭터 라인에 연결시킬 수 있고 있습니다.
KBD_SUBT_FNC
    키는 기능에 연결시킬 수 있고 있습니다.
마우스 에뮬레이션 마우스 에뮬레이터는 (만약 설정되어 있으면) Mouse Systems 프로토콜을 사용해 3 버튼 마우스의 모습을 합니다. 가상 스크린에 의해 사용되지 않은, 최초의 pcvt 디바이스 노드가 마우스 디바이스입니다. 예를 들면, 기본값인 8 개의 가상 스크린의 경우, /dev/ttyv0 (으)로부터 /dev/ttyv7 까지가 가상 스크린을 나타내, /dev/ttyv8 하지만 마우스 에뮬레이터 디바이스가 되겠지요. 마우스 에뮬레이션은 <NumLock> 키를 누르는 것으로 온이 됩니다. 마우스 포인터는 숫자 키패드에 의해, 그 키가 가리킬 방향에 움직입니다. 초는 1 스텝씩 움직여, 조정 가능한 시간 (디폴트는 500 밀리 세컨드) 의 후, 약 6 배까지 가속합니다. mouse button는 3 개의 통상의 키에 의해 에뮤레이트 되어 디폴트에서는 이것들은 <F1>, <F2>, 및 <F3> 의 function key에 할당할 수 있고 있습니다. 여기서 2 종류의 동작을 선택할 수 있는: 통상 버튼과 “stickey” 버튼입니다. 통상 버튼은, 기대 그대로의 행동을 합니다. “stickey” 버튼은, 최초의 압하 때에, 밀리고 있는 것이 통지되어 그 키가 한번 더 밀리는지, 다른 버튼을 에뮤레이트 하고 있는 키가 밀릴 때까지, “밀린 채로” 상태가 되어 있습니다. 버튼의 압하와 리 하지는, PC 내장 스피커에 의해, 각각 “피릭” (이)라든지 “피록” 그렇다고 하는 소리로 유저에게 통지됩니다. 다음의 명령에 의해, 에뮬레이션을 제어합니다.
KBDMOUSEGET
    현재의 정의를 취득합니다.
KBDMOUSESET
    새로운 정의를 설정합니다.
어느쪽이나 mousedefs 구조체에의 포인터를 ioctl 호출시의 3 번째의 인수로서 받습니다:

    struct mousedefs {
        int leftbutton;    /* "왼쪽 버튼" 의 키에 대응하는 (PC) 스캔 코드 */
        int middlebutton;  /* "중 버튼" 의 키에 대응하는 (PC) 스캔 코드 */
        int rightbutton;   /* "오른쪽 버튼" 의 키에 대응하는 (PC) 스캔 코드 */
        int stickybuttons; /* 진이라면 "sticky" 이다.  */
        int acceltime;     /* 마우스 포인터가 가속하기 시작할 때까지의 마이크로 세컨드 단위의 시간 */
        /* 기본값: scan(F1), scan(F2), scan(F3), 가짜, 500000     */
    };

다운로드 가능한 캐릭터 집합의 인터페이스 EGA 및 VGA 비디오 아답터는, 다운로드 가능한 소프트웨어 폰트를 취급할 수가 있습니다. 어느 IBM 호환 PC 비디오 보드의 ‘네이티브인 캐릭터 집합’ 도, DEC 다국적 캐릭터 집합이나 ISO Latin-1 (ISO 8859-1) 의 완전한 표현은 불가능해서, 이것은 U**X 환경에 있어 유용합니다.
VGASETFONTATTR
    폰트 속성을 설정합니다.
VGAGETFONTATTR
    폰트 속성을 취득합니다.
이것들은 다운로드 폰트에 관한 정보를 취급합니다. struct vgafontattr 에의 포인터를 인수로서 취합니다:

    struct vgafontattr {
        int character_set;          /* VGA 캐릭터 집합 */
        int font_loaded;            /* 폰트가 로드 되고 있을까되어 있지 않은가의 마크 */
        int screen_size;            /* 스크린 당의 행수 */
        int character_scanlines;    /* 캐릭터 당의 스캔 라인수 - 1 */
        int screen_scanlines;       /* 스크린 당의 스캔 라인수 - 1 바이트 */
    };

각각의 폰트의 각각의 캐릭터는, 다음의 함수에 의해 다운로드됩니다.
VGALOADCHAR
    vga 캐릭터를 로드한다.
struct vgaloadchar 에의 포인터를 인수로서 취합니다:

    struct vgaloadchar {
        int character_set;       /* 로드하는 VGA 캐릭터 집합 */
        int character;           /* 로드하는 캐릭터 */
        int character_scanlines; /* 캐릭터의 스캔 라인수 */
        u_char char_table[32];   /* VGA 캐릭터의 형태의 테이블 */
    };

EGA 혹은 VGA 에 대해, character_set 필드는 CH_SET0, CH_SET1, CH_SET2, CH_SET3 라고 하는 값을 취합니다. VGA 에서는, 최대 8 개의 폰트를 로드해 가지는 것이 할 수 있기 때문에, CH_SET4, CH_SET5, CH_SET6, CH_SET7 라고 하는 값도 취할 수가 있습니다. font size라고 표시 가능한 스크린의 (행 단위의) 높이의 관계는, 사용되는 비디오 카드에 의존하는 것에 주의해 주세요:

    스크린의 크기 (행의 수)   EGA             VGA
    font size
    8 x 8                         43              50
    8 x 10                        35              40
    8 x 14                        25              28
    8 x 16                        이용 불가        25

일반적인 스크린 조작 명령
VGACURSOR
    커서의 형태를 설정합니다.
이하의 구조체에의 포인터를 인수로서 취합니다:

    struct cursorshape {
        int screen_no; /* 설정하는 스크린 번호.                           */
                       /* -1 (은)는 현재의 액티브한 스크린.                */
        int start;     /* 탑 스캔 라인. 0 으로부터 캐릭터의 높이 -1 의 범위 */
        int end;       /* 엔드 스캔 라인. 0 으로부터 캐릭터의 높이 -1 의 범위 */
    };

VGASETSCREEN
    스크린의 정보를 설정합니다.
VGAGETSCREEN
    스크린의 정보를 취득합니다.
이것들은, 몇개의 일반적인 드라이버 내부 변수에의 인터페이스를 제공합니다. 그러한 내부 변수는, 스크린의 행동을 변경하거나 단지 드라이버를 있는 하나의 스크린에 강제적으로 바꾸거나 하는 것입니다. 이하의 구조체에의 포인터를 인수로서 취합니다:

    struct screeninfo {
        int adaptor_type;   /* 인스톨 되고 있는 비디오 아답터의 */
                            /* 타입.                                */
                            /* 독해 전용. 기입시는 (아직도! ) 무  */
                            /* 시 됩니다.                            */
        int totalfonts;     /* 다운로드 가능한 폰트의 수.        */
                            /* 독해 전용. 기입시는 무시   */
                            /*.                                    */
        int totalscreens;   /* 가상 스크린의 수.                    */
                            /* 독해 전용. 기입시는 무시   */
                            /*.                                    */
        int screen_no;      /* 구조체의 정보를 취득한 스크린 번호.  */
                            /* 기입시에 -1 라면 pure_vt_mode    */
                            /* 또는/한편  screen_size 를 현재의 스크  */
                            /* 린에 적용해, 그 이외라면 주어지고 */
                            /* screen_no 의 스크린에 적용합니다. */
        int current_screen; /* 현재 표시되고 있는 스크린 번호.      */
                            /* 기입시에 -1 라면 현재 표시되고 있고 */
                            /* 스크린을 경향 스크린으로 해, */
                            /* 그 이외라면 현재 표시되고 있는 스크리 */
                            /* 를 파라미터의 스크린에 변환 */
                            /*.                                    */
        int pure_vt_mode;   /* 순수한 VT 모드나 HP/VT 모드인지를 겉(표)  */
                            /* 플래그.                              */
                            /* 기입시에 -1 라면 변경하지 않습니다.    */
        int screen_size;    /* 스크린 사이즈.                      */
                            /* 기입시에 -1 라면 변경하지 않습니다.    */
        int force_24lines;  /* 순수한 VT220 의 스크린 사이즈를 얻는다  */
                            /* 위해(때문에) 25 라인 VT 모드인가,         */
                            /* 28 라인 HP 모드의 경우에 24 라인  */
                            /* (을)를 강제합니다.                          */
                            /* 기입시에 -1 라면 변경선.      */
        int vga_family;     /* adaptor_type 가 VGA 라면, 독해 후 */
                            /* 칩 세트 패밀리를 반영하고 있습니다.  */
                            /* 기입시에는 아무것도 일어나지 않습니다...      */
        int vga_type;       /* adaptor_type 가 VGA 라면, 독해 후 */
                            /* 칩 세트를 반영하고 있습니다.          */
                            /* 기입시에는 아무것도 일어나지 않습니다...      */
        int vga_132;        /* 드라이버가 132 컬럼을 서포트하고 있고  */
                            /* 경우, 1 이 설정됩니다.              */
                            /* 현재, 기입시에는 무시됩니다.      */
    };

pure_vt_mode 필드는, function key label와 스테이터스 라인을 수반한다 VTxxx 와 HP Mode 의 혼성에 대해서는 M_HPVT 라고 하는 값을 받아, label를 수반하지 않는 VTxxx 순차 순서만이 인식되는 것에 대해서는 M_PUREVT 를 취합니다.
VGASETCOLMS
    현재의 스크린에 대해서 컬럼의 수를 설정합니다.
이것의 파라미터는, 80 혹은 132 의 어느 쪽인가의치를 보관 유지한다 int 형 변수에의 포인터입니다. 컬럼수 132 가 서포트되는 것은 VGA 어댑터 사용시만입니다. 서포트되지 않는 컬럼수에서는 ioctl 는 실패해, errno (intro(2) 를 참조) 에 EINVAL 하지만 설정됩니다. VGA 칼라 팔레트 인터페이스 VGA 어댑터에 대해서만, 출력에 칼라 팔레트 레지스터가 존재합니다. 256 종류의 내부 칼라 코드의 각각 대하는 적, 초록, 파랑의 출력전압을 보관 유지해, 0 에서 63 까지의 값을 받습니다 (63 은 베이스 칼라에 대해 무엇보다 명구 되는 값입니다). 즉, 이러한 어댑터는 각각의 칼라 코드를, 262144 색중에서 꺼냈다 “팔레트” 의 색에 MAP 합니다.
VGAREADPEL
    VGA 팔레트 엔트리를 읽어냅니다.
VGAWRITEPEL
    VGA 팔레트 엔트리에 기입합니다.
이러한 명령은, 팔레트 레지스터에 대한 인터페이스를 확립합니다. 인수는 이하의 구조체에의 포인터입니다:

    struct vgapel {
        unsigned idx;      /* 팔레트에의 인데크스. 0 에서 255 가 유효.  */
        unsigned r, g, b;  /* RGB 의 값. VGA_PMASK (63)로 마스크 된다.    */
    };

드라이버의 판별
VGAPCVTID
    현재 드라이버안에 컴파일 되고 있는 것이 pcvt 인지 어떤지의 정보와 그 메이저 리버젼 및 마이너 리버젼 번호를 돌려줍니다. 인수로서 이하의 구조체에의 포인터를 취합니다:

    struct pcvtid {
    #define PCVTIDNAMELN  16        /* 드라이버 ID - 캐릭터 라인의 길이  */
        char name[PCVTIDNAMELN];    /* 드라이버의 이름 == PCVTIDSTR */
    #define PCVTIDNAME    "pcvt"    /* 드라이버 ID - 캐릭터 라인        */
        int rmajor;	                /* 메이저 리버젼 번호      */
    #define PCVTIDMAJOR   3
        int rminor;                 /* 마이너 리버젼 번호      */
    #define PCVTIDMINOR   00
    };

VGAPCVTINFO
    현재 드라이버안에 컴파일 되고 있는 것이 pcvt 인지 어떤지의 정보와 그 컴파일시 옵션을 돌려줍니다. 인수로서 이하의 구조체에의 포인터를 취합니다:

    struct pcvtinfo {
        u_int opsys;            /* PCVT_xxx(x) BSD */
    #define CONF_UNKNOWNOPSYS	0
    #define CONF_386BSD     1   /* 서포트되고 있지 않습니다 !!! */
    #define CONF_NETBSD     2
    #define CONF_FREEBSD    3
        u_int opsysrel;         /* NetBSD/FreeBSD 에 대한 릴리스 */
        u_int nscreens;         /* PCVT_NSCREENS */
        u_int scanset;          /* PCVT_SCANSET */
        u_int updatefast;       /* PCVT_UPDATEFAST */
        u_int updateslow;       /* PCVT_UPDATESLOW */
        u_int sysbeepf;         /* PCVT_SYSBEEPF */
        u_int pcburst;          /* PCVT_PCBURST */
        u_int kbd_fifo_sz;      /* PCVT_KBD_FIFO_SZ */
    /* 설정 불리언 값 */
        u_long compile_opts;		/* PCVT_xxxxxxxxxxxxxxx */
    };

화면 보호기 pcvt 의 설정에 따라서는, 심플한 화면 보호기를 이용할 수 있을지도 모릅니다. 이것은 다음의 명령에 의해 제어합니다.
VGASCREENSAVER
    화면 보호기의 타임 아웃을 초단위로 설정합니다. 0 은 화면 보호기를 오프로 합니다.
이것은 정수에의 포인터를 인수로서 취합니다. 명령의 이름과는 관계없이, config(8) 의 “PCVT_SCREENSAVER” 옵션에 의해 설정되어 있으면, 어떠한 종류의 어댑터로도 이용할 수 있습니다. USL 스타일 VT 를 위한 호환 명령 이 pcvt 드라이버의 릴리스 3.00 에서는, 가상 단말 인터페이스를 제어하는데 사용된다 USL 스타일의 명령의 부분집합을 서포트합니다. 이 기능은, 주로 XFree86 의 릴리스 2.0 이후로, X 서버가 움직이고 있을 때에도 가상 스크린을 바꿀 수가 있도록(듯이)와 의도되고 있습니다. 그것들은, 암묵의 시멘틱스에 관해서 추악하고 (즉, Berkeley 시멘틱스를 찢고 있습니다) , 따라 일반적인 이용에 대해서는 추천 되지 않습니다. 그러한 다큐멘테이션에 대해서는, i386/include/pcvt_ioctl.h (을)를 참조해 주세요.

파일

/usr/include/machine/pcvt_ioctl.h
    ioctl(2) 함수 호출을 위한 정의.

/dev/ttyv?

/dev/console
    pcvt 드라이버에 액세스하기 위한 디바이스 노드.

i386/isa/pcvt/pcvt_hdr.h
    (커널 소스 트리에 대한 상대 패스) pcvt (을)를 짓기 위한 여러가지 컴파일시 옵션에 대해 쓰여져 있습니다.

역사
pcvt 드라이버는 386BSD 릴리스 0.1 을 위해서(때문에) 개발되어 제공되어 왔습니다. 릴리스 3.00 으로부터, NetBSD 0.9 에 대한 명시적인 서포트가 제공되고 있습니다. 릴리스 3.00 이후는, pcvt 에 대해 386BSD 0.1 향해의 새로운 개발은 없다고 예상되어 실제, 릴리스 3.20 에서는 386BSD 의 서포트는 중지되었습니다.

저자
Brian Dunford-Shore <brian@morpheus.wustl.edu> 및
Joerg Wunsch <joerg_wunsch@uriah.sax.de> 들의 협력 아래,
Hellmuth Michaelis <hm@hcshh.hcs.de> 에 의해 쓰여졌습니다.
이 드라이버는 몇사람에 의해 된 성과를 바탕으로 하고 있습니다. 특히, William Jolitz' (와)과 Don Ahn's <ljolitz@cardio.ucsf.edu> 에 의한 역사적인 pccons(4) 의 실장, 및 Holger Veit <veit@first.gmd.de> 에 의한 키보드 MAP의 코드에 달려 있습니다.

관련 항목
intro(2), ioctl(2), atkbd(4), keyboard(4), screen(4), config(8), ispcvt(8)

버그
물론 존재합니다. 최신의 버그 리스트는, 문서 디렉토리의 BugList 파일을 참조해 주세요.

  검증 끝난 비디오 보드

    제조자 칩 세트 모니터
    2theMax (? )                     ET4000                  VGA Color
    Video7 Inc.                      Video 7                 VGA Color
    Diamond Stealth VRAM            S3                      NEC 3FGx
    Trident                         TVGA 8800CS             NEC 3D
    Data General                    C&T P82C604             VGA Color
    NoName Hercules                 W86855AF                Mono
    Kyocera (Mainboard)		WD90C11			Sony Color
    unknown				ET3000			NEC 3D

  검증 끝난 키보드

    제조자 타입 레이아웃
    Cherry                          MF II                   US
    Cherry/Tandon                   MF II                   German
    Hewlett-Packard                 MF II                   US
    Hewlett-Packard                 MF II                   German
    Tatung                          AT                      German

낡은 PC 키보드는 전혀 서포트되고 있지 않습니다 (그것들은 83 개의 키가 있습니다) F9 로부터 F12 까지는 기능의 제어를 위해서(때문에) 에뮬레이터가 필요로 하고 있으므로, AT 키보드 (84 개의 키와 그것과는 다른 숫자 키패드가 있어, F11 와 F12 는 없습니다) 에 대한 서포트는 제한되고 있습니다. 또 현재의 키보드 드라이버의 설계의 것이기 때문에 ALtGr 키를 가지지 않는 각국의 키보드에 대한다 (완전한) 서포트는 없습니다. MF 키보드는, 101 키 및 102 키의 버젼에 붙어 완전하게 서포트되고 있습니다.