Hi Stefano,
Checked ok !
[TS HORIZONS] Paul Hunter's Bank Switching.
Re: [TS HORIZONS] Paul Hunter's Bank Switching.
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
Re: [TS HORIZONS] Paul Hunter's Bank Switching.
the first one I pointed out looked wrong, I was almost sure of the error.
are we sure the printout in the magazine was correct?
errors were frequent
are we sure the printout in the magazine was correct?
errors were frequent
Re: [TS HORIZONS] Paul Hunter's Bank Switching.
Hi,
3 links to @LB2750 throw the JR jump…
[Edit: VB81 updated to 17-10-2019 (now display JP ERRORS offset !!!, displayed target and not the label from)]
3 links to @LB2750 throw the JR jump…
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
Xavier ...on the Facebook groupe : "Zx81 France"(fr)