mirror of
https://github.com/Tolik-Trek/TITD.git
synced 2026-06-15 17:11:37 +03:00
normal exit if acx file not found
This commit is contained in:
parent
4a28068454
commit
4f4ec663fd
@ -18,6 +18,7 @@ NEW_BUFFERS: ; For Zero page
|
|||||||
.Palette.Size EQU 1024*8
|
.Palette.Size EQU 1024*8
|
||||||
.TXT_Screen EQU .Palette + .Palette.Size
|
.TXT_Screen EQU .Palette + .Palette.Size
|
||||||
.TXT_Screen.Size EQU 80*32*2
|
.TXT_Screen.Size EQU 80*32*2
|
||||||
|
.TMP EQU #D000
|
||||||
|
|
||||||
DSS_MIN_VERS:
|
DSS_MIN_VERS:
|
||||||
.vers EQU 1
|
.vers EQU 1
|
||||||
@ -5502,7 +5503,7 @@ la921h:
|
|||||||
RET ;a94e c9 .
|
RET ;a94e c9 .
|
||||||
|
|
||||||
OPEN_PAK_FILE: LD C,Dss.Open ;a94f 0e 11 . .
|
OPEN_PAK_FILE: LD C,Dss.Open ;a94f 0e 11 . .
|
||||||
.name+1: LD HL,PAK_FILE_NAME ;a951 21 85 a9 ! . .
|
LD HL,PAK_FILE_NAME ;a951 21 85 a9 ! . .
|
||||||
LD A,Dss.Open.R ;a954 3e 01 > .
|
LD A,Dss.Open.R ;a954 3e 01 > .
|
||||||
RST ToDSS ;a956 d7 .
|
RST ToDSS ;a956 d7 .
|
||||||
JP C,ERROR_EXIT ;a957 da 85 aa . . .
|
JP C,ERROR_EXIT ;a957 da 85 aa . . .
|
||||||
@ -5510,7 +5511,7 @@ OPEN_PAK_FILE: LD C,Dss.Open ;a94f 0e 11 . .
|
|||||||
LD (PAK_FILE_FM),A ;a95a 32 80 aa 2 . .
|
LD (PAK_FILE_FM),A ;a95a 32 80 aa 2 . .
|
||||||
CALL CHECK_ZERO_FILE_SIZE ;a95d cd 6b aa . k .
|
CALL CHECK_ZERO_FILE_SIZE ;a95d cd 6b aa . k .
|
||||||
JP Z,ERROR_EXIT ;a960 ca 85 aa . . .
|
JP Z,ERROR_EXIT ;a960 ca 85 aa . . .
|
||||||
LD (PAK_FILE_FM.Size_HL),HL ;a963 22 81 aa " . .
|
.nxt: LD (PAK_FILE_FM.Size_HL),HL ;a963 22 81 aa " . .
|
||||||
LD (PAK_FILE_FM.Size_IX),IX ;a966 dd 22 83 aa . " . .
|
LD (PAK_FILE_FM.Size_IX),IX ;a966 dd 22 83 aa . " . .
|
||||||
;
|
;
|
||||||
LD BC,Dss.Move_FP.FrStart ;a96a 01 15 00 . . .
|
LD BC,Dss.Move_FP.FrStart ;a96a 01 15 00 . . .
|
||||||
@ -6137,10 +6138,14 @@ lad3eh:
|
|||||||
; NEW CODE
|
; NEW CODE
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;***********************************************************************
|
;***********************************************************************
|
||||||
ERROR_OLD_DSS: LD HL,LOADER_STRINGS.OldDSS
|
NEW_ERROR_EXIT:
|
||||||
LD C,Dss.PChars
|
.OLD_DSS: LD HL,LOADER_STRINGS.OldDSS
|
||||||
|
.print: LD C,Dss.PChars
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
JP GOTO_ERROR_EXIT
|
JP GOTO_ERROR_EXIT
|
||||||
|
;
|
||||||
|
.NO_ACX: LD HL,STRING_SPECIAL_no_acx
|
||||||
|
JR .print
|
||||||
;***********************************************************************
|
;***********************************************************************
|
||||||
|
|
||||||
NEW_CODE_START: DI
|
NEW_CODE_START: DI
|
||||||
@ -6153,93 +6158,23 @@ NEW_CODE_START: DI
|
|||||||
SCF
|
SCF
|
||||||
LD HL,256*DSS_MIN_VERS.vers + DSS_MIN_VERS.modf
|
LD HL,256*DSS_MIN_VERS.vers + DSS_MIN_VERS.modf
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
JR NC,ERROR_OLD_DSS
|
JR NC,NEW_ERROR_EXIT.OLD_DSS
|
||||||
LD HL,DSS_MIN_VERS.build
|
LD HL,DSS_MIN_VERS.build
|
||||||
SBC HL,BC
|
SBC HL,BC
|
||||||
JR NC,ERROR_OLD_DSS
|
JR NC,NEW_ERROR_EXIT.OLD_DSS
|
||||||
;
|
|
||||||
CALL FULL_SAVE_TXT_SCREEN
|
|
||||||
;
|
;
|
||||||
LD A,GAME_NEED_MEM_PAGES
|
LD A,GAME_NEED_MEM_PAGES
|
||||||
CALL GET_MEM_AND_PAGES
|
CALL GET_MEM_AND_PAGES
|
||||||
|
CALL GET_BITSTREAM
|
||||||
|
JR C,NEW_ERROR_EXIT.NO_ACX
|
||||||
|
;
|
||||||
|
CALL FULL_SAVE_TXT_SCREEN
|
||||||
CALL GENERATE_PALETTE
|
CALL GENERATE_PALETTE
|
||||||
IN A,(SLOT1)
|
IN A,(SLOT1)
|
||||||
LD (l8205h.mem_pg),A
|
LD (l8205h.mem_pg),A
|
||||||
;
|
;
|
||||||
LD HL,TITD_ACX.NAME
|
;LD HL,PAK_FILE_NAME
|
||||||
LD BC,BIOS.FN_CRIPT.AcexAndBitstream
|
;LD (OPEN_PAK_FILE.name),HL
|
||||||
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
|
CALL OPEN_PAK_FILE
|
||||||
; ª®áâë«ì ¯à®¯ã᪠ª®äë ¢ PAK ä ©«¥
|
; ª®áâë«ì ¯à®¯ã᪠ª®äë ¢ PAK ä ©«¥
|
||||||
LD A,(PAK_FILE_FM)
|
LD A,(PAK_FILE_FM)
|
||||||
@ -6305,24 +6240,93 @@ CAD_RESET_HANDLER:
|
|||||||
; 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:; “áâ ¢«¨¢ ¥¬ ª«îç¨
|
GET_BITSTREAM: LD HL,TITD_ACX.NAME
|
||||||
; PUSH HL
|
LD BC,BIOS.FN_CRIPT.AcexAndBitstream
|
||||||
; LD HL,Spec_Page.flag_R
|
RST ToBIOS
|
||||||
; LD (HL),"R"
|
;
|
||||||
; INC HL
|
LD HL,TITD_ACX.NAME
|
||||||
; LD (HL),"S"
|
LD BC,5
|
||||||
; INC HL
|
PUSH BC
|
||||||
; LD (HL),"T"
|
XOR A
|
||||||
; POP HL
|
CPIR
|
||||||
; ;
|
SCF
|
||||||
; LD A,#FF
|
RET PO
|
||||||
; LD (Spec_Page.Reload_Version),A
|
;
|
||||||
; ;
|
DEC HL
|
||||||
; RET
|
;LD (HL)," "
|
||||||
; ;
|
EX DE,HL
|
||||||
|
LD HL,TITD_ACX.TYPE
|
||||||
|
POP BC
|
||||||
|
LDIR
|
||||||
|
; HL = TITD_ACX.NAME
|
||||||
|
LD C,Dss.Open
|
||||||
|
LD A,Dss.Open.R
|
||||||
|
RST ToDSS
|
||||||
|
RET C
|
||||||
|
;
|
||||||
|
LD (PAK_FILE_FM),A
|
||||||
|
CALL CHECK_ZERO_FILE_SIZE
|
||||||
|
SCF
|
||||||
|
RET Z
|
||||||
|
CALL OPEN_PAK_FILE.nxt
|
||||||
|
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
|
||||||
|
RET C
|
||||||
|
;
|
||||||
|
POP AF
|
||||||
|
POP DE
|
||||||
|
POP HL
|
||||||
|
INC A
|
||||||
|
CP GAME_NEED_MEM_PAGES
|
||||||
|
CCF
|
||||||
|
RET C
|
||||||
|
;
|
||||||
|
SCF
|
||||||
|
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)
|
||||||
|
JP ToDSS
|
||||||
|
;
|
||||||
|
STRING_SPECIAL_no_acx: ;83a4
|
||||||
|
DZ "\r\n[Thunder In The Deep Special Message] : Error with ACX file for your chip!\r\n"
|
||||||
|
;
|
||||||
PREPARE_TO_EXIT_NEW: CALL RESTORE_IM1_DSS
|
PREPARE_TO_EXIT_NEW: CALL RESTORE_IM1_DSS
|
||||||
JR FULL_RESTORE_SCREEN
|
JR FULL_RESTORE_SCREEN
|
||||||
;***********************************************************************
|
;***********************************************************************
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user