ここでは Atari m68k プラットホーム上でのフレームバッファオプションに ついて述べます。
Colours 320x200 320x480 640x200 640x400 640x480 896x608 1280x960 --------+--------------------------------------------------------- 1 bit | sthigh vga2 falh2 tthigh 2 bits | stmid vga4 4 bits | stlow ttmid/vga16 falh16 8 bits | ttlow vga256
ttlow、 ttmid そして、 tthigh
は TT でだけ使われ、同時に、
vga2、vga4、 vga15、vga256、falh3 と falh16
は Falcon でだけ使われます。
カーネルオプション video=xxx
を使う時、そして、サブオプションがな
いとき、カーネルは与えられたハードウェアで可能なモードを見つけるまで引
続きモードを検出します。
ttmid
tthigh
vga16
sthigh
stmid
使いたいモードを自動検出しないなら、使いたいと思う特別なモードを定義し
たほうがよいでしょう。たとえば、video=vga16
とすると、 4 bit
640x480 ディスプレイになります。
video=xxx
パラメータで利用できるいくつかのサブオプションがあります。
inverse
- ディスプレイを反転させます。バックグラウンドと
フォアグラウンドが反転します。通常、バックは黒ですが、このサブオプション
を使うと、バックを白色に設定できます。font
- テキストモードで使うフォントを設定します。
VGA8x8
, VGA8x16
, PEARL8x8
だけを選択できます。
ディスプレイの仮想サイズが 400 ピクセル以下の場合は、デフォルトは
VGA8x8
のみで、その他は VGA8x16
がデフォルトになります。internal
- とても興味深いオプションです。
これについては次の章を見てください。external
- 上記と同様。monitorcap
- マルチ同調に対する能力を記述します。
固定同調モニターには使ってはいけません。Syntax: internal:(xres);(yres)[;(xres_max);(yres_max);(offset)]
このオプションは拡張した内蔵ビデオハードウェアの能力、モードを指定します。
(xres)
と (yres)
はスクリーンの拡張した大きさを決めます。
OverScan モードが黒い枠線を必要とするなら、 internal:
サブオプショ
ンの3つの変数を書かなければいけません。 (xres_max)
はハードウェ
アが許容する最大の列の長さで、(yres_max)
は、最大の列の数、
(offset)
はバイトで表され、その物理的開始にスクリーンメモリの可視
部分を補います。
時々、拡張した内部ビデオハードウェアがアクティブになっていると、
"switches=*"
オプションが必要になります。[注意:著者はこの件につ
いてもう少し説明をしたいと思っています。カーネル添付の m68k の文書はこ
の点については十分ではありませんし、彼は Atari を持っていません。多く
の例もまた役立つでしょう。 ]
Syntax:
external:(xres);(yres);(depth);(org);(scrmem)[;(scrlen)[;(vgabase)[;(colw)[;(coltype)[;(xres_virtual)]]]]]
これはとても複雑なので、この文書ではできるだけわかりやすく説明しようと 考えていますが、どなたかがざっと目を通して、何か間違いがないかを調べて くださるなら著者は歓迎します。
このサブオプションは、外部のビデオハードウェア(おもにグラフィックボー ドのような)を使っていて、Linux でどのように使うかを定義します。カーネ ルの知っている範囲は基本的に内部ビデオハードウェアに限られるので、外部 ビデオハードウェアを使えるようにするためパラメータを与えなければなりません。 二つの制限事項があります。起動する前にモードを切替えなければいけません。 そして起動してしまうとモードを切替えることはできません。
最初の三つのパラメータははっきりしています。画面の範囲を高さ、幅、depth をピクセルで与えます。depth は、要求された水平の数値を 2^n する色数でなければいけません。たとえば、256 色のディスプレイを使いたい なら、depth として 8 を使用しなければいけません。これはハードウェアの 性能によって制限されますから、外部グラフィックハードウェアに依存します。
次に示すように、ビデオメモリがどれくらい組まれているかをカーネルに伝え
る必要があります。 (org)
パラメータとして文字を与えます。
n
- 通常の水平面を使う。たとえば、別のものを使ったあとで
全水平面を使う。i
- インターリーブした水平面を使う。たとえば、最初に
16 bits を使い、それから順番に次の水平面の 16 ビットを使います。
組み込みの Atari ビデオモードだけがこれを使用します。そして、
このモードをサポートするグラフィックカードはありません。p
- まとまったピクセルを使う。たとえば、連続的なビットは
ピクセルに対しすべて水平値になります。
これはグラフィックカードで 256 色ディスプレイに対する最も普通のモードです。t
- true colour を使う。たとえば、これは実際にまとまったピ
クセルであるが、他のまとまったピクセルモードを使うもののように色検索
表を要求しません。これらのモードは通常 24 ビットディスプレイで、16.8
万色を与えます。しかし、モノクロモードに対しては、(org)
パラメータは違った意
味を持ちます。
n
- use normal colours, i.e 0=white, 1=blacki
- use inverted colours, i.e. 0=black, 1=whiteビデオハードウェアについて次に重要な項目は、ビデオメモリのベースアドレ
スです。先頭に 0x
をつけた 60 進の数字で (scrmem)
パラメータ
で与えます。外部ビデオハードウェアに添付してある文書からこれを見つけな
ければいけません。
次のパラメータ (scrlen)
は、ビデオメモリのサイズをカーネルに伝え
ます。これを指定しないと、 (xres)
、(yres)
と (depth)
パ
ラメータから計算されます。ここに値を書くのはどう考えてもあまり効果的で
はありません。もし (vgabase)
パラメータを与える必要があるなら、何
も書かないという意味で、セミコロン(;)を二つ続けて与えておきます。必要
がないなら、何も書かないでおきます。
(vgabase)
パラメータはオプションです。これがないと、カーネルはビ
デオハードウェアのどのような色数リストも読み/書きでませんから、Linux
を起動する前に適切な色を設定しなければいけません。しかしお使いのカード
が VGA 互換なら、VGA 登録を置いているアドレスでそれを指定できるので、
色照合テーブルを変更できます。この情報はお使いの外部ビデオハードウェア
の文書で確認できます。clear 、 (vgabase)
を作成するため、
色の登録を読み、書きするため、カーネルは(vgabase) + 0x3c7
と
(vgabase) +0x3c9
の間の範囲にあるアドレスを使います。
このパラメータは、60 進で与えられ、 (scrmem)
と同様、先頭に
0x
を置かなくてはいけません。
(vgabase)
パラメータが定義されるなら、(colw)
だけが意味を持っ
てきます。それぞれの色登録がどれくらいの幅になるか、たとえば、単色
((red/green/blue)ごとのビット数をカーネルに伝えます。デフォルトはいつ
も 6 ビットですが、8 ビットとするのが普通です。
(coltype)
は (vgabase)
パラメータとともに使われ、
お使いのグラフィックボードの色登録モデルをカーネルに伝えます。
現在、サポートされた型は vga
and mv300
です。
vga
がデフォルトです。
(xres_virtual)
は物理的行長が可視長と異なっている ProMST/ET4000
カードにだけ必要です。 ProMST では、2048 を与える必要があり、ビデオボー
ドの初期化に依存します。