更新日: 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)