GPRINT を使う

シャープのポケコンには GPRINT という素晴らしい命令があります。
グラフィックレベルで線画を行えるもので、
これによってキャラクターを素早く線画する事ができます。
パソコンでこれを実現する場合は POKE や VPOKE でメモリに入れたり、
PSET で遅い線画を行ったりする事がありました。
高速にするのなら機械語(マシン語)を用いる必要があったわけです。
これを GPRINT で実現できます。


パソコンの場合1文字(8バイト)分を縦に線画していくのが普通のようですが、
GPRINT では縦8ピクセル分を横に線画していきます。
4ピクセルのキャラクタとピクセルの関係は以下の通りです。

 

0 1 2 3 4 5 6 7 8 9 A B C D E F
□ ■ □ ■ □ ■ □ ■ □ ■ □ ■ □ ■ □ ■
□ □ ■ ■ □ □ ■ ■ □ □ ■ ■ □ □ ■ ■
□ □ □ □ ■ ■ ■ ■ □ □ □ □ ■ ■ ■ ■
□ □ □ □ □ □ □ □ ■ ■ ■ ■ ■ ■ ■ ■


16進数と2進数の関係が分かる方であれば、
90度反時計にしてある状態と理解して下さい。
これを以下のように記載します。


2 4 6 8 …
2 4 6 8 …
2 4 6 8 …
2 4 6 8 …
1 3 5 7 …
1 3 5 7 …
1 3 5 7 …
1 3 5 7 …


例えば以下のようなキャラクタとすると


□ □ ■ ■ …
□ □ ■ ■ …
■ ■ ■ □ …
□ □ ■ □ …
□ ■ □ ■ …
□ ■ □ ■ …
■ □ □ ■ …
■ □ □ ■ …


縦を4ピクセルずつに分けて、それぞれコード化します。


4 4 F 3
□ □ ■ ■ …
□ □ ■ ■ …
■ ■ ■ □ …
□ □ ■ □ …


C 3 0 F
□ ■ □ ■ …
□ ■ □ ■ …
■ □ □ ■ …
■ □ □ ■ …


これを順番に記載し、"C4340FF3" となります。
実際に RUN MODE で GPRINT"C4340FF3" としてみましょう。
無事左上に表示されましたか?


慣れればグラフィックツールを用いてコード化する必要はなく、
方眼紙に元の表示を描き、
それを元にポケコンで直接入力する事もできるようになるでしょう。
ここまで行えるようになれば、ドット屋として一人前です!


なお、プログラムに入れる場合、座標として GCURSOR を利用しますが、
初期設定の座標は (0,7) となります。

左上が (0,0)、縦8ドットを一番最初に線画しますので、
一番上位のビット(ドット)が (0,7) になるわけです。