プレミアムMSX

MSXパソコンのプレミアなブログ&MSXノベルソフトウェア「県立UKITAのrinkaさん」のブログ。

MSX-BASIC初心者的質問。その2。

2015年01月10日 22時01分58秒 | 新作MSXゲーム作り
 こちらは、現在困ってる案件です。解決方法をどなたか教えてください。

「県立UKITAのrinkaさん」の「第1章」が終わり、「第2章」へと進みます。そのときに、ディスクドライブにディスクがちゃんと入っているかを調べるのを「BASIC」を使ってやろうと思います。

私の考えたやり方:「ON ERROR GOTO」を使う。

100 ON ERROR GOTO 200
110 RUN"SAI2SYOU"
120 GOTO 120

200 PRINT"INSERT DISK A"
210 A$=INKEY$:IF A$=""THEN210ELSE100


 100行の「ON ERROR GOTO」で、もしもディスクに「DAI2SYOU.BAS」というファイルが無かったら、200行に飛び、メッセージを表示。キー入力されたら再度ディスクアクセス(RUN文)を実行する。を繰り返す。
 
 で、実際にやると、(ディスクにDAI2SYOUというファイルが無い場合)INSERT DISK Aと表示され、キー入力待ち状態になります。ここでなんらかのキー(例えばスペースキー)を押すと、「File not found in 110」と表示されてプログラムが終了してしまいます。なぜ、再度200行へ飛ばないの??


 

コメント (2)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 任天堂WiiUバーチャルコ... | トップ | MSXが出てこないライトノ... »
最新の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
Unknown (xsw)
2015-01-11 11:23:11
こんにちは。

ON ERROR GOTO で飛んだ先では
RESUMEという命令を実行する必要があります。

これを実行しないと次にエラーが発生した時に
ON ERRORで飛んでいきません。

RESUME命令では戻り先の行番号を指定します。

今回の場合では

210 A$=INKEY$:IF A$=""THEN210
220 RESUME 110

とすれば良いです。

戻り先が100行目でなく110行目なのは
ON ERROR GOTO は一度実行すれば良いからです。
返信する
おお~っ!! (夏冬 春秋)
2015-01-11 22:45:01
 なるほどぉ。まだ実践はしてないんですが、それで大丈夫なのですね。

 では、次も。(笑)
返信する

コメントを投稿

新作MSXゲーム作り」カテゴリの最新記事