;------- TASM ASM mnemonics. -------
; Compile this file using:
; Set TASMOPTS = -b
; tasm -80 ThisCode.tas MyBinary.BIN
;-----------------------------------
; Zx81 Program name: VB81 XuR [META.P] : SAVE"META" Line 999
; REM   line   name: 1 REM:   247 Bytes@4082-4178

#define ORG  .org       ; TASM cross-assembler definitions
#define equ  .equ
;-----------------------------------

;------------------------------------
;-Basic sub-routine entry.          -
;+----------------------------------+
; Lb4084  ;  <- USR Basic Enty.
; Lb40F0  ;  <- USR Basic Enty.
; Lb4102  ;  <- USR Basic Enty.
; Lb4114  ;  <- USR Basic Enty.
; Lb4134  ;  <- USR Basic Enty.
; Lb4159  ;  <- USR Basic Enty.
; Lb4164  ;  <- USR Basic Enty.
;+----------------------------------+

;------- Rom and Ram Symbols -------
RAM_LAST_K equ $4025
DECODE equ $07BD
RAM_SPARE2 equ $407B
RAM_VARS equ $4010
RAM_D_FILE equ $400C


ORG $4082 ; [@16514/@h4082]
Lb4082:
	INC D 
	LD A,H 
Lb4084: ; <- USR Basic Enty.
	LD BC,(RAM_LAST_K) ; GET LAST-K
	LD D,C 
	INC D 
	JR NZ, Lb4090 ; [$4090:16528]
	LD BC,$0000 
	RET ; ==========================

Lb4090:
	CALL DECODE ; [DECODE]
	LD A,(HL) 
	LD BC,(RAM_SPARE2) ; GET UNUSED-16
	CP $21 ; [33-"5"]
	JR NZ, Lb409F ; [$409F:16543]
	DEC C 
	JR Lb40CE ; [$40CE:16590]
Lb409F:
	CP $22 ; [34-"6"]
	JR NZ, Lb40A6 ; [$40A6:16550]
	DEC B 
	JR Lb40CE ; [$40CE:16590]
Lb40A6:
	CP $23 ; [35-"7"]
	JR NZ, Lb40AD ; [$40AD:16557]
	INC B 
	JR Lb40CE ; [$40CE:16590]
Lb40AD:
	CP $24 ; [36-"8"]
	JR NZ, Lb40B4 ; [$40B4:16564]
	INC C 
	JR Lb40CE ; [$40CE:16590]
Lb40B4:
	LD BC,$0000 
	CP $2A ; [42-"E"]
	JR NZ, Lb40BF ; [$40BF:16575]
	LD BC,$00F5 
	RET ; ==========================

Lb40BF:
	CP $2B ; [43-"F"]
	JR NZ, Lb40C7 ; [$40C7:16583]
	LD BC,$0131 
	RET ; ==========================

Lb40C7:
	CP $39 ; [57-"T"]
	RET NZ 
	LD BC,$00BE 
	RET ; ==========================

Lb40CE:
	LD A,C 
	CP $FF ; [255]
	JR NZ, Lb40D5 ; [$40D5:16597]
	LD C,$00 
Lb40D5:
	CP $40 ; [64]
	JR NZ, Lb40DB ; [$40DB:16603]
	LD C,$3F 
Lb40DB:
	LD A,B 
	CP $01 ; [1]
	JR NZ, Lb40E2 ; [$40E2:16610]
	LD B,$02 
Lb40E2:
	CP $2C ; [44-"G"]
	JR NZ, Lb40E8 ; [$40E8:16616]
	LD B,$28 
Lb40E8:
	LD (RAM_SPARE2),BC ; SET UNUSED-16
	LD BC,$0000 
	RET ; ==========================

Lb40F0: ; <- USR Basic Enty.
	LD HL,(RAM_VARS) ; GET VARS
	LD BC,$0006 
	ADD HL,BC 
	EX DE,HL 
	LD HL,(RAM_D_FILE) ; GET D-FILE
	INC HL 
	LD BC,$02B5 
	LDIR 
	RET ; ==========================

Lb4102: ; <- USR Basic Enty.
	LD DE,(RAM_D_FILE) ; GET D-FILE
	INC DE 
	LD HL,(RAM_VARS) ; GET VARS
	LD BC,$0006 
	ADD HL,BC 
	LD BC,$02B5 
	LDIR 
	RET ; ==========================

Lb4114: ; <- USR Basic Enty.
	LD A,$12 
	LD HL,(RAM_VARS) ; GET VARS
	LD BC,$0006 
	ADD HL,BC 
Lb411D:
	LD DE,(RAM_D_FILE) ; GET D-FILE
	INC DE 
	LD BC,$02B5 
	LDIR 
	LD B,$0A 
Lb4129:
	LD C,$80 
Lb412B:
	DEC C 
	JR NZ, Lb412B ; [$412B:16683]
	DJNZ Lb4129 ; [$4129:16681]
	DEC A 
	JR NZ, Lb411D ; [$411D:16669]
	RET ; ==========================

Lb4134: ; <- USR Basic Enty.
	LD A,$12 
	LD HL,(RAM_VARS) ; GET VARS
	LD BC,$30BF 
	ADD HL,BC 
Lb413D:
	PUSH HL 
	LD HL,(RAM_D_FILE) ; GET D-FILE
	LD BC,$02B5 
	ADD HL,BC 
	EX DE,HL 
	POP HL 
	LD BC,$02B5 
	LDDR 
	LD B,$0A 
Lb414E:
	LD C,$80 
Lb4150:
	DEC C 
	JR NZ, Lb4150 ; [$4150:16720]
	DJNZ Lb414E ; [$414E:16718]
	DEC A 
	JR NZ, Lb413D ; [$413D:16701]
	RET ; ==========================

Lb4159: ; <- USR Basic Enty.
	LD HL,(RAM_VARS) ; GET VARS
	LD BC,$0006 
	ADD HL,BC 
	LD (Lb4082),HL 
	RET ; ==========================

Lb4164: ; <- USR Basic Enty.
	LD HL,(RAM_D_FILE) ; GET D-FILE
	INC HL 
	LD DE,(Lb4082) 
	LD BC,$02B5 
	LDIR 
	LD (Lb4082),DE 
	RET ; ==========================

.end
