レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
おちゃめくらぶ掲示板
OMP for PC-1500
はじめまして、御茶目さん。
ポケコン(SC61860)で音楽を演奏する方法を検索中に「おちゃめくらぶ」そして「OMP」を知りました。
30年も昔にポケコン(SC61860)に雑誌のプログラムを入力して遊ぶのが精一杯で、自分でプログラムを作成したこともなかったのに何故かポケコンでプログラムを作りたいと年が明けると(今年2014年)ふと思いました。
ポケコンに限らず、パソコンのプログラムもできませんけれど.....。
ポケコンでプログラムを作る、漠然としすぎです。そこで、まず具体的な目標を立てました。
?「CARD-SIX」というゲームのPB-100への移植。
「CARD-SIX」(CASIO FX-702P用)とはI/O 82年10月号?掲載の UNI-02さん 作の麻雀に似た対COMPカードゲームで、ドラ有り・メンゼン有り・ポン有りの当時の私の大好きなゲームの1つでした。
FX-702Pが壊れた後、どうしてももう一度やりたいポケコンゲームとなって早幾歳、本年1月中にPB-SIMというシミュレータ上ですが移植版「CARD-SIX」はどうにか動作しました。まだ、完成ではありませんが30年の興奮を再び味わうことができました。PB-100の実機も欲しいです。
続いての目標は、
? PC-1245用 1D パックマンの作成 (マシン語で) です。
カシオFX-702Pの次はシャープPC-1245と一貫性がありませんが、これは自分が過去に所有したポケコンです。
カシオfx-502P → FX-702P → シャープ PC-1245と乗り継ぎました。
現在PC-1245実機はLCD真っ黒で使用できません。
1Dパックマンもエミュで作成する予定です。ネット検索によりSC61860のマシン語資料、アセンブラ・逆アセンブラソフトを手に入れて初めてマシン語プログラムを作成しました。マシン語の難解さに目標のパックマンはいきなりすぎて無理と判断しました。
そこでハードルを少し下げパックマンの2面終了時のデモを「音楽」付きキャラクタアニメ移動でマシン語メインで再現? とする事にしました。
PC-1245の16桁の画面 右端から逃げるパックマンと追うモンスターが現れ画面を左端に消えた後、いじけモンスターをでっかいパックマンが追っかけ画面右に消える。
このマシン語プログラムを2月中に完成しました。(まだキャラアニメなし)当然音楽も無し。
さて、次は音楽ですがご存じのとおりPC-1245ではBEEPはビービーと鳴るだけです。音楽もマシン語なら奏でることができるようですが理解するのは大変でした。ここでようやく冒頭に戻ります。私には御茶目さんのOMPの記述がSC61860マシン語音楽にとても役に立ち、BASICで動作するOMPに興味津々是非動かしたくなりました。
偶然にも昨年12月、岐阜県の中古屋さん(HO)でジャンクのPC-1500を入手していました。
OMPのページの《その他いろいろ》の中で
"PC−1500/01やPC−1360/Kの人もわずかな改良で済みますが現状のリアルタイム方式では全く処理がついて行かないと思いますので、音階データを配列変数に入れておく必要があるでしょう。これらの機種をお持ちの方は専用のOMPを作成しますのでご連絡ください。" との記述を発見。
PC-1500も30年前は高嶺(高値)の花でHOで実物を見たとき、その大きさと分厚さに驚き850円という金額に少し悩んだ末購入しました。が、しかしPC1500はNET情報も少なく、未だに「リザーブ」の使い方も分かっておりません。
いきなり御茶目さんにPC-1500用のOMP作成をお願いするのも何ですので、勝手にOMP for PC-1500を作成しました。
BASIC のBEEP命令で ド レ ミ とPC-1500がOMPで奏でたときには、さすが高級ポケコンと関心いたしました。
ためしにNEW ラリーXのBGMを入力したところ、つたないプログラムが悪いのかPC-1500の限界か、16分音符がどうも気に入りません。
御茶目さんプログラムへのアドバイス or 厚かましいですが、PC-1500用のOMPの作成をお願いします。
無手勝流 OMP FOR PC-1500
10 DIM M$(0)*50,W(94)
20 FOR I=1 TO 47:J=I-10:W(I)=440*2^(J/12):NEXT I
30 FOR I=1 TO 47:J=I+47:W(J)=59091/W(I)-7:NEXT I
35 PRINT "SETUP END"
40 M$(0)="$60:8VVSQV*@Z 8VVSQV*@S":GOSUB "OMP"
41 M$(0)="8VVSQVY√+ π4+π√π√π":GOSUB "OMP"
42 M$(0)="@π3π+ZX"
50 GOSUB "OMP"
60 END
100 "OMP" FOR I=1 TO LEN M$(0):Z=ASC MID$ (M$(0),I,1)
102 IF Z>42 AND Z<48 LET Z=Z+49
105 IF Z>64 LET X=INT W(Z-64):BEEP 1,W(Z-17),X*Y/T:NEXT I :RETURN
110 IF Z>47 LET Y=Z-48:NEXT I:RETURN
120 IF Z=36 LET T=VAL RIGHT$ (M$(0),LEN M$(0)-I)
130 IF Z=42 FOR J=1 TO 30*Y/T+6:NEXT J
140 NEXT I:RETURN
※)102行 ASC =92,95,96に対応するキーが分からないため、高いレ#を”+”高いファ#を”.”、高いソを”/”とする。
130行 30*Y/T+6は適当に設定してます。
音程データは「BEEP音階表」を流用
[動作方法]
RUNを1回実行。40行からの M$(0)の内容を変更したら、"GOTO??40"で演奏
長々と書いて申し訳ありません。
アドバイス or OMP1500作成 よろしくお願いします。
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板