今回は、グラフィックス文字を使ってHello Worldを表示させてみた!
割と丁寧にプログラミングしてみたので、成果をご披露してみたい。
いつまでHello Worldネタで引っ張るんだw
グラフィックスを表示させてみたい!
PC-1350で画面にグラフィックス…というか自由な位置にドットを打つ方法は比較的簡単だ。メモリにVRAMが出ているので、そこのアドレスにデータを書き込んでやれば良い。
面倒なのは、そのアドレスが連続していないって事だ(^-^;;
VRAMが連続していないマシンは、このブログにもいくつか出てきている。
代表的なのはPC-8201だろう。あのマシンはVRAMが外に出ていない上にアクセスが複雑だ。
PC-1350は連続していないけれどもアクセスは比較的簡単な方だ。
こういうパターンの場合は、通常のプログラミングがし易いようにアドレスが連続になっている仮想的なVRAMを用意する。主プログラムはそこに書き込むようにして作り込み、VRAMへ転送する時に専用ルーチンが頑張れば良い。
問題はメモリをコピーする速度だなぁ…と思い、いくつかのテストをしてみた。
そしたら意外な結果が……。
仮想VRAM→VRAMへAレジスタを介して直接コピー(ixl,iys)するよりも、一旦内部RAMへコピーした後、VRAMへコピーする方(mvwd,exwd)が高速だという事が分かった。これはブロック転送が使える使えないの違いが大きい。速度を測ったところ、約2倍高速だった。
これもデバッガで処理速度を計測するコマンドを追加したおかげで、即座に調べる事が出来るようになった。デバッガさまさまだ(^^)
組み上げてみて…
結局、作ったファンクションと言えば…
・仮想VRAMクリア
・仮想VRAM→VRAM転送
・仮想VRAMへ1文字表示
・文字列表示
この4つだった。
行数にして約100行のこじんまりとした関数群だけで動かす事が出来た。
ちなみに…このフォントは、若い頃にPC-E200用に作っていたゲームで使われたモノだ。
「はるみのゲームライブラリ」という書籍を見て、フォントに凝ってみるのは大事かも…と思い、方眼用紙に絵を描いてちまちまとデータ化した。
幸い、PC-E200とPC-1350はビットデータの持ち方が同じだったため、テキストファイルをコンバートするだけで持ってくる事が出来た。
このPC-E200で作っていたゲームは、ポケコンジャーナルという雑誌に投稿するつもりで作っていた。キャラクタが4ドット単位で動くものだったが、ゲーム本体が出来たところで飽きてしまいお蔵入りとなったw 私はこういうのがとても多い性格だ(T-T)
さてさて…
100行程度とは言え、何も知らない状態からPC-1350でプログラムする事が出来た。うっすらとだがSC61860でのプログラミングも見えてきた気がする。
やはり1から環境を作り上げられたのは、気持ち的に大きかった。環境に不満があれば自分で直す事が出来るというのは果てしなく大きい。途中、何度となくPC-1350を拡張したくなったが(乗算命令が欲しいなぁ…とかw)、そういうのは無しで最後まで行けたw
もう少し大きなプログラムを作ってみたい気持ちもあるが、絵が描けないという大問題がどうしても立ちはだかる…。
小さくても良いからゲーム作ってみたいなぁ…。
ではまた次回!(^-^)ノ