Compucolor.org – Virtual Media

Listing of file='XREF.MAC;01' on disk='vmedia/taylor_7-sector.ccvf'

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;	XREF - SEARCHES MEMORY FOR ADDRESS REFERENCES
;

	EXTRN	READ

;
;	SYSTEM ADDRESSES - V6.78
;

GMPRM	EQU	2CA4H	;GET MEMORY PARAMETERS
CRLF	EQU	338BH	;PRINT CR LF
OSTR	EQU	33F4H	;PRINT A STRING
CMPHD	EQU	344DH	;COMPARE HL TO DE
PSNUM	EQU	34D5H	;PRINT SPACE AND HEX NUMBER
GN2Z	EQU	34F6H	;READ A HEX NUMBER

KBCHA	EQU	81FEH	;KEYBOARD CHARACTER
READY	EQU	81FFH	;KEYBOARD READY FLAG

XREF:	LXI	H,0
	DAD	SP
	SHLD	FCSSP
	LXI	SP,STACK
	LXI	H,XRFMSG
	CALL	OSTR
REPT:	LXI	H,ADRMSG
	CALL	OSTR
	CALL	RDADRG
	JC	EXIT
	MOV	L,C
	MOV	H,B
	SHLD	BYTCNT
	XCHG
	SHLD	START
	LXI	H,LOKMSG
	CALL	OSTR
	CALL	RDADR
	JNC	EXIT
	LHLD	BYTCNT
	MOV	B,H
	MOV	C,L
	LHLD	START
	MVI	A,10
	PUSH	PSW

LOOP:	PUSH	H
	MOV	A,M
	INX	H
	MOV	H,M
	MOV	L,A
	CALL	CMPHD
	JNZ	AGAIN
	POP	H
	SHLD	FOUND
	LXI	H,FOUND
	CALL	PSNUM
	POP	PSW
	DCR	A
	JNZ	OK
	MVI	A,10
	CALL	CRLF
OK:	PUSH	PSW
	LHLD	FOUND
	PUSH	H
AGAIN:	POP	H
	INX	H
	DCX	B
	MOV	A,B
	ORA	C
	JNZ	LOOP
	POP	PSW
	JMP	REPT

EXIT:	MVI	B,0
	LHLD	FCSSP
	SPHL
	RET

RDADRG:	LXI	H,BUFFER
	CALL	READ
	LXI	H,BUFFER
	CALL	GMPRM
	RNC
	LHLD	START
	XCHG
	LHLD	BYTCNT
	MOV	B,H
	MOV	C,L
	CMC
	RET

RDADR:	LXI	H,BUFFER
	CALL	READ
	LXI	H,BUFFER
	CALL	GN2Z
	CALL	CRLF
	RET

XRFMSG:	DB	6,3,15,12,'CROSS-REFERENCE PROGRAM',239
ADRMSG:	DB	6,1,10,10,13,'ADDRESS RANGE> ',6,2,239
LOKMSG:	DB	6,6,10,13,'SEARCH ADDRESS> ',6,2,239

START:	DW	0
BYTCNT:	DW	4000H
FOUND:	DS	2
	DB	0FFH
BUFFER:	DS	32
	DB	0FFH
	DS	100
STACK:	DS	2
FCSSP:	DS	2

	END	XREF