プレミアムMSX

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

MSX-BASIC初心者的質問。

2015年01月08日 17時20分10秒 | Weblog
 以下のようなMSX BASICプログラムを書きました。

5 CALL MUSIC(0,0,2,2)
10 ON INTERVAL=240 GOSUB 100
20 INTERVAL ON
30 DEFINTA-Z:KEYOFF:CALL KANJI0
40 SCREEN7:SET PAGE0,0:CLS:SETPAGE1,1:CLS
50 SET PAGE1,0
60 BLOAD"OPEN",S:COLOR=RESTORE:COLOR=(0,0,0,0)
70 SET PAGE1,1
80 GOTO80
100 PLAY#2,"F8","G8","A8"
110 RETURN

私の中では4秒(=240)ごとに(100行の)音が鳴り続けるイメージなのですが、鳴りません。

 この原因がどうしても分かりませんでした。(なお、OPENという名のグラフィックデータはあります。)
エラーにもなりません。

 数年来悩んでいて、ようやく解決方法は分かったのですが、とくにこれについての解説とかも見たことがありませんでした。

 このレベルの人間が作っているということを再認識していただければと思います。

コメント (4)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« MSX版「rinkaさん」製作状... | トップ | ネットオークションといえば... »
最新の画像もっと見る

4 コメント

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

30行目の「CALL KANJI0」が悪いのかもしれません。

これを実行するとワークエリアが初期化されて動作がおかしくなる
といった事が書かれた記事を見たことがあります。

なので、もしかすると
CALL KANJI0の実行により
その前で設定されたINTERVALの内容が
消されているのかもしれません。

「CALL KANJI0」の場所を先頭に移動してみてはいかがでしょうか。
返信する
正解です♪ (夏冬 春秋)
2015-01-09 22:48:39
 すごいですね♪正解です。

 では、ついでに、このプログラムのままでも音を鳴らすことが出来ますが、その方法はご存知でしょうか。
 私はそのために、余計に頭を悩ませることになったのです。
返信する
Unknown (xsw)
2015-01-09 23:59:47
こんばんは。

2回実行するとかですかね。

ワークエリアの初期化はリセット後の初回のみ行われるとか、でしょうか。

返信する
凄い!大正解です♪ (夏冬 春秋)
2015-01-10 22:01:39
 その通りです♪♪2回目以降は大丈夫なんですよね。
ただ、理由は私には分かりません。
 「ワークエリアの初期化」についての知識がないので。

 では、もう一問、お願いします♪
 
返信する

コメントを投稿

Weblog」カテゴリの最新記事