1chipMSX の FIELD ステートメントを修正する
1chipMSX の FIELD ステートメントを修正する
1chipMSX の DISK BASIC 2.01 では FIELD ステートメントが正常動作しません。
正常な FS-A1ST の DOS2 kernel と比較するとアドレス6000hが1バイト化けています。
FS-A1ST DOS2 kernel 2.30 (正常動作)
L5FF9: LD IX,#0x5597 ; 5FF9: DD 21 97 55
L5FFD: CALL 0x664F ; 5FFD: CD 4F 66
L6000: JP NZ,0x6627 ; 6000: C2 27 66
L6003: POP AF ; 6003: F1
L6004: EX (SP),HL ; 6004: E3
1chip MSX DOS2 kernel 2.31 (異常動作)
L5FF9: LD IX,#0x5597 ; 5FF9: DD 21 97 55
L5FFD: CALL 0x664F ; 5FFD: CD 4F 66
L6000: LD (BC),A ; 6000: 02
L6001: DAA ; 6001: 27
L6002: LD H,(HL) ; 6002: 66
L6003: POP AF ; 6003: F1
L6004: EX (SP),HL ; 6004: E3
DOS2 kernelアドレスの6000hは1chipMSXのBIOSのオフセット2000hにあたります。
OCM-SDBIOSのバイナリであれば、バイナリエディタでオフセット2000hの002hを0C2hに変更します。
1chipMSX系のソースの無圧縮のhexファイルでは
:20200000022766F1E3D5E52A6AF54F060009226AF5EB2A68F5E7DA3366D1E1712373237221
^^ ^^
を
:20200000C22766F1E3D5E52A6AF54F060009226AF5EB2A68F5E7DA3366D1E1712373237261
^^ ^^
に修正すると正常動作します。
圧縮版のhexファイルの修正方法は不明です。
Nextor にはこの問題は無いので修正は不要です。