最近はプチコンを試しています。いろいろなBASICを試してきましたが、
厳密に言うと起こるエラーのエラーメッセージが通例と異なるので「えーっ?」って感じがします。
昨日はBEEP命令を変えてみるとビープなギターの音(謎)が出ました。
そんなこんなでやっていますが、いろいろとテストプログラムが増えました。
今日はファイルを選択できるカンタンなプログラムを作ってみます。
MSXでも行番号を1から通し番号で入力できます。
1 PRINT"1.TEST1"
2 PRINT"2.TEST2"
3 PRINT"3.TEST3"
4 INPUT"バンゴウハ";A
5 IF A=1 THEN RUN"TEST1"
6 IF A=2 THEN RUN"TEST2"
7 IF A=3 THEN RUN"TEST3"
入力が終わったら、SAVE"MENU0"で保存します。
次回からLOAD"MENU0"で実行できます。
RUNは普段使うと思いますので、
PRINT,INPUT,IF~THENの3つだけ覚えればプログラムができます。
こんなことも★
MSXでエラートラップをかけて新命令を作る方法を前々々々回説明しました。(おい)
世界に一つだけのBASIC命令を作ることは夢ではありませんね。
例えば@MAINというように作ることも工夫すればできるような感じがしてきました。
エラーの文字を調べて@MAINの次の行に分岐させればよいです。
もちろん、REMのコメントのように255文字までなら十分使えます。
確かにマメに作っていくことになりますが、分岐リストができるところがよいでしょうか。
前々々々回のMSXマシン語講座 中間コードの変換:
http://blog.goo.ne.jp/u-yans/e/d0312714f29978ec6f8f9edbd7f4373d
BAS-COM2から改良を加えてBAS-COM3のファイルを実行してみました。
実行がわかりやすいようにアドレスを取得後からエラー回復処理までのリストを表示しています。
まず、最初にERL変数を使わないでテキストから行番号の119を表示しました。
次にソースコードが1016と1017では中間コードになっていますから
これをテキストに変換します。コードの終わりの00hまでテキストにします。
IF命令で文字列の条件分岐をして動作させる命令を書き定義させます。
GOTOですから、RESUME(リジューム)でエラー回復とジャンプをします。
このようにカンタンに作ることができましたね!
新命令が作れるようになれば、もっとBASICをわかりやすく書くことも可能ですね。
おまけですが、MSXではDO~LOOP命令も工夫しだいでFOR~NEXTで代用できます。
1 C=4
2 FOR I=0 TO 1
3 I=-(C>3)
4 NEXT
NEXTの前にIの数値を強制的に変えることでループすることができます。
また逆にI=(C>3)+1としてみるのもよいでしょう。
こんなことも★
最近は週刊誌で地震の話題が後を絶ちません。
「首都圏直下が4年以内に70%」という高確率で発生するようです。
震災後からネットの地震情報を注視しています。
私は起こるはずがないと思っていましたが、地震データを見ると
んー何か起こりそうな感じもしてきました!
「福島沖、茨城沖、千葉東方沖」と同じパターンの地震もあるのですが、
新しいパターンの地震も少し増えてきたように思います。
この前は佐渡でしたね。ちょっと意外でした。
最新の情報ですが、これまで相模湾で起こる地震はまれで
これが大地震につながるとは考えにくいですが、備えあれば憂いなしです。
とは言っても、また同じ場所で1年後に地震が起こることもあります。
気になるような情報があれば、またピックアップしたいと思います。
2012年2月29日 伊豆近海 M3.5:
http://tenki.jp/earthquake/detail-10086.html