いくつかオールBasicでゲームを作りベーマガに投稿したのですが、MSX2では結局載りませんでした。センスが無いというのは自分でも感じていましたが。
そんな中で1つ、マシン語で専用のスクロールプログラムを製作し、それを使ったゲームを作成したことがありました。ほぼ完成し、後はバランス調整とバグ取りくらいだったのですが、ディスクがクラッシュ。どうもFATが壊れてしまったようで、1部のファイル以外読むこともできなくなっていました。当然作成中のゲームも。バックアップなど当然取っているわけはなく、プリントアウトもしていませんでした。このときのショックは今でも忘れられません。このディスクはその後フォーマットしてしまい、もう1度はじめから作り直す気力もわかなかったため、この初のマシン語使用で完成しそうだったソフトはそのまま闇に葬られることになってしまいました。
その後レイドック2がやりたくて友達にMSX2+を借りたことがあるのですが、その時に作ったMSX2+専用のゲームが、私のベーマガへのゲーム初掲載になりました。MSX2+なので競争率が低かったんだろうと言う気がしないでもないですが、もちろん大変うれしかったです。
FATという言葉が出てきましたが、MSXのFDのフォーマットはMS-DOSと互換性がありました。というより、初期のMS-DOSを元にしたMSX-DOSというソフトがありました。PC-9801などはBasicとMS-DOSでフォーマットが違ったらしいですが、MSXではマイクロソフトが規格に参加しているだけあってそんなことはなく、BasicでもMSX-DOSでも同じフォーマットでした。
このMSX-DOSはF1ツールディスクにひっそりと入っていたのですが、当時の私はOSに関する知識が全くなく、なにをするための物なのかさっぱりわかっていませんでした。その後ある本に書いてあったのをちょっと読み、バッチファイルについてだけ理解できたので今度は、「バッチファイルというのを作ってファイル操作を便利にするための命令を増やしていける、ファイル管理ツール」みたいに思っていました。でも、「Basicでいいじゃん」とも思ってました。当時はMSX-DOS上で動作させるアプリケーションなんて(知ら)なかったので、仕方がないのですが。
その後MSX-DOS2というのが、RAM付きのカートリッジで出ました。RAMが(少)ないのもあったように思います。これはそれなりに雑誌等で話題にされ、これ用のC言語やアセンブラなどが出ました。私も一時期はCかアセンブラのために買おうかと思いましたが、当時の私にはおいそれと買える値段ではなかったため、結局買いませんでした。
MSX2のBasicは普通のMicrosoft Basicなのですが、その命令の中ですごく強力で好きだった命令がありました。それがCOPY命令です。
これは「COPY 元 TO 先」で指定するのですが、元や先にはVRAM、配列変数、ファイルの3つの中から指定できました。それと同時に論理演算や描画方向、透明色を考えた転送などが指定できる大変便利で強力な命令でした。これのおかげでグラフィックを扱うプログラムが楽だったのはもちろん、以外にめんどうな配列変数の一括セーブなどが命令1つで出来ました。
後にX68000のX-Basicに移行したときも、これに相当する命令がなかったために「うぅ。MSX2のBasicのが便利じゃんかぁ」とか思っていました。
他のMSX2-Basicのおもしろい点としては、割り込みに関する命令がいくつかあることでしょうか。
例えば「ON INTERVAL GOSUB」は、60分のn秒単位に割り込みをかけて指定したサブルーチンを呼ぶという機能です。BGMを実現するのに使ったような気がします。
「ON ERROR GOTO」は、エラーが出たらその行へ飛ぶという命令です。でもあまり使った記憶がありません。
あと、A1のところで話を出した「ON SPRITE GOSUB」や、ファンクションキーで割り込みをかける「ON KEY GOSUB」、CTRL+STOPで割り込みをかける「ON STOP GOSUB」などがありました。
そういえばMSXでSTOPキーを押すと1時停止になりました。いわゆるBreakをするためにはCTRL+STOPを押す必要があるのが変わってたように思います。
©Saiey