Compucolor.org – Virtual Media

Listing of file='LPTEST.MAC;02' on disk='vmedia/sound_light_pen-sector.ccvf'

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;	LIGHT-PEN TEST ROUTINE
;
;	VALUES ON ENTRY ARE IRRELEVANT
;
;	RETURNS:
;	   DE =  0  MEANS NO LIGHT
;	   DE = -1  MEANS LIGHT PRESENT
;	NOTE: DE IS USED FOR COMPATIBILITY WITH BASIC
;
;	DESTROYS:
;	   ACC, AND OF COURSE DE
;
	ENTRY	LPTEST

LPTEST:	MVI	D,10
TS10:	MVI	E,0FFH
TS20:	MVI	A,14	;SELECT PORT 'A' ON AY-3-8910
	OUT	30H
	IN	30H	;READ IT
	ANI	01	;TEST PEN FOR LIGHT PRESENT
	JNZ	TS25	;NO, LOOP

	NOP		;WAIT A LITTLE
	NOP
	MVI	A,14	;CHECK PEN AGAIN ('DEBOUNCE')
	OUT	30H
	IN	30H
	ANI	01
	JZ	TS30

TS25:	DCR	E
	JNZ	TS20
	DCR	D
	JNZ	TS10
	RET		;RETURN ZERO FOR NOT LIT

TS30:	MVI	D,0FFH
	MOV	E,D
	RET		;RETURN -1 FOR LIT

	END