PT2/3プレイヤー用ファイル選択ツール



■ 注意 ■


1D専用です。1DD,2Dでは動作しません。
実行には以下のファイルが全て必要です。
ファイル名はすべて小文字である必要があります。

sample.d88(main.bas,main.bin,select.binがあらかじめ保存されています)
pt2.bin ※
pt3.bin ※

※ セイ!さん(@Sei_soft:twitter)制作のpt2.bin、pt3.binは別途入手してください。

d88Toolはこちらのサイトのotip6_20131030.zipに同梱されています。


■ 準備 ■


sample.d88をダウンロードします。
pt2.bin、pt3.binを別途ダウンロードします。
d88Toolを別途ダウンロードするなどし、用意します。

Windowsのコマンドプロンプトを実行します。
前記ファイルがそろったフォルダに移動します。
以下のコマンドを入力し、pt2.bin、pt3.binを追加します。

>d88tool sample.d88 pt2.bin -bin 0x9000
>d88tool sample.d88 pt3.bin -bin 0x9000

sample.d88をなんとかして実機にもっていくか、エミュレータ等でsample.d88をディスク1に設定します。

SD6031等で実機にもっていく場合はd88→P31変換ツールを使って、P31ファイルに変換し、ドライブ1用フォルダに保存します。
d88→P31変換ツールはこちらのサイトから入手できます。

演奏可能な曲データはPT2、PT3フォーマットになります。
PT2、PT3フォーマットファイルはこちらのサイトから入手できます。

ダウンロードしたPT2,PT3フォーマットのファイルは、ファイル名が長すぎるので6文字以内のファイル名に名前を変えます。

曲は以下のコマンドでd88ディスクイメージに保存します。

>d88tool sample.d88 XXX.pt3 -bin -0xA000


■ 操作方法 ■


PC-6001を起動ページは2を指定します。
※初代PC-6001実機では拡張スロット+拡張BASIC+FDDまたはSD6031+拡張BASICのROMイメージが必要になります。
※mk2/PC-6601の場合はモード4を指定します。
※mk2SR/PC-6601SRはSD6031+INIT.P31等、別途1Dが読み込める環境を用意する必要があります。
※初代PC-6001+NANOCARTでは多分実行できません。拡張BASICのROMイメージがあれば実行できるかもしれませんが試す環境がないためわかりません。

ディスクをドライブ1にセットします。

main.basをロードして実行します。

>load "main.bas"
>run

実行後、メニューが表示されます。

演奏する曲データの入ったディスクを変更する場合は 1 を選び、ドライブ番号を0〜最大3の範囲で入力します。

再生するファイルフォーマットがPT2の場合は 2 を入力します。
PT3の場合は3を入力します。

2か3を選ぶと暫くしてファイル一覧が表示されます。

カーソルキーの上下で選択、スペースキーで再生です。

曲再生中にSTOPキーを押すとファイル選択画面に戻ります。

※ファイルの種類をチェックしていません。PT2またはPT3ファイル以外を選ぶとおかしな挙動になると思います。
※ファイルサイズをチェックしていません。16Kbytes以上のファイルを選ぶと暴走します。

カーソルの左右でページを切り替えることができます。管理できるファイル数は最大68?個ぐらいです。

ファイル選択画面でSTOPを押すとメニュー画面に戻ります。

BASICには戻りません。終了する場合は電源をOFFにするか、リセットボタンを押してください。


■ 余談 ■


本プログラムの要であるselect.binは選択したファイルを指定した番地(デフォルト0xA000)に読み込んで、指定した番地にある実行コード(デフォルト0x9000)をCALLしているだけです。
実行コードとしてテキストエディタやバイナリエディタ、グラフィックビューワー等を指定すれば曲の演奏以外にも使えると思います。
ただし、PT2,PT3プレイヤーの仕様にあわせて作ったので、ページ2のモード3,4用VRAMは本プログラムが使っているので使えません。ページ3か4のVRAMを使ってください。

実行コードCALLアドレス格納場所(ワードサイズ) 0xE89D(デフォルト 0x9000)
ファイル保存先アドレス格納場所(ワードサイズ) 0xE8A1(デフォルト 0xA000)
終了チェックアドレス格納場所(ワードサイズ) 0xE89F(デフォルト 0x9271)
ドライブ番号格納場所(バイトサイズ) 0xE884 (デフォルト 0x00)

なお、終了チェックアドレス先の値が0x81(固定)になるまでファイル選択画面に戻らない処理が入っています。
これはPT2/PT3のように割込み処理をメインとしたコードの場合、そのまま戻ってしまうとファイル選択画面がバグってしまうためです。
実行コード終了後すぐにファイル選択画面に戻って問題ない場合は常に0x81の値をチェックアドレス先に格納しておいてください。

以上です。



enuou