исправлены поплывшие адреса ниже SETUP_RESET_HANDLER

This commit is contained in:
Tolik 2024-10-25 00:10:13 +10:00
parent 6548d0a49f
commit b64a54289f
2 changed files with 108 additions and 100 deletions

@ -1 +1 @@
Subproject commit 4e4294ea21fab73299b8e389979c38d801f861b0 Subproject commit be501b0cc276065a9981e471dd26f9b069af7604

View File

@ -22,7 +22,7 @@ NEW_BUFFERS: ; For Zero page
DSS_MIN_VERS: DSS_MIN_VERS:
.vers EQU 1 .vers EQU 1
.modf EQU 70 .modf EQU 70
.build EQU 999 .build EQU 998
GAME_NEED_MEM_PAGES EQU #C6 GAME_NEED_MEM_PAGES EQU #C6
PAGES_BUFFER EQU #BE00 PAGES_BUFFER EQU #BE00
@ -238,7 +238,7 @@ l8205h: LD A,GAME_NEED_MEM_PAGES ;8205 3e c6 > .
.mem_pg+1: LD A,5 ;822f 3e 05 > . .mem_pg+1: LD A,5 ;822f 3e 05 > .
OUT (SLOT1),A ;8231 d3 a2 . . OUT (SLOT1),A ;8231 d3 a2 . .
; ;
HARD_RESET: LD A,ACEX.Config_PG.Sp2000 HARD_RESET: LD A,ACEX.Config_PG.Sp2000_AcexSetUpNow
LD BC,BIOS.RST_CONF.CUSTOM LD BC,BIOS.RST_CONF.CUSTOM
RST ToBIOS RST ToBIOS
; ;
@ -462,20 +462,21 @@ GAME_CONF_NAME: DB 'GAME_00.ACX' ;830d
DB 0 ;831c DB 0 ;831c
SETUP_RESET_HANDLER: SETUP_RESET_HANDLER:
; [ ] FIX zx pages 20/10/2024
DI ;831d f3 . DI ;831d f3 .
IN A,(SLOT3) ;831e db e2 . . LD A,ACEX.Config_PG.Sp2000_SoftRestartSet
LD (RESET_HANDLER_BEGIN.mem_pg),A ;8320 32 5d 83 2 ] . LD BC,BIOS.RST_CONF.CUSTOM
LD A,Spec_Page ;8323 3e 41 > A RST ToBIOS
RET
;IN A,(SLOT3) ;831e db e2 . .
;LD (RESET_HANDLER_BEGIN.mem_pg),A ;8320 32 5d 83 2 ] .
;LD A,Spec_Page ;8323 3e 41 > A
OUT (SLOT3),A ;8325 d3 e2 . . OUT (SLOT3),A ;8325 d3 e2 . .
LD (Spec_Page.RET_addr),DE ;8327 ed 53 f4 ff . S . . LD (Spec_Page.RET_addr),DE ;8327 ed 53 f4 ff . S . .
; [ ] FIX zx pages 20/10/2024 LD A,'Z' ;832b 3e 5a > Z
CALL SETUP_RESET_HANDLER_NEW LD (Spec_Page.flag_Z),A ;832d 32 fe ff 2 . .
BLOCK #8335-$,0 LD A,'X' ;8330 3e 58 > X
;LD A,'Z' ;832b 3e 5a > Z LD (Spec_Page.flag_X),A ;8332 32 ff ff 2 . .
;LD (Spec_Page.flag_Z),A ;832d 32 fe ff 2 . .
;LD A,'X' ;8330 3e 58 > X
;LD (Spec_Page.flag_X),A ;8332 32 ff ff 2 . .
;
IN A,(SLOT0) ;8335 db 82 . . IN A,(SLOT0) ;8335 db 82 . .
LD (Spec_Page.page_0),A ;8337 32 f0 ff 2 . . LD (Spec_Page.page_0),A ;8337 32 f0 ff 2 . .
IN A,(SLOT1) ;833a db a2 . . IN A,(SLOT1) ;833a db a2 . .
@ -487,6 +488,8 @@ SETUP_RESET_HANDLER:
LD A,(RESET_HANDLER_BEGIN.mem_pg) ;8349 3a 5d 83 : ] . LD A,(RESET_HANDLER_BEGIN.mem_pg) ;8349 3a 5d 83 : ] .
OUT (SLOT3),A ;834c d3 e2 . . OUT (SLOT3),A ;834c d3 e2 . .
RET ;834e c9 . RET ;834e c9 .
;
BLOCK #834F-$,0
RESET_HANDLER_BEGIN: RESET_HANDLER_BEGIN:
DI ;834f f3 . DI ;834f f3 .
LD SP,#bff0 ;8350 31 f0 bf 1 . . LD SP,#bff0 ;8350 31 f0 bf 1 . .
@ -6156,13 +6159,7 @@ NEW_CODE_START: DI
SBC HL,BC SBC HL,BC
JR NC,ERROR_OLD_DSS JR NC,ERROR_OLD_DSS
; ;
LD C,Dss.GetVMod CALL FULL_SAVE_TXT_SCREEN
RST ToDSS
JR C,.no_vmode
CP #80
CALL C,SAVE_TXT_SCREEN
;
.no_vmode: CALL SAVE_PAL
; ;
LD A,GAME_NEED_MEM_PAGES LD A,GAME_NEED_MEM_PAGES
CALL GET_MEM_AND_PAGES CALL GET_MEM_AND_PAGES
@ -6265,16 +6262,21 @@ NEW_CODE_START: DI
POP HL POP HL
LD A,(HL) LD A,(HL)
LD B,A LD B,A
LD A,ACEX.Config_PG.Sp2000 LD A,ACEX.Config_PG.Sp2000_AcexSetUpNow
LD C,BIOS.RST_CONF.CUSTOM LD C,BIOS.RST_CONF.CUSTOM
RST ToBIOS RST ToBIOS
; ;
DI DI
LD A,SYS_PORT.CNF_0 LD A,SYS_PORT.CNF_0
OUT (SYS_PORT.RAM),A OUT (SYS_PORT.RAM),A
; ­  ¢á直© á«ãç ©
IN A,(SLOT3)
LD (RESET_HANDLER_BEGIN.mem_pg),A
; ;
LD DE,CAD_RESET_HANDLER LD DE,CAD_RESET_HANDLER
CALL SETUP_RESET_HANDLER LD A,ACEX.Config_PG.Sp2000_SoftRestartSet
LD BC,BIOS.RST_CONF.CUSTOM
RST ToBIOS
; ;
LD A,(PAGES_BUFFER) LD A,(PAGES_BUFFER)
LD C,Dss.FreeMem LD C,Dss.FreeMem
@ -6300,71 +6302,30 @@ TITD_ACX:
CAD_RESET_HANDLER: CAD_RESET_HANDLER:
LD A,(Spec_Page.page_3) ; PAGE3 LD A,(Spec_Page.page_3) ; PAGE3
OUT (SLOT3),A OUT (SLOT3),A
LD A,SYS_PORT.CNF_0 ; LD A,SYS_PORT.CNF_0
OUT (SYS_PORT.ROM),A ; OUT (SYS_PORT.ROM),A
LD BC,BIOS.REINIT.HARD_RESET LD BC,BIOS.REINIT.HARD_RESET
JP ToBIOS_18 JP ToBIOS_18
; ;
; ;
SETUP_RESET_HANDLER_NEW:; “áâ ­ ¢«¨¢ ¥¬ ª«îç¨ ; SETUP_RESET_HANDLER_NEW:; “áâ ­ ¢«¨¢ ¥¬ ª«îç¨
PUSH HL ; PUSH HL
LD HL,Spec_Page.flag_R ; LD HL,Spec_Page.flag_R
LD (HL),"R" ; LD (HL),"R"
INC HL ; INC HL
LD (HL),"S" ; LD (HL),"S"
INC HL ; INC HL
LD (HL),"T" ; LD (HL),"T"
POP HL ; POP HL
; ; ;
LD A,#FF ; LD A,#FF
LD (Spec_Page.Reload_Version),A ; LD (Spec_Page.Reload_Version),A
; ; ;
RET ; RET
; ; ;
PREPARE_TO_EXIT_NEW: CALL RESTORE_IM1_DSS PREPARE_TO_EXIT_NEW: CALL RESTORE_IM1_DSS
; JR FULL_RESTORE_SCREEN
LD A,4
LD C,BIOS.FN_SYNC
RST ToBIOS
;
LD A,%1000'0000
LD C,BIOS.FN_SYNC
RST ToBIOS
;
LD A,(.current_screen)
LD E,A
LD BC,BIOS.LP_OPEN_S.TXT_80x32_Default
RST ToBIOS
;
CALL RESTORE_PAL
;
LD BC,Dss.Lib_Sub.RestoreFont
RST ToDSS
;
LD A,(.current_vmode)
CP Dss.SetVMod.txt80x32 + 1
RET NC
;
;
; LD A,(.current_screen)
; XOR 1
; LD B,A
; LD A,Dss.SetVMod.grf640x256
; LD C,Dss.SetVMod
; RST ToDSS
;
.current_vmode+1: LD A,Dss.SetVMod.txt80x32
.current_screen+2: LD BC,Dss.SetVMod.Screen_0
RST ToDSS
;
.cursor+1: LD DE,0
LD C,Dss.Locate
RST ToDSS
LD C,Dss.WinRest
JR TXT_Screen_Copy_Restore
;
;*********************************************************************** ;***********************************************************************
SAVE_PAL: IN A,(SLOT0) SAVE_PAL: IN A,(SLOT0)
EX AF,AF' EX AF,AF'
@ -6412,18 +6373,14 @@ RESTORE_PAL: IN A,(SLOT0)
RET RET
;*********************************************************************** ;***********************************************************************
SAVE_TXT_SCREEN: SAVE_TXT_SCREEN:
LD (PREPARE_TO_EXIT_NEW.current_vmode),A
LD A,B
LD (PREPARE_TO_EXIT_NEW.current_screen),A
;
LD C,Dss.Cursor LD C,Dss.Cursor
RST ToDSS RST ToDSS
LD (PREPARE_TO_EXIT_NEW.cursor),DE LD (FULL_RESTORE_SCREEN.cursor),DE
; ;
LD C,Dss.WinCopy LD C,Dss.WinCopy
;;;;;;;;; ;;;;;;;;;
TXT_Screen_Copy_Restore: TXT_Screen_Copy_Restore:
LD A,(PREPARE_TO_EXIT_NEW.current_vmode) LD A,(FULL_RESTORE_SCREEN.current_vmode)
SUB 2 SUB 2
LD DE,0 LD DE,0
LD HL,#2050 LD HL,#2050
@ -6434,6 +6391,57 @@ TXT_Screen_Copy_Restore:
LD IX,NEW_BUFFERS.TXT_Screen LD IX,NEW_BUFFERS.TXT_Screen
JP ToDSS JP ToDSS
;*********************************************************************** ;***********************************************************************
FULL_SAVE_TXT_SCREEN:
LD C,Dss.GetVMod
RST ToDSS
JR C,.no_vmode
CP #80
LD (FULL_RESTORE_SCREEN.current_vmode),A
LD A,B
LD (FULL_RESTORE_SCREEN.current_screen),A
CALL C,SAVE_TXT_SCREEN
;
.no_vmode: JR SAVE_PAL
;***********************************************************************
FULL_RESTORE_SCREEN: LD A,4
LD C,BIOS.FN_SYNC
RST ToBIOS
;
LD A,%1000'0000
LD C,BIOS.FN_SYNC
RST ToBIOS
;
LD A,(.current_screen)
LD E,A
LD BC,BIOS.LP_OPEN_S.TXT_80x32_Default
RST ToBIOS
;
CALL RESTORE_PAL
;
LD BC,Dss.Lib_Sub.RestoreFont
RST ToDSS
;
; LD A,(.current_screen)
; XOR 1
; LD B,A
; LD A,Dss.SetVMod.grf640x256
; LD C,Dss.SetVMod
; RST ToDSS
;
.current_vmode+1: LD A,Dss.SetVMod.txt80x32
.current_screen+2: LD BC,Dss.SetVMod.Screen_0
RST ToDSS
;
LD A,(.current_vmode)
CP Dss.SetVMod.txt80x32 + 1
RET NC
;
.cursor+1: LD DE,0
LD C,Dss.Locate
RST ToDSS
LD C,Dss.WinRest
JR TXT_Screen_Copy_Restore
;***********************************************************************
LOADER_STRINGS: LOADER_STRINGS:
.Info: DB "\r\nThunder in the Deep v1.10 fixed. Copyright (C) 2003 Deviants.\r\n" .Info: DB "\r\nThunder in the Deep v1.10 fixed. Copyright (C) 2003 Deviants.\r\n"