always error if VERIFY

This commit is contained in:
Tolik 2025-10-21 22:22:07 +10:00
parent 029da1a946
commit 5d912a7320

View File

@ -7,7 +7,7 @@
; The Spectrum ROMs are copyright Amstrad, who have kindly given permission
; to reverse engineer and publish ROM disassemblies.
DEFINE NEW_TAP_PROC
; DEFINE NEW_TAP_PROC
; =====
; NOTES
; =====
@ -1397,10 +1397,10 @@ L04AA: CALL L24FB ; routine SCANNING to evaluate expression.
ELSE ;---------------------------------------------------------------------
NEW_TAP: ; ¤®áâ ñ¬ ¯ à ¬¥âàë
; áâ ¢¨¬ SYS_PAGE
PUSH AF
;RL E ; CF - verify/read
EX AF,AF' ; AF ------------------v
;
LD A,#0F ; make the border white and mic off.
OUT (BorderColor),A ; output to port.
;
LD C,SLOT3
IN B,(C)
@ -1410,13 +1410,13 @@ NEW_TAP: ;
OUT (C),A
; ¡¥àñ¬ 㪠§ â¥«ì ­  ⥪ã饥 ¯®«®¦¥­¨¥ ¢ ¡«®ª¥ ¨ ¢â몠¥¬ ¡«®ª
EXX
; LD HL,(SYS_PAGE.TAP_FULL_SIZE)
; LD A,(SYS_PAGE.TAP_FULL_SIZE + 2)
; OR H
; IN A,(SLOT2)
; LD C,A
LD A,(SYS_PAGE.TAP_RAM_BLK)
INC A
; INC A
; RET Z ; error, end TAP
; DEC A
OUT (SLOT2),A
LD L,A
LD A,#0F ; make the border white and mic off.
JP NEW_TAP2.MAIN
;
_mInfoBLOCK #04C2-$,#FF
@ -1931,93 +1931,47 @@ L05ED: INC B ; increment the time-out counter.
L0556:
NEW_TAP2: LD HL,L053F ; Address: SA/LD-RET
PUSH HL ; is saved on stack as terminating routine.
RET NC ; !FIXIT ­¥ ¯®¤¤¥à¦¨¢ ¥âáï Verify
RET NC
;
.next_blk: DI
EXX
PUSH BC
PUSH DE
PUSH HL
;LD L,1 ; ¬ àª¥à ¡«®ª  ¯à®¯ãáª/ç⥭¨¥ - 0/1
CALL NEW_TAP
;
EX AF,AF' ; AF ------------------v
LD A,SYS_PAGE
OUT (SLOT3),A
LD (SYS_PAGE.TAP_RAM_POINT),HL
EXX
EX AF,AF' ; AF ------------------^
JR C,.save_HL
JR NZ,.no_save_HL
.save_HL: LD (SYS_PAGE.TAP_RAM_POINT),HL
.no_save_HL: EXX
OUT (C),B
POP HL
POP DE
POP BC
.exit: POP BC
EXX
.shared_Exit: EX AF,AF' ; AF ------------------^
;LD DE,0
;LD A,1
RET
;
;!FIXIT ᤥ« âì ¯¥à¥¬®âªã ¡«®ª 
.error_size: POP AF
.error_end_tap: XOR A
INC A
RET
;
.SetNewPage: LD A,SYS_PAGE
OUT (SLOT3),A
EX AF,AF' ; AF ------------------v
; A = current page of ram block
LD HL,(SYS_PAGE.TAP_RAM_BLK)
.MAIN: ; ; AF ------------------v
;OUT (SLOT2),A
; LD L,A
; LD A,#0F ; make the border white and mic off.
OUT (BorderColor),A ; output to port.
LD H, high SYS_PAGE.RAM_TABLE
LD A,(HL)
LD (SYS_PAGE.TAP_RAM_BLK),A
LD HL,#C000
EXX
OUT (C),B
EXX
CP #FF
JR NZ,.shared_Exit
; error
EX AF,AF' ; AF ------------------^
SCF
RET ; error
;
.MAIN: ;=======================================================
JP Z,.error_size
DEC A
;;;;;
OUT (SLOT2),A
LD L,A
LD H, high SYS_PAGE.RAM_TABLE
LD A,(HL)
;
LD HL,(SYS_PAGE.TAP_RAM_POINT)
RES 6,H
SET 7,H
OUT (SLOT3),A
;IN A,(SLOT2)
;;;;;
;EX AF,AF' ; AF ------------------v
; EXX
; OUT (C),B
; EXX
; ;
; POP AF
; ; ®¡à ¡®âª  ¡«®ª  TAP
; EX AF,AF' ; AF ------------------v
; OUT (SLOT3),A
; ®¡à ¡®âª  ¡«®ª  TAP
; ¡¥àñ¬ ¤«¨­ã ¡«®ª 
LD A,(HL)
INC HL
;
LD B,(HL)
INC HL
;
LD C,(HL)
INC HL
SET 6,H
@ -2025,11 +1979,14 @@ NEW_TAP2: LD HL,L053F ; Address: SA/LD-RET
EXX
OUT (C),B
RES 5,C
PUSH AF
IN A,(SLOT2)
OUT (C),H
CP #FF
JR Z,.exit
LD H,A
SET 5,C
LD L,1 ; ¬ àª¥à ¡«®ª  ¯à®¯ãáª/ç⥭¨¥ - 0/1
LD L,1 ; ¬ àª¥à ¡«®ª  ¯à®¯ãáª/ç⥭¨¥ - 0/1
EXX
; ¯à®¢¥à塞 ⨯ ¡«®ª  ¨ âà¥¡ã¥¬ë© ¡«®ª
POP AF
@ -2043,15 +2000,12 @@ NEW_TAP2: LD HL,L053F ; Address: SA/LD-RET
;
EXX
; ZF = 0 ¥á«¨ ­ã¦­ë© ¡«®ª
EX AF,AF' ; AF ------------------v
LD A,H
EX AF,AF' ; AF ------------------^
JR Z,.ThatBlock
LD L,0 ; ¯à®¯ã᪠¡«®ª 
;LD E,A ; âà¥¡ã¥¬ë© ¡«®ª
.ThatBlock: EXX
; ¢®ááâ ­ ¢«¨¢ ¥¬ áâà ­¨æã ¯®«ì§®¢ â¥«ï
; EX AF,AF'
; IN A,(SLOT3)
EX AF,AF'
; ZF = 0 ¥á«¨ ­ã¦­ë© ¡«®ª
JR NZ,.normSize
; ¯à®¢¥à塞 ᮮ⢥âá⢨¥ à §¬¥à  ¡«®ª  § ¯à è¨¢ ¥¬®¬ã
@ -2064,14 +2018,30 @@ NEW_TAP2: LD HL,L053F ; Address: SA/LD-RET
RET NZ ;!FIXIT ᤥ« âì ¯¥à¥¬®âªã ¡«®ª 
;
.normSize: INC BC ; á ãçñ⮬ ¡ ©â  ª®­â஫쭮© áã¬¬ë ¢ ª®­æ¥ ¡«®ª  TAP
.LoopTAP: LD A,H
OR L
CALL Z,.SetNewPage
JR C,.error_end_tap
.LoopTAP: BIT 7,H
JR NZ,.ok_HL
;
EX AF,AF'
.SetNewPage: LD A,SYS_PAGE
OUT (SLOT3),A
LD A,#C0
OR H
LD H,A
EX AF,AF' ; AF ------------------v
; A = current page of ram block
LD D, high SYS_PAGE.RAM_TABLE
LD E,A
LD A,(DE)
LD (SYS_PAGE.TAP_RAM_BLK),A
EXX
OUT (C),B
EXX
CP #FF
RET Z ; error
EX AF,AF' ; AF ------------------^
;
.ok_HL: EX AF,AF' ; AF ------------------v
OUT (SLOT3),A
EX AF,AF'
EX AF,AF' ; AF ------------------^
LD A,(HL)
CPI
EXX
@ -2084,21 +2054,21 @@ NEW_TAP2: LD HL,L053F ; Address: SA/LD-RET
AND A
JR Z,.LoopTAP ; skip write
EXX
;!FIXIT ¤®¡ ¢¨âì âãâ Verify
;LD A,H
;XOR (IX)
;RET NZ
;
LD (IX),H
;RR E ; CF - verify/read
;JR C,.noVerify
;LD A,(IX)
;XOR H
;EXX
; RET NZ
;EXX
.noVerify: LD (IX),H
;RL E ; CF - verify/read
EXX
INC IX
JR .LoopTAP
;=======================================================
;
_mInfoBLOCK #0605-$,#FF
ENDIF
ENDIF ;=======================================================
;------------------------------------------------------------------------------