countersince January 6, 2001X68000 LIBRARYEnglish
更新日: 2011 年 11 月 15 日
X68000 LIBRARY > ソフトウェアライブラリ > 特定のハードウェア用のソフトウェア > グラフィックアクセラレータ関連 > GACON.X > GACON.X の説明

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)