MSX版の「銀河漂流バイファム(ROM)」は、MSX2以降で動かそうとしても起動しません。
これをなんとか動かしてしまおう、というページです。
プログラムを解析してみたところ、起動直後に、システムROMの意味不明なアドレス(044EH)を呼び出そうとしていました。
明らかに不具合なのですが、MSX1の場合はたまたま暴走せずにリターンするため、気づかれなかったようです。
本来はどこかのサブルーチンを呼び出すつもりだったとは思うのですが、特に呼ばなくても動作に問題はなさそうなので、この部分をスキップしてしまえば、MSX2以降でも動作します。
対応方法は簡単で、意味不明なアドレスのコールをやめる(例えば B307Hの"CD"を"01"に書き換える)だけで動作するようになります。
とはいっても、多くの方はROMを書き換えることなどできないと思うので、MSX2以降でも動作するディスク版を作ってみました。
10 CLEAR50,&HD000 20 PRINT"SET [VIFAM] TO SLOT-1 AND" 30 PRINT"INSERT DISK TO DRIVE-A" 40 PRINT:PRINT"HIT ANY KEY TO CONVERT";:A$=INPUT$(1) 50 SCREEN 8:CLS 60 FOR I=&HD000 TO &HD01F:READ A$:POKE I,VAL("&H"+A$):NEXT 70 DATA 3E,01,26,80,CD,24,00,21,00,80,11,00,80,01,00,40 80 DATA CD,5C,00,3A,43,F3,26,80,CD,24,00,C9,00,00,00,00 90 DEFUSR=&HD000:A=USR(0) 100 VPOKE&HB307,1:'PATCH 110 BSAVE"VIFAM.BIN",&H8010,&HBFFF,S
BLOAD"VIFAM.BIN",R