Compucolor.org – Virtual Media

Listing of file='TINYC.SRC;06' on disk='vmedia/chip_10-sector.ccvf'


LOADER:	LXI	H,BUFF
	CALL	PX				;RSS01
	DB	LF,ERS,'TC>',0			;RSS01
D2:	CALL	INCH
	MOV	M,A
	CPI	26				;RSS01
	JZ	D3
	CPI	127				;RSS04
	JZ	D3				;RSS04
	CALL	OUTCH				;RSS01
	CPI	CR
	JZ	DOIT
	INX	H
	JMP	D2

D3:	LXI	D,-BUFF-1
	PUSH	H
	DAD	D
	POP	H
	JNC	D2
	DCX	H
	CALL	PX				;RSS01
	DB	26,' ',26,0			;RSS01
	JMP	D2

DOIT:	MVI	M,0
	LDA	BUFF+1
	MOV	B,A
	LDA	XR
	CMP	B
	JZ	LOAD
	LDA	XX
	CMP	B
	JZ	TCEXIT
	LDA	XG
	CMP	B
	RZ
	CALL	PX				;RSS01
	DB	'???',0				;RSS01
	JMP	LOADER

LOAD:	LXI	H,BUFF+3
	LXI	D,1
	LXI	B,LOADUNIT			;RSS01
	MVI	A,1
	CALL	FOPEN
	JNZ	LOADER
	LXI	H,0	; START AT BLOCK 0	;RSS02
	SHLD	BLOCKN				;RSS02
	LHLD	PROGEND	; XBC:=ALLOW LEN.	;RSS02
	XCHG					;RSS02
	LHLD	EPR				;RSS02
	CALL	HLNEG				;RSS02
	DAD	D				;RSS02
	SHLD	XBC				;RSS02
	XCHG					;RSS02
	CALL	HLNEG	; BUF:=BASE ADDRESS	;RSS02
	SHLD	BUF				;RSS02
	LXI	B,LOADUNIT			;RSS02
	CALL	BREAD	; READ FILE		;RSS02
	DAD	D				;RSS02
	MVI	M,0				;RSS02
	CALL	HLNEG				;RSS02
	SHLD	PROGEND				;RSS02
	JMP	LOADER

BUFF:	DS	40

TCEXIT:	MVI	B,0	; SET FOR NO ERROR
	LHLD	FCSSP	; LOAD ORIGINAL STACK
	SPHL
	RET		; RETURN TO FCS