2026年8月11日火曜日

パソピア7のカセットBinaryデータ

パソピア7のカセットプログラムをフロッピーやRAM PAC2にバックアップする際、バイナリデータのアドレスやサイズが必要になります。

以前どこかの雑誌に同じ趣旨のプログラムが掲載されていた記憶がありますが、思い出せないので作りました。

パソピア7の場合、BIOSでカセットのモーターON/OFFとデータ読込み/書込みができます。
BIOS FN#26:カセットのモーター制御
B=0:モーターOFF
B=1:モーターON
BIOS FN#27:カセットからデータ読み込み
HL:バッファアドレス
DE: データサイズ

BSAVEで保存されたバイナリデータのヘッダー は以下のようになっています。
1 byte01h固定
2 byteFEh固定
3-8 byteファイル名
9-10 byte読込み先アドレス
11-12 byte読込みサイズ

BIOSでカセットの先頭12バイトを読み込み、その情報を表示するプログラムです。
10 CLEAR ,&HEFFF
20 FOR I=&HF000 TO &HF025:READ A$:POKE I,VAL("&H"+A$):NEXT I
30 PRINT "Set Cassette Tape and Hit Space Key."
40 A$=INKEY$:IF A$<>" " GOTO 40
50 A=&HF000:CALL A
60 R=&HF026
70 IF PEEK(R)=1 THEN PRINT "Checksum Error.":END
80 IF PEEK(R+1)<>1 OR PEEK(R+2)<>&HFE THEN PRINT "Not Binary Data.":END
90 PRINT "File Name     ";:FOR I=3 TO 8:PRINT CHR$(PEEK(R+I));:NEXT I:PRINT ""
100 PRINT "BLOAD Address &H";RIGHT$("00"+HEX$(PEEK(R+10)),2);RIGHT$("00"+HEX$(PEEK(R+9)),2)
110 PRINT "BLOAD Size    &H";RIGHT$("00"+HEX$(PEEK(R+12)),2);RIGHT$("00"+HEX$(PEEK(R+11)),2)
120 DATA F5,E5,D5,C5,01,1A,01,CD,05,00,21,27,F0,11,0C,00
130 DATA 0E,1B,CD,05,00,17,E6,01,32,26,F0,01,1A,00,CD,05
140 DATA 00,C1,D1,E1,F1,C9
実際にカセットテープから情報を読込む動画です。
最初はBASICデータなので「No Binary Data.」と表示され、次のBinaryデータはファイル名とアドレス、サイズが表示されます。

何かのお役に立てば...

0 件のコメント:

コメントを投稿