更新日: 2011 年 11 月 15 日
GACON.X の説明
説明
GACON.X の添付ドキュメントです。
gacon.doc
────────────────────────────────────
Console on TS-6BGA
GACON.X version 0.31 1996 by M.Kamada
────────────────────────────────────
GACON.X は、グラフィックアクセラレータ・PCM ボード“TS-6BGA”(以下、
GA)上で動作するコンソールデバイスドライバです。
□機能
GACON.X version 0.31 の主な機能は、次の 5 つです。
・CON デバイス(標準ハンドラ)
・テキストカーソル
・テキスト表示に関係する IOCS コール
・DOS コールを使って CON デバイスに出力する処理の高速化
・かな漢字変換ウィンドウ
□使い方
Human68k v3.0x の環境で使用して下さい。v2.0x では動きません。
パラメータはありません。
>GACON.X
で組み込み、再び
>GACON.X
で解除です。
□特徴
文字表示やカーソルの点滅、スクロールなどの処理をすべて BITBLT エンジン
を利用して行っています。これは、あえて BITBLT エンジンを使うようにした…
…わけではなく、単に BITBLT エンジンを使ったほうが簡単だったからです。
エスケープシーケンスにも対応しています。ただし、文字属性のリバースの処
理が若干不完全です(消去範囲がリバースにならない……手抜きです)。
DOS コールもフックして、DOS コールによる出力先のデバイス名が CON なら
ば、直接、表示処理を行うようにしてあります。このため、HIOCS.X を組み込ん
だまま GACON.X を組み込んでも文字表示を乗っ取ることができます。わざわざ
DOS コールをフックしなくても HIOCS.X に -d を指定すれば済むことなのです
が、それだと表示が異様に遅くなってしまうのでこのようにしました。
かな漢字変換ウィンドウも処理しているので、“ED.X で文書を作成する”程
度の作業をする分には問題ない環境です。しかし、ASK68K.SYS のエコーモード
はテキスト VRAM を直接参照しているので表示が乱れてしまいます(変換が終わ
っても青い文字が画面に残ってしまう)。
マウスカーソルや文字表示以外のテキスト画面の処理(パターン表示の IOCS
コールなど)には未対応です。
□画面モード
画面サイズは 768×512 pixel。縦 1 pixel のオフセットは 2048 byte に固
定してあります。1 pixel あたりの情報量は、アセンブル時に 1 byte/pixel に
するか 2 byte/pixel にするかを選択できます(少しいじれば 4 byte/pixel に
することも可能だと思います)。1 byte/pixel の場合は 256 色パレットモード、
2 byte/pixel の場合は 32768色(5-5-5)と 256 色パレットの共存モードです。
いずれの場合も、文字表示にはピクセルマスク機能を使ってパレットコードの下
位 2 bit を文字色に反映させています(下図)。
1 byte/pixel のとき
7 6 5 4 3 2 1 0
┏━┯━┯━┯━┯━┯━┳━┯━┓
┃ 不定 ┃文字色┃
┗━┷━┷━┷━┷━┷━┻━┷━┛
2 byte/pixel のとき
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
┏━┳━┯━┯━┯━┯━┳━┯━┯━┯━┯━┳━┯━┯━┯━┯━┓
┃0┃ R ┃ G ┃ B ┃
┗━┻━┷━┷━┷━┷━┻━┷━┷━┷━┷━┻━┷━┷━┷━┷━┛
または
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
┏━┳━┯━┯━┯━┯━┯━┯━┯━┯━┯━┯━┯━┯━┳━┯━┓
┃1┃ 不定 ┃文字色┃
┗━┻━┷━┷━┷━┷━┷━┷━┷━┷━┷━┷━┷━┷━┻━┷━┛
□動作速度
HIOCS.X を入れていない IOCS と同程度か、少し速いかも知れません。しかし、
1 pixel あたりの情報量が多いので、スクロールはどうしても遅くなってしまい
ます。
通常のスクロール(96桁×31行)では、1回あたり 768×480 = 368640 pixel
分のデータをコピーしなければなりません。これは 1 byte/pixel のとき 360KB、
2 byte/pixel のとき 720KB ものデータをコピーする計算になります。それでも
そこそこの速さで流れるのは BITBLT エンジンの威力と言えるでしょう。
□最後に
・・・・・・・
このプログラムは GA のサンプルにすぎません。GACON.X を組み込むことで得
をすることは何もないかも知れません。しかし、プログラム例として参考にして
いただける点は多いはずです。GA の BITBLT エンジンを使い回していることは
勿論ですが、そうでなくても泣く子も黙る CON デバイスなのですから。
○更新履歴
・v0.30 → v0.31
1 ピクセルが 16 ビットになるようにアセンブルするとかな漢字変換を使用し
たときに GACON.X の直後にロードされたプログラムを破壊することがある不具
合を修正。
GA の存在チェックに失敗する不具合を修正。
(EOF)