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
|
||||
code_addr EQU #8000
|
||||
program_start EQU code_addr
|
||||
;program_start EQU code_addr
|
||||
program_start EQU NEW_CODE_START
|
||||
stack_point EQU #C000
|
||||
.size EQU 128
|
||||
;---------------------------------------
|
||||
GAME_NEED_MEM_PAGES EQU #C6
|
||||
PAGES_BUFFER EQU #BE00
|
||||
@ -200,166 +202,156 @@ l81dch:
|
||||
POP AF ;8203 f1 .
|
||||
RET ;8204 c9 .
|
||||
|
||||
l8205h: 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 .
|
||||
; [ ] FIX 19/10/2024
|
||||
IN A,(SLOT1)
|
||||
LD (.mem_pg),A
|
||||
;
|
||||
LD HL,TITD_ACX.NAME
|
||||
LD BC,BIOS.FN_CRIPT.AcexAndBitstream
|
||||
; [ ] FIX 19/10/2024 - ¯à®æ¥¤ãà ¥ ¢ë§ë¢ ¥âáï
|
||||
l8205h: 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 .
|
||||
LD A,SYS_PORT.CNF_3 ;820e 3e 1c > .
|
||||
OUT (SYS_PORT.RAM),A ;8210 d3 3c . <
|
||||
LD A,Z84.REG.Misc_Ctrl ;8212 3e 03 > .
|
||||
OUT (Z84.SYS.Control),A ;8214 d3 ee . .
|
||||
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
|
||||
;
|
||||
LD HL,TITD_ACX.NAME
|
||||
LD BC,5
|
||||
PUSH BC
|
||||
XOR A
|
||||
CPIR
|
||||
;JP PO,SetUp_RESET_EXIT ; íª®®¬¨¬ ¯ ¬ïâì
|
||||
CALL PREPARE_TO_EXIT_NEW
|
||||
;
|
||||
DEC HL
|
||||
EX DE,HL
|
||||
LD HL,TITD_ACX.TYPE
|
||||
POP BC
|
||||
LDIR
|
||||
JR NEW_CONF_SETUP
|
||||
;LD A,SYS_PORT.CNF_3 ;820e 3e 1c > .
|
||||
;OUT (SYS_PORT.RAM),A ;8210 d3 3c . <
|
||||
;LD A,Z84.REG.Misc_Ctrl ;8212 3e 03 > .
|
||||
;OUT (Z84.SYS.Control),A ;8214 d3 ee . .
|
||||
;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 . {
|
||||
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 . .
|
||||
.loop_exit: LD BC,Dss.Exit
|
||||
RST ToDSS
|
||||
DI
|
||||
JR .loop_exit
|
||||
;
|
||||
BLOCK #8252-$,0
|
||||
;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 . .
|
||||
.loop: ;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 .loop ;8250 18 f4 . .
|
||||
DI ;8252 f3 .
|
||||
HALT ;8253 76 v
|
||||
;
|
||||
|
||||
|
||||
NEW_CONF_SETUP:
|
||||
; HL = TITD_ACX.NAME
|
||||
LD (OPEN_PAK_FILE.name),HL
|
||||
CALL OPEN_PAK_FILE ; patched
|
||||
; NEW_CONF_SETUP:
|
||||
; ; 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 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:
|
||||
DI ;8254 f3 .
|
||||
LD BC,#1FFD ;8255 01 fd 1f . . .
|
||||
@ -422,8 +414,7 @@ INSTALL_TITD.ACX:
|
||||
.IM_FLAG: DB 0 ;82d7 00 .
|
||||
.reload_str: DB ACEX.RELOAD_STRING ;82d8
|
||||
.reload_str.size: EQU $-.reload_str
|
||||
*/
|
||||
BLOCK #82e8-$,0
|
||||
; BLOCK #82e8-$,0
|
||||
|
||||
|
||||
GET_RESOURCE_TITD.ACX:
|
||||
@ -463,18 +454,20 @@ SETUP_RESET_HANDLER:
|
||||
LD A,Spec_Page ;8323 3e 41 > A
|
||||
OUT (SLOT3),A ;8325 d3 e2 . .
|
||||
LD (Spec_Page.RET_addr),DE ;8327 ed 53 f4 ff . S . .
|
||||
l832bh:
|
||||
LD A,'Z' ;832b 3e 5a > Z
|
||||
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 . .
|
||||
; [ ] FIX zx pages 20/10/2024
|
||||
CALL SETUP_RESET_HANDLER_NEW
|
||||
BLOCK #8335-$,0
|
||||
;LD A,'Z' ;832b 3e 5a > Z
|
||||
;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 . .
|
||||
LD (Spec_Page.page_0),A ;8337 32 f0 ff 2 . .
|
||||
IN A,(SLOT1) ;833a db a2 . .
|
||||
LD (Spec_Page.page_1),A ;833c 32 f1 ff 2 . .
|
||||
IN A,(SLOT2) ;833f db c2 . .
|
||||
LD (Spec_Page.page_2),A ;8341 32 f2 ff 2 . .
|
||||
l8344h:
|
||||
IN A,(SLOT3) ;8344 db e2 . .
|
||||
LD (Spec_Page.page_3),A ;8346 32 f3 ff 2 . .
|
||||
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 . <
|
||||
LD A,(Spec_Page.page_0) ;8357 3a f0 ff : . .
|
||||
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 . .
|
||||
JP l8415h ;8360 c3 15 84 . . .
|
||||
SetUp_RESET_EXIT:
|
||||
LD DE,RESET_HANDLER_EXIT ;8363 11 df 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 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 A,(PAK_FILE_FM) ;a735 3a 80 aa : . .
|
||||
LD B,000h ;a738 06 00 . .
|
||||
LD C,015h ;a73a 0e 15 . .
|
||||
LD C,Dss.Move_FP ;a73a 0e 15 . .
|
||||
RST ToDSS ;a73c d7 .
|
||||
LD B,01bh ;a73d 06 1b . .
|
||||
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 A,(PAK_FILE_FM) ;a794 3a 80 aa : . .
|
||||
LD B,000h ;a797 06 00 . .
|
||||
LD C,015h ;a799 0e 15 . .
|
||||
LD C,Dss.Move_FP ;a799 0e 15 . .
|
||||
RST ToDSS ;a79b d7 .
|
||||
LD B,01bh ;a79c 06 1b . .
|
||||
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 A,(PAK_FILE_FM) ;a7c9 3a 80 aa : . .
|
||||
LD B,000h ;a7cc 06 00 . .
|
||||
LD C,015h ;a7ce 0e 15 . .
|
||||
LD C,Dss.Move_FP ;a7ce 0e 15 . .
|
||||
RST ToDSS ;a7d0 d7 .
|
||||
LD B,01bh ;a7d1 06 1b . .
|
||||
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 A,(PAK_FILE_FM) ;a7fb 3a 80 aa : . .
|
||||
LD B,000h ;a7fe 06 00 . .
|
||||
LD C,015h ;a800 0e 15 . .
|
||||
LD C,Dss.Move_FP ;a800 0e 15 . .
|
||||
RST ToDSS ;a802 d7 .
|
||||
LD B,01bh ;a803 06 1b . .
|
||||
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 HL,(la84fh) ;a834 2a 4f a8 * O .
|
||||
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 : . .
|
||||
RST ToDSS ;a83e d7 .
|
||||
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 IX,00000h ;a87a dd 21 00 00 . ! . .
|
||||
LD B,001h ;a87e 06 01 . .
|
||||
LD C,015h ;a880 0e 15 . .
|
||||
LD C,Dss.Move_FP ;a880 0e 15 . .
|
||||
RST ToDSS ;a882 d7 .
|
||||
RET ;a883 c9 .
|
||||
sub_a884h:
|
||||
@ -5634,7 +5627,7 @@ GET_NEXT_HR_HEADER_BYTE:
|
||||
JP Z,ERROR_EXIT ;aa2b ca 85 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 BC,00015h ;aa35 01 15 00 . . .
|
||||
LD BC,Dss.Move_FP.FrStart ;aa35 01 15 00 . . .
|
||||
LD H,B ;aa38 60 `
|
||||
LD L,B ;aa39 68 h
|
||||
LD IX,00000h ;aa3a dd 21 00 00 . ! . .
|
||||
@ -5694,7 +5687,7 @@ sub_aa8ah:
|
||||
LD HL,(la86bh) ;aa96 2a 6b a8 * k .
|
||||
LD A,(PAK_FILE_FM) ;aa99 3a 80 aa : . .
|
||||
LD B,000h ;aa9c 06 00 . .
|
||||
LD C,015h ;aa9e 0e 15 . .
|
||||
LD C,Dss.Move_FP ;aa9e 0e 15 . .
|
||||
RST ToDSS ;aaa0 d7 .
|
||||
LD B,06eh ;aaa1 06 6e . n
|
||||
LD C,005h ;aaa3 0e 05 . .
|
||||
@ -5711,7 +5704,7 @@ sub_aaadh:
|
||||
LD HL,(la86fh) ;aab9 2a 6f a8 * o .
|
||||
LD A,(PAK_FILE_FM) ;aabc 3a 80 aa : . .
|
||||
LD B,000h ;aabf 06 00 . .
|
||||
LD C,015h ;aac1 0e 15 . .
|
||||
LD C,Dss.Move_FP ;aac1 0e 15 . .
|
||||
RST ToDSS ;aac3 d7 .
|
||||
LD B,06eh ;aac4 06 6e . n
|
||||
LD C,005h ;aac6 0e 05 . .
|
||||
@ -5728,7 +5721,7 @@ sub_aad0h:
|
||||
LD HL,(la867h) ;aadc 2a 67 a8 * g .
|
||||
LD A,(PAK_FILE_FM) ;aadf 3a 80 aa : . .
|
||||
LD B,000h ;aae2 06 00 . .
|
||||
LD C,015h ;aae4 0e 15 . .
|
||||
LD C,Dss.Move_FP ;aae4 0e 15 . .
|
||||
RST ToDSS ;aae6 d7 .
|
||||
LD B,06eh ;aae7 06 6e . n
|
||||
LD C,005h ;aae9 0e 05 . .
|
||||
@ -5745,7 +5738,7 @@ sub_aaf3h:
|
||||
LD HL,(la85fh) ;aaff 2a 5f a8 * _ .
|
||||
LD A,(PAK_FILE_FM) ;ab02 3a 80 aa : . .
|
||||
LD B,000h ;ab05 06 00 . .
|
||||
LD C,015h ;ab07 0e 15 . .
|
||||
LD C,Dss.Move_FP ;ab07 0e 15 . .
|
||||
RST ToDSS ;ab09 d7 .
|
||||
LD B,06eh ;ab0a 06 6e . n
|
||||
LD C,005h ;ab0c 0e 05 . .
|
||||
@ -5768,7 +5761,7 @@ sub_ab25h:
|
||||
LD HL,(la863h) ;ab31 2a 63 a8 * c .
|
||||
LD A,(PAK_FILE_FM) ;ab34 3a 80 aa : . .
|
||||
LD B,000h ;ab37 06 00 . .
|
||||
LD C,015h ;ab39 0e 15 . .
|
||||
LD C,Dss.Move_FP ;ab39 0e 15 . .
|
||||
RST ToDSS ;ab3b d7 .
|
||||
LD B,06eh ;ab3c 06 6e . n
|
||||
LD C,005h ;ab3e 0e 05 . .
|
||||
@ -6119,6 +6112,201 @@ lad3eh:
|
||||
RET ;ae1b c9 .
|
||||
;
|
||||
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