Re: [TS HORIZONS] Paul Hunter's Bank Switching.
Posted: Wed Oct 16, 2019 9:41 am
Hi Stefano,
Checked ok !
Checked ok !
Discussion forums for users of the Sinclair 8-bit range of computers - ZX80, ZX81, ZX Spectrum, Z88, clones...
https://www.sinclairzxworld.com/
Code: Select all
;------- TASM ASM mnemonics. -------
; Compile this file using:
; Set TASMOPTS = -b
; tasm -80 ThisCode.tas MyBinary.BIN
;-----------------------------------
; Zx81 Program name: VB81 XuR [asm.bas] : Empty Basic Segment.
; REM line name: D=8192/10239 : H=2000/27FF
#define ORG .org ; TASM cross-assembler definitions
#define equ .equ
;-----------------------------------
;- ZX81 CARACTERS CODES ------------
;-----------------------------------
_ .equ $00
A .equ $26
B .equ $27
C .equ $28
D .equ $29
E .equ $2A
F .equ $2B
G .equ $2C
H .equ $2D
I .equ $2E
K .equ $30
L .equ $31
M .equ $32
N .equ $33
O .equ $34
P .equ $35
Q .equ $36
R .equ $37
S .equ $38
T .equ $39
U .equ $3A
V .equ $3B
W .equ $3C
X .equ $3D
Y .equ $3E
Z .equ $3F
;-----------------------------------
;------- Rom and Ram Symbols -------
RAM_RAMTOP equ $4004
RAM_ERR_SP equ $4002
NEXT_LINE equ $066C
RAM_STKEND equ $401C
RAM_VARS equ $4010
KEYBOARD equ $02BB
DECODE equ $07BD
RAM_D_FILE equ $400C
MAKE_ROOM equ $099E
PRINT_AT equ $08F5
PR_STR_4 equ $0B6B
RAM_E_LINE equ $4014
RAM_CH_ADD equ $4016
DEC_TO_FP equ $14D9
FIND_INT equ $0EA7
STACK_BC equ $1520
PRINT_FP equ $15DB
RAM_DF_CC equ $400E
RAM_S_POSN equ $4039
SLOW equ $0F2B
LINE_ADDR equ $09D8
FAST equ $0F23
CLS equ $0A2A
CLEAR equ $149A
RECLAIM_1 equ $0A5D
ORG $2000 ; [@8192/@h2000]
Lb2000:
JP Lb25F8 ; [9720]
LD HL,$405B
LD SP,HL
LD HL,$BFD6
LD (RAM_RAMTOP),HL ; SET RAM-TOP
DEC HL
LD (HL),$3E
DEC HL
LD SP,HL
DEC HL
DEC HL
RR (RAM_E_SP),HL ; SET ERR-SP
JP NEXT_LINE+10 ; []*BIOS ROM*
Lb201A:
NOP
RET NZ
.db $05,$06,$00,$0E; DATA
Lb2020:
LD HL,$0000
ADD HL,SP
LD DE,(RAM_STKEND) ; GET STKEND
SBC HL,DE
RET ; ==========================
Lb202B:
LD HL,$1FFF
LD DE,(RAM_VARS) ; GET VARS
OR A
SBC HL,DE
RET ; ==========================
Lb2036:
LD A,($BFF0)
LD BC,$02C0
CP $29 ; [41-"D"]
RET Z
Lb203F:
LD HL,($BFD8)
LD DE,($BFD6)
OR A
SBC HL,DE
LD B,H
LD C,L
RET ; ==========================
Lb204C:
CALL Lb203F ; [8255]
LD HL,($BFDA)
LD (HL),C
INC HL
LD (HL),B
INC HL
EX DE,HL
LDIR
RET ; ==========================
Lb205A:
CALL KEYBOARD ; [KEYBOARD]
LD B,H
LD C,L
INC L
JR Z, Lb205A ; [$205A:8282]
CALL DECODE ; [DECODE]
CALL Lb2126 ; [8486]
LD A,(HL)
RET ; ==========================
Lb206A:
LD HL,(RAM_D_FILE) ; GET D-FILE
LD DE,($BFDA)
LD A,$16
Lb2073:
INC HL
LD BC,$0020
LDIR
DEC A
JR NZ, Lb2073 ; [$2073:8307]
RET ; ==========================
Lb207D:
CALL Lb23BC ; [9148]
LD DE,$4009
LD HL,($BFDA)
INC HL
INC HL
LDIR
RET ; ==========================
Lb208B:
CALL Lb23BC ; [9148]
LD HL,(RAM_D_FILE) ; GET D-FILE
PUSH BC
PUSH HL
DEC HL
CALL MAKE_ROOM ; [MAKE-ROOM]
POP DE
POP BC
LD HL,($BFDA)
INC HL
INC HL
LDIR
RET ; ==========================
Lb20A1:
LD HL,$BFE4
LD B,$1C
Lb20A6:
LD (HL),$16
INC HL
DJNZ Lb20A6 ; [$20A6:8358]
LD A,$1B
LD ($BFEF),A
LD A,$0E
LD ($BFF3),A
LD ($BFF9),A
LD ($BFFF),A
RET ; ==========================
Lb20BC:
LD BC,($BFDC)
CALL PRINT_AT ; [PRINT-AT]
LD BC,$000F
LD DE,$BFE4
CALL PR_STR_4 ; [PR-STR-4]
RET ; ==========================
Lb20CD:
CALL Lb20A1 ; [8353]
LD BC,($BFDC)
DEC B
DEC B
CALL PRINT_AT ; [PRINT-AT]
LD BC,$0015
LD DE, Lb2130
CALL PR_STR_4 ; [PR-STR-4]
CALL Lb20BC ; [8380]
LD HL,$BFE4
Lb20E8:
PUSH HL
CALL Lb205A ; [8282]
POP HL
LD B,A
LD A,$77
CP B
JR Z, Lb20CD ; [$20CD:8397]
LD (HL),B
PUSH HL
CALL Lb20BC ; [8380]
POP HL
Lb20F9:
INC HL
LD A,$1B
CP (HL)
JR Z, Lb20F9 ; [$20F9:8441]
LD A,$0E
CP (HL)
JR NZ, Lb20E8 ; [$20E8:8424]
RET ; ==========================
Lb2105:
CALL Lb23BC ; [9148]
LD HL,(RAM_E_LINE) ; GET E-LINE
DEC HL
PUSH BC
PUSH HL
CALL MAKE_ROOM ; [MAKE-ROOM]
POP DE
POP BC
LD HL,($BFDA)
INC HL
INC HL
LDIR
RET ; ==========================
Lb211B:
LD (RAM_CH_ADD),HL ; SET CH-ADD
LD A,(HL)
CALL DEC_TO_FP ; []*BIOS ROM*
CALL FIND_INT ; [FIND-INT]
RET ; ==========================
Lb2126:
LD DE,($BFDE)
Lb212A:
DEC DE
LD A,D
OR E
JR NZ, Lb212A ; [$212A:8490]
RET ; ==========================
Lb2130:
.db E,N,T,E,R,_,",F; ZX-TEXT
.db I,L,E,N,A,M,E,.; ZX-TEXT
.db E,X,T,",:; ZX-TEXT
Lb2145:
E,X,E,C,U,T,E,_; ZX-TEXT
.db S,A,V,E,_,(,S,); ZX-TEXT
.db _,O,R,_,A,B,O,R; ZX-TEXT
.db T,_,(,A,),:; ZX-TEXT
Lb2163:
A,D,D,R,E,S,S,:; ZX-TEXT
.db _; ZX-TEXT
Lb216C:
S,I,Z,E,:,_,_,_; ZX-TEXT
.db _; ZX-TEXT
Lb2175:
R,O,O,M,_,I,N,_; ZX-TEXT
.db B,A,N,K,_,=,_; ZX-TEXT
Lb2184:
LD HL,$C093
LD DE,$0020
Lb218A:
ADD HL,DE
LD A,$14
CP (HL)
JR Z, Lb2198 ; [$2198:8600]
LD A,$00
CP (HL)
JR NZ, Lb218A ; [$218A:8586]
LD ($BFE2),HL
Lb2198:
OR A
SBC HL,DE
PUSH HL
CALL Lb211B ; [8475]
POP HL
PUSH BC
LD BC,$0006
ADD HL,BC
CALL Lb211B ; [8475]
POP HL
ADD HL,BC
LD ($BFE0),HL
RET ; ==========================
Lb21AE:
LD HL,($BFE2)
DEC HL
DEC HL
DEC HL
DEC HL
LD A,(HL)
RET ; ==========================
Lb21B7:
LD BC,$0900
CALL PRINT_AT ; [PRINT-AT]
LD BC,$000F
LD DE, Lb2175
CALL PR_STR_4 ; [PR-STR-4]
CALL Lb21CD ; [8653]
CALL Lb21D9 ; [8665]
RET ; ==========================
Lb21CD:
LD HL,$FFFF
LD DE,($BFE0)
DEC DE
OR A
SBC HL,DE
RET ; ==========================
Lb21D9:
LD B,H
LD C,L
Lb21DB:
CALL STACK_BC ; []*BIOS ROM*
CALL PRINT_FP ; [PRINT-FB]
RET ; ==========================
Lb21E2:
LD HL,($BFE2)
LD DE,$0010
OR A
SBC HL,DE
EX DE,HL
LD HL,$BFE4
LD BC,$001C
LDIR
RET ; ==========================
Lb21F5:
LD DE,(RAM_D_FILE) ; GET D-FILE
LD HL,($BFDA)
LD A,$16
Lb21FE:
INC DE
LD BC,$0020
LDIR
DEC A
JR NZ, Lb21FE ; [$21FE:8702]
RET ; ==========================
Lb2208:
LD A,$76
RST 10H ; Display= A reg.
RST 10H ; Display= A reg.
LD BC,$0009
LD DE, Lb2163
CALL PR_STR_4 ; [PR-STR-4]
LD BC,($BFE0)
CALL Lb21DB ; [8667]
LD HL,(RAM_DF_CC) ; GET DF-CC
DEC HL
LD BC,$0005
LD DE,$BFF8
LDDR
LD A,$76
RST 10H ; Display= A reg.
LD BC,$0009
LD DE, Lb216C
CALL PR_STR_4 ; [PR-STR-4]
CALL Lb2036 ; [8246]
INC BC
INC BC
CALL Lb21DB ; [8667]
LD A,(RAM_S_POSN) ; GET S-POSN
LD C,$13
SUB C
LD B,A
LD A,$05
SUB B
LD HL,$BFFA
Lb2249:
LD (HL),$1C
INC HL
DJNZ Lb2249 ; [$2249:8777]
LD DE,$BFFE
LD B,$00
LD C,A
LD HL,(RAM_DF_CC) ; GET DF-CC
DEC HL
LDDR
RET ; ==========================
Lb225B:
.db N,O,T,_,E,N,O,U; ZX-TEXT
.db G,H,_,R,O,O,M,_; ZX-TEXT
.db I,N,_,B,A,N,K; ZX-TEXT
Lb2272:
P,R,E,S,S,_,A,N; ZX-TEXT
.db Y,_,K,E,Y,_,T,O; ZX-TEXT
.db _,C,O,N,T,I,N,U; ZX-TEXT
.db E; ZX-TEXT
Lb228B:
E,N,T,E,R,_,T,H; ZX-TEXT
.db E,_,L,I,N,E,_,R; ZX-TEXT
.db A,N,G,E,_,O,R,_; ZX-TEXT
.db E,N,T,E,R,_,_,_; ZX-TEXT
.db (,A,),L,L,_,F,O; ZX-TEXT
.db R,_,T,H,E,_,E,N; ZX-TEXT
.db T,I,R,E,_,P,R,O; ZX-TEXT
.db G,R,A,M,F,I,R,S; ZX-TEXT
.db T,_,L,I,N,E,_,O; ZX-TEXT
.db R,_,(,S,),T,A,R; ZX-TEXT
.db T,:,_,L,A,S,T,_; ZX-TEXT
.db L,I,N,E,_,O,R,_; ZX-TEXT
.db (,E,),N,D,:,_,_; ZX-TEXT
.db _,_; ZX-TEXT
Lb22F5:
I,N,V,A,L,I,D,_; ZX-TEXT
.db E,X,T,E,N,S,I,O; ZX-TEXT
.db N; ZX-TEXT
Lb2306:
P,U,R,G,E,_,A,_; ZX-TEXT
.db F,I,L,E; ZX-TEXT
Lb2312:
LD A,$76
RST 10H ; Display= A reg.
RST 10H ; Display= A reg.
LD BC,$0019
LD DE, Lb2272
CALL PR_STR_4 ; [PR-STR-4]
CALL Lb205A ; [8282]
RET ; ==========================
Lb2323:
LD A,$76
RST 10H ; Display= A reg.
RST 10H ; Display= A reg.
LD BC,$001E
LD DE, Lb2145
CALL PR_STR_4 ; [PR-STR-4]
RET ; ==========================
Lb2331:
LD A,$76
RST 10H ; Display= A reg.
RST 10H ; Display= A reg.
LD BC,$0017
LD DE, Lb225B
CALL PR_STR_4 ; [PR-STR-4]
RET ; ==========================
Lb233F:
LD A,$76
RST 10H ; Display= A reg.
RST 10H ; Display= A reg.
LD BC,$0011
LD DE, Lb22F5
CALL PR_STR_4 ; [PR-STR-4]
RET ; ==========================
Lb234D:
LD HL,(RAM_VARS) ; GET VARS
LD DE,(RAM_E_LINE) ; GET E-LINE
DEC DE
CALL Lb236F ; [9071]
RET ; ==========================
Lb2359:
LD HL,$4009
LD DE,(RAM_E_LINE) ; GET E-LINE
CALL Lb236F ; [9071]
RET ; ==========================
Lb2364:
LD HL,$407D
LD DE,(RAM_D_FILE) ; GET D-FILE
CALL Lb236F ; [9071]
RET ; ==========================
Lb236F:
LD ($BFD6),HL
LD ($BFD8),DE
LD A,$29
RET ; ==========================
Lb2379:
LD A,$76
RST 10H ; Display= A reg.
RST 10H ; Display= A reg.
LD BC,$003C
LD DE, Lb228B
CALL PR_STR_4 ; [PR-STR-4]
Lb2386:
LD A,$76
RST 10H ; Display= A reg.
LD BC,$0017
CALL PR_STR_4 ; [PR-STR-4]
RET ; ==========================
Lb2390:
CALL SLOW ; [SLOW]
LD HL,(RAM_DF_CC) ; GET DF-CC
Lb2396:
PUSH HL
Lb2397:
CALL Lb205A ; [8282]
LD B,A
LD A,$77
CP B
JR NZ, Lb23B2 ; [$23B2:9138]
POP HL
LD (RAM_DF_CC),HL ; SET DF-CC
PUSH HL
LD A,$00
LD B,$05
Lb23A9:
RST 10H ; Display= A reg.
DJNZ Lb23A9 ; [$23A9:9129]
POP HL
LD (RAM_DF_CC),HL ; SET DF-CC
JR Lb2396 ; [$2396:9110]
Lb23B2:
DEC A
CP B
JR Z, Lb23BA ; [$23BA:9146]
LD A,B
RST 10H ; Display= A reg.
JR Lb2397 ; [$2397:9111]
Lb23BA:
POP HL
RET ; ==========================
Lb23BC:
LD HL,($BFDA)
LD C,(HL)
INC HL
LD B,(HL)
RET ; ==========================
Lb23C3:
CALL Lb211B ; [8475]
LD H,B
LD L,C
CALL LINE_ADDR ; [LINE-ADDR]
RET ; ==========================
Lb23CC:
CALL Lb23C3 ; [9155]
INC HL
INC HL
LD E,(HL)
INC HL
LD D,(HL)
INC HL
ADD HL,DE
RET ; ==========================
Lb23D7:
CALL Lb2379 ; [9081]
PUSH DE
CALL Lb2390 ; [9104]
LD A,$26
CP (HL)
JR NZ, Lb23E8 ; [$23E8:9192]
POP DE
CALL Lb2364 ; [9060]
RET ; ==========================
Lb23E8:
LD A,$38
CP (HL)
JR Z, Lb23F2 ; [$23F2:9202]
CALL Lb23C3 ; [9155]
JR Lb23F5 ; [$23F5:9205]
Lb23F2:
LD HL,$407D
Lb23F5:
LD ($BFD6),HL
POP DE
CALL Lb2386 ; [9094]
CALL Lb2390 ; [9104]
LD A,$2A
CP (HL)
JR Z, Lb2413 ; [$2413:9235]
CALL Lb23CC ; [9164]
LD ($BFD8),HL
EX DE,HL
LD HL,(RAM_D_FILE) ; GET D-FILE
OR A
SBC HL,DE
JR NC, Lb2419 ; [$2419:9241]
Lb2413:
LD HL,(RAM_D_FILE) ; GET D-FILE
LD ($BFD8),HL
Lb2419:
LD A,$29
RET ; ==========================
Lb241C:
.db S,A,V,E,_,A,_,F; ZX-TEXT
.db I,L,E; ZX-TEXT
Lb2427:
L,O,A,D,_,A,_,F; ZX-TEXT
.db I,L,E; ZX-TEXT
Lb2432:
C,H,A,N,G,E,_,B; ZX-TEXT
.db A,N,K,S,E,N,T,E; ZX-TEXT
.db R,_,B,A,N,K,_,R; ZX-TEXT
.db E,Q,U,I,R,E,D,:; ZX-TEXT
Lb2452:
LD A,$76
RST 10H ; Display= A reg.
LD BC,$000B
LD DE, Lb241C
CALL PR_STR_4 ; [PR-STR-4]
RET ; ==========================
Lb245F:
LD A,$76
RST 10H ; Display= A reg.
LD BC,$000B
LD DE, Lb2427
CALL PR_STR_4 ; [PR-STR-4]
RET ; ==========================
Lb246C:
.db E,N,T,E,R,_,L,E; ZX-TEXT
.db T,T,E,R,_,(,A,_; ZX-TEXT
.db T,O,_,O,),_,O,F; ZX-TEXT
.db _,F,I,L,E,:,_,_; ZX-TEXT
.db ",Z,",_,W,I,L,L; ZX-TEXT
.db _,R,E,D,I,S,P,L; ZX-TEXT
.db A,Y,_,D,I,R,E,C; ZX-TEXT
.db T,O,R,Y; ZX-TEXT
Lb24A8:
LD A,$76
RST 10H ; Display= A reg.
RST 10H ; Display= A reg.
LD BC,$003C
LD DE, Lb246C
CALL PR_STR_4 ; [PR-STR-4]
RET ; ==========================
Lb24B6:
.db N,O,_,F,I,L,E,_; ZX-TEXT
.db F,O,U,N,D; ZX-TEXT
Lb24C3:
LD A,$76
RST 10H ; Display= A reg.
RST 10H ; Display= A reg.
LD BC,$000D
LD DE, Lb24B6
CALL PR_STR_4 ; [PR-STR-4]
RET ; ==========================
Lb24D1:
LD HL,$C073
LD DE,$0020
LD B,$25
SUB B
LD B,A
Lb24DB:
ADD HL,DE
DJNZ Lb24DB ; [$24DB:9435]
LD ($BFE2),HL
CALL Lb211B ; [8475]
LD ($BFDA),BC
RET ; ==========================
Lb24E9:
LD A,$76
RST 10H ; Display= A reg.
RST 10H ; Display= A reg.
LD BC,$000F
LD DE, Lb225B
CALL PR_STR_4 ; [PR-STR-4]
RET ; ==========================
Lb24F7:
.db T,H,E,_,F,I,L,E; ZX-TEXT
.db _,W,I,L,L,_,B,E; ZX-TEXT
.db _,F,L,A,G,G,E,D; ZX-TEXT
.db _,A,N,D,_,_,_,_; ZX-TEXT
.db P,U,R,G,E,D,_,W; ZX-TEXT
.db H,E,N,_,T,H,E,_; ZX-TEXT
.db B,A,N,K,_,I,S,_; ZX-TEXT
.db R,E,P,A,C,K,E,D; ZX-TEXT
.db P,U,R,G,E,_,(,P; ZX-TEXT
.db ),_,O,R,_,U,N,P; ZX-TEXT
.db U,R,G,E,_,(,U,); ZX-TEXT
.db ?; ZX-TEXT
Lb2550:
R,E,C,L,A,I,M,_; ZX-TEXT
.db P,A,R,T,_,O,F,_; ZX-TEXT
.db S,Y,S,T,E,M,E,N; ZX-TEXT
.db T,E,R,_,V,_,T,O; ZX-TEXT
.db _,C,L,E,A,R,_,A; ZX-TEXT
.db L,L,_,V,A,R,I,A; ZX-TEXT
.db B,L,E,S,_,_,O,R; ZX-TEXT
.db _,P,_,T,O,_,C,L; ZX-TEXT
.db E,A,R,_,(,P,A,R; ZX-TEXT
.db T,_,O,F,),_,P,R; ZX-TEXT
.db O,G,R,A,M; ZX-TEXT
Lb25A5:
LD A,$76
RST 10H ; Display= A reg.
LD BC,$000C
LD DE, Lb2306
CALL PR_STR_4 ; [PR-STR-4]
LD A,$76
RST 10H ; Display= A reg.
RST 10H ; Display= A reg.
LD BC,$0040
LD DE, Lb24F7
CALL PR_STR_4 ; [PR-STR-4]
LD A,$76
RST 10H ; Display= A reg.
RST 10H ; Display= A reg.
LD BC,$0019
CALL PR_STR_4 ; [PR-STR-4]
RET ; ==========================
Lb25C9:
LD A,$76
RST 10H ; Display= A reg.
LD BC,$0016
LD DE, Lb2550
CALL PR_STR_4 ; [PR-STR-4]
LD A,$76
RST 10H ; Display= A reg.
RST 10H ; Display= A reg.
LD BC,$003F
CALL PR_STR_4 ; [PR-STR-4]
RET ; ==========================
Lb25E0:
LD A,$76
RST 10H ; Display= A reg.
LD BC,$000C
LD DE, Lb2432
CALL PR_STR_4 ; [PR-STR-4]
LD A,$76
RST 10H ; Display= A reg.
RST 10H ; Display= A reg.
LD BC,$0014
CALL PR_STR_4 ; [PR-STR-4]
RET ; ==========================
NOP
Lb25F8:
CALL FAST ; [FAST]
LD DE,$BFDA
LD HL, Lb201A
LD BC,$0006
LDIR
CALL Lb21F5 ; [8693]
CALL SLOW ; [SLOW]
CALL Lb205A ; [8282]
PUSH AF
CALL CLS ; [CLS]
POP AF
CP $1D ; [29-"1"]
JR NZ, Lb2683 ; [$2683:9859]
CALL Lb2452 ; [9298]
CALL Lb20CD ; [8397]
LD A,($BFF0)
CP $3B ; [59-"V"]
CALL Z, Lb234D ; [9037]
CP $39 ; [57-"T"]
CALL Z, Lb2359 ; [9049]
CP $35 ; [53-"P"]
CALL Z, Lb23D7 ; [9175]
CP $29 ; [41-"D"]
JR Z, Lb2639 ; [$2639:9785]
CALL Lb233F ; [9023]
JR Lb267D ; [$267D:9853]
Lb2639:
CALL Lb2036 ; [8246]
INC BC
INC BC
PUSH BC
CALL Lb2184 ; [8580]
LD ($BFDA),HL
CALL Lb21CD ; [8653]
OR A
POP BC
SBC HL,BC
JR NC, Lb2653 ; [$2653:9811]
CALL Lb2331 ; [9009]
JR Lb267D ; [$267D:9853]
Lb2653:
CALL Lb2323 ; [8995]
CALL Lb205A ; [8282]
CP $38 ; [56-"S"]
JR NZ, Lb267D ; [$267D:9853]
CALL Lb2208 ; [8712]
CALL Lb2312 ; [8978]
CALL FAST ; [FAST]
LD A,($BFF0)
CP $29 ; [41-"D"]
JR Z, Lb2672 ; [$2672:9842]
CALL Lb204C ; [8268]
JR Lb2675 ; [$2675:9845]
Lb2672:
CALL Lb206A ; [8298]
Lb2675:
CALL Lb21E2 ; [8674]
JR Lb2680 ; [$2680:9856]
Lb267A:
CALL Lb24E9 ; [9449]
Lb267D:
CALL Lb2312 ; [8978]
Lb2680:
JP Lb2000 ; []*CHR ROM*
Lb2683:
CP $1E ; [30-"2"]
JR NZ, Lb26D6 ; [$26D6:9942]
CALL Lb245F ; [9311]
CALL Lb24A8 ; [9384]
CALL Lb205A ; [8282]
PUSH AF
CALL CLS ; [CLS]
CALL FAST ; [FAST]
POP AF
CP $3F ; [63-"Z"]
JR Z, Lb2680 ; [$2680:9856]
CALL Lb24D1 ; [9425]
CALL Lb21AE ; [8622]
CP $00 ; [0]
JR NZ, Lb26AE ; [$26AE:9902]
CALL SLOW ; [SLOW]
CALL Lb24C3 ; [9411]
JR Lb2680 ; [$2680:9856]
Lb26AE:
CP $29 ; [41-"D"]
JP Z, Lb21F5 ; [8693]
CP $39 ; [57-"T"]
JP Z, Lb207D ; [8317]
CALL Lb23BC ; [9148]
CALL Lb2020 ; [8224]
OR A
SBC HL,BC
JR C, Lb267A ; [$267A:9850]
CP $3B ; [59-"V"]
JP Z, Lb2105 ; [8453]
CALL Lb202B ; [8235]
OR A
SBC HL,BC
JR C, Lb267A ; [$267A:9850]
CP $35 ; [53-"P"]
JP Z, Lb208B ; [8331]
RET ; ==========================
Lb26D6:
CP $1F ; [31-"3"]
JR NZ, Lb2707 ; [$2707:9991]
CALL Lb25A5 ; [9637]
CALL Lb205A ; [8282]
PUSH AF
CALL Lb24A8 ; [9384]
CALL Lb205A ; [8282]
PUSH AF
CALL FAST ; [FAST]
POP AF
CP $3F ; [63-"Z"]
JR Z, Lb2705 ; [$2705:9989]
CALL Lb24D1 ; [9425]
LD HL,($BFE2)
LD BC,$000C
ADD HL,BC
POP AF
CP $3A ; [58-"U"]
JR NZ, Lb2703 ; [$2703:9987]
LD (HL),$00
JR Lb2705 ; [$2705:9989]
Lb2703:
LD (HL),$35
Lb2705:
JR Lb2750 ; [$2750:10064]
Lb2707:
CP $20 ; [32-"4"]
JR NZ, Lb272C ; [$272C:10028]
CALL Lb25C9 ; [9673]
CALL Lb205A ; [8282]
CP $3B ; [59-"V"]
JR NZ, Lb271A ; [$271A:10010]
CALL CLEAR ; [CLEAR]
JR Lb272A ; [$272A:10026]
Lb271A:
CALL Lb23D7 ; [9175]
CALL FAST ; [FAST]
LD DE,($BFD6)
LD HL,($BFD8)
CALL RECLAIM_1 ; [RECLAIM-1]
Lb272A:
JR Lb2750 ; [$2750:10064]
Lb272C:
CP $22 ; [34-"6"]
JR NZ, Lb2746 ; [$2746:10054]
CALL Lb25E0 ; [9696]
CALL Lb205A ; [8282]
LD BC,$1C5F
SUB B
AND $03
INC A
RLA
RLA
RLA
ADD A,C
LD C,A
OUT (c),A
JR Lb2750 ; [$2750:10064]
Lb2746:
PUSH AF
CALL Lb2184 ; [8580]
POP AF
CP $23 ; [35-"7"]
JR NZ, Lb2758 ; [$2758:10072]
CALL Lb21B7 ; [8631]
CALL Lb2312 ; [8978]
JP Lb2000 ; []*CHR ROM*
Lb2758:
CP $21 ; [33-"5"]
RET NZ
CALL FAST ; [FAST]
LD B,$0F
LD HL,$C09F
Lb2763:
LD DE,$0020
ADD HL,DE
Lb2767:
DEC B
JR Z, Lb27C4 ; [$27C4:10180]
LD A,$35
CP (HL)
JR NZ, Lb2763 ; [$2763:10083]
PUSH BC
PUSH HL
LD DE,$000C
OR A
SBC HL,DE
PUSH HL
CALL Lb211B ; [8475]
POP HL
PUSH BC
PUSH BC
LD BC,$0006
ADD HL,BC
CALL Lb211B ; [8475]
POP HL
ADD HL,BC
PUSH HL
EX DE,HL
LD HL,($BFE0)
OR A
SBC HL,DE
JR Z, Lb27B4 ; [$27B4:10164]
LD B,H
LD C,L
POP HL
POP DE
LDIR
POP DE
POP BC
PUSH BC
PUSH DE
DEC B
Lb279C:
PUSH BC
LD HL,$0020
ADD HL,DE
PUSH HL
PUSH DE
LD BC,$001D
LDDR
POP HL
LD BC,$0040
ADD HL,BC
POP DE
POP BC
DJNZ Lb279C ; [$279C:10140]
EX DE,HL
JR Lb27B8 ; [$27B8:10168]
Lb27B4:
POP HL
POP HL
POP HL
PUSH HL
Lb27B8:
LD B,$1D
Lb27BA:
LD (HL),$00
DEC HL
DJNZ Lb27BA ; [$27BA:10170]
POP HL
POP BC
JR Lb2767 ; [$2767:10087]
NOP
Lb27C4:
LD HL,$C000
PUSH HL
LD ($BFDA),HL
CALL Lb21F5 ; [8693]
CALL SLOW ; [SLOW]
LD HL,(RAM_D_FILE) ; GET D-FILE
LD DE,$00B9
ADD HL,DE
Lb27D8:
LD (RAM_DF_CC),HL ; SET DF-CC
LD BC,$001B
OR A
SBC HL,BC
CALL Lb211B ; [8475]
POP HL
ADD HL,BC
PUSH HL
CALL Lb21D9 ; [8665]
LD HL,(RAM_DF_CC) ; GET DF-CC
LD DE,$001C
ADD HL,DE
LD A,$00
CP (HL)
JR NZ, Lb27D8 ; [$27D8:10200]
POP HL
CALL FAST ; [FAST]
CALL Lb206A ; [8298]
JP Lb2000 ; []*CHR ROM*
;------------ Labels errors ------------
; LABEL ERROR @LB2750[@$2705]:JR +74 [$2750:10064]
; LABEL ERROR @LB2750[@$272A]:JR +37 [$2750:10064]
; LABEL ERROR @LB2750[@$2744]:JR +11 [$2750:10064]
.end