mirror of
https://github.com/Tolik-Trek/ZX-SP-ROMs.git
synced 2026-06-17 10:20:33 +03:00
always error if VERIFY
This commit is contained in:
parent
029da1a946
commit
5d912a7320
156
SP__48.ASM
156
SP__48.ASM
@ -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 ;=======================================================
|
||||
;------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user