ここまででは、PRINT や CLS、 PLAYといった命令を、ひとつだけ実行するやりかたでしたが、これらを順番にならべて自動的に実行させることができます。これが「プログラミング」です。
順番に実行させるためには、BASICでは行頭に「行番号」を入力します。 [行番号][スペース][命令] これはBASICならではのプログラミング作法です。
以下のように入力してみてください。尚、行末では必ず[Enter(Return)]を押して改行します。([Enter(Return)]を押すことでその行のプログラムがRAMに記録されます)。
10 CLS
20 PRINT "PLAYING MUSIC"
30 PLAY "GCAFECDR4GCABO5CDC"
40 END
このプログラムは以下の様にふるまいます
画面を消去→画面にPLAYING MUSICとメッセージを表示→音楽を演奏→プログラムを終了する
行番号を記述したプログラム入力では、記述しただけでは実行はされません。実行の方法は後述しますが、MSX BASICでは実行する前に必ず入力したプログラムをメディアに保存するのが鉄則と認識しておいたほうが良いです。なぜなら実行させたプログラムが意図せぬ不具合で暴走して保存する操作ができなくなり、あとでプログラムを全て打ち込み直すという不幸にみまわれる可能性があるからです。 プログラムを保存する方法は、BlueMSXでは仮想フロッピーディスクもしくは仮想カセットテープ(※なつかしー^-^)への保存が可能です。今回は使い勝手の良いフロッピーを使いましょう。
BlueMSXのメニューより [ファイル]→[ディスクドライブA]→[新規ディスクイメージを挿入] をクリックします。
仮想フロッピーディスクとして保存するファイル名を指定し、「開く」をクリックすると指定した場所とファイル名で、ディスクイメージファイルが作成されます。
仮想フロッピーディスクの準備ができたら、次はディスクのフォーマットです。フォーマットとは外部記憶装置の区画整理みたいなものと現段階では認識してください。新しいディスクは最初にフォーマットしないと使用できません。 BASICシステム上で以下のコマンドを入力します
CALL FORMAT
入力すると Drive name? (A,B) という応答が表示されます。
ここではフォーマットするフロッピードライブを尋ねられていますので、Aを入力することになります。
次に 1- 1Side, double track 2- 2Side, double track と尋ねられますが、これは(片面倍精度ディスク)か(両面倍精度ディスク)のどちらかを尋ねられています。
2の両面倍精度で良いので、2を入力します
Strike a key when ready(準備ができたらキーを押してね) と尋ねられました。[Enter(Return)]等を押せば、フォーマット処理がはじまります。フォーマット処理中は画面が固まったままになりますが、しばらく(数分かかると思います)待つと、Format Compleat OK と出て、フォーマットが完了します。
仮想フロッピーディスクのフォーマットが完了しました。次に先程入力したプログラムを保存しましょう。以下の様に入力します。
SAVE "MUSIC01.BAS"
OKと表示されたなら仮想フロッピーディスクへの保存が成功した事になります。保存されたファイルの存在を確認してみましょう。以下の様に入力します
FILES
このコマンド(FILES)はディスクに保存されているファイルを一覧表示します。現時点では先程保存した”MUSIC.BAS”のみがディスクに収録されているので、このような表示になりました。
保存がされていることが確認できたので、さっそく入力したプログラムを実行しましょう。以下のように入力します。
RUN
無事実行されたでしょうか? もしも Syntax Error in ~ とか Illigal Function Code in ~といった表示が出た場合、それはプログラムにバグ(異常)があるという事になるので、入力を間違っていないか確認してみてください。入力済みのプログラムを再度表示するには以下コマンドを入力します
LIST
LISTで表示されたプログラムに訂正箇所がある場合は、カーソルキー(↑↓→←)で、白い箱(カーソル)を訂正箇所まで動かします。文字を上書きするならそのまま入力しますが、文字を挿入したい場合は[Insert(INS)]キーを押して挿入モードに切り替えます(カーソルの高さが低くなります)。挿入モードから上書きモードに戻すときは、もう一度[Insert(INS)]キーを押します。
訂正したら、必ずその行ごとに[Enter(Return)]キーを押します(この操作がその行のプログラムをメモリへ保存する操作となります)。このとき、行の桁位置は問いません。