mirror of
https://github.com/Tolik-Trek/TITD.git
synced 2026-06-15 00:51:36 +03:00
вроде, работает
This commit is contained in:
parent
e2fe8cb221
commit
e0ded79aa7
@ -8,8 +8,10 @@
|
|||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
Loader_length EQU 0
|
Loader_length EQU 0
|
||||||
code_addr EQU #8000
|
code_addr EQU #8000
|
||||||
program_start EQU code_addr
|
;program_start EQU code_addr
|
||||||
|
program_start EQU NEW_CODE_START
|
||||||
stack_point EQU #C000
|
stack_point EQU #C000
|
||||||
|
.size EQU 128
|
||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
GAME_NEED_MEM_PAGES EQU #C6
|
GAME_NEED_MEM_PAGES EQU #C6
|
||||||
PAGES_BUFFER EQU #BE00
|
PAGES_BUFFER EQU #BE00
|
||||||
@ -200,166 +202,156 @@ l81dch:
|
|||||||
POP AF ;8203 f1 .
|
POP AF ;8203 f1 .
|
||||||
RET ;8204 c9 .
|
RET ;8204 c9 .
|
||||||
|
|
||||||
l8205h: LD A,GAME_NEED_MEM_PAGES ;8205 3e c6 > .
|
; [ ] FIX 19/10/2024 - ¯à®æ¥¤ãà ¥ ¢ë§ë¢ ¥âáï
|
||||||
CALL GET_MEM_AND_PAGES ;8207 cd b7 a1 . . .
|
l8205h: LD A,GAME_NEED_MEM_PAGES ;8205 3e c6 > .
|
||||||
CALL GENERATE_PALETTE ;820a cd 26 93 . & .
|
CALL GET_MEM_AND_PAGES ;8207 cd b7 a1 . . .
|
||||||
DI ;820d f3 .
|
CALL GENERATE_PALETTE ;820a cd 26 93 . & .
|
||||||
; [ ] FIX 19/10/2024
|
DI ;820d f3 .
|
||||||
IN A,(SLOT1)
|
LD A,SYS_PORT.CNF_3 ;820e 3e 1c > .
|
||||||
LD (.mem_pg),A
|
OUT (SYS_PORT.RAM),A ;8210 d3 3c . <
|
||||||
;
|
LD A,Z84.REG.Misc_Ctrl ;8212 3e 03 > .
|
||||||
LD HL,TITD_ACX.NAME
|
OUT (Z84.SYS.Control),A ;8214 d3 ee . .
|
||||||
LD BC,BIOS.FN_CRIPT.AcexAndBitstream
|
LD A,%0000'0011 ; CS1/CS0 enabled
|
||||||
|
OUT (Z84.SYS.Data),A ;8218 d3 ef . .
|
||||||
|
IN A,(SLOT1) ;821a db a2 . .
|
||||||
|
LD (.mem_pg),A ;821c 32 30 82 2 0 .
|
||||||
|
CALL GET_RESOURCE_TITD.ACX ;821f cd e8 82 . . .
|
||||||
|
LD DE,RESET_HANDLER_BEGIN ;8222 11 4f 83 . O .
|
||||||
|
CALL SETUP_RESET_HANDLER ;8225 cd 1d 83 . . .
|
||||||
|
IN A,(FastRAM.ON) ;8228 db fb . .
|
||||||
|
CALL INSTALL_TITD.ACX ;822a cd 54 82 . T .
|
||||||
|
IN A,(FastRAM.OFF) ;822d db 7b . {
|
||||||
|
.mem_pg+1: LD A,5 ;822f 3e 05 > .
|
||||||
|
OUT (SLOT1),A ;8231 d3 a2 . .
|
||||||
|
;
|
||||||
|
HARD_RESET: DI ;8233 f3 .
|
||||||
|
LD A,ACEX.Config_PG.Sp2000
|
||||||
|
LD BC,BIOS.RST_CONF.CUSTOM
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
;
|
;
|
||||||
LD HL,TITD_ACX.NAME
|
CALL PREPARE_TO_EXIT_NEW
|
||||||
LD BC,5
|
|
||||||
PUSH BC
|
|
||||||
XOR A
|
|
||||||
CPIR
|
|
||||||
;JP PO,SetUp_RESET_EXIT ; íª®®¬¨¬ ¯ ¬ïâì
|
|
||||||
;
|
;
|
||||||
DEC HL
|
.loop_exit: LD BC,Dss.Exit
|
||||||
EX DE,HL
|
RST ToDSS
|
||||||
LD HL,TITD_ACX.TYPE
|
DI
|
||||||
POP BC
|
JR .loop_exit
|
||||||
LDIR
|
;
|
||||||
JR NEW_CONF_SETUP
|
BLOCK #8252-$,0
|
||||||
;LD A,SYS_PORT.CNF_3 ;820e 3e 1c > .
|
;IN A,(SLOT1) ;8234 db a2 . .
|
||||||
;OUT (SYS_PORT.RAM),A ;8210 d3 3c . <
|
;PUSH AF ;8236 f5 .
|
||||||
;LD A,Z84.REG.Misc_Ctrl ;8212 3e 03 > .
|
;LD A,DCP_PAGE ;8237 3e 40 > @
|
||||||
;OUT (Z84.SYS.Control),A ;8214 d3 ee . .
|
;OUT (SLOT1),A ;8239 d3 a2 . .
|
||||||
;LD A,%0000'0011 ; CS1/CS0 enabled
|
;LD A,ACEX.RESET ;823b 3e 2e > .
|
||||||
;OUT (Z84.SYS.Data),A ;8218 d3 ef . .
|
;LD (#4400),A ;823d 32 00 44 2 . D
|
||||||
;IN A,(SLOT1) ;821a db a2 . .
|
;LD (#4600),A ;8240 32 00 46 2 . F
|
||||||
;LD (.mem_pg),A ;821c 32 30 82 2 0 .
|
;POP AF ;8243 f1 .
|
||||||
;CALL GET_RESOURCE_TITD.ACX ;821f cd e8 82 . . .
|
;OUT (SLOT1),A ;8244 d3 a2 . .
|
||||||
;LD DE,RESET_HANDLER_BEGIN ;8222 11 4f 83 . O .
|
.loop: ;LD BC,#0100 ;8246 01 00 01 . . .
|
||||||
;CALL SETUP_RESET_HANDLER ;8225 cd 1d 83 . . .
|
;OUT (C),C ;8249 ed 49 . I
|
||||||
;IN A,(FastRAM.ON) ;8228 db fb . .
|
;LD BC,0 ;824b 01 00 00 . . .
|
||||||
;CALL INSTALL_TITD.ACX ;822a cd 54 82 . T .
|
;OUT (C),C ;824e ed 49 . I
|
||||||
;IN A,(FastRAM.OFF) ;822d db 7b . {
|
;JR .loop ;8250 18 f4 . .
|
||||||
BLOCK #822f-$,0
|
|
||||||
;
|
|
||||||
.mem_pg+1: LD A,5 ;822f 3e 05 > .
|
|
||||||
OUT (SLOT1),A ;8231 d3 a2 . .
|
|
||||||
l8233h: DI ;8233 f3 .
|
|
||||||
IN A,(SLOT1) ;8234 db a2 . .
|
|
||||||
PUSH AF ;8236 f5 .
|
|
||||||
LD A,DCP_PAGE ;8237 3e 40 > @
|
|
||||||
OUT (SLOT1),A ;8239 d3 a2 . .
|
|
||||||
LD A,ACEX.RESET ;823b 3e 2e > .
|
|
||||||
LD (#4400),A ;823d 32 00 44 2 . D
|
|
||||||
LD (#4600),A ;8240 32 00 46 2 . F
|
|
||||||
POP AF ;8243 f1 .
|
|
||||||
OUT (SLOT1),A ;8244 d3 a2 . .
|
|
||||||
l8246h: LD BC,#0100 ;8246 01 00 01 . . .
|
|
||||||
OUT (C),C ;8249 ed 49 . I
|
|
||||||
LD BC,0 ;824b 01 00 00 . . .
|
|
||||||
OUT (C),C ;824e ed 49 . I
|
|
||||||
JR l8246h ;8250 18 f4 . .
|
|
||||||
DI ;8252 f3 .
|
DI ;8252 f3 .
|
||||||
HALT ;8253 76 v
|
HALT ;8253 76 v
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
NEW_CONF_SETUP:
|
; NEW_CONF_SETUP:
|
||||||
; HL = TITD_ACX.NAME
|
; ; HL = TITD_ACX.NAME
|
||||||
LD (OPEN_PAK_FILE.name),HL
|
; LD (OPEN_PAK_FILE.name),HL
|
||||||
CALL OPEN_PAK_FILE ; patched
|
; CALL OPEN_PAK_FILE ; patched
|
||||||
|
; ;
|
||||||
|
; XOR A
|
||||||
|
; LD HL,(PAK_FILE_FM.Size_HL)
|
||||||
|
; LD DE,(PAK_FILE_FM.Size_IX)
|
||||||
|
; ;
|
||||||
|
; .loop: EX AF,AF'
|
||||||
|
; LD A,H
|
||||||
|
; OR L
|
||||||
|
; OR D
|
||||||
|
; OR E
|
||||||
|
; JR Z,.exit2Loop
|
||||||
|
; EX AF,AF'
|
||||||
|
; ;
|
||||||
|
; PUSH HL
|
||||||
|
; PUSH DE
|
||||||
|
; PUSH AF
|
||||||
|
; ;
|
||||||
|
; CALL SET_PAGE_SLOT3
|
||||||
|
; LD A,(PAK_FILE_FM)
|
||||||
|
; LD HL,#C000
|
||||||
|
; LD DE,#4000
|
||||||
|
; LD C,Dss.Read
|
||||||
|
; RST ToDSS
|
||||||
|
; JP C,ERROR_EXIT
|
||||||
|
; ;
|
||||||
|
; POP AF
|
||||||
|
; POP DE
|
||||||
|
; POP HL
|
||||||
|
; INC A
|
||||||
|
; CP GAME_NEED_MEM_PAGES
|
||||||
|
; JP NC,ERROR_EXIT
|
||||||
|
; ;
|
||||||
|
; CCF
|
||||||
|
; LD BC,#4000
|
||||||
|
; EX DE,HL
|
||||||
|
; SBC HL,BC
|
||||||
|
; EX DE,HL
|
||||||
|
; JR Z,.loop
|
||||||
|
; LD B,C
|
||||||
|
; SBC HL,BC
|
||||||
|
; JR NC,.loop
|
||||||
|
; .exitLoop: ; ¢ë室, ¥á«¨ à §¬¥à ª®äë ¥ ªà â¥ à §¬¥àã áâà ¨æë
|
||||||
|
; EX DE,HL
|
||||||
|
; .loop2: LD (HL),#FF
|
||||||
|
; INC HL
|
||||||
|
; BIT 7,H
|
||||||
|
; JR NZ,.loop2
|
||||||
|
; .exit2Loop: ; ¢ë室, ¥á«¨ à §¬¥à ª®äë ªà â¥ à §¬¥àã áâà ¨æë
|
||||||
|
; LD HL,PAK_FILE_NAME
|
||||||
|
; LD (OPEN_PAK_FILE.name),HL
|
||||||
|
; ;
|
||||||
|
; LD HL,PAGES_BUFFER
|
||||||
|
; PUSH HL
|
||||||
|
; LD A,(CURRENT_PAGE.SLOT3)
|
||||||
|
; INC A
|
||||||
|
; LD L,A
|
||||||
|
; LD A,(HL)
|
||||||
|
; LD C,BIOS.FreeMem
|
||||||
|
; RST ToBIOS
|
||||||
|
; ;JP C,SetUp_RESET_EXIT
|
||||||
|
; ; ¯à¥¤¯®« £ ¥¬, çâ® ¥â ®è¨¡ª¨ ¨ A=0
|
||||||
|
; POP HL
|
||||||
|
; LD A,(HL)
|
||||||
|
; LD B,A
|
||||||
|
; LD A,ACEX.Config_PG.Sp2000
|
||||||
|
; LD C,BIOS.RST_CONF.CUSTOM
|
||||||
|
; RST ToBIOS
|
||||||
|
; ;
|
||||||
|
; DI
|
||||||
|
; LD A,SYS_PORT.CNF_0
|
||||||
|
; OUT (SYS_PORT.RAM),A
|
||||||
|
; ;
|
||||||
|
; LD A,(PAGES_BUFFER)
|
||||||
|
; LD C,BIOS.FreeMem
|
||||||
|
; RST ToBIOS
|
||||||
|
; ;
|
||||||
|
; ; restore HOLD port
|
||||||
|
; LD D,CMOS_CELL.ScreenPosition
|
||||||
|
; LD C,BIOS.CMOS_RD
|
||||||
|
; RST ToBIOS
|
||||||
|
; JR C,.run_game
|
||||||
|
; ;
|
||||||
|
; LD B,A
|
||||||
|
; LD A,ACEX.HOLD
|
||||||
|
; LD C,BIOS.SET_PORTS
|
||||||
|
; RST ToBIOS
|
||||||
|
; .run_game: JP l8423h.cont
|
||||||
|
; TITD_ACX:
|
||||||
|
; .TYPE: DZ '.ACX'
|
||||||
|
; .NAME: BLOCK 9,0
|
||||||
;
|
;
|
||||||
XOR A
|
|
||||||
LD HL,(PAK_FILE_FM.Size_HL)
|
|
||||||
LD DE,(PAK_FILE_FM.Size_IX)
|
|
||||||
;
|
|
||||||
.loop: EX AF,AF'
|
|
||||||
LD A,H
|
|
||||||
OR L
|
|
||||||
OR D
|
|
||||||
OR E
|
|
||||||
JR Z,.exit2Loop
|
|
||||||
EX AF,AF'
|
|
||||||
;
|
|
||||||
PUSH HL
|
|
||||||
PUSH DE
|
|
||||||
PUSH AF
|
|
||||||
;
|
|
||||||
CALL SET_PAGE_SLOT3
|
|
||||||
LD A,(PAK_FILE_FM)
|
|
||||||
LD HL,#C000
|
|
||||||
LD DE,#4000
|
|
||||||
LD C,Dss.Read
|
|
||||||
RST ToDSS
|
|
||||||
JP C,ERROR_EXIT
|
|
||||||
;
|
|
||||||
POP AF
|
|
||||||
POP DE
|
|
||||||
POP HL
|
|
||||||
INC A
|
|
||||||
CP GAME_NEED_MEM_PAGES
|
|
||||||
JP NC,ERROR_EXIT
|
|
||||||
;
|
|
||||||
CCF
|
|
||||||
LD BC,#4000
|
|
||||||
EX DE,HL
|
|
||||||
SBC HL,BC
|
|
||||||
EX DE,HL
|
|
||||||
JR Z,.loop
|
|
||||||
LD B,C
|
|
||||||
SBC HL,BC
|
|
||||||
JR NC,.loop
|
|
||||||
.exitLoop: ; ¢ë室, ¥á«¨ à §¬¥à ª®äë ¥ ªà â¥ à §¬¥àã áâà ¨æë
|
|
||||||
EX DE,HL
|
|
||||||
.loop2: LD (HL),#FF
|
|
||||||
INC HL
|
|
||||||
BIT 7,H
|
|
||||||
JR NZ,.loop2
|
|
||||||
.exit2Loop: ; ¢ë室, ¥á«¨ à §¬¥à ª®äë ªà â¥ à §¬¥àã áâà ¨æë
|
|
||||||
LD HL,PAK_FILE_NAME
|
|
||||||
LD (OPEN_PAK_FILE.name),HL
|
|
||||||
;
|
|
||||||
LD HL,PAGES_BUFFER
|
|
||||||
PUSH HL
|
|
||||||
LD A,(CURRENT_PAGE.SLOT3)
|
|
||||||
INC A
|
|
||||||
LD L,A
|
|
||||||
LD A,(HL)
|
|
||||||
LD C,BIOS.FreeMem
|
|
||||||
RST ToBIOS
|
|
||||||
;JP C,SetUp_RESET_EXIT
|
|
||||||
; ¯à¥¤¯®« £ ¥¬, çâ® ¥â ®è¨¡ª¨ ¨ A=0
|
|
||||||
POP HL
|
|
||||||
LD A,(HL)
|
|
||||||
LD B,A
|
|
||||||
LD A,ACEX.Config_PG.Sp2000
|
|
||||||
LD C,BIOS.RST_CONF.CUSTOM
|
|
||||||
RST ToBIOS
|
|
||||||
;
|
|
||||||
DI
|
|
||||||
LD A,SYS_PORT.CNF_0
|
|
||||||
OUT (SYS_PORT.RAM),A
|
|
||||||
;
|
|
||||||
LD A,(PAGES_BUFFER)
|
|
||||||
LD C,BIOS.FreeMem
|
|
||||||
RST ToBIOS
|
|
||||||
;
|
|
||||||
; restore HOLD port
|
|
||||||
LD D,CMOS_CELL.ScreenPosition
|
|
||||||
LD C,BIOS.CMOS_RD
|
|
||||||
RST ToBIOS
|
|
||||||
JR C,.run_game
|
|
||||||
;
|
|
||||||
LD B,A
|
|
||||||
LD A,ACEX.HOLD
|
|
||||||
LD C,BIOS.SET_PORTS
|
|
||||||
RST ToBIOS
|
|
||||||
.run_game: JP l8423h.cont
|
|
||||||
TITD_ACX:
|
|
||||||
.TYPE: DZ '.ACX'
|
|
||||||
.NAME: BLOCK 9,0
|
|
||||||
;
|
|
||||||
/*
|
|
||||||
;!TODO
|
|
||||||
INSTALL_TITD.ACX:
|
INSTALL_TITD.ACX:
|
||||||
DI ;8254 f3 .
|
DI ;8254 f3 .
|
||||||
LD BC,#1FFD ;8255 01 fd 1f . . .
|
LD BC,#1FFD ;8255 01 fd 1f . . .
|
||||||
@ -422,8 +414,7 @@ INSTALL_TITD.ACX:
|
|||||||
.IM_FLAG: DB 0 ;82d7 00 .
|
.IM_FLAG: DB 0 ;82d7 00 .
|
||||||
.reload_str: DB ACEX.RELOAD_STRING ;82d8
|
.reload_str: DB ACEX.RELOAD_STRING ;82d8
|
||||||
.reload_str.size: EQU $-.reload_str
|
.reload_str.size: EQU $-.reload_str
|
||||||
*/
|
; BLOCK #82e8-$,0
|
||||||
BLOCK #82e8-$,0
|
|
||||||
|
|
||||||
|
|
||||||
GET_RESOURCE_TITD.ACX:
|
GET_RESOURCE_TITD.ACX:
|
||||||
@ -463,18 +454,20 @@ SETUP_RESET_HANDLER:
|
|||||||
LD A,Spec_Page ;8323 3e 41 > A
|
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 . .
|
||||||
l832bh:
|
; [ ] 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 . .
|
||||||
LD (Spec_Page.page_1),A ;833c 32 f1 ff 2 . .
|
LD (Spec_Page.page_1),A ;833c 32 f1 ff 2 . .
|
||||||
IN A,(SLOT2) ;833f db c2 . .
|
IN A,(SLOT2) ;833f db c2 . .
|
||||||
LD (Spec_Page.page_2),A ;8341 32 f2 ff 2 . .
|
LD (Spec_Page.page_2),A ;8341 32 f2 ff 2 . .
|
||||||
l8344h:
|
|
||||||
IN A,(SLOT3) ;8344 db e2 . .
|
IN A,(SLOT3) ;8344 db e2 . .
|
||||||
LD (Spec_Page.page_3),A ;8346 32 f3 ff 2 . .
|
LD (Spec_Page.page_3),A ;8346 32 f3 ff 2 . .
|
||||||
LD A,(RESET_HANDLER_BEGIN.mem_pg) ;8349 3a 5d 83 : ] .
|
LD A,(RESET_HANDLER_BEGIN.mem_pg) ;8349 3a 5d 83 : ] .
|
||||||
@ -487,13 +480,13 @@ RESET_HANDLER_BEGIN:
|
|||||||
OUT (SYS_PORT.RAM),A ;8355 d3 3c . <
|
OUT (SYS_PORT.RAM),A ;8355 d3 3c . <
|
||||||
LD A,(Spec_Page.page_0) ;8357 3a f0 ff : . .
|
LD A,(Spec_Page.page_0) ;8357 3a f0 ff : . .
|
||||||
OUT (SLOT0),A ;835a d3 82 . .
|
OUT (SLOT0),A ;835a d3 82 . .
|
||||||
.mem_pg+1: LD A,#41 ;835c 3e 41 > A
|
.mem_pg+1: LD A,Spec_Page ;835c 3e 41 > A
|
||||||
OUT (SLOT3),A ;835e d3 e2 . .
|
OUT (SLOT3),A ;835e d3 e2 . .
|
||||||
JP l8415h ;8360 c3 15 84 . . .
|
JP l8415h ;8360 c3 15 84 . . .
|
||||||
SetUp_RESET_EXIT:
|
SetUp_RESET_EXIT:
|
||||||
LD DE,RESET_HANDLER_EXIT ;8363 11 df 83 . . .
|
LD DE,RESET_HANDLER_EXIT ;8363 11 df 83 . . .
|
||||||
CALL SETUP_RESET_HANDLER ;8366 cd 1d 83 . . .
|
CALL SETUP_RESET_HANDLER ;8366 cd 1d 83 . . .
|
||||||
JP l8233h ;8369 c3 33 82 . 3 .
|
JP HARD_RESET ;8369 c3 33 82 . 3 .
|
||||||
|
|
||||||
CALL FAST_RAM_FN.OFF_DI ;836c cd 7c a2 . | .
|
CALL FAST_RAM_FN.OFF_DI ;836c cd 7c a2 . | .
|
||||||
CALL GENERATE_PALETTE ;836f cd 26 93 . & .
|
CALL GENERATE_PALETTE ;836f cd 26 93 . & .
|
||||||
@ -5214,7 +5207,7 @@ sub_a718h: LD A,(laa88h) ;a718 3a 88 aa : . .
|
|||||||
LD HL,(la857h) ;a732 2a 57 a8 * W .
|
LD HL,(la857h) ;a732 2a 57 a8 * W .
|
||||||
LD A,(PAK_FILE_FM) ;a735 3a 80 aa : . .
|
LD A,(PAK_FILE_FM) ;a735 3a 80 aa : . .
|
||||||
LD B,000h ;a738 06 00 . .
|
LD B,000h ;a738 06 00 . .
|
||||||
LD C,015h ;a73a 0e 15 . .
|
LD C,Dss.Move_FP ;a73a 0e 15 . .
|
||||||
RST ToDSS ;a73c d7 .
|
RST ToDSS ;a73c d7 .
|
||||||
LD B,01bh ;a73d 06 1b . .
|
LD B,01bh ;a73d 06 1b . .
|
||||||
LD C,010h ;a73f 0e 10 . .
|
LD C,010h ;a73f 0e 10 . .
|
||||||
@ -5255,7 +5248,7 @@ la784h: CP 002h ;a784 fe 02 . .
|
|||||||
LD HL,(la853h) ;a791 2a 53 a8 * S .
|
LD HL,(la853h) ;a791 2a 53 a8 * S .
|
||||||
LD A,(PAK_FILE_FM) ;a794 3a 80 aa : . .
|
LD A,(PAK_FILE_FM) ;a794 3a 80 aa : . .
|
||||||
LD B,000h ;a797 06 00 . .
|
LD B,000h ;a797 06 00 . .
|
||||||
LD C,015h ;a799 0e 15 . .
|
LD C,Dss.Move_FP ;a799 0e 15 . .
|
||||||
RST ToDSS ;a79b d7 .
|
RST ToDSS ;a79b d7 .
|
||||||
LD B,01bh ;a79c 06 1b . .
|
LD B,01bh ;a79c 06 1b . .
|
||||||
LD C,010h ;a79e 0e 10 . .
|
LD C,010h ;a79e 0e 10 . .
|
||||||
@ -5280,7 +5273,7 @@ la7b6h: LD A,(laa88h) ;a7b6 3a 88 aa : . .
|
|||||||
LD HL,(la857h) ;a7c6 2a 57 a8 * W .
|
LD HL,(la857h) ;a7c6 2a 57 a8 * W .
|
||||||
LD A,(PAK_FILE_FM) ;a7c9 3a 80 aa : . .
|
LD A,(PAK_FILE_FM) ;a7c9 3a 80 aa : . .
|
||||||
LD B,000h ;a7cc 06 00 . .
|
LD B,000h ;a7cc 06 00 . .
|
||||||
LD C,015h ;a7ce 0e 15 . .
|
LD C,Dss.Move_FP ;a7ce 0e 15 . .
|
||||||
RST ToDSS ;a7d0 d7 .
|
RST ToDSS ;a7d0 d7 .
|
||||||
LD B,01bh ;a7d1 06 1b . .
|
LD B,01bh ;a7d1 06 1b . .
|
||||||
LD C,010h ;a7d3 0e 10 . .
|
LD C,010h ;a7d3 0e 10 . .
|
||||||
@ -5302,7 +5295,7 @@ la7efh: LD HL,(la85dh) ;a7ef 2a 5d a8 * ] .
|
|||||||
LD HL,(la85bh) ;a7f8 2a 5b a8 * [ .
|
LD HL,(la85bh) ;a7f8 2a 5b a8 * [ .
|
||||||
LD A,(PAK_FILE_FM) ;a7fb 3a 80 aa : . .
|
LD A,(PAK_FILE_FM) ;a7fb 3a 80 aa : . .
|
||||||
LD B,000h ;a7fe 06 00 . .
|
LD B,000h ;a7fe 06 00 . .
|
||||||
LD C,015h ;a800 0e 15 . .
|
LD C,Dss.Move_FP ;a800 0e 15 . .
|
||||||
RST ToDSS ;a802 d7 .
|
RST ToDSS ;a802 d7 .
|
||||||
LD B,01bh ;a803 06 1b . .
|
LD B,01bh ;a803 06 1b . .
|
||||||
LD C,00fh ;a805 0e 0f . .
|
LD C,00fh ;a805 0e 0f . .
|
||||||
@ -5328,7 +5321,7 @@ sub_a824h: LD A,0c1h ;a824 3e c1 > .
|
|||||||
LD IXL,A ;a832 dd 6f . o
|
LD IXL,A ;a832 dd 6f . o
|
||||||
LD HL,(la84fh) ;a834 2a 4f a8 * O .
|
LD HL,(la84fh) ;a834 2a 4f a8 * O .
|
||||||
LD B,000h ;a837 06 00 . .
|
LD B,000h ;a837 06 00 . .
|
||||||
LD C,015h ;a839 0e 15 . .
|
LD C,Dss.Move_FP ;a839 0e 15 . .
|
||||||
LD A,(PAK_FILE_FM) ;a83b 3a 80 aa : . .
|
LD A,(PAK_FILE_FM) ;a83b 3a 80 aa : . .
|
||||||
RST ToDSS ;a83e d7 .
|
RST ToDSS ;a83e d7 .
|
||||||
LD B,06eh ;a83f 06 6e . n
|
LD B,06eh ;a83f 06 6e . n
|
||||||
@ -5382,7 +5375,7 @@ sub_a874h: LD A,(PAK_FILE_FM) ;a874 3a 80 aa : . .
|
|||||||
LD HL,00000h ;a877 21 00 00 ! . .
|
LD HL,00000h ;a877 21 00 00 ! . .
|
||||||
LD IX,00000h ;a87a dd 21 00 00 . ! . .
|
LD IX,00000h ;a87a dd 21 00 00 . ! . .
|
||||||
LD B,001h ;a87e 06 01 . .
|
LD B,001h ;a87e 06 01 . .
|
||||||
LD C,015h ;a880 0e 15 . .
|
LD C,Dss.Move_FP ;a880 0e 15 . .
|
||||||
RST ToDSS ;a882 d7 .
|
RST ToDSS ;a882 d7 .
|
||||||
RET ;a883 c9 .
|
RET ;a883 c9 .
|
||||||
sub_a884h:
|
sub_a884h:
|
||||||
@ -5634,7 +5627,7 @@ GET_NEXT_HR_HEADER_BYTE:
|
|||||||
JP Z,ERROR_EXIT ;aa2b ca 85 aa . . .
|
JP Z,ERROR_EXIT ;aa2b ca 85 aa . . .
|
||||||
LD (PAK_FILE_FM.Size_HL),HL ;aa2e 22 81 aa " . .
|
LD (PAK_FILE_FM.Size_HL),HL ;aa2e 22 81 aa " . .
|
||||||
LD (PAK_FILE_FM.Size_IX),IX ;aa31 dd 22 83 aa . " . .
|
LD (PAK_FILE_FM.Size_IX),IX ;aa31 dd 22 83 aa . " . .
|
||||||
LD BC,00015h ;aa35 01 15 00 . . .
|
LD BC,Dss.Move_FP.FrStart ;aa35 01 15 00 . . .
|
||||||
LD H,B ;aa38 60 `
|
LD H,B ;aa38 60 `
|
||||||
LD L,B ;aa39 68 h
|
LD L,B ;aa39 68 h
|
||||||
LD IX,00000h ;aa3a dd 21 00 00 . ! . .
|
LD IX,00000h ;aa3a dd 21 00 00 . ! . .
|
||||||
@ -5694,7 +5687,7 @@ sub_aa8ah:
|
|||||||
LD HL,(la86bh) ;aa96 2a 6b a8 * k .
|
LD HL,(la86bh) ;aa96 2a 6b a8 * k .
|
||||||
LD A,(PAK_FILE_FM) ;aa99 3a 80 aa : . .
|
LD A,(PAK_FILE_FM) ;aa99 3a 80 aa : . .
|
||||||
LD B,000h ;aa9c 06 00 . .
|
LD B,000h ;aa9c 06 00 . .
|
||||||
LD C,015h ;aa9e 0e 15 . .
|
LD C,Dss.Move_FP ;aa9e 0e 15 . .
|
||||||
RST ToDSS ;aaa0 d7 .
|
RST ToDSS ;aaa0 d7 .
|
||||||
LD B,06eh ;aaa1 06 6e . n
|
LD B,06eh ;aaa1 06 6e . n
|
||||||
LD C,005h ;aaa3 0e 05 . .
|
LD C,005h ;aaa3 0e 05 . .
|
||||||
@ -5711,7 +5704,7 @@ sub_aaadh:
|
|||||||
LD HL,(la86fh) ;aab9 2a 6f a8 * o .
|
LD HL,(la86fh) ;aab9 2a 6f a8 * o .
|
||||||
LD A,(PAK_FILE_FM) ;aabc 3a 80 aa : . .
|
LD A,(PAK_FILE_FM) ;aabc 3a 80 aa : . .
|
||||||
LD B,000h ;aabf 06 00 . .
|
LD B,000h ;aabf 06 00 . .
|
||||||
LD C,015h ;aac1 0e 15 . .
|
LD C,Dss.Move_FP ;aac1 0e 15 . .
|
||||||
RST ToDSS ;aac3 d7 .
|
RST ToDSS ;aac3 d7 .
|
||||||
LD B,06eh ;aac4 06 6e . n
|
LD B,06eh ;aac4 06 6e . n
|
||||||
LD C,005h ;aac6 0e 05 . .
|
LD C,005h ;aac6 0e 05 . .
|
||||||
@ -5728,7 +5721,7 @@ sub_aad0h:
|
|||||||
LD HL,(la867h) ;aadc 2a 67 a8 * g .
|
LD HL,(la867h) ;aadc 2a 67 a8 * g .
|
||||||
LD A,(PAK_FILE_FM) ;aadf 3a 80 aa : . .
|
LD A,(PAK_FILE_FM) ;aadf 3a 80 aa : . .
|
||||||
LD B,000h ;aae2 06 00 . .
|
LD B,000h ;aae2 06 00 . .
|
||||||
LD C,015h ;aae4 0e 15 . .
|
LD C,Dss.Move_FP ;aae4 0e 15 . .
|
||||||
RST ToDSS ;aae6 d7 .
|
RST ToDSS ;aae6 d7 .
|
||||||
LD B,06eh ;aae7 06 6e . n
|
LD B,06eh ;aae7 06 6e . n
|
||||||
LD C,005h ;aae9 0e 05 . .
|
LD C,005h ;aae9 0e 05 . .
|
||||||
@ -5745,7 +5738,7 @@ sub_aaf3h:
|
|||||||
LD HL,(la85fh) ;aaff 2a 5f a8 * _ .
|
LD HL,(la85fh) ;aaff 2a 5f a8 * _ .
|
||||||
LD A,(PAK_FILE_FM) ;ab02 3a 80 aa : . .
|
LD A,(PAK_FILE_FM) ;ab02 3a 80 aa : . .
|
||||||
LD B,000h ;ab05 06 00 . .
|
LD B,000h ;ab05 06 00 . .
|
||||||
LD C,015h ;ab07 0e 15 . .
|
LD C,Dss.Move_FP ;ab07 0e 15 . .
|
||||||
RST ToDSS ;ab09 d7 .
|
RST ToDSS ;ab09 d7 .
|
||||||
LD B,06eh ;ab0a 06 6e . n
|
LD B,06eh ;ab0a 06 6e . n
|
||||||
LD C,005h ;ab0c 0e 05 . .
|
LD C,005h ;ab0c 0e 05 . .
|
||||||
@ -5768,7 +5761,7 @@ sub_ab25h:
|
|||||||
LD HL,(la863h) ;ab31 2a 63 a8 * c .
|
LD HL,(la863h) ;ab31 2a 63 a8 * c .
|
||||||
LD A,(PAK_FILE_FM) ;ab34 3a 80 aa : . .
|
LD A,(PAK_FILE_FM) ;ab34 3a 80 aa : . .
|
||||||
LD B,000h ;ab37 06 00 . .
|
LD B,000h ;ab37 06 00 . .
|
||||||
LD C,015h ;ab39 0e 15 . .
|
LD C,Dss.Move_FP ;ab39 0e 15 . .
|
||||||
RST ToDSS ;ab3b d7 .
|
RST ToDSS ;ab3b d7 .
|
||||||
LD B,06eh ;ab3c 06 6e . n
|
LD B,06eh ;ab3c 06 6e . n
|
||||||
LD C,005h ;ab3e 0e 05 . .
|
LD C,005h ;ab3e 0e 05 . .
|
||||||
@ -6119,6 +6112,201 @@ lad3eh:
|
|||||||
RET ;ae1b c9 .
|
RET ;ae1b c9 .
|
||||||
;
|
;
|
||||||
DZ 'Cash.dat' ;ae1c
|
DZ 'Cash.dat' ;ae1c
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
; NEW CODE
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
; [ ] FIX 19/10/2024
|
||||||
|
NEW_CODE_START: LD C,Dss.GetVMod
|
||||||
|
RST ToDSS
|
||||||
|
JR C,.no_vmode
|
||||||
|
CP #80
|
||||||
|
JR NC,.no_vmode
|
||||||
|
;
|
||||||
|
LD (PREPARE_TO_EXIT_NEW.current_vmode),A
|
||||||
|
LD A,B
|
||||||
|
LD (PREPARE_TO_EXIT_NEW.current_screen),A
|
||||||
|
;
|
||||||
|
LD A,Dss.SetVMod.grf320x256
|
||||||
|
LD B,Dss.SetVMod
|
||||||
|
RST ToDSS
|
||||||
|
.no_vmode: ;
|
||||||
|
LD A,GAME_NEED_MEM_PAGES ;8205 3e c6 > .
|
||||||
|
CALL GET_MEM_AND_PAGES ;8207 cd b7 a1 . . .
|
||||||
|
CALL GENERATE_PALETTE ;820a cd 26 93 . & .
|
||||||
|
DI ;820d f3 .
|
||||||
|
IN A,(SLOT1)
|
||||||
|
LD (l8205h.mem_pg),A
|
||||||
|
;
|
||||||
|
LD HL,TITD_ACX.NAME
|
||||||
|
LD BC,BIOS.FN_CRIPT.AcexAndBitstream
|
||||||
|
RST ToBIOS
|
||||||
|
;
|
||||||
|
LD HL,TITD_ACX.NAME
|
||||||
|
LD BC,5
|
||||||
|
PUSH BC
|
||||||
|
XOR A
|
||||||
|
CPIR
|
||||||
|
JP PO,SetUp_RESET_EXIT
|
||||||
|
;
|
||||||
|
DEC HL
|
||||||
|
EX DE,HL
|
||||||
|
LD HL,TITD_ACX.TYPE
|
||||||
|
POP BC
|
||||||
|
LDIR
|
||||||
|
; HL = TITD_ACX.NAME
|
||||||
|
LD (OPEN_PAK_FILE.name),HL
|
||||||
|
CALL OPEN_PAK_FILE ; patched
|
||||||
|
;
|
||||||
|
XOR A
|
||||||
|
LD HL,(PAK_FILE_FM.Size_HL)
|
||||||
|
LD DE,(PAK_FILE_FM.Size_IX)
|
||||||
|
;
|
||||||
|
.loop: EX AF,AF'
|
||||||
|
LD A,H
|
||||||
|
OR L
|
||||||
|
OR D
|
||||||
|
OR E
|
||||||
|
JR Z,.exit2Loop
|
||||||
|
EX AF,AF'
|
||||||
|
;
|
||||||
|
PUSH HL
|
||||||
|
PUSH DE
|
||||||
|
PUSH AF
|
||||||
|
;
|
||||||
|
CALL SET_PAGE_SLOT3
|
||||||
|
LD A,(PAK_FILE_FM)
|
||||||
|
LD HL,#C000
|
||||||
|
LD DE,#4000
|
||||||
|
LD C,Dss.Read
|
||||||
|
RST ToDSS
|
||||||
|
JP C,ERROR_EXIT
|
||||||
|
;
|
||||||
|
POP AF
|
||||||
|
POP DE
|
||||||
|
POP HL
|
||||||
|
INC A
|
||||||
|
CP GAME_NEED_MEM_PAGES
|
||||||
|
JP NC,ERROR_EXIT
|
||||||
|
;
|
||||||
|
CCF
|
||||||
|
LD BC,#4000
|
||||||
|
EX DE,HL
|
||||||
|
SBC HL,BC
|
||||||
|
EX DE,HL
|
||||||
|
JR Z,.loop
|
||||||
|
LD B,C
|
||||||
|
SBC HL,BC
|
||||||
|
JR NC,.loop
|
||||||
|
.exitLoop: ; ¢ë室, ¥á«¨ à §¬¥à ª®äë ¥ ªà â¥ à §¬¥àã áâà ¨æë
|
||||||
|
EX DE,HL
|
||||||
|
.loop2: LD (HL),#FF
|
||||||
|
INC HL
|
||||||
|
BIT 7,H
|
||||||
|
JR NZ,.loop2
|
||||||
|
.exit2Loop: ; ¢ë室, ¥á«¨ à §¬¥à ª®äë ªà â¥ à §¬¥àã áâà ¨æë
|
||||||
|
LD C,Dss.Close
|
||||||
|
LD A,(PAK_FILE_FM)
|
||||||
|
RST ToDSS
|
||||||
|
JP C,ERROR_EXIT
|
||||||
|
;
|
||||||
|
LD HL,PAK_FILE_NAME
|
||||||
|
LD (OPEN_PAK_FILE.name),HL
|
||||||
|
CALL OPEN_PAK_FILE
|
||||||
|
; ª®áâë«ì ¯à®¯ã᪠ª®äë ¢ PAK ä ©«¥
|
||||||
|
LD A,(PAK_FILE_FM)
|
||||||
|
LD HL,0
|
||||||
|
LD IX,#6569; + 1
|
||||||
|
LD BC,Dss.Move_FP.FrStart
|
||||||
|
RST ToDSS
|
||||||
|
;
|
||||||
|
LD HL,PAGES_BUFFER
|
||||||
|
PUSH HL
|
||||||
|
LD A,(CURRENT_PAGE.SLOT3)
|
||||||
|
INC A
|
||||||
|
LD L,A
|
||||||
|
LD A,(HL)
|
||||||
|
LD C,BIOS.FreeMem
|
||||||
|
RST ToBIOS
|
||||||
|
JP C,SetUp_RESET_EXIT
|
||||||
|
;
|
||||||
|
POP HL
|
||||||
|
LD A,(HL)
|
||||||
|
LD B,A
|
||||||
|
LD A,ACEX.Config_PG.Sp2000
|
||||||
|
LD C,BIOS.RST_CONF.CUSTOM
|
||||||
|
RST ToBIOS
|
||||||
|
;
|
||||||
|
DI
|
||||||
|
LD A,SYS_PORT.CNF_0
|
||||||
|
OUT (SYS_PORT.RAM),A
|
||||||
|
;
|
||||||
|
LD A,(PAGES_BUFFER)
|
||||||
|
LD C,BIOS.FreeMem
|
||||||
|
RST ToBIOS
|
||||||
|
;
|
||||||
|
; restore HOLD port
|
||||||
|
LD D,CMOS_CELL.ScreenPosition
|
||||||
|
LD C,BIOS.CMOS_RD
|
||||||
|
RST ToBIOS
|
||||||
|
JR C,.run_game
|
||||||
|
;
|
||||||
|
LD B,A
|
||||||
|
LD A,ACEX.HOLD
|
||||||
|
LD C,BIOS.SET_PORTS
|
||||||
|
RST ToBIOS
|
||||||
|
;
|
||||||
|
LD DE,CAD_RESET_HANDLER
|
||||||
|
CALL SETUP_RESET_HANDLER
|
||||||
|
.run_game: JP l8423h.cont
|
||||||
|
TITD_ACX:
|
||||||
|
.TYPE: DZ '.ACX'
|
||||||
|
.NAME: BLOCK 9,0
|
||||||
;
|
;
|
||||||
BLOCK #B000-$,0
|
|
||||||
;
|
;
|
||||||
|
CAD_RESET_HANDLER:
|
||||||
|
LD A,(Spec_Page.page_3) ; PAGE3
|
||||||
|
OUT (SLOT3),A
|
||||||
|
LD A,SYS_PORT.CNF_0
|
||||||
|
OUT (SYS_PORT.RAM),A
|
||||||
|
JP HARD_RESET
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
SETUP_RESET_HANDLER_NEW:
|
||||||
|
; “áâ ¢«¨¢ ¥¬ ª«îç¨
|
||||||
|
PUSH HL
|
||||||
|
LD HL,Spec_Page.flag_R
|
||||||
|
LD (HL),"R"
|
||||||
|
INC HL
|
||||||
|
LD (HL),"S"
|
||||||
|
INC HL
|
||||||
|
LD (HL),"T"
|
||||||
|
POP HL
|
||||||
|
;
|
||||||
|
LD A,#FF
|
||||||
|
LD (Spec_Page.Reload_Version),A
|
||||||
|
;
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
PREPARE_TO_EXIT_NEW: ;LD A,(.current_screen)
|
||||||
|
;XOR 1
|
||||||
|
;LD B,A
|
||||||
|
;LD A,Dss.SetVMod.grf640x256
|
||||||
|
;LD C,.SetVMod
|
||||||
|
;RST ToDSS
|
||||||
|
;
|
||||||
|
.current_vmode+1: LD A,Dss.SetVMod.txt80x32
|
||||||
|
.current_screen+1: LD B,high Dss.SetVMod.Screen_0
|
||||||
|
LD C,Dss.SetVMod
|
||||||
|
JP ToDSS
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
LOADER_STRINGS:
|
||||||
|
.Exit: DB "\r\nThunder in the Deep. Copyright (C) 2003 Deviants.\r\n"
|
||||||
|
DB "Bug fixes by Tolik_Trek@Sprinter_Team in 2024.\r\n"
|
||||||
|
DZ "Game over, bye)))\r\n"
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
BLOCK (stack_point - stack_point.size - 1)-$,0
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user