スポンサーリンク

PCVT(4) FreeBSD/i386 カーネルインタフェースマニュアル 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 の スクリーン解像度。

各国のキーボードをサポートするための、完全に再マップ可能なキーボー ド。

すべての VT220 文字集合に加え、ISO Latin-1 と DEC technical をサポー ト。

EGA/VGA 使用時における VT220 のダウンロード可能な文字集合の利用。

それぞれの仮想端末に対する VT220 ユーザ定義キー。

Hewlett-Packard のオプショナルなファンクションキーラベルのサポート。

ファンクションコードの表示機能。

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 オペレーティングシス テムである NetBSD/i386 (リリース 0.9 以上) および FreeBSD (リリース 1.0-GAMMA 以上) で利用できます。システムからの適切なサポートを得るため に、 PCVT_NETBSD または PCVT_FREEBSD のうちどちらかのオプションをシステム の設定ファイルで指定しなければなりません (config(8) を参照してください) 。さらに FreeBSD および NetBSD では、これらのオプションにオペレーティング システムのバージョン番号を設定する必要があります。 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 の状態を設定し、キーボードのインジケータ を操作します。ただし、ドライバが保持するキー のロック状態には影響しません。

引数であるポインタの指す int 型変数は KBD_SCROLLLOCK, KBD_NUMLOCK, KBD_CAPSLOCK という値をとり、これらは論理和の組み合わせの形で使われるで しょう。

KBDGLOCK
SCROLL,NUM,CAPS の状態を取得します。
KBDSLOCK
SCROLL,NUM,CAPS および LED の状態を設定しま す。

これらも、ドライバが持つ LED フラグの状態を設定したり取得したりするのと同 じ方法で使われるべきです。

キーボードの再マップ

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
ファンクションキー。
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 倍まで加速します。マウスボタンは 3 つの通常のキーによりエミュ レートされ、デフォルトではこれらは ⟨F1⟩, ⟨F2⟩, および ⟨F3⟩ のファンクショ ンキーに割り当てられています。ここで 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 という値 もとることができます。

フォントサイズと、表示可能なスクリーンの (行単位の) 高さの関係は、使われ るビデオカードに依存することに注意してください:

スクリーンの大きさ (行の数)   EGA             VGA
フォントサイズ

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 フィールドは、ファンクションキーラベルとステータスラインを伴 う VTxxx と HP Mode の混成に対しては M_HPVT という値を取り、ラベルを伴わ ない VTxxx シーケンスのみが認識されるものに対しては M_PUREVT を取ります。

             VGASETCOLMS

現在のスクリーンに対してカラムの数を設定しま す。

これのパラメータは、80 あるいは 132 のどちらかの値を保持する int 型変数へ のポインタです。カラム数 132 がサポートされるのは VGA アダプタ使用時のみ です。サポートされないカラム数では ioctl は失敗し、 errno (intro(2) を参 照) に EINVAL が設定されます。

VGA カラーパレットインタフェース

VGA アダプタにおいてのみ、出力にカラーパレットレジスタが存在します。 256 種類の内部カラーコードのそれぞれに対する 赤、緑、青の出力電圧を保持し、0 から 63 までの値を取ります (63 はベースカラーについてもっとも明くなる値で す)。すなわち、これらのアダプタはそれぞれのカラーコードを、 262144 色の中 から取り出した ‘‘パレット’’ の色へマップします。

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⟩ によるキーボードマップのコードによってい ます。

関連項目

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 キーのバージョンについて完全にサポー トされております。

FreeBSD 10.0 February 27, 1994 FreeBSD 10.0

スポンサーリンク