Compucolor.org – Virtual Media

Listing of file='DRAW.SRC;01' on disk='vmedia/chip_62-sector.ccvf'


;		DRAW WITH JOYSTICK  6/25/82
;	===========================================
;	by Myron T. Steffy, Sun City, Arizona 85351

		KBDFLG	EQU	81DFH

		ORG	9000H	;ESCAPE 'I'

START:	LXI	H,00
	DAD	SP
	SHLD	FCSSP
	LXI	SP,STACK
	MVI	A,0CH
	STA	KBDFLG
	CALL	SETUP
START2:	MVI	A,63
	STA	X0	;CENTER BOTH AXES
	STA	Y0
	STA	X1
	STA	Y1
	LXI	H,CLEAR
	CALL	OSTR
	LXI	H,PLOT
	CALL	OSTR

KEYSCN:	LXI	B,00
	LXI	D,00
TWO:	MVI	A,0DH	;NUMBER 2 KEY (SOUTH)
	CALL	SCAN
	JNZ	FOUR
	DCR	D	;SOUTH KEY
FOUR:	MVI	A,0BH	;NUMBER 4 KEY (WEST)
	CALL	SCAN
	JNZ	SIX
	DCR	C	;WEST KEY
SIX:	MVI	A,09H	;NUMBER 6 KEY (EAST)
	CALL	SCAN
	JNZ	EIGHT
	INR	E	;EAST KEY
EIGHT:	MVI	A,07H	;NUMBER 8 KEY (NORTH)
	CALL	SCAN
	JNZ	FIVE
	INR	B	;NORTH KEY
FIVE:	MVI	A,0AH	;NUMBER 5 KEY (FIRE BUTTON)
	CALL	SCAN
	JNZ	BLACK
	JMP	BEGIN
BLACK:	MVI	A,0FH
	CALL	CSCAN
	JNZ	RED
	MVI	A,0
	STA	SHADE
	CALL	CPRINT
	JMP	XWYE
RED:	MVI	A,0EH
	CALL	CSCAN
	JNZ	GREEN
	MVI	A,1
	STA	SHADE
	CALL	CPRINT
	JMP	XWYE
GREEN:	MVI	A,0DH
	CALL	CSCAN
	JNZ	YELLOW
	MVI	A,2
	STA	SHADE
	CALL	CPRINT
	JMP	XWYE
YELLOW: MVI	A,0CH
	CALL	CSCAN
	JNZ	BLUE
	MVI	A,3
	STA	SHADE
	CALL	CPRINT
	JMP	XWYE
BLUE:	MVI	A,0BH
	CALL	CSCAN
	JNZ	MAGENT
	MVI	A,4
	STA	SHADE
	CALL	CPRINT
	JMP	XWYE
MAGENT:	MVI	A,0AH
	CALL	CSCAN
	JNZ	CYAN
	MVI	A,5
	STA	SHADE
	CALL	CPRINT
	JMP	XWYE
CYAN:	MVI	A,9
	CALL	CSCAN
	JNZ	WHITE
	MVI	A,6
	STA	SHADE
	CALL	CPRINT
	JMP	XWYE
WHITE:	MVI	A,8
	CALL	CSCAN
	JNZ	FINI
	MVI	A,7
	STA	SHADE
	CALL	CPRINT
	JMP	XWYE
FINI:	MVI	A,0BH	;LETTER 'D' TO FCS
	OUT	7
	IN	01
	ANI	2
	JNZ	XWYE
	JMP	EXIT

SCAN:	OUT	07
	IN	01
	ANI	01	;COMPLEMENT OF 0FEH
	RET

CSCAN:	OUT	07
	IN	1
	ANI	20H	;COMPLEMENT OF 0DFH
	RET

XWYE:	LDA	X1
	ADD	C
	ADD	E
	CPI	0FFH
	JNZ	X127
	INR	A
X127:	CPI	128
	JNZ	NEWX
	DCR	A
NEWX:	STA	X1
	LDA	Y1
	ADD	B
	ADD	D
	CPI	0FFH
	JNZ	Y127
	INR	A
Y127:	CPI	128
	JNZ	NEWY
	DCR	A
NEWY:	STA	Y1
	XRA	A
	CALL	PRINT
	JMP	KEYSCN

PRINT:	LXI	H,X1
	CALL	OSTR
	MVI	A,01
	CALL	WATL
	XRA	A
	RET

CPRINT:	LHLD	X1
	SHLD	X0
	LXI	H,NEWCOL
	CALL	OSTR
	RET

BEGIN:	LXI	H,NEWSRT
	CALL	OSTR
	JMP	START2

EXIT:	LXI	H,EXODUS
	CALL	OSTR
	LXI	H,FCSSP
	SPHL
	MVI	A,'D'
	JMP	ESC1

SETUP:	LDA	0001H
	CPI	00BAH	;VER. 8.79
	RZ
	LXI	H,NEWTAB
	LXI	D,OLDTAB
	LXI	B,LENTAB
SUPLOP:	LDAX	D
	MOV	M,A
	INX	H
	INX	D
	DCX	B
	MOV	A,B
	ORA	C
	JNZ	SUPLOP
	RET

OLDTAB:	JMP	053AH	;ESC1
	JMP	3392H	;LO
	JMP	33F4H	;OSTR
	JMP	3429H	;WATL
	JMP	341CH	;WATS

LENTAB	EQU	$-OLDTAB

NEWTAB:
	ESC1:	JMP	2420H
	LO:	JMP	17C8H
	OSTR:	JMP	182AH
	WATL:	JMP	185FH
	WATS:	JMP	1852H

NEWSRT:	DB	255
CLEAR:	DB	12,27,24,239	;CLEAR SCREEN & PAGE MODE
EXODUS:	DB	255,27,11,239

NEWCOL:	DB	255,6
SHADE:	DS	01H
	DB	0
PLOT:	DB	2
X0:	DS	01H
Y0:	DS	01H
	DB	242
X1:	DS	01H
Y1:	DS	01H
	DB	239

FCSSP:	DW	01H
	DS	40H
STACK:

	END	START