VB81 Cursor Bug

Emulator and emulator development specific topics
Post Reply
butchi
Posts: 38
Joined: Wed Jun 12, 2019 4:12 am

VB81 Cursor Bug

Post by butchi »

Hi,
The following link is a combination of assembly and ZX81 BASIC program called 'Organizer' with no data.
VB81 does not allow normal cursor movement, which is the heart of the program.
Please confirm and if possible make cursor move w/o hitting 'SHIFT', etc.
thanks!
link
Last edited by butchi on Sun May 21, 2023 9:59 am, edited 1 time in total.
User avatar
XavSnap
Posts: 1941
Joined: Sat May 10, 2008 4:23 pm
Location: 'Zx81 France' Fb group.

Re: VB81 Cursor Bug

Post by XavSnap »

Hi butchi,
Yes, just open the "Hardware Setting" menu in "Options".
Select the cursor method...

Capturevucalc.JPG
Cursor controls will be shifted now.

The Memotech Centronics card don't work, but you can type the shifted F11 key to get text.
Or print it to the ZxPrinter, and use an OCR.
Capturevucalc2.JPG
Thanks playing to VB81 !

:ugeek:
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
butchi
Posts: 38
Joined: Wed Jun 12, 2019 4:12 am

Re: VB81 Cursor Bug

Post by butchi »

XavSnap, Can VB81 disassemble 'Organizers' initial option 'RECORD LAY OUT', followed by a new mode called 'DATA-FIELDS', to see how clever this mixed language program's code operates, thanks?
User avatar
XavSnap
Posts: 1941
Joined: Sat May 10, 2008 4:23 pm
Location: 'Zx81 France' Fb group.

Re: VB81 Cursor Bug

Post by XavSnap »

Yes,

vbdesas.JPG


The binary type file (arr):
VU-FILED_[VB81 data type array].zip
(342 Bytes) Downloaded 101 times
(HELP PDF File: https://www.sinclairzxworld.com/viewtop ... 417#p48417 )

Code: Select all

;------- TASM ASM mnemonics. -------
; Compile this file using:
; Set TASMOPTS = -b
; tasm -80 ThisCode.tas MyBinary.BIN
;-----------------------------------
; Zx81 Program name: VB81 XuR [VU-FILED.p] : SAVE"VU-FILE" Line 9995
; REM   line   name: D=16514/20486 : H=4082/5006

#define ORG  .org       ; TASM cross-assembler definitions
#define equ  .equ
;-----------------------------------
;- ZX81 CARACTERS CODES ------------
;-----------------------------------
_   .equ $00
_6  .equ $22
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
__  .equ $80
_A   .equ $A6
_C   .equ $A8
_D   .equ $A9
_E   .equ $AA
_F   .equ $AB
_H   .equ $AD
_I   .equ $AE
_L   .equ $B1
_M   .equ $B2
_N   .equ $B3
_O   .equ $B4
_P   .equ $B5
_R   .equ $B7
_S   .equ $B8
_T   .equ $B9
_U   .equ $BA
_Y   .equ $BE
;-----------------------------------

;------------------------------------
;-BASIC sub-routine entry.          -
;+----------------------------------+
; Lb4645  ;  <- USR BASIC Enty.
; Lb4648  ;  <- USR BASIC Enty.
; Lb4ACF  ;  <- USR BASIC Enty.
; Lb4AD2  ;  <- USR BASIC Enty.
; Lb4AD5  ;  <- USR BASIC Enty.
; Lb4AD8  ;  <- USR BASIC Enty.
;+----------------------------------+

;------- ROM and RAM Symbols -------
KEYBOARD equ $02BB
DECODE equ $07BD
RAM_VARS equ $4010
RAM_D_FILE equ $400C
RAM_SPARE2 equ $407B


ORG $4082 ; [@16514/@h4082]

Lb4082:

.db $AB,$55,$29,$56,$36,$56,$8C,$56; DATA
.db $A4,$56,$FE,$56,$40,$57,$82,$57; DATA
.db $33,$68,$34,$68,$35,$68,$36,$68; DATA
.db $37,$68,$38,$68,$39,$68,$3A,$68; DATA
.db $3B,$68,$3C,$68,$3D,$68; DATA

Lb40A8:
.db $67,$00; DATA

Lb40AA:
.db $10,$58; DATA

Lb40AC:
.db $B1,$59; DATA

Lb40AE:
.db $A1,$01; DATA

Lb40B0:
.db $01; DATA

Lb40B1:
.db $E4,$FA; DATA

Lb40B3:
.db $82,$57; DATA

Lb40B5:
.db $98,$00; DATA

Lb40B7:
.db $01; DATA

Lb40B8:
.db $18,$5A; DATA

Lb40BA:
.db $18,$5A; DATA

Lb40BC:
.db $4C; DATA

Lb40BD:
.db $7F; DATA

Lb40BE:
.db $F0,$57; DATA

Lb40C0:
.db $00; DATA

Lb40C1:
.db $87,$4A; DATA

Lb40C3:
.db $D9,$4B; DATA

Lb40C5:
.db $33,$4B; DATA

Lb40C7:
.db $76,$27; DATA

Lb40C9:
.db $A9,$26,$00,$00,$00; DATA

Lb40CE:
.db $04; DATA

Lb40CF:
.db $18,$5A; DATA

Lb40D1:
.db $18,$5A; DATA

Lb40D3:
.db $55,$7E; DATA

Lb40D5:
.db $83,$57; DATA

Lb40D7:
.db $00; DATA

Lb40D8:
.db $63,$55; DATA

Lb40DA:
.db $08; DATA

Lb40DB:
.db $08; DATA

Lb40DC:
.db $9C,$7E; DATA

Lb40DE:
.db $63,$55,$84,$55,$91,$55,$A5,$55; DATA
.db $BD,$55,$CA,$55,$D4,$55,$E0,$55; DATA
.db $33,$68,$34,$68,$35,$68,$36,$68; DATA
.db $37,$68,$38,$68,$39,$68,$3A,$68; DATA
.db $3B,$68,$3C,$68,$3D,$68,$19,$ED; DATA
.db $C3,$E8,$42,$C3; DATA

Lb410A:
.db $E1,$E4,$E3,$E0,$DD,$72,$DF,$70; DATA
.db $DA,$75,$E5,$E2,$D8,$DE,$DC,$73; DATA
.db $DB,$71,$D9,$C0; DATA
Lb411E:
	JP Lb4300 ; [17152]
Lb4121:
	JP Lb4586 ; [17798]
Lb4124:
	JP Lb45AE ; [17838]
	JP Lb414B ; [16715]
Lb412A:
	JP Lb4296 ; [17046]
Lb412D:
	JP Lb4368 ; [17256]
Lb4130:
	JP Lb42D3 ; [17107]
Lb4133:
	JP Lb42F4 ; [17140]
Lb4136:
	JP Lb430F ; [17167]
Lb4139:
	JP Lb426B ; [17003]
Lb413C:
	JP Lb41EB ; [16875]
Lb413F:
	JP Lb419C ; [16796]
	CALL Lb419C ; [16796]
	CALL Lb4154 ; [16724]
	JP Lb4578 ; [17784]
Lb414B:
	CALL Lb453C ; [17724]
	CALL Lb4154 ; [16724]
	JP Lb4520 ; [17696]
Lb4154:
	CALL Lb44F6 ; [17654]
	CALL Lb42BC ; [17084]
	RET C 
	LD DE,(Lb40AA) 
Lb415F:
	LD HL,(Lb40D8) 
	LD BC,$0272 
Lb4165:
	XOR A 
	CP (HL) 
	JR Z, Lb416E ; [$416E:16750]
Lb4169:
	LDI 
	RET PO 
	JR Lb4165 ; [$4165:16741]
Lb416E:
	INC HL 
	CP (HL) 
	DEC HL 
	JR NZ, Lb4169 ; [$4169:16745]
	EX DE,HL 
	LD (HL),$43 
	INC HL 
	EX DE,HL 
Lb4178:
	LD (Lb40CE),A 
	INC HL 
	DEC BC 
	LD A,B 
	OR C 
	JR Z, Lb4196 ; [$4196:16790]
	XOR A 
	CP (HL) 
	LD A,(Lb40CE) 
	JR NZ, Lb418B ; [$418B:16779]
	INC A 
	JR Lb4178 ; [$4178:16760]
Lb418B:
	LD (DE),A 
	INC DE 
	JR Lb4165 ; [$4165:16741]
Lb418F: ; <16783>
	EX DE,HL 
	LD (HL),$43 
	INC HL 
	LD (HL),A 
	INC HL 
	RET ; ==========================

Lb4196:
	LD A,(Lb40CE) 
	LD (DE),A 
	INC DE 
	RET ; ==========================

Lb419C:
	LD HL,(Lb40AA) 
	LD BC,(Lb40AE) 
Lb41A3:
	LD DE,(Lb40D8) 
Lb41A7:
	LD A,$43 
	CP (HL) 
	JR Z, Lb41B1 ; [$41B1:16817]
	LDI 
	RET PO 
	JR Lb41A7 ; [$41A7:16807]
Lb41B1:
	PUSH BC 
	INC HL 
	LD C,(HL) 
	INC HL 
	INC C 
	LD A,$00 
Lb41B8:
	LD (DE),A 
	INC DE 
	DEC C 
	JR NZ, Lb41B8 ; [$41B8:16824]
	POP BC 
	DEC BC 
	DEC BC 
	LD A,B 
	OR C 
	RET Z 
	JR Lb41A7 ; [$41A7:16807]
Lb41C5:
	LD (Lb40B1),DE 
	XOR A 
	LD (Lb40DA),A 
	LD HL,(Lb40DC) 
	LD (Lb40D3),HL 
Lb41D3:
	CALL Lb41EB ; [16875]
	JR Z, Lb4204 ; [$4204:16900]
	EX DE,HL 
	CALL Lb4244 ; [16964]
	JP C, Lb4265 ; [16997]
	JR Lb41D3 ; [$41D3:16851]
Lb41E1:
	RLCA 
	ADD A,L 
	LD L,A 
	JR NC, Lb41E7 ; [$41E7:16871]
	INC H 
Lb41E7:
	LD E,(HL) 
	INC HL 
	LD D,(HL) 
	RET ; ==========================

Lb41EB:
	LD HL, Lb4082 
Lb41EE:
	LD BC,(Lb40DA) 
	LD A,C 
	CP B 
	RET Z 
	PUSH AF 
	INC A 
	LD (Lb40DA),A 
	DEC A 
	CALL Lb41E1 ; [16865]
	LD (Lb40B3),DE 
	POP AF 
	RET ; ==========================

Lb4204:
	LD HL,(Lb40D3) 
	LD (Lb40DC),HL 
	LD HL,(Lb40B5) 
	INC HL 
	LD (Lb40B5),HL 
	LD A,$01 
	JP Lb4265 ; [16997]
Lb4216:
	CALL Lb448F ; [17551]
	LD DE,(Lb40B3) 
	LD HL,(Lb40D5) 
	INC HL 
	LD A,$76 
	CP (HL) 
	JR Z, Lb4227 ; [$4227:16935]
	DEC HL 
Lb4227:
	OR A 
	SBC HL,DE 
	LD C,L 
	INC C 
	LD B,$00 
	LD HL,(Lb40D3) 
	CALL Lb4257 ; [16983]
	RET C 
	LD (HL),C 
	DEC C 
	EX DE,HL 
	INC DE 
	LD A,B 
	OR C 
	JR Z, Lb423F ; [$423F:16959]
	LDIR 
Lb423F:
	LD (Lb40D3),DE 
	RET ; ==========================

Lb4244:
	CALL Lb4368 ; [17256]
	CP $E3 ; [227]
	JP NZ, Lb4216 ; [16918]
	CALL Lb448F ; [17551]
	LD A,(Lb40DA) 
	DEC A 
	JR NZ, Lb4244 ; [$4244:16964]
	POP HL 
	RET ; ==========================

Lb4257:
	PUSH HL 
	PUSH DE 
	ADD HL,BC 
	LD DE,(Lb40BC) 
	OR A 
	SBC HL,DE 
	CCF 
	POP DE 
	POP HL 
	RET ; ==========================

Lb4265:
	LD HL,(Lb40DC) 
	LD (HL),$00 
	RET ; ==========================

Lb426B:
	LD A,(Lb40DA) 
	LD B,A 
	LD HL,(Lb40D1) 
	XOR A 
Lb4273:
	ADD A,L 
	LD L,A 
	JR NC, Lb4278 ; [$4278:17016]
	INC H 
Lb4278:
	LD A,(HL) 
	AND $3F 
	DJNZ Lb4273 ; [$4273:17011]
	RET ; ==========================

Lb427E:
	LD HL,(Lb40D1) 
	LD A,(Lb40DB) 
	LD B,A 
	LD D,$00 
	LD A,(HL) 
	AND $3F 
	LD E,A 
Lb428B:
	ADD HL,DE 
	LD E,(HL) 
	DJNZ Lb428B ; [$428B:17035]
	LD A,(HL) 
	OR A 
	RET NZ 
	LD HL,(Lb40D1) 
	RET ; ==========================

Lb4296:
	CALL Lb419C ; [16796]
	XOR A 
	LD (Lb40DA),A 
	LD HL,(Lb40D1) 
Lb42A0:
	PUSH HL 
	CALL Lb41EB ; [16875]
	POP HL 
	RET Z 
	LD A,(HL) 
	INC HL 
	AND $3F 
	DEC A 
	JR Z, Lb42A0 ; [$42A0:17056]
	LD B,$00 
	LD C,A 
Lb42B0:
	LD A,(DE) 
	CP $76 ; [118]
	JR Z, Lb42A0 ; [$42A0:17056]
	LDI 
	JP PE, Lb42B0 ; [17072]
	JR Lb42A0 ; [$42A0:17056]
Lb42BC:
	LD HL,(Lb40D8) 
	LD DE,$0272 
	CALL Lb42D3 ; [17107]
	LD DE,(Lb40AC) 
	LD HL,(Lb40AA) 
	CALL Lb430F ; [17167]
	RET C 
	JP Lb433D ; [17213]
Lb42D3:
	LD BC,$0000 
Lb42D6:
	CALL Lb4616 ; [17942]
	LD A,(HL) 
	INC HL 
	INC BC 
	DEC DE 
	OR A 
	JR NZ, Lb42D6 ; [$42D6:17110]
	CALL Lb4616 ; [17942]
	LD A,(HL) 
	OR A 
	JR NZ, Lb42D6 ; [$42D6:17110]
	INC BC 
Lb42E8:
	CALL Lb4616 ; [17942]
	LD A,(HL) 
	INC HL 
	DEC DE 
	OR A 
	JR Z, Lb42E8 ; [$42E8:17128]
	INC BC 
	JR Lb42D6 ; [$42D6:17110]
Lb42F4:
	PUSH HL 
	LD HL,(Lb40DC) 
	OR A 
	SBC HL,BC 
	LD B,H 
	LD C,L 
	INC BC 
	POP HL 
	RET ; ==========================

Lb4300:
	CALL Lb419C ; [16796]
	LD DE,$FA1F 
	CALL Lb41C5 ; [16837]
	DEC A 
	JR Z, Lb4300 ; [$4300:17152]
	JP Lb4586 ; [17798]
Lb430F:
	ADD HL,BC 
	SBC HL,DE 
	PUSH HL 
	JR Z, Lb4335 ; [$4335:17205]
	LD BC,(Lb40DC) 
	CALL Lb4257 ; [16983]
	JR C, Lb4338 ; [$4338:17208]
	LD B,D 
	LD C,E 
	CALL Lb42F4 ; [17140]
	BIT 7,H 
	JR NZ, Lb4331 ; [$4331:17201]
	LD DE,(Lb40DC) 
	ADD HL,DE 
	EX DE,HL 
	LDDR 
	JR Lb4335 ; [$4335:17205]
Lb4331:
	ADD HL,DE 
	EX DE,HL 
	LDIR 
Lb4335:
	POP BC 
	OR A 
	RET ; ==========================

Lb4338:
	POP BC 
	LD BC,$0000 
	RET ; ==========================

Lb433D:
	LD HL,(Lb40AC) 
	ADD HL,BC 
	LD (Lb40AC),HL 
	LD DE,(Lb40AA) 
	OR A 
	SBC HL,DE 
	LD (Lb40AE),HL 
Lb434E:
	LD HL,(Lb40CF) 
	ADD HL,BC 
	LD (Lb40CF),HL 
	LD DE,(Lb40AC) 
	OR A 
	SBC HL,DE 
	LD (Lb40A8),HL 
	LD HL,(Lb40DC) 
	ADD HL,BC 
	LD (Lb40DC),HL 
	OR A 
	RET ; ==========================

Lb4368:
	LD (Lb40D5),HL 
	CALL Lb448F ; [17551]
	XOR A 
	LD (Lb40D7),A 
Lb4372:
	CALL Lb447F ; [17535]
Lb4375:
	CALL Lb4471 ; [17521]
Lb4378:
	LD HL,(Lb40D7) 
	RL L 
	LD HL,(Lb40D5) 
	LD BC,$FFFF 
	LD DE,(Lb40B1) 
	JR C, Lb43D4 ; [$43D4:17364]
	CP $73 ; [115]
	JR NZ, Lb4398 ; [$4398:17304]
	BIT 0,E 
	JR NZ, Lb4372 ; [$4372:17266]
	CALL Lb448F ; [17551]
	INC HL 
	JP Lb44BB ; [17595]
Lb4398:
	CP $72 ; [114]
	JR NZ, Lb43AA ; [$43AA:17322]
	BIT 1,E 
	JR NZ, Lb4372 ; [$4372:17266]
	CALL Lb448F ; [17551]
	DEC HL 
	LD BC,$0001 
	JP Lb44BB ; [17595]
Lb43AA:
	CP $71 ; [113]
	JR NZ, Lb43BF ; [$43BF:17343]
	BIT 2,E 
	RET Z 
	BIT 3,E 
	JR NZ, Lb4372 ; [$4372:17266]
	LD DE,$0021 
	CALL Lb448F ; [17551]
	ADD HL,DE 
	JP Lb44BB ; [17595]
Lb43BF:
	CP $70 ; [112]
	JR NZ, Lb43D4 ; [$43D4:17364]
	BIT 4,E 
	JP NZ, Lb4372 ; [17266]
	LD DE,$0021 
	CALL Lb448F ; [17551]
	OR A 
	SBC HL,DE 
	JP Lb44BB ; [17595]
Lb43D4:
	CP $40 ; [64]
	JR NC, Lb43E7 ; [$43E7:17383]
	BIT 5,E 
	JP NZ, Lb4372 ; [17266]
	LD D,A 
	LD A,(Lb40D7) 
	XOR D 
	LD (HL),A 
	INC HL 
	JP Lb4460 ; [17504]
Lb43E7:
	CP $74 ; [116]
	JR NZ, Lb43FB ; [$43FB:17403]
	BIT 6,E 
	JP NZ, Lb4372 ; [17266]
	LD A,(Lb40D7) 
	XOR $80 
	LD (Lb40D7),A 
	JP Lb4372 ; [17266]
Lb43FB:
	CP $77 ; [119]
	JR NZ, Lb441A ; [$441A:17434]
	BIT 7,E 
	JP NZ, Lb4372 ; [17266]
	LD DE,(Lb40B3) 
	SCF 
	SBC HL,DE 
	LD HL,(Lb40D5) 
	JP C, Lb4372 ; [17266]
	LD (HL),$00 
	DEC HL 
	LD BC,$0001 
	JP Lb44BB ; [17595]
Lb441A:
	CP $76 ; [118]
	JR NZ, Lb4433 ; [$4433:17459]
	BIT 0,D 
	RET Z 
	BIT 1,D 
	JP NZ, Lb4372 ; [17266]
	CALL Lb448F ; [17551]
	LD A,$76 
	INC HL 
	CP (HL) 
	JR NZ, Lb442A ; [$442A:17450]
	INC HL 
	JP Lb4460 ; [17504]
Lb4433:
	BIT 3,D 
	JR NZ, Lb4466 ; [$4466:17510]
	LD BC,(Lb40D7) 
	RL C 
	JR NC, Lb4466 ; [$4466:17510]
	PUSH HL 
	LD HL, Lb410A 
	LD BC,$000A 
	CPIR 
	JR NZ, Lb444D ; [$444D:17485]
	XOR A 
	JR Lb4456 ; [$4456:17494]
Lb444D:
	LD BC,$000A 
	CPIR 
	JR NZ, Lb4456 ; [$4456:17494]
	LD A,$80 
Lb4456:
	POP HL 
	JR NZ, Lb4466 ; [$4466:17510]
	OR C 
	INC A 
	LD BC,$FFFF 
	LD (HL),A 
	INC HL 
Lb4460:
	CALL Lb448C ; [17548]
	JP Lb4372 ; [17266]
Lb4466:
	CP $E3 ; [227]
	JP NZ, Lb4372 ; [17266]
	BIT 2,D 
	JP NZ, Lb4372 ; [17266]
	RET ; ==========================

Lb4471:
	CALL KEYBOARD ; [KEYBOARD]
	INC L 
	JR Z, Lb4471 ; [$4471:17521]
	DEC L 
	LD B,H 
	LD C,L 
	CALL DECODE ; [DECODE]
	LD A,(HL) 
	RET ; ==========================

Lb447F:
	LD B,$32 
Lb4481:
	PUSH BC 
	CALL KEYBOARD ; [KEYBOARD]
	POP BC 
	INC L 
	JR NZ, Lb447F ; [$447F:17535]
	DJNZ Lb4481 ; [$4481:17537]
	RET ; ==========================

Lb448C:
	CALL Lb4494 ; [17556]
Lb448F:
	LD A,$80 
	XOR (HL) 
	LD (HL),A 
	RET ; ==========================

Lb4494:
	LD A,$76 
	CP (HL) 
	JR NZ, Lb449A ; [$449A:17562]
	ADD HL,BC 
Lb449A:
	LD BC,$0021 
	LD DE,(Lb40D8) 
	EX DE,HL 
	SCF 
	SBC HL,DE 
	JR C, Lb44AB ; [$44AB:17579]
	EX DE,HL 
	ADD HL,BC 
	JR Lb44B7 ; [$44B7:17591]
Lb44AB:
	LD HL,(RAM_VARS) ; GET VARS
	SCF 
	SBC HL,DE 
	EX DE,HL 
	JR NC, Lb44B7 ; [$44B7:17591]
	OR A 
	SBC HL,BC 
Lb44B7:
	LD (Lb40D5),HL 
	RET ; ==========================

Lb44BB:
	CALL Lb448C ; [17548]
	LD BC,$0BB8 
	LD A,$00 
	DEC BC 
	CP B 
	JR NZ, Lb44C2 ; [$44C2:17602]
	JP Lb4375 ; [17269]
Lb44CA:
	CALL Lb4368 ; [17256]
	CP $E3 ; [227]
	RET Z 
	LD A,(Lb40DB) 
	LD B,A 
	LD A,(Lb40DA) 
	DEC A 
	CP B 
	RET Z 
	RLCA 
	LD L,A 
	LD H,$00 
	LD BC,$4082 
	ADD HL,BC 
	LD DE,(Lb40D5) 
	LD (HL),E 
	INC HL 
	LD (HL),D 
	EX DE,HL 
	LD (HL),$8F 
	INC HL 
	LD BC,$0001 
	CALL Lb4494 ; [17556]
	OR $01 
	RET ; ==========================

Lb44F6:
	LD HL,(Lb40D8) 
	LD DE,$F104 
	LD (Lb40B1),DE 
	LD DE,$0000 
	LD (Lb40B3),DE 
	CALL Lb4368 ; [17256]
	JP Lb448F ; [17551]
Lb450D:
	CALL Lb419C ; [16796]
Lb4510:
	LD A,$00 
	LD (Lb40DA),A 
	LD DE,$FAE4 
	LD (Lb40B1),DE 
	LD HL,(Lb40D8) 
	RET ; ==========================

Lb4520:
	CALL Lb450D ; [17677]
	LD A,$13 
	LD (Lb40DB),A 
Lb4528:
	LD A,(Lb40DA) 
	INC A 
	LD (Lb40DA),A 
	CALL Lb44CA ; [17610]
	JR NZ, Lb4528 ; [$4528:17704]
	LD A,(Lb40DA) 
	DEC A 
	LD (Lb40DB),A 
	RET ; ==========================

Lb453C:
	LD HL,(RAM_VARS) ; GET VARS
	LD BC,$003A 
	ADD HL,BC 
	LD (Lb40AA),HL 
	LD (Lb40AC),HL 
	LD (Lb40CF),HL 
	LD (Lb40DC),HL 
	LD HL,(RAM_VARS) ; GET VARS
	INC HL 
	LD C,(HL) 
	INC HL 
	LD B,(HL) 
	ADD HL,BC 
	DEC HL 
	DEC HL 
	DEC HL 
	LD (Lb40BC),HL 
	LD HL,(RAM_D_FILE) ; GET D-FILE
	LD BC,$00A6 
	ADD HL,BC 
	LD (Lb40D8),HL 
	LD DE,$0000 
	LD (Lb40B5),DE 
	LD (Lb40A8),DE 
	LD A,$01 
	LD (Lb40B7),A 
	RET ; ==========================

Lb4578:
	CALL Lb450D ; [17677]
Lb457B:
	CALL Lb41EB ; [16875]
	EX DE,HL 
	RET Z 
	CALL Lb44CA ; [17610]
	JR NZ, Lb457B ; [$457B:17787]
	RET ; ==========================

Lb4586:
	CALL Lb460F ; [17935]
	LD A,(HL) 
Lb458A:
	AND $7F 
	LD (HL),A 
	CALL Lb427E ; [17022]
	LD (Lb40D1),HL 
	JR NZ, Lb458A ; [$458A:17802]
	JP Lb45AE ; [17838]
Lb4598:
	CALL Lb426B ; [17003]
	LD (Lb40D3),HL 
	RET ; ==========================

Lb459F:
	CALL Lb427E ; [17022]
	RET Z 
	LD (Lb40D1),HL 
Lb45A6:
	AND $C0 
	JP NZ, Lb459F ; [17823]
	OR $01 
	RET ; ==========================

Lb45AE:
	LD A,(Lb40B7) 
	LD (Lb40DA),A 
	CALL Lb4602 ; [17922]
	CALL Lb460F ; [17935]
	LD A,(HL) 
	CALL Lb45A6 ; [17830]
	JR NZ, Lb45C6 ; [$45C6:17862]
	CALL Lb45F5 ; [17909]
	OR $01 
	RET ; ==========================

Lb45C6:
	CALL Lb4598 ; [17816]
	CALL Lb4602 ; [17922]
Lb45CC:
	CALL Lb459F ; [17823]
	JR Z, Lb45F5 ; [$45F5:17909]
	CALL Lb4598 ; [17816]
	LD B,A 
	LD DE,(Lb40BA) 
	LD A,(DE) 
	LD C,$00 
	CP B 
	JR NC, Lb45E1 ; [$45E1:17889]
	LD B,A 
	DEC C 
Lb45E1:
	DEC B 
	JR Z, Lb45EC ; [$45EC:17900]
Lb45E4:
	INC HL 
	INC DE 
	LD A,(DE) 
	CP (HL) 
	JR NZ, Lb45F0 ; [$45F0:17904]
	DJNZ Lb45E4 ; [$45E4:17892]
Lb45EC:
	INC C 
	JR Z, Lb45CC ; [$45CC:17868]
	OR A 
Lb45F0:
	CALL NC, Lb4602 ; [17922]
	JR Lb45CC ; [$45CC:17868]
Lb45F5:
	LD HL,(Lb40B8) 
	LD (Lb40D1),HL 
	LD A,(HL) 
	OR $80 
	LD (HL),A 
	JP Lb4296 ; [17046]
Lb4602:
	LD HL,(Lb40D1) 
	LD (Lb40B8),HL 
	LD HL,(Lb40D3) 
	LD (Lb40BA),HL 
	RET ; ==========================

Lb460F:
	LD HL,(Lb40CF) 
	LD (Lb40D1),HL 
	RET ; ==========================

Lb4616:
	LD A,D 
	OR E 
	RET NZ 
	POP DE 
	RET ; ==========================

Lb461B: ; <17947>
	LD B,B 
	DEC E 
Lb461D:
	LD E,$FF 
Lb461F:
	SCF 
	INC A 
	LD H,$26 
	LD A,$38 
	DEC L 
	CALL Lb447F ; [17535]
	CALL Lb4471 ; [17521]
	CP $2A ; [42-"E"]
	JR NZ, Lb4635 ; [$4635:17973]
	CALL Lb411E ; [16670]
	JR Lb461E ; [$461E:17950]
Lb4635:
	CP $2B ; [43-"F"]
	JR NZ, Lb463E ; [$463E:17982]
	CALL Lb4124 ; [16676]
	JR Lb461E ; [$461E:17950]
Lb463E:
	CP $C3 ; [195]
	JP NC,$C349 ; [49993]
	LD H,B 
	LD B,(HL) 
Lb4645:
	JP Lb4672 ; [18034]
Lb4648:
	JP Lb4A03 ; [18947]
Lb464B:
	JP Lb4A99 ; [19097]
Lb464E:
	JP Lb4688 ; [18056]
Lb4651:
	JP Lb4712 ; [18194]
Lb4654:
	JP Lb4747 ; [18247]
Lb4657:
	JP Lb47C8 ; [18376]
Lb465A:
	JP Lb4822 ; [18466]
Lb465D:
	JP Lb48BE ; [18622]
	CALL Lb453C ; [17724]
	CALL Lb467B ; [18043]
Lb4666:
	CALL Lb4520 ; [17696]
	LD A,(Lb40DB) 
	OR A 
	JR Z, Lb4666 ; [$4666:18022]
	JP Lb49DB ; [18907]
Lb4672:
	CALL Lb413F ; [16703]
	CALL Lb467B ; [18043]
	JP Lb4578 ; [17784]
Lb467B:
	LD A,$02 
	CALL Lb4A99 ; [19097]
	CALL Lb4154 ; [16724]
	LD A,$03 
	JP Lb4A99 ; [19097]
Lb4688:
	LD A,$01 
	CALL Lb4A99 ; [19097]
	CALL Lb46ED ; [18157]
	CP $76 ; [118]
	RET NZ 
	CALL Lb427E ; [17022]
	LD DE,(Lb40B5) 
	DEC DE 
	LD (Lb40B5),DE 
	JR Z, Lb46B8 ; [$46B8:18104]
	LD B,H 
	LD C,L 
	CALL Lb4133 ; [16691]
	LD DE,(Lb40D1) 
	LDIR 
	DEC DE 
	LD (Lb40DC),DE 
Lb46B1:
	CALL Lb4124 ; [16676]
	RET Z 
	JP Lb4121 ; [16673]
Lb46B8:
	LD (HL),$00 
	LD (Lb40DC),HL 
	CALL Lb46C3 ; [18115]
	JP Lb46B1 ; [18097]
Lb46C3:
	LD HL,(Lb40CF) 
	LD (Lb40D1),HL 
	RET ; ==========================

Lb46CA:
	CALL KEYBOARD ; [KEYBOARD]
	EX DE,HL 
	LD HL,$FDBF 
	OR A 
	SBC HL,DE 
	SCF 
	RET Z 
	LD HL,$FEFF 
	OR A 
	SBC HL,DE 
	JR NZ, Lb46CA ; [$46CA:18122]
	RET ; ==========================

Lb46DF:
	LD A,$00 
	DEC BC 
	CP B 
	JR NZ, Lb46E0 ; [$46E0:18144]
	RET ; ==========================

Lb46E6:
	CALL Lb427E ; [17022]
	LD (Lb40D1),HL 
	RET ; ==========================

Lb46ED:
	CALL Lb447F ; [17535]
	JP Lb4471 ; [17521]
Lb46F3:
	XOR A 
	LD (Lb40DA),A 
Lb46F7:
	CALL Lb413C ; [16700]
	JR Z, Lb46F3 ; [$46F3:18163]
	EX DE,HL 
	CALL Lb448F ; [17551]
	LD BC,$1770 
	CALL Lb46DF ; [18143]
	CALL Lb46CA ; [18122]
	RET C 
	LD HL,(Lb40B3) 
	CALL Lb448F ; [17551]
	JR Lb46F7 ; [$46F7:18167]
Lb4712:
	LD A,$06 
	CALL Lb4A99 ; [19097]
	CALL Lb46F3 ; [18163]
	LD A,(Lb40DA) 
	LD (Lb40B7),A 
	JP Lb4121 ; [16673]
Lb4723:
	LD A,$09 
	CALL Lb4A99 ; [19097]
	XOR A 
	LD (Lb40B0),A 
	LD (Lb40DA),A 
	CALL Lb46CA ; [18122]
	RET C 
	CALL Lb46F3 ; [18163]
	LD A,(Lb40DA) 
	LD (Lb40B0),A 
	RET ; ==========================

Lb473D:
	LD HL,(Lb40D5) 
	INC HL 
	LD A,(HL) 
	CP $76 ; [118]
	RET Z 
	DEC HL 
	RET ; ==========================

Lb4747:
	LD A,$07 
	CALL Lb4A99 ; [19097]
	XOR A 
	LD (Lb40DA),A 
	LD HL,$FA1B 
	LD (Lb40B1),HL 
Lb4756:
	CALL Lb413C ; [16700]
	RET Z 
	EX DE,HL 
	CALL Lb412D ; [16685]
	CP $E3 ; [227]
	JP Z, Lb412A ; [16682]
	CP $71 ; [113]
	JR NZ, Lb476C ; [$476C:18284]
	CALL Lb448F ; [17551]
	JR Lb4756 ; [$4756:18262]
Lb476C:
	CALL Lb448F ; [17551]
	CALL Lb47B4 ; [18356]
	EX DE,HL 
	ADD A,E 
	LD E,A 
	JR NC, Lb4778 ; [$4778:18296]
	INC D 
Lb4778:
	CALL Lb473D ; [18237]
	LD BC,(Lb40B3) 
	OR A 
	SBC HL,BC 
	LD B,H 
	LD C,L 
	LD HL,(Lb40D3) 
	INC C 
	LD (HL),C 
	CALL Lb4136 ; [16694]
	JP C, Lb412A ; [16682]
	LD HL,(Lb40DC) 
	ADD HL,BC 
	LD (Lb40DC),HL 
	LD HL,(Lb40D3) 
	LD C,(HL) 
	LD B,$00 
	EX DE,HL 
	LD HL,(Lb40B3) 
	INC DE 
	DEC C 
	JR Z, Lb47A6 ; [$47A6:18342]
	LDIR 
Lb47A6:
	LD A,(Lb40DA) 
	PUSH AF 
	CALL Lb412A ; [16682]
	POP AF 
	LD (Lb40DA),A 
	JP Lb4756 ; [18262]
Lb47B4:
	CALL Lb4139 ; [16697]
	LD (Lb40D3),HL 
	RET ; ==========================

Lb47BB:
	CALL Lb46E6 ; [18150]
	RET Z 
Lb47BF:
	AND $C0 
	CP $80 ; [128]
	JR NZ, Lb47BB ; [$47BB:18363]
	OR $01 
	RET ; ==========================

Lb47C8:
	LD A,(Lb40B7) 
	LD (Lb40DA),A 
	CALL Lb4602 ; [17922]
	LD HL,(Lb40D1) 
	CALL Lb448F ; [17551]
	CALL Lb46C3 ; [18115]
	LD A,(HL) 
	CALL Lb47BF ; [18367]
	JR NZ, Lb47E6 ; [$47E6:18406]
	CALL Lb481B ; [18459]
	JP Lb448F ; [17551]
Lb47E6:
	CALL Lb47B4 ; [18356]
	CALL Lb4602 ; [17922]
Lb47EC:
	CALL Lb47BB ; [18363]
	JR Z, Lb4815 ; [$4815:18453]
	CALL Lb47B4 ; [18356]
	LD B,A 
	LD DE,(Lb40BA) 
	LD A,(DE) 
	LD C,$00 
	CP B 
	JR C, Lb4801 ; [$4801:18433]
	LD B,A 
	DEC C 
Lb4801:
	DEC B 
	JR Z, Lb480C ; [$480C:18444]
Lb4804:
	INC HL 
	INC DE 
	LD A,(DE) 
	CP (HL) 
	JR NZ, Lb4810 ; [$4810:18448]
	DJNZ Lb4804 ; [$4804:18436]
Lb480C:
	INC C 
	JR Z, Lb47EC ; [$47EC:18412]
	OR A 
Lb4810:
	CALL C, Lb4602 ; [17922]
	JR Lb47EC ; [$47EC:18412]
Lb4815:
	CALL Lb481B ; [18459]
	JP Lb412A ; [16682]
Lb481B:
	LD HL,(Lb40B8) 
	LD (Lb40D1),HL 
	RET ; ==========================

Lb4822:
	LD A,$04 
	CALL Lb4A99 ; [19097]
	LD BC,$9C40 
	CALL Lb46DF ; [18143]
	CALL KEYBOARD ; [KEYBOARD]
	INC H 
	RET NZ 
	CALL Lb4124 ; [16676]
	JR Z, Lb4822 ; [$4822:18466]
	RET ; ==========================

Lb4838:
	CALL Lb46ED ; [18157]
	CP $E3 ; [227]
	RET Z 
	CP $76 ; [118]
	RET Z 
	LD HL,$FA1F 
	LD (Lb40B1),HL 
	LD HL,$0000 
	LD (Lb40B3),HL 
	LD HL,(Lb40D8) 
	PUSH HL 
	LD DE,$0022 
	OR A 
	SBC HL,DE 
	LD B,$20 
Lb4859:
	DEC HL 
	LD (HL),$00 
	DJNZ Lb4859 ; [$4859:18521]
	LD (Lb40D8),HL 
	LD (Lb40D5),HL 
	LD (HL),$80 
	CALL Lb4378 ; [17272]
	CALL Lb448F ; [17551]
	CALL Lb473D ; [18237]
	LD DE,(Lb40D8) 
	OR A 
	SBC HL,DE 
	LD B,H 
	LD C,L 
	LD A,C 
	OR A 
	JR NZ, Lb4882 ; [$4882:18562]
	POP HL 
	LD (Lb40D8),HL 
	JR Lb4838 ; [$4838:18488]
Lb4882:
	LD (Lb461D+1),A 
	LD HL, Lb461F 
	EX DE,HL 
	LDIR 
	POP HL 
	LD (Lb40D8),HL 
	RET ; ==========================

Lb4890:
	LD A,(Lb461D+1) 
	LD B,A 
	LD HL,(Lb40D3) 
	LD A,(HL) 
	AND $3F 
	DEC A 
	SUB B 
	RET C 
	INC A 
	INC A 
	LD C,A 
	ADD A,L 
	LD L,A 
	JR NC, Lb48A5 ; [$48A5:18597]
	INC H 
Lb48A5:
	PUSH HL 
Lb48A6:
	DEC C 
	SCF 
	POP HL 
	RET Z 
	DEC HL 
	PUSH HL 
	LD DE, Lb461F 
	LD A,(Lb461D+1) 
	LD B,A 
Lb48B3:
	LD A,(DE) 
	CP (HL) 
	JR NZ, Lb48A6 ; [$48A6:18598]
	INC DE 
	INC HL 
	DJNZ Lb48B3 ; [$48B3:18611]
	POP HL 
	OR A 
	RET ; ==========================

Lb48BE:
	LD A,(Lb461D+1) 
	INC A 
	JP NZ, Lb493C ; [18748]
	CALL Lb4723 ; [18211]
	LD A,$0A 
	LD B,$84 
	CALL Lb4A9B ; [19099]
Lb48CF:
	CALL Lb4838 ; [18488]
	JR NZ, Lb48DF ; [$48DF:18655]
	CP $76 ; [118]
	JP NZ, Lb496D ; [18797]
	CALL Lb4124 ; [16676]
	JP Lb48FA ; [18682]
Lb48DF:
	CALL Lb46C3 ; [18115]
Lb48E2:
	CALL Lb4907 ; [18695]
	LD HL,(Lb40D1) 
	LD A,(HL) 
	JR NC, Lb48EF ; [$48EF:18671]
	OR $40 
	JR Lb48F1 ; [$48F1:18673]
Lb48EF:
	AND $BF 
Lb48F1:
	LD (HL),A 
	CALL Lb46E6 ; [18150]
	JR NZ, Lb48E2 ; [$48E2:18658]
	CALL Lb4121 ; [16673]
Lb48FA:
	LD HL,(Lb40D1) 
	LD A,(HL) 
	BIT 6,A 
	JR Z, Lb48CF ; [$48CF:18639]
	CALL Lb413F ; [16703]
	JR Lb48CF ; [$48CF:18639]
Lb4907:
	LD A,(Lb40B0) 
	OR A 
	LD (Lb40DA),A 
	JR Z, Lb4916 ; [$4916:18710]
	CALL Lb47B4 ; [18356]
	JP Lb4890 ; [18576]
Lb4916:
	LD HL,(Lb40D1) 
	LD (Lb40D3),HL 
Lb491C:
	CALL Lb4890 ; [18576]
	RET NC 
	LD HL,(Lb40D3) 
	LD A,(HL) 
	AND $3F 
	ADD A,L 
	LD L,A 
	JR NC, Lb492B ; [$492B:18731]
	INC H 
Lb492B:
	LD (Lb40D3),HL 
	LD BC,(Lb40DA) 
	LD A,C 
	INC A 
	LD (Lb40DA),A 
	CP B 
	JR NZ, Lb491C ; [$491C:18716]
	SCF 
	RET ; ==========================

Lb493C:
	CALL Lb412A ; [16682]
	CALL Lb4602 ; [17922]
	CALL Lb46C3 ; [18115]
Lb4945:
	LD A,(HL) 
	AND $BF 
	LD (HL),A 
	CALL Lb46E6 ; [18150]
	JR NZ, Lb4945 ; [$4945:18757]
	CALL Lb4121 ; [16673]
	LD A,$FF 
	LD (Lb461D+1),A 
	LD A,$63 
	LD B,$20 
Lb495A:
	LD HL,(RAM_D_FILE) ; GET D-FILE
	ADD A,L 
	LD L,A 
	JR NC, Lb4962 ; [$4962:18786]
	INC H 
Lb4962:
	LD A,$76 
Lb4964:
	INC HL 
	CP (HL) 
	JR Z, Lb496A ; [$496A:18794]
	LD (HL),$00 
Lb496A:
	DJNZ Lb4964 ; [$4964:18788]
	RET ; ==========================

Lb496D:
	LD HL,(Lb40D1) 
	BIT 6,(HL) 
	JP NZ, Lb493C ; [18748]
Lb4975:
	LD A,$0B 
	CALL Lb4A99 ; [19097]
	CALL Lb46ED ; [18157]
	CP $3E ; [62-"Y"]
	RET Z 
	CP $33 ; [51-"N"]
	JP Z, Lb493C ; [18748]
	JR Lb4975 ; [$4975:18805]
Lb4987:
	LD HL,(Lb40D5) 
	LD DE,(Lb40BE) 
	LD BC,$0020 
	LDIR 
	RET ; ==========================

Lb4994:
	LD A,(Lb40C0) 
	DEC A 
	LD (Lb40C0),A 
	RET Z 
	LD HL,(Lb40D5) 
	LD DE,$0021 
	ADD HL,DE 
	LD (Lb40D5),HL 
	RET ; ==========================

Lb49A7:
	LD HL,(RAM_VARS) ; GET VARS
	DEC HL 
	LD C,$14 
	XOR A 
Lb49AE:
	DEC HL 
	DEC C 
	JP Z, Lb467B ; [18043]
	LD B,$20 
Lb49B5:
	CP (HL) 
	JR NZ, Lb49BD ; [$49BD:18877]
	DEC HL 
	DJNZ Lb49B5 ; [$49B5:18869]
	JR Lb49AE ; [$49AE:18862]
Lb49BD:
	LD A,C 
	LD (Lb40C0),A 
	LD HL,(Lb40D8) 
	LD (Lb40D5),HL 
	POP HL 
	LD (Lb40C1),HL 
Lb49CB:
	CALL Lb4987 ; [18823]
	LD BC,$0002 
	RET ; ==========================

Lb49D2: ; <18898>
	CALL Lb4994 ; [18836]
	JR NZ, Lb49CB ; [$49CB:18891]
	LD HL,(Lb40C1) 
	JP (HL) 
Lb49DB:
	LD HL,(RAM_VARS) ; GET VARS
	LD DE,$001A 
	ADD HL,DE 
	LD (Lb40BE),HL 
	LD A,$FF 
	LD (Lb461D+1),A 
	LD BC,$0026 
	LD HL, Lb4082 
	LD DE, Lb40DE 
	LDIR 
	RET ; ==========================

Lb49F6:
	LD HL,(Lb40AC) 
	LD BC,(Lb40A8) 
	LD A,B 
	OR C 
	JP NZ, Lb41A3 ; [16803]
	RET ; ==========================

Lb4A03:
	LD A,$02 
	CALL Lb4A99 ; [19097]
	CALL Lb49F6 ; [18934]
	CALL Lb44F6 ; [17654]
	LD HL,(Lb40D8) 
	LD DE,$0272 
	CALL Lb4130 ; [16688]
	LD DE,(Lb40CF) 
	LD HL,(Lb40AC) 
	CALL Lb4136 ; [16694]
	RET C 
	CALL Lb434E ; [17230]
	LD DE,(Lb40AC) 
	CALL Lb415F ; [16735]
	LD A,$03 
	CALL Lb4A99 ; [19097]
	CALL Lb49F6 ; [18934]
	CALL Lb4510 ; [17680]
Lb4A37:
	CALL Lb4A4C ; [19020]
	RET Z 
	PUSH HL 
	EX DE,HL 
	CALL Lb412D ; [16685]
	CP $E3 ; [227]
	LD (HL),$8F 
	EX DE,HL 
	POP HL 
	RET Z 
	LD (HL),D 
	DEC HL 
	LD (HL),E 
	JR Lb4A37 ; [$4A37:18999]
Lb4A4C:
	LD HL, Lb40DE 
	JP Lb41EE ; [16878]
Lb4A52:
	CALL Lb49F6 ; [18934]
	XOR A 
	LD (Lb40DA),A 
	LD HL,(Lb40D1) 
Lb4A5C:
	PUSH HL 
	CALL Lb4A4C ; [19020]
	POP HL 
	RET Z 
	LD A,(HL) 
	INC HL 
	AND $3F 
	DEC A 
	JR Z, Lb4A5C ; [$4A5C:19036]
	LD B,$00 
	LD C,A 
Lb4A6C:
	LD A,(DE) 
	CP $76 ; [118]
	JR Z, Lb4A5C ; [$4A5C:19036]
	LDI 
	JP PE, Lb4A6C ; [19052]
	JR Lb4A5C ; [$4A5C:19036]
Lb4A78:
	POP HL 
	LD (Lb40C5),HL 
	LD A,$05 
	CALL Lb4A99 ; [19097]
Lb4A81:
	CALL Lb4A52 ; [19026]
	CALL Lb49A7 ; [18855]
	CALL KEYBOARD ; [KEYBOARD]
	INC H 
	JR NZ, Lb4A92 ; [$4A92:19090]
	CALL Lb4124 ; [16676]
	JR Z, Lb4A81 ; [$4A81:19073]
Lb4A92:
	CALL Lb412A ; [16682]
	LD HL,(Lb40C5) 
	JP (HL) 
Lb4A99:
	LD B,$63 
Lb4A9B:
	LD D,A 
	XOR A 
	CALL Lb495A ; [18778]
	LD A,$0C 
	LD HL,(Lb40C3) 
Lb4AA5:
	LD BC,$0084 
	CPIR 
	DEC D 
	JR NZ, Lb4AA5 ; [$4AA5:19109]
	LD DE,(RAM_D_FILE) ; GET D-FILE
Lb4AB1:
	LD A,(DE) 
	CP $76 ; [118]
	JR NZ, Lb4AB9 ; [$4AB9:19129]
	INC DE 
	JR Lb4AB1 ; [$4AB1:19121]
Lb4AB9:
	LDI 
	LD A,(HL) 
	CP $0C ; [12-"£"]
	JR NZ, Lb4AB1 ; [$4AB1:19121]
	LD HL,(RAM_D_FILE) ; GET D-FILE
	LD DE,$0085 
	ADD HL,DE 
	LD B,$20 
Lb4AC9:
	LD (HL),$03 
	INC HL 
	DJNZ Lb4AC9 ; [$4AC9:19145]
	RET ; ==========================

Lb4ACF:
	JP Lb4BBC ; [19388]
Lb4AD2:
	JP Lb4BD1 ; [19409]
Lb4AD5:
	JP Lb4ADE ; [19166]
Lb4AD8:
	CALL Lb4471 ; [17521]
	JP Lb4AF0 ; [19184]
Lb4ADE:
	LD DE,(Lb40B5) 
	LD A,D 
	OR E 
	JR Z, Lb4B07 ; [$4B07:19207]
	LD A,(Lb461D+1) 
	INC A 
	CALL NZ, Lb493C ; [18748]
	CALL Lb4121 ; [16673]
Lb4AF0:
	LD DE,(Lb40B5) 
	LD A,D 
	OR E 
	JR Z, Lb4B07 ; [$4B07:19207]
	LD A,$0C 
	CALL Lb464B ; [17995]
	CALL Lb447F ; [17535]
	CALL Lb4471 ; [17521]
	CP $2A ; [42-"E"]
	JR NZ, Lb4B11 ; [$4B11:19217]
Lb4B07:
	LD A,$0D 
	CALL Lb464B ; [17995]
	CALL Lb411E ; [16670]
	JR Lb4AF0 ; [$4AF0:19184]
Lb4B11:
	CP $28 ; [40-"C"]
	JR NZ, Lb4B1A ; [$4B1A:19226]
	CALL Lb49A7 ; [18855]
	JR Lb4AF0 ; [$4AF0:19184]
Lb4B1A:
	CP $2B ; [43-"F"]
	JR NZ, Lb4B23 ; [$4B23:19235]
	CALL Lb4124 ; [16676]
	JR Lb4AF0 ; [$4AF0:19184]
Lb4B23:
	CP $29 ; [41-"D"]
	JR NZ, Lb4B2C ; [$4B2C:19244]
	CALL Lb464E ; [17998]
	JR Lb4AF0 ; [$4AF0:19184]
Lb4B2C:
	CP $35 ; [53-"P"]
	JR NZ, Lb4B35 ; [$4B35:19253]
	CALL Lb4A78 ; [19064]
	JR Lb4AF0 ; [$4AF0:19184]
Lb4B35:
	CP $36 ; [54-"Q"]
	JR NZ, Lb4B3D ; [$4B3D:19261]
	LD BC,$0000 
	RET ; ==========================

Lb4B3D:
	CP $37 ; [55-"R"]
	JR NZ, Lb4B46 ; [$4B46:19270]
	CALL Lb4121 ; [16673]
	JR Lb4AF0 ; [$4AF0:19184]
Lb4B46:
	CP $26 ; [38-"A"]
	JR NZ, Lb4B4F ; [$4B4F:19279]
	CALL Lb4654 ; [18004]
	JR Lb4AF0 ; [$4AF0:19184]
Lb4B4F:
	CP $34 ; [52-"O"]
	JR NZ, Lb4B58 ; [$4B58:19288]
	CALL Lb4651 ; [18001]
	JR Lb4AF0 ; [$4AF0:19184]
Lb4B58:
	CP $27 ; [39-"B"]
	JR NZ, Lb4B61 ; [$4B61:19297]
	CALL Lb4657 ; [18007]
	JR Lb4AF0 ; [$4AF0:19184]
Lb4B61:
	CP $31 ; [49-"L"]
	JR NZ, Lb4B6A ; [$4B6A:19306]
	CALL Lb465A ; [18010]
	JR Lb4AF0 ; [$4AF0:19184]
Lb4B6A:
	CP $38 ; [56-"S"]
	JR NZ, Lb4B74 ; [$4B74:19316]
	CALL Lb465D ; [18013]
	JP Lb4AF0 ; [19184]
Lb4B74:
	CP $2E ; [46-"I"]
	JP NZ, Lb4AF0 ; [19184]
	LD DE,(RAM_VARS) ; GET VARS
	LD HL,(Lb40BC) 
	OR A 
	SBC HL,DE 
	LD (Lb40C7),HL 
	LD HL,(Lb40DC) 
	OR A 
	SBC HL,DE 
	LD (Lb40C9),HL 
	LD A,$0E 
	CALL Lb464B ; [17995]
	LD BC,$0001 
	RET ; ==========================

Lb4B98:
	LD HL,$407D 
	LD DE,$0000 
Lb4B9E:
	LD C,(HL) 
	LD B,$08 
	LD A,E 
Lb4BA2:
	SRL C 
	RLA 
	RL D 
	JR NC, Lb4BAB ; [$4BAB:19371]
	XOR $2D 
Lb4BAB:
	DJNZ Lb4BA2 ; [$4BA2:19362]
	LD E,A 
	INC HL 
	LD A,(Lb40BD) 
	CP H 
	JR NZ, Lb4B9E ; [$4B9E:19358]
	LD A,(Lb40BC) 
	CP L 
	JR NZ, Lb4B9E ; [$4B9E:19358]
	RET ; ==========================

Lb4BBC:
	CALL Lb4B98 ; [19352]
	LD HL,(RAM_SPARE2) ; GET UNUSED-16
	OR A 
	SBC HL,DE 
	LD B,H 
	LD C,L 
	RET Z 
	LD A,$08 
	CALL Lb464B ; [17995]
	LD BC,$0001 
	RET ; ==========================

Lb4BD1:
	CALL Lb4B98 ; [19352]
	LD (RAM_SPARE2),DE ; SET UNUSED-16
	RET ; ==========================

.db $0C,P,R,E,S,S,_,_; ZX-TEXT
.db E,N,T,E,R,_,_,T; ZX-TEXT
.db O,_,D,E,L,E,T,E; ZX-TEXT
.db $0C,_R,_E,_C,_O,_R,_D,__; ZX-TEXT
.db _L,_A,_Y,_O,_U,_T,_,_; ZX-TEXT
.db _,U,S,E,_,T,H,E; ZX-TEXT
.db _,K,E,Y,B,O,A,R; ZX-TEXT
.db D,A,S,_,A,_,T,Y; ZX-TEXT
.db P,E,W,R,I,T,E,R; ZX-TEXT
.db _,_,T,O,_,E,N,T; ZX-TEXT
.db E,R,_,T,I,T,L,E; ZX-TEXT
.db S,O,F,_,A,_,B,L; ZX-TEXT
.db A,N,K,_,R,E,C,O; ZX-TEXT
.db R,D,$1B,_,_,_,M,O; ZX-TEXT
.db V,E,_,C,U,R,S,O; ZX-TEXT
.db R,W,I,T,H,_,T,H; ZX-TEXT
.db E,_,A,R,R,O,W,S; ZX-TEXT
.db $1B,_,_,_,_,S,T,O; ZX-TEXT
.db P,_,T,O,_,E,X,I; ZX-TEXT
.db T,$0C,_D,_A,_T,_A,__,_F; ZX-TEXT
.db _I,_E,_L,_D,_S,_,_,_; ZX-TEXT
.db _,_,_,M,O,V,E,_; ZX-TEXT
.db T,H,E,_,C,U,R,S; ZX-TEXT
.db O,R,U,S,I,N,G,_; ZX-TEXT
.db T,H,E,_,A,R,R,O; ZX-TEXT
.db W,_,K,E,Y,S,_,_; ZX-TEXT
.db A,N,D,_,_,P,R,E; ZX-TEXT
.db S,S,_,E,N,T,E,R; ZX-TEXT
.db _,_,_,T,O,_,_,M; ZX-TEXT
.db A,R,K,_,_,T,H,E; ZX-TEXT
.db _,_,S,T,A,R,T,_; ZX-TEXT
.db O,F,E,A,C,H,_,D; ZX-TEXT
.db A,T,A,_,F,I,E,L; ZX-TEXT
.db D,$1B,_,_,_,_,S,T; ZX-TEXT
.db O,P,_,T,O,_,E,X; ZX-TEXT
.db I,T,$0C,_L,_I,_S,_T,_; ZX-TEXT
.db _,_,_,_,_,_,P,R; ZX-TEXT
.db E,S,S,_,A,N,Y,_; ZX-TEXT
.db K,E,Y,_,T,O,_,S; ZX-TEXT
.db T,O,P,$0C,_P,_R,_I,_N; ZX-TEXT
.db _T,_,_,_,_,_,_,P; ZX-TEXT
.db R,E,S,S,_,A,N,Y; ZX-TEXT
.db _,K,E,Y,_,T,O,_; ZX-TEXT
.db S,T,O,P,$0C,U,S,E; ZX-TEXT
.db _,S,H,I,F,T,_,T; ZX-TEXT
.db O,_,M,O,V,E,_,T; ZX-TEXT
.db H,E,_,C,U,R,S,O; ZX-TEXT
.db R,_,T,O,_,T,H,E; ZX-TEXT
.db _,F,I,E,L,D,_,W; ZX-TEXT
.db H,I,C,H,_,W,I,L; ZX-TEXT
.db L,_,D,E,F,I,N,E; ZX-TEXT
.db _,T,H,E,_,R,E,C; ZX-TEXT
.db O,R,D,_,O,R,D,E; ZX-TEXT
.db R,_,A,N,D,_,P,R; ZX-TEXT
.db E,S,S,_,_,E,N,T; ZX-TEXT
.db E,R,_,_,_,$0C,_A,_L; ZX-TEXT
.db _T,_E,_R,__,_A,__,_R,_E; ZX-TEXT
.db _C,_O,_R,_D,_,_,_,_; ZX-TEXT
.db _,_,S,T,O,P,_,T; ZX-TEXT
.db O,_,E,X,I,T,S,H; ZX-TEXT
.db I,F,T,$16,6,_,T,O; ZX-TEXT
.db _,S,K,I,P,_,A,_; ZX-TEXT
.db D,A,T,A,_,F,I,E; ZX-TEXT
.db L,D,$0C,C,R,C,_,C; ZX-TEXT
.db H,E,C,K,_,F,A,I; ZX-TEXT
.db L,E,D,_,_,_,P,L; ZX-TEXT
.db E,A,S,E,_,R,E,L; ZX-TEXT
.db O,A,D,$0C,P,R,E,S; ZX-TEXT
.db S,_,_,_,E,N,T,E; ZX-TEXT
.db R,_,_,_,F,O,R,_; ZX-TEXT
.db T,H,E,_,_,S,T,R; ZX-TEXT
.db I,N,G,_,S,E,L,E; ZX-TEXT
.db C,T,_,T,O,_,A,P; ZX-TEXT
.db P,L,Y,_,T,O,_,A; ZX-TEXT
.db N,Y,_,F,I,E,L,D; ZX-TEXT
.db _,O,R,_,U,S,E,_; ZX-TEXT
.db S,H,I,F,T,_,T,O; ZX-TEXT
.db _,M,O,V,E,_,T,H; ZX-TEXT
.db E,_,C,U,R,S,O,R; ZX-TEXT
.db _,T,O,_,D,E,S,I; ZX-TEXT
.db R,E,D,_,F,I,E,L; ZX-TEXT
.db D,_,A,N,D,_,P,R; ZX-TEXT
.db E,S,S,_,_,E,N,T; ZX-TEXT
.db E,R,_,_,$0C,_S,_E,_A; ZX-TEXT
.db _R,_C,_H,__,_M,_O,_D,_E; ZX-TEXT
.db _,_,_,_,_,_,_,_; ZX-TEXT
.db _,S,T,O,P,_,T,O; ZX-TEXT
.db _,E,X,I,T,P,R,E; ZX-TEXT
.db S,S,_,_,E,N,T,E; ZX-TEXT
.db R,_,_,F,O,R,_,A; ZX-TEXT
.db N,O,T,H,E,R,_,R; ZX-TEXT
.db E,C,O,R,D,O,R,_; ZX-TEXT
.db E,N,T,E,R,_,A,_; ZX-TEXT
.db S,E,L,E,C,T,I,N; ZX-TEXT
.db G,_,S,T,R,I,N,G; ZX-TEXT
.db _,_,_,_,_,$0C,D,O; ZX-TEXT
.db _,Y,O,U,_,W,A,N; ZX-TEXT
.db T,_,T,H,E,_,S,T; ZX-TEXT
.db R,I,N,G,_,S,E,L; ZX-TEXT
.db E,C,T,_,_,_,T,O; ZX-TEXT
.db _,R,E,M,A,I,N,_; ZX-TEXT
.db A,C,T,I,V,E,$0F,_; ZX-TEXT
.db _,_,_,_,_,_,_,_; ZX-TEXT
.db _,_,_,_,_,_,P,R; ZX-TEXT
.db E,S,S,_,Y,_,O,R; ZX-TEXT
.db _,N,_,F,O,R,_,Y; ZX-TEXT
.db E,S,_,O,R,_,N,O; ZX-TEXT
.db $0C,_C,_O,_M,_M,_A,_N,_D; ZX-TEXT
.db _S,__,_A,_R,_E,$8E,_,E; ZX-TEXT
.db N,T,E,R,_,A,L,T; ZX-TEXT
.db E,R,_,I,N,F,O,R; ZX-TEXT
.db M,F,O,R,W,A,R,D; ZX-TEXT
.db _,B,A,C,K,_,_,R; ZX-TEXT
.db E,S,E,T,_,O,R,D; ZX-TEXT
.db E,R,_,S,E,L,E,C; ZX-TEXT
.db T,Q,U,I,T,_,_,_; ZX-TEXT
.db _,L,I,S,T,_,_,P; ZX-TEXT
.db R,I,N,T,_,C,O,P; ZX-TEXT
.db Y,_,_,D,E,L,E,T; ZX-TEXT
.db E,$0C,_E,_N,_T,_E,_R,__; ZX-TEXT
.db _A,__,_R,_E,_C,_O,_R,_D; ZX-TEXT
.db _,_,_,_,_,_,S,T; ZX-TEXT
.db O,P,_,T,O,_,E,X; ZX-TEXT
.db I,T,$0C,_,_,_,_,_; ZX-TEXT
.db _,_,_,_,_,_,_,_; ZX-TEXT
.db _,_,_,_,_,_,_,_; ZX-TEXT
.db _,_,_,_,_,F,I,E; ZX-TEXT
.db L,D,S,_,_,_,_,_; ZX-TEXT
.db R,E,C,O,R,D,S,_; ZX-TEXT
.db _,_,_,_,_,_,_,P; ZX-TEXT
.db E,R,C,E,N,T,_,F; ZX-TEXT
.db U,L,L,O,R,D,E,R; ZX-TEXT
.db E,D,_,B,Y,_,F,I; ZX-TEXT
.db E,L,D,$0C,_; ZX-TEXT

.db $EA; DATA


;------------ Labels errors ------------
; LABEL ERROR @LB442A[@$442D]:JR NZ,-5	[$442A:17450]
; LABEL ERROR @LB44C2[@$44C5]:JR NZ,-5	[$44C2:17602]
; LABEL ERROR @LB461E[@$4633]:JR -23	[$461E:17950]
; LABEL ERROR @LB461E[@$463C]:JR -32	[$461E:17950]
; LABEL ERROR @LB46E0[@$46E3]:JR NZ,-5	[$46E0:18144]
; LABEL @LB461E Fixed: LD ($461E),A / LD (Lb461D+1),A
; LABEL @LB461E Fixed: LD A,($461E) / LD A,(Lb461D+1)
; LABEL @LB461E Fixed: LD A,($461E) / LD A,(Lb461D+1)
; LABEL @LB461E Fixed: LD A,($461E) / LD A,(Lb461D+1)
; LABEL @LB461E Fixed: LD ($461E),A / LD (Lb461D+1),A
; LABEL @LB461E Fixed: LD ($461E),A / LD (Lb461D+1),A
; LABEL @LB461E Fixed: LD A,($461E) / LD A,(Lb461D+1)

.end

Xavier ...on the Facebook groupe : "Zx81 France"(fr)
Post Reply