パソピア7のカセットプログラムをフロッピーやRAM PAC2にバックアップする際、バイナリデータのアドレスやサイズが必要になります。
以前どこかの雑誌に同じ趣旨のプログラムが掲載されていた記憶がありますが、思い出せないので作りました。
パソピア7の場合、BIOSでカセットのモーターON/OFFとデータ読込み/書込みができます。
BIOS FN#26:カセットのモーター制御B=0:モーターOFF
B=1:モーターONBIOS FN#27:カセットからデータ読み込みHL:バッファアドレス
DE: データサイズ
BSAVEで保存されたバイナリデータのヘッダー は以下のようになっています。
1 byte 01h固定 2 byte FEh固定 3-8 byte ファイル名 9-10 byte 読込み先アドレス 11-12 byte 読込みサイズ
BIOSでカセットの先頭12バイトを読み込み、その情報を表示するプログラムです。
10 CLEAR ,&HEFFF20 FOR I=&HF000 TO &HF025:READ A$:POKE I,VAL("&H"+A$):NEXT I30 PRINT "Set Cassette Tape and Hit Space Key."40 A$=INKEY$:IF A$<>" " GOTO 4050 A=&HF000:CALL A60 R=&HF02670 IF PEEK(R)=1 THEN PRINT "Checksum Error.":END80 IF PEEK(R+1)<>1 OR PEEK(R+2)<>&HFE THEN PRINT "Not Binary Data.":END90 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,00130 DATA 0E,1B,CD,05,00,17,E6,01,32,26,F0,01,1A,00,CD,05140 DATA 00,C1,D1,E1,F1,C9
実際にカセットテープから情報を読込む動画です。
最初はBASICデータなので「No Binary Data.」と表示され、次のBinaryデータはファイル名とアドレス、サイズが表示されます。
何かのお役に立てば...

0 件のコメント:
コメントを投稿