"SCREEN" 1 つに固定。
 nowait モードは意味を持たず、無視される。
システム立ち上げ時に以下の指定により起動される。
kerext screen [!優先度] (優先度省略時は 50)
以下の属性データをサポートする。
| R | 読み込みのみ可 | 
| W | 書き込みのみ可 | 
| RW | 読み込み / 書き込み可 | 
/* SCREEN データ番号 */
typedef enum {
    /* 共通属性 */
    DN_SCRSPEC    = DN_DISPSPEC,
    /* 個別属性 : -100〜-199 は汎用 */
    DN_SCRLIST    = -100,
    DN_SCRNO      = -101,
    DN_SCRCOLOR   = -102,
    DN_SCRBMP     = -103,
    DN_SCRBRIGHT  = -200,
    DN_SCRUPDFN   = -300,
    DN_SCRVFREQ   = -301,
    DN_SCRADJUST  = -302,
    DN_SCRDEVINFO = -303
} ScrDataNo;
DN_SCRSPEC :
     
data:   DEV_SPEC    devspec;
typedef struct {
    H   attr;       /* デバイス属性 */
    H   planes;     /* プレーン数 */
    H   pixbits;    /* ピクセルビット数 */
    H   hpixels;    /* 横のピクセル数 */
    H   vpixels;    /* 縦のピクセル数 */
    H   hres;       /* 横の解像度 */
    H   vres;       /* 縦の解像度 */
    H   color[4];   /* カラー情報 */
    H   resv[6];    /* 予約 */
} DEV_SPEC;
     現在設定されている表示モードにおけるデバイス仕様を取り出す
     ( DEV_SPEC に関しては DP の仕様
     gget_spc() を参照のこと)。
 DN_SCRLIST :
 
data:   TC  list[];
     サポートしている表示モード一覧を以下の形式で取り出す。
<区切り><表示モード><区切り><表示モード>.....<0><区切り> は、表示モード番号(1 〜 N < 256) で上位バイト = 0 ということで、表示モードを区切る。
DN_SCRNO :
 data: W scrno;現在の表示モード番号を設定、または取り出す。
DN_SCRLIST で取り出される表示モードに
        付けられている番号である。DN_SCRCOLOR :
 data: COLOR map[*]現在の表示モードにおけるカラーマップを設定、または取り出す。
DEV_SPEC.attr.P = 0 のときは、カラーマップは適用されない。COLOR に関しては
     BTRON3 仕様書「第2編 OS 仕様 2.2.3 カラー表現」を参照のこと)。
     エントリの最大数は、DEV_SPEC のプレーン数×ピクセルビット数
     で決まるが、実際にはそれより少ない場合もある。
 DN_SCRBMP :
 data: BMP devbmp;現在の表示モードにおける、デバイス固有イメージ領域 ( ビットマップ ) に関する情報を取り出す。
devbmp.baseaddr[*] がイメージ領域のメモリを指し、この領域に
     DP が直接アクセスすることができる(ただし、一般の
     アプリケーションから直接アクセスしてはいけない)。
     デバイス固有イメージ領域は、DEV_SPEC.attr.M = 1 のときのみ存在する。
 DN_SCRBRIGHT :
 data: W brightness;現在の表示モードにおける、スクリーンの明るさを設定、 または取り出す。
DN_SCRUPDFN :
 
data    FP  updfn(W x, W y, W dx, W dy)
        x: X 座標値, y: Y 座標値, dx: X 幅, dy: Y 幅
     デバイス固有イメージ領域の内容を更新した場合に、
     どの領域を更新したかを通知する関数ポインタを取り出す。NULL
     でないときは、デバイス固有イメージ領域の内容を更新した時点で、
     この関数を直接呼び出す。
     したがって、この関数は、DP から直接呼び出せなくてはいけない。devbmp.bounds をはみ出す場合は、
     はみ出した部分は無視される。DN_SCRVFREQ :
 data: W vfreq;現在の表示モードにおけるモニタの垂直周波数(リフレッシュレート)を設定、 または取り出す。
vfreq <= 0 は不明を意味する。vfreq <= 0 は無視される。DN_SCRADJUST :
 
data:   ScrAdjust   adj;
typedef struct {
    UH  left;   /* 左ブランクドット数(8 の倍数) */
    UH  hsync;  /* 水平シンクドット数(8 の倍数) */
    UH  right;  /* 右ブランクドット数(8 の倍数) */
    UH  top;    /* 上ブランクドット数 */
    UH  vsync;  /* 垂直シンクドット数 */
    UH  bottom; /* 下ブランクドット数 */
} ScrAdjust;
     現在設定されている表示モードにおける、モニタのタイミング
     調整パラメータを設定、または取り出す。
  
left + right + hsync を大きくすると表示領域の幅は小 left + right + hsync を小さくすると表示領域の幅は大 top + bottom + vsync を大きくすると表示領域の高さは小 top + bottom + vsync を小さくすると表示領域の高さは大 left, right の値の調整で表示領域は左右に移動 top, bottom の値の調整で表示領域は上下に移動
left, hsync, right は 8 ドット単位。
     DN_SCRDEVINFO :
     
data:   ScrDevInfo  info;
typedef struct {
    UB  name1[32];      /* 名称-1 (ASCII) */
    UB  name2[32];      /* 名称-2 (ASCII) */
    UB  name3[32];      /* 名称-3 (ASCII) */
    VP  framebuf_addr;  /* フレームバッファアドレス */
    W   framebuf_size;  /* フレームバッファサイズ */
    W   mainmem_size;   /* 主メモリサイズ */
    UB  reserved[28];   /* 予約 */
} ScrDevInfo;
        ディスプレイのハードウェアに関する情報を取り出す。name1, name2, name3 はハードウェアに関する情報を 
     ASCII コードで示したもので、32 文字に満たない部分は 0 パッドされる。framebuf_addr は ( リニア ) フレームバッファの物理アドレスを示し、
     ( リニア ) フレームバッファが使用されていないときは NULL となる。
     表示モードによりアドレスは異なる場合がある。framebuf_size はハードウェアで実装されているフレームバッファのバイトサイズを示す。
     実際に使用されるフレームバッファのサイズではなく、全体のサイズである。mainmem_size は、フレームバッファとして使用されている主メモリサイズを示す。
なし
OPEN | 特に何もしない。 ハードウェアの初期化はドライバ起動時に行われる。  | 
CLOSE, CLOSEALL | 特に何もしない。 | 
ABORT | 特に何もしない(待ちに入ることはないため) | 
READ / WRITE | (上記参照) | 
SUSPEND / RESUME | 特に何もしない。 または、ハードウェアに依存した処理。  | 
なし
デバイスドライバ共通仕様を参照のこと。
  ハードウェアや表示モードによってサポートされていない属性データに関しては、ER_NOSPT を戻す。
以下の機能はサポートしていない。
DN_SCRNO (表示モード) の設定
 DN_SCRBRIGHT (スクリーンの明るさ)
 DN_SCRADJUST (モニタのタイミング調整)
以下の機能は、ディスプレイのハードウェアや表示モードによってはサポートしていない。( VESA BIOS 3.0 の場合は基本的にサポートされる。)
DN_SCRVFREQ (モニタの垂直周波数)
| Hsize | 640 | 800 | 1024 | 1152 | 1280 | 1600 | 800 | 1024 | 
|---|---|---|---|---|---|---|---|---|
| Vsize | 480 | 600 | 768 | 864 | 1024 | 1200 | 480 | 480 | 
| 16 | 33 | 36(*1) | - | - | - | - | - | - | 
| 256 | 1 | 4 | 7 | 10 | 13 | 16 | 19 | 22 | 
| 65536[5-6-5] | 2 | 5 | 8 | 11 | 14 | 17 | 20 | 23 | 
| 16777K[8-8-8] | 3 | 6 | 9 | 12 | 15 | 18 | 21 | 24 | 
| 100 | : VGA 6A モード | 
| 164 | : VGA 58 モード | 
| 228 | : VGA 29 モード | 
表示モードの設定は (VESA) BIOS を利用しており、 システム起動時にのみ可能なため、属性データとして動的に設定する機能はサポートしていない。
  表示モードは、DEVCONF ファイルに設定され、
  システム起動時のブート処理とスクリーンドライバが協調して、
  (VESA) BIOS を使用して行っている。
ブート時に取り出した表示モードに関連する情報は、 システムの BIOS データ 領域に保存され、 スクリーンドライバではそれを参照している。
  ディスプレイのハードウェアで用意しているフレームバッファ ( VRAM ) を
  直接利用することができない場合、主メモリ上に仮想的にフレームバッファ
  領域を獲得して、そこに描画を行い、描画が行われた部分を実際にハード
  ウェアのフレームバッファ ( 実 VRAM ) に転送する方式。
  この転送を行うために DN_SCRUPDFN の機能が使用される。
  以下のケースのときは自動的に仮想 VRAM 方式が取られ、DN_SCRDEVINFO
  の framebuf_addr は NULL となり、mainmem_size に使用される主メモリのサイズが設定される。なお、以下のケース以外でも仮想 VRAM 方式とすることができ、VRAM のアクセスが遅い場合などでは、画面のスクロール速度を向上することができる。
DEVCONF ファイル
  DEVCONF ファイルには、以下の情報が設定され、システム起動時に有効となる。
VIDEOMODE mode [pmode] [w] [h] [pw] [ph]
  mode により使用する表示モード番号を指定する。
  w と h はそれぞれ有効な横と縦の画面サイズを指定する。
  pmode, pw, ph は変更前の設定を示すが、スクリーンドライバでは使用しない。
VIDEOVFREQ vfreq [p_vfreq]
  vfreq により使用するモニタ垂直同期周波数(リフレッシュレート)を指定する。
  p_vfreq は変更前の設定を示すが、スクリーンドライバでは使用しない。
  DN_SCRVFREQ ( モニタの垂直周波数 ) がサポートされている条件下
  でのみ有効となる。
VIDEOATTR attr
  attr のビットにより以下の属性を指定する。
    0x1  仮想 VRAM 方式を強制的に使用する。
    0x8  VESA BIOS のみを強制的に使用する。