いつも閲覧する「あやおり工房日曜深夜」さんのブログから知った情報ですが、「PC-6001(通称パピコン)」が30周年なんですって
その記事にある、N60-BASICで作られた"お絵かきプログラム"をActiveBasicに置き換えてみました。
ActiveBasicにはN88-BASICモードがあるので、ほとんど手を入れずに動作します。
(・・と言ってもN88との互換性はかなり低いです)
当時のBASICだと描画するまでに相当の時間がかかりましたが、やはり今回のプログラムでは、一瞬で描画が終わりました。
(想定通りです)
「あまりにも瞬間描画でつまらない」
しかし、ウェイト処理を入れてもPAINTやLINEを実行するとWindowsAPIにて処理を移してしまっているので、「あっと言う間」に描画が終了してしまいます。
「レトロパソコンみたく描画が見えるように出来ないかな?」
ActiveBasicで用意されているPAINTやLINEを使用せず、それらを作ってしまいましょうか。
「しかし、どうやって作るんだっけ?」
LINEはすぐ思いつく。PAINTって結構、面倒ですよね。
兎に角、最適なPAINTルーチンで無くても良いのでまずは作ってみました。
(今回は、速いプログラムでは無く、遅いプログラムにする訳なので・・・・・)
当時のPAINTは遅かったのですが、8ビットですからね。
結構頑張っていたんだろうな。
・・・で、出来たのが、コレ
ダウンロード
ソース
うーん、ずいぶん強引かつ汚いソースです。特にPAINT処理。
2時間で作ったモノなので勘弁して下さい。←単に能力が無いだけの言い訳
・・・と言う訳で、機械語による描画はどの位のスピードなのかを見てみましょう。
これは、FM77AVの描画ルーチンを機械語より呼び出しているものです。
元となっているのは、自作テトリスの背景描画なのです。
自作テトリスでは、描画が完了してから、一気に見せる方法をとっています。(描画工程は見せない)
これが、どの程度のスピードなのかを見てみました。(見えるようにしました)
FM77AV
機械語での描画速度【動画】
やはり、描画ルーチン自体は同じものでも、機械語は流石に速いですね。
・・・・・でも、もっと速かった気がしていました。
「思い出補正」が掛かっていたようです。