[TS HORIZONS] Paul Hunter's Bank Switching.

Discussion about ZX80 / ZX81 Software
User avatar
XavSnap
Posts: 1940
Joined: Sat May 10, 2008 4:23 pm
Location: 'Zx81 France' Fb group.

Re: [TS HORIZONS] Paul Hunter's Bank Switching.

Post by XavSnap »

Hi Stefano,

Checked ok !

:oops:
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
User avatar
stefano
Posts: 542
Joined: Tue Dec 11, 2012 9:24 am
Contact:

Re: [TS HORIZONS] Paul Hunter's Bank Switching.

Post by stefano »

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
User avatar
XavSnap
Posts: 1940
Joined: Sat May 10, 2008 4:23 pm
Location: 'Zx81 France' Fb group.

Re: [TS HORIZONS] Paul Hunter's Bank Switching.

Post by XavSnap »

Hi,

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
[Edit: VB81 updated to 17-10-2019 (now display JP ERRORS offset !!!, displayed target and not the label from)]
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
Post Reply