SOURCE ;		* * * * * * * * * * * * *
 ;		*  PROGRAM BY KIM WATT  *
 ;		* BREEZE COMPUTING INC. *
 ;		*     P.O. BOX  1013    *
 ;		* BERKLEY, MICH.  48072 *
 ;		*    (313)  288-9422    *
 ;		* * * * * * * * * * * * *
 ;
 ;
 	ORG	0BC77H
 BELOW	DEFW	0
 WHVID	DEFW	0
 WHPTR	DEFW	0
 START	LD	HL,(401EH)
 	LD	(WHVID),HL
 	LD	HL,(4026H)
 	LD	(WHPTR),HL
 	RET
 OUTPUT	CALL	0A7FH
 	LD	A,L
 	CP	'P'
 	JR	Z,PTR
 	CP	'V'
 	JR	Z,VID
 	RET
 PTR	LD	HL,(WHPTR)
 GODISP	LD	(401EH),HL
 	RET
 VID	LD	HL,(WHVID)
 	JR	GODISP
 BUFFER	DEFS	40H
 FLALEN	DEFW	0
 FLASH	CALL	0A7FH
 	LD	A,L
 	LD	(FLALEN),A
 FLON	CALL	SETUP
 	LDIR
 	CALL	LITE
 	CALL	GETKEY
 	CALL	SETUP
 	EX	DE,HL
 	LDIR
 	CALL	GETKEY
 	JR	FLON
 GETKEY	LD	B,40H
 KEYLP	CALL	2BH
 	OR	A
 	JR	NZ,HAVEIT
 	DJNZ	KEYLP
 	RET
 HAVEIT	CALL	CURCHK
 	LD	HL,CHAR
 	LD	(HL),A
 	EX	(SP),HL
 	CALL	SETUP
 	EX	DE,HL
 	LDIR
 	CALL	TONE
 	POP	HL
 	JP	0A9AH
 SETUP	LD	HL,(4020H)
 	LD	DE,BUFFER
 	LD	BC,(FLALEN)
 	LD	B,0
 	RET
 LITE	CALL	SETUP
 	LD	B,C
 NEWCUR	LD	(HL),176
 	INC	HL
 	DJNZ	NEWCUR
 	RET
 LOCK	DI
 	CALL	TONE
 	LD	A,(3840H)
 	CP	6
 	JR	NZ,LOCK
 	LD	A,(3880H)
 	OR	A
 	JR	Z,LOCK
 	EI
 	RET
 PRINT	CALL	0A7FH
 	LD	A,L
 	LD	(4028H),A
 	XOR	A
 	LD	(4029H),A
 	RET
 STRING	DEFS	40H
 LENGTH	DEFB	0
 REQLEN	DEFB	0FFH
 CHAR	DEFB	0
 GETSTR	CALL	0A7FH
 	LD	A,L
 	LD	(REQLEN),A
 AGAIN	CALL	CURSOR
 	XOR	A
 	LD	(LENGTH),A
 	LD	HL,STRING
 BOL	LD	DE,(4020H)
 SCAN	LD	A,(DE)
 	LD	(CHAR),A
 SCAN2	LD	A,176
 SCAN1	LD	(DE),A
 	LD	BC,500H
 	CALL	60H
 	PUSH	DE
 	CALL	2BH
 	POP	DE
 	OR	A
 	JR	NZ,GOTONE
 	LD	A,(DE)
 	LD	B,A
 	LD	A,(SCAN2+1)
 	CP	B
 	JR	NZ,SCAN2
 	JR	NZ,SCAN2
 	LD	A,(CHAR)
 	JR	SCAN1
 GOTONE	CALL	CHKCUR
 	CALL	ADJUST
 	CP	0DH
 	JR	Z,DONE
 	CP	8
 	JR	Z,BCKSPA
 	CP	18H
 	JR	Z,BOL1
 	CP	31
 	JR	Z,AGAIN
 	CP	20H
 	JR	C,SCAN
 	CP	5FH
 	JR	NC,SCAN
 	LD	C,A
 	LD	A,(REQLEN)
 	LD	B,A
 	LD	A,(LENGTH)
 	CP	B
 	JR	NC,SCAN
 	LD	A,C
 	LD	(DE),A
 	LD	(HL),A
 	INC	DE
 	INC	HL
 	LD	A,(LENGTH)
 	INC	A
 	LD	(LENGTH),A
 	CALL	TONE
 	JR	SCAN
 BCKSPA	LD	A,(LENGTH)
 	OR	A
 	JR	Z,SCAN
 	DEC	A
 	LD	(LENGTH),A
 	LD	A,20H
 	LD	(DE),A
 	LD	(HL),A
 	DEC	DE
 	DEC	HL
 	CALL	TONE
 	JR	SCAN
 CURSOR	LD	HL,(4020H)
 	LD	A,(REQLEN)
 	LD	B,A
 	INC	B
 LOOP3	LD	(HL),20H
 	INC	HL
 	DJNZ	LOOP3
 	RET
 DONE	LD	A,20H
 	LD	(DE),A
 	LD	(HL),0DH
 	INC	DE
 	LD	A,(LENGTH)
 	LD	B,A
 	LD	A,(REQLEN)
 	SUB	B
 	JR	Z,OKDONE
 	LD	B,A
 	LD	A,20H
 	LD	(4020H),DE
 LOZZZ	LD	(DE),A
 	INC	DE
 	DJNZ	LOZZZ
 OKDONE	LD	HL,LENGTH
 	JP	0A9AH
 BOL1	LD	A,20H
 	LD	(DE),A
 	LD	HL,STRING
 	LD	DE,(4020H)
 	XOR	A
 	LD	(LENGTH),A
 	JP	BOL
 ADJUST	CP	0AH
 	JR	Z,LINFED
 	CP	9
 	JR	Z,RARROW
 	CP	19H
 	JR	Z,LARROW
 	RET
 LINFED	LD	A,5CH
 	RET
 RARROW	LD	A,5EH
 	RET
 LARROW	LD	A,5DH
 	RET
 CHKCUR	CP	1BH
 	JR	Z,HIGH
 	CP	1AH
 	JR	Z,LOW
 	RET
 HIGH	EX	AF,AF'
 	LD	A,143
 CONT1	LD	(SCAN2+1),A
 	LD	A,20H
 	LD	(DE),A
 	EX	AF,AF'
 	RET
 CURCHK	CP	1BH
 	JR	Z,HIGH1
 	CP	1AH
 	JR	Z,LOW1
 	RET
 HIGH1	LD	A,143
 CONT2	LD	(NEWCUR+1),A
 	CALL	SETUP
 	EX	DE,HL
 	LDIR
 	JP	FLON
 LOW1	LD	A,176
 	JR	CONT2
 LOW	EX	AF,AF'
 	LD	A,176
 	JR	CONT1
 TONE	DI
 	EXX
 	LD	IX,DURAT
 	LD	IY,FREQ
 	LD	C,(IX)
 LOOPZ	LD	B,(IY)
 	LD	A,1
 	OUT	(0FFH),A
 LOOPY	DJNZ	LOOPY
 	LD	B,(IY)
 	INC	A
 	OUT	(0FFH),A
 LOOPX	DJNZ	LOOPX
 	DEC	C
 	JR	NZ,LOOPZ
 	EXX
 	EI
 	RET
 DURAT	DEFB	8
 FREQ	DEFB	60
 ENTRY	LD	A,(HL)
 	CP	'D'
 HOLDIT	JR	NZ,HOLDIT
 	CALL	START
 	LD	HL,ROUTIN
 	LD	(4016H),HL
 	LD	HL,DATA1
 	LD	(POINT),HL
 	RET
 ROUTIN	PUSH	HL
 	LD	HL,(POINT)
 	LD	A,(HL)
 	CP	0AH
 	JR	Z,GOBACK
 	INC	HL
 	LD	(POINT),HL
 	POP	HL
 	RET
 GOBACK	LD	HL,3E3H
 	LD	(4016H),HL
 	LD	A,0DH
 	POP	HL
 	RET
 POINT	DEFW	0H
 DATA1	DEFM	'FREE'
 	DEFB	0DH
 	DEFM	'BASIC 48246,3,RUN"DRIVER"
 	DEFB	0DH
 	DEFB	0AH
 	DEFB	0
 SORT	CALL	0A7FH
 	LD	E,(HL)
 	INC	HL
 	LD	D,(HL)
 	LD	(LABEL1+1),DE
 	INC	HL
 	LD	E,(HL)
 	INC	HL
 	LD	D,(HL)
 	LD	(DATA7),DE
 LABEL1	LD	HL,0
 	LD	(DATA6),HL
 LABEL3	LD	DE,(DATA6)
 	SRL	E
 	XOR	A
 	SRL	D
 	JR	NC,$+4
 	SET	7,E
 	LD	(DATA6),DE
 	LD	A,D
 	OR	E
 	RET	Z
 	LD	HL,(LABEL1+1)
 	SBC	HL,DE
 	LD	(DATA4),HL
 	LD	HL,0
 	LD	(DATA3),HL
 LABEL2	LD	HL,(DATA3)
 	LD	(DATA2),HL
 	LD	HL,(DATA2)
 	LD	DE,(DATA6)
 	ADD	HL,DE
 	LD	(DATA5),HL
 	EX	DE,HL
 	LD	HL,0
 	ADD	HL,DE
 	ADD	HL,DE
 	ADD	HL,DE
 	PUSH	HL
 	LD	DE,(DATA2)
 	LD	HL,0
 	ADD	HL,DE
 	ADD	HL,DE
 	ADD	HL,DE
 	LD	BC,(DATA7)
 	ADD	HL,BC
 	EX	DE,HL
 	POP	HL
 	ADD	HL,BC
 	PUSH	HL
 	PUSH	DE
 	LD	C,0
 	LD	A,(HL)
 	LD	B,A
 	LD	A,(DE)
 	CP	B
 	JR	NC,$+5
 	LD	C,1
 	LD	B,A
 	XOR	A
 	OR	B
 	JR	Z,$+1BH
 	PUSH	BC
 	INC	DE
 	INC	HL
 	LD	C,(HL)
 	INC	HL
 	LD	B,(HL)
 	PUSH	BC
 	POP	HL
 	EX	DE,HL
 	LD	C,(HL)
 	INC	HL
 	LD	B,(HL)
 	PUSH	BC
 	POP	HL
 	POP	BC
 	LD	A,(DE)
 	SUB	(HL)
 	JR	C,$+0CH
 	JR	NZ,$+29H
 	INC	DE
 	INC	HL
 	DJNZ	$-8
 	BIT	0,C
 	JR	NZ,$+21H
 	POP	DE
 	POP	HL
 	LD	B,3
 	LD	C,(HL)
 	EX	DE,HL
 	LD	A,(HL)
 	LD	(HL),C
 	EX	DE,HL
 	LD	(HL),A
 	INC	HL
 	INC	DE
 	DJNZ	$-8
 	LD	HL,(DATA6)
 	EX	DE,HL
 	LD	HL,(DATA2)
 	XOR	A
 	SBC	HL,DE
 	LD	(DATA2),HL
 	JR	NC,$-110
 	JR	$+4
 	POP	DE
 	POP	HL
 	LD	HL,(DATA3)
 	LD	DE,1
 	XOR	A
 	ADD	HL,DE
 	LD	(DATA3),HL
 	LD	DE,(DATA4)
 	SBC	HL,DE
 	JP	C,LABEL2
 	JP	LABEL3
 DATA2	DEFW	0
 DATA3	DEFW	0
 DATA4	DEFW	0
 DATA5	DEFW	0
 DATA6	DEFW	0
 DATA7	DEFW	0
 	DEFM	'0000'
 	DEFB	'0'
 	END	ENTRY
	LD	(DATA3),HL
 	LD	DE,(DATA4)
 	SBC	HL,DE
 	JP	C,LABEL2
 	JP	LABEL3
 DATA2	DEFW	0
 DATA3	DEFW	0
 DATA4	DEFW	0
 DATA5	DEFW	0
 DATA6	DEFW	0
 DATA7	DEFW	0
 	DEFM	'0000'
 	DEFB	'0'
 	E