-bug with EMM.CheckColdInit and ID_Version

This commit is contained in:
Anatoliy Belyanskiy 2024-02-25 22:26:15 +10:00
parent a45ed5093d
commit 945e2840f0
6 changed files with 36 additions and 28 deletions

@ -1 +1 @@
Subproject commit 5a5dcf0bd035d2adaaa27d28bb8ed1bd86260d59 Subproject commit cbc1fd596a5a56298407c13a529a574e968235c7

View File

@ -211,28 +211,29 @@ NMI_Point:
; BLOCK MEM_MAP.ID_Version-$,0 ;#C0-$,0 ; BLOCK MEM_MAP.ID_Version-$,0 ;#C0-$,0
ID_Version: DW BIOS_ver_hex ID_Version: DW BIOS_ver_hex
ID_SPRINTER_length: ; ID_SPRINTER_FullSize:
DB ID_SPRINTER.LENGTH ; DB ID_SPRINTER.Size
; § ¯¨áì 1 ; § ¯¨áì 1
ID_SPRINTER: DB 'Firmware v' ID_SPRINTER: DB 'Firmware v'
.BIOS_ver: DB BIOS_ver_string,', ' .BIOS_ver: DB BIOS_ver_string,' '
IF DEBUG IF BETA_BUILD
DB 'BETA release' DB 'BETA'
ELSE ELSE
DB 'release ',BUILD_DATE DB '[',BUILD_DATE,']'
ENDIF ENDIF
DB 0 DB 0
.Record1_Size EQU $-ID_SPRINTER
; § ¯¨áì 2 ; § ¯¨áì 2
DB 'Sprinter',0 DB 'Sprinter',0
; § ¯¨áì 3 ; § ¯¨áì 3
.bitstream_ver: DB bitstream_ver_string,0 .bitstream_ver: DB bitstream_ver_string,0
DB 0 DB 0
; ;
.Size EQU $-ID_SPRINTER
.Records_Num EQU 3 .Records_Num EQU 3
.LENGTH EQU $-ID_SPRINTER
; Check for max length of string ; Check for max length of string
ASSERT ID_SPRINTER.LENGTH < #FF, 'ERROR! ID String is to long!' ASSERT ID_SPRINTER.Record1_Size < SYS_PAGE.ID_FLAG.Size, 'ERROR! ID String is to long!'
;======================================= ;=======================================

View File

@ -31,11 +31,13 @@ EMM.GetBanksPorts:
FN_VERSION: FN_VERSION:
PUSH HL PUSH HL
EX DE,HL EX DE,HL
LD HL,ID_SPRINTER_length ; LD HL,ID_SPRINTER_FullSize
;
LD B,0 ; LD B,0
LD C,(HL) ; LD C,(HL)
INC HL ; INC HL
LD HL,ID_SPRINTER
LD BC,ID_SPRINTER.Size
LDIR LDIR
; ;
POP HL POP HL
@ -147,11 +149,13 @@ EMM.CheckColdInit:
OUT (SLOT2),A OUT (SLOT2),A
LD HL,SYS_PAGE.ID_FLAG - #4000 LD HL,SYS_PAGE.ID_FLAG - #4000
LD DE,ID_SPRINTER_length ; LD DE,ID_SPRINTER_FullSize
LD A,(DE) ; LD A,(DE)
DEC A ; DEC A
INC DE ; INC DE
LD B,A ; LD B,A
LD B,ID_SPRINTER.Record1_Size
LD DE,ID_SPRINTER
.loop: LD A,(DE) .loop: LD A,(DE)
CP (HL) CP (HL)
JR NZ,INIT_SYS_ALL JR NZ,INIT_SYS_ALL
@ -178,11 +182,14 @@ EMM.FullInit:
OUT (SLOT2),A OUT (SLOT2),A
INIT_SYS_ALL: INIT_SYS_ALL:
DI DI
LD HL,ID_SPRINTER_length ; LD HL,ID_SPRINTER_FullSize
; LD DE,SYS_PAGE.ID_FLAG - #4000
; LD C,(HL)
; LD B,0
; INC HL
LD HL,ID_SPRINTER
LD DE,SYS_PAGE.ID_FLAG - #4000 LD DE,SYS_PAGE.ID_FLAG - #4000
LD C,(HL) LD BC,ID_SPRINTER.Record1_Size
LD B,0
INC HL
LDIR LDIR
; Disable user IM address in SYS_PAGE ; Disable user IM address in SYS_PAGE

View File

@ -426,7 +426,7 @@ INSTALL:
LD E,COLORS.CGA.INC.GREEN LD E,COLORS.CGA.INC.GREEN
CALL POSTMSC CALL POSTMSC
IF DEBUG IF BETA_BUILD
LD DE,#0328 LD DE,#0328
CALL LP_SET_PLACE CALL LP_SET_PLACE
LD A,msgStrings.testBIOSmsg LD A,msgStrings.testBIOSmsg

View File

@ -632,7 +632,7 @@ msgStrings:
_mSetStr parSetTime, tmp_Counter : DZ 'Date and Time setup : ' _mSetStr parSetTime, tmp_Counter : DZ 'Date and Time setup : '
_mSetStr valFolder, tmp_Counter : DB 16,'ENTER',17,0 _mSetStr valFolder, tmp_Counter : DB 16,'ENTER',17,0
ENDIF ENDIF
IF DEBUG IF BETA_BUILD
_mSetStr testBIOSmsg, tmp_Counter : DZ 'Test build! ',BUILD_DATE,', ',__TIME__ _mSetStr testBIOSmsg, tmp_Counter : DZ 'Test build! ',BUILD_DATE,', ',__TIME__
ENDIF ENDIF
; ;
@ -781,7 +781,7 @@ msgRusStrings:
_mSetStrRus parSetTime, tmp_Counter : DZ ' â  ¨ ¢à¥¬ï : ' _mSetStrRus parSetTime, tmp_Counter : DZ ' â  ¨ ¢à¥¬ï : '
_mSetStrRus valFolder, tmp_Counter : DB 16,'Ž',17,0 _mSetStrRus valFolder, tmp_Counter : DB 16,'Ž',17,0
ENDIF ENDIF
IF DEBUG IF BETA_BUILD
_mSetStrRus testBIOSmsg, tmp_Counter : DZ '¥á⮢ ï ᡮઠ! ',BUILD_DATE,', ',__TIME__ _mSetStrRus testBIOSmsg, tmp_Counter : DZ '¥á⮢ ï ᡮઠ! ',BUILD_DATE,', ',__TIME__
ENDIF ENDIF
; ;

View File

@ -1,6 +1,6 @@
; ;
;---------[All shared defines]---------- ;---------[All shared defines]----------
DEFINE DEBUG 1 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥­¨¥ ® â¥á⮢®© ᡮથ ­  áâ à⮢®¬ íªà ­¥ DEFINE BETA_BUILD 1 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥­¨¥ ® â¥á⮢®© ᡮથ ­  áâ à⮢®¬ íªà ­¥
DEFINE PACKED_MAIN 0 ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®? DEFINE PACKED_MAIN 0 ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
DEFINE SP2000_Loader_Flag #0107 DEFINE SP2000_Loader_Flag #0107
DEFINE IDE_Optimization 1 ; á«¥£ª  ®¯â¨¬¨§¨àã¥â ­¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD DEFINE IDE_Optimization 1 ; á«¥£ª  ®¯â¨¬¨§¨àã¥â ­¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD