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 にはこの問題は無いので修正は不要です。