SCOTT5 ;	SCOTT52/TXT
 ;		* * * * * * * * * * * * *
 ;		*  Program by Kim Watt  *
 ;		* Breeze Computing Inc. *
 ;		*     P.O. Box  1013    *
 ;		* Berkley, Mich.  48072 *
 ;		*    (313)  288-9422    *
 ;		* * * * * * * * * * * * *
 ;
 ;
 ;
 	ORG	6000H
 READ2	EQU	4214H
 DREAD	EQU	4200H
 RESTOR	EQU	42A6H
 DWRITE	EQU	4252H
 ENTRY	DI
 STACK	EQU	5000H		;BELOW INTERCEPT
 STRING	EQU	8AA3H		;INPUT BUFFER
 	LD	SP,STACK	;SET STACK
 ;  SPECIFY WHICH ADVENTURES ARE ON THIS DISK
 ;	USE 0 IF SPOT NOT NEEDED
 ;	MAY BE ANY NUMBER FROM 1 - 99
 	LD	A,1		;ADVENTURE 1
 	LD	(84B4H),A
 	LD	A,2		;ADVENTURE 2
 	LD	(84B5H),A
 	LD	A,3		;ADVENTURE 3
 	LD	(84B6H),A
 	LD	A,4		;ADVENTURE 4
 	LD	(84B7H),A
 	LD	A,0C3H		;"JUMP" OPCODE
 	LD	(4424H),A	;OPEN VECTOR
 	LD	HL,OPEN
 	LD	(4425H),HL
 	LD	(4428H),A	;CLOSE VECTOR
 	LD	HL,CLOSE
 	LD	(4429H),HL
 	LD	(4436H),A	;READ VECTOR
 	LD	HL,READ
 	LD	(4437H),HL
 	LD	(443CH),A	;VERIFY VECTOR
 	LD	(443DH),HL
 	LD	(402DH),A	;DOS ENTRY
 	LD	HL,DOS
 	LD	(402EH),HL
 	LD	(4409H),A	;ERROR MESSAGE DISPLAY
 	LD	HL,ERROR
 	LD	(4491H),HL
 	LD	(4490H),A	;"BUG" IN ADVENTURE
 	LD	(440AH),HL
 	LD	(7494H),A	;ADVENTURE KEYBRD DRIVER
 	LD	HL,GETSTR
 	LD	(7495H),HL	;INTERCEPT TO FIX IT
 	LD	(84E3H),A	;MUST SLOW DOWN DRIVE
 	LD	HL,SLOWUP
 	LD	(84E4H),HL
 	LD	(7BA0H),A	;SAVE GAME
 	LD	HL,SAVGAM
 	LD	(7BA1H),HL
 	LD	(77CFH),A	;RESTORE PREVIOUS GAME
 	LD	HL,PREVGM
 	LD	(77D0H),HL
 	LD	A,0F3H		;"DI" OPCODE
 	LD	(84C8H),A	;DISABLE INTERRUPTS
 	LD	A,0C9H		;"RETURN" OPCODE
 	LD	(8755H),A	;NOT NEEDED
 	LD	(4420H),A	;NOT NEEDED
 	LD	(4439H),A	;NOT NEEDED
 	LD	HL,XENTER	;ENTER KEY WAIT ROUTINE
 	LD	(70CAH),HL	;NO INPUT ON TITLE PAGE
 	LD	HL,7134H	;PUT ZIP CODE WHERE
 	LD	(HL),33H	;	"PHONE" WAS
 	INC	HL
 	LD	(HL),32H
 	INC	HL
 	LD	(HL),37H
 	INC	HL
 	LD	(HL),35H
 	INC	HL
 	LD	(HL),30H
 	LD	HL,NOCLR
 	LD	(7060H),HL	;DON'T CLEAR SCREEN
 	LD	HL,0		;NOP'S
 	LD	(89F4H),HL	;DON'T ASK FOR NAME
 	LD	(89F5H),HL	;DON'T DISPLAY
 	LD	HL,NONAM	;DON'T GO KEYBOARD
 	LD	(8A05H),HL
 	LD	A,'4'		;VERSION 8.3
 	LD	(70E7H),A
 	LD	A,'Y'		;CAPITALIZE FIRST LETTER
 	LD	(71A6H),A	; IN "YOU"
 	LD	HL,739AH	;FIX MISSPELLED "WRITING"
 	LD	DE,7399H	;BY SHIFTING ENTIRE LINE
 	LD	BC,35		;TO THE LEFT BY 1 CHAR.
 	LDIR			;MOVE 'EM
 	DEC	HL
 	LD	(HL),20H	;SPACE TO THE END
 	LD	HL,8A4BH
 	LD	(HL),'9'	;ADVENTURE (1-99)
 	INC	HL
 	LD	(HL),29H
 	INC	HL
 	LD	(HL),3FH
 	INC	HL
 	LD	(HL),20H
 	XOR	A
 	LD	(8A4FH),A	;TERMINATOR
 	LD	HL,6800H	;DISK ROUTINES
 	LD	DE,4200H	;MOVE TO LOADER AREA
 	LD	BC,100H		;256 BYTES
 	LDIR			;MOVE IT
 	LD	HL,6800H	;ERASE AREA
 	LD	DE,6801H
 	LD	BC,100H
 	LD	(HL),0
 	LDIR			;ALL GONE
 	LD	DE,0017H
 	LD	BC,9000H
 	CALL	READ2
 	JR	Z,CATCH
 	CP	8
 	JR	NZ,CATCH
 	LD	BC,9000H
 	LD	DE,0071H
 	CALL	READ2
 	JR	Z,CATCH
 	CP	24
 	JP	Z,7050H
 CATCH	DI
 	JR	CATCH
 ;  FOLLOWING ROUTINE WILL TEST REQUESTED ADVENTURE
 ;	WITH WHAT IS AVAILABLE ON DISK AND SET
 ;	UP POINTERS IF FOUND
 OPEN	LD	HL,8AA3H	;BUFFER START
 	LD	(84ACH),HL	;PUT INTO DCB
 	CALL	VALUE		;CONVERT TO NUMERIC
 	LD	A,E		;E HAS VALUE
 	LD	HL,84B4H	;AVAILABLE ADVENTURES
 	LD	DE,0700H	;TRACK/SECTOR
 	LD	(84C6H),DE	;SAVE IT
 	CP	(HL)		;COMPARE REQUEST TO AVAIL
 	RET	Z		;THAT ONE IS OK
 	INC	HL		;NEXT ADVENTURE ON DISK
 	LD	DE,0E00H	;TRACK/SECTOR OF DATA
 	LD	(84C6H),DE	;SAVE FOR JUMP IF TEST +
 	CP	(HL)		;IS IT THERE ?
 	RET	Z		;THAT ONE IS OK
 	INC	HL		;POINT TO 3rd ADVENTURE
 	LD	DE,1500H	;WHERE DATA IS ON DISK
 	LD	(84C6H),DE	;SAVE IT
 	CP	(HL)		;IS THIS THE ONE ?
 	RET	Z		;THAT'S IT
 	INC	HL		;4th ADVENTURE
 	LD	DE,1C00H	;DATA LOCATION ON DISK
 	LD	(84C6H),DE
 	CP	(HL)
 	RET	Z
 BAD	LD	A,0FFH
 	OR	A		;NOT ZERO = NOT FOUND
 	RET			;BACK TO ADVENTURE
 NONAM	XOR	A
 	LD	(8AA3H),A
 	RET
 NOCLR	EXX			;DON'T CLEAR SCREEN
 	LD	HL,15360+320
 	LD	(8C23H),HL	;CURSOR POSITION
 	LD	HL,3C80H	;BOTTOM OF UPPER SCREEN
 	LD	(8BC9H),HL	;SAVE IT FOR DISPLAY DVR.
 	EXX
 CLOSE	RET			;NOT NEEDED ANYMORE
 ERROR	RET			;NOT NEEDED
 DOS	LD	HL,DOSMSG
 	CALL	7036H
 	JR	WAIT
 DOSMSG	DEFB	0DH
 	DEFM	'Insert a diskette containing DOS into Drive 0.'
 	DEFB	0DH
 	DEFM	'Press <ENTER> when ready ! '
 	DEFB	0
 WAIT	LD	A,(3840H)	;ENTER KEY ADDRESS
 	BIT	0,A		;PRESSED ?
 	JR	Z,WAIT
 	HALT
 DISPLY	POP	DE		;GET DATA ADDRESS
 LOIOP2	LD	A,(DE)		;GET A BYTE
 	INC	DE		;BUMP POINTER
 	OR	A		;SET FLAGS
 	JR	Z,DONEX		;TERMINATOR REACHED
 	CP	20H		;CONTROL CHARACTER ?
 	JR	C,DISCTL	;USE ROM ROUTINE
 	LD	HL,(4020H)	;GET CURSOR POSITION
 	LD	(HL),A		;WRITE THE BYTE
 	CP	(HL)		;STILL THERE ?
 	JR	Z,DISOK		;LOWER CASE MOD INSTALLED
 	SUB	20H		;MAKE IT UPPER CASE
 	LD	(HL),A		;RE-WRITE THE BYTE
 DISOK	INC	HL		;BUMP VIDEO POINTER
 	LD	(4020H),HL	;UPDATE CURSOR
 	JR	LOIOP2		;GET NEXT BYTE
 DISCTL	PUSH	DE		;MUST SAVE
 	PUSH	IY		;	DE & IY
 	CALL	33H		;WRITE BYTE
 	POP	IY		;RESTORE
 	POP	DE
 	JR	LOIOP2		;CURSOR IS UPDATED IN ROM
 DONEX	PUSH	DE		;RETURN ADDRESS
 	RET			;GO TO IT
 READ	PUSH	AF		;READ ADVENTURE DATA
 	PUSH	BC
 	PUSH	DE
 	PUSH	HL
 RDGO	LD	BC,8AA3H	;BUFFER ADDRESS
 	LD	DE,(84C6H)	;TRACK/SECTOR OF DATA
 	LD	HL,1		;ONE SECTOR
 	CALL	DREAD		;READ THE DISK
 	JR	NZ,RDGO		;BAD READ, TRY AGAIN
 	LD	(84C6H),DE	;SAVE NEXT TRACK/SECTOR
 	POP	HL		;RESTORE STACK
 	POP	DE
 	POP	BC
 	POP	AF
 	RET			;DONE
 ;  THIS ROUTINE WILL CATCH ALL DISK ERRORS
 ;	A WILL CONTAIN LAST STATUS BYTE
 DERROR	BIT	2,A		;DATA LOST FLAG
 	LD	HL,ERMSG1	;ERROR MESSAGE
 	JR	NZ,ERSHOW	;SHOW IS THAT'S IT
 	BIT	4,A		;TRACK/SECTOR NOT FOUND
 	LD	HL,ERMSG2
 	JR	NZ,ERSHOW
 	BIT	3,A		;ERROR IN DATA FIELD
 	LD	HL,ERMSG3
 	JR	NZ,ERSHOW
 	LD	HL,ERMSG4
 ERSHOW	CALL	7036H
 	LD	HL,ERMSGO
 	CALL	7036H
 	JP	WAIT
 ERMSGO	DEFB	0DH
 	DEFM	'Press <ENTER> to continue ! '
 	DEFB	0
 SHOW	PUSH	HL
 	JP	DISPLY
 ERMSG1	DEFB	0DH
 	DEFM	'DATA LOST during disk I/O operation.'
 	DEFB	0
 	RET
 ERMSG2	DEFB	0DH
 	DEFM	'Track/Sector NOT FOUND during disk'
 	DEFM	' I/O operation.'
 	DEFB	0
 	RET
 ERMSG3	DEFB	0DH
 	DEFM	'Error in DATA ID FIELD on diskette.'
 	DEFB	0
 	RET
 ERMSG4	DEFB	0DH
 	DEFM	'UNIDENTIFIED ERROR has been detected.'
 	DEFB	0
 	RET
 SELECT	LD	A,(37ECH)
 	BIT	7,A
 	LD	A,1
 	LD	(37E1H),A
 	RET	Z
 	PUSH	BC
 	LD	BC,8000H
 SELWT	DEC	C
 	JR	NZ,SELWT
 	DJNZ	SELWT
 	POP	BC
 	RET
 LENGTH	DEFB	0		;LENGTH OF INPUT STRING
 REQLEN	DEFB	0		;REQUESTED LENGTH
 CHAR	DEFB	0		;LAST INPUT CHARACTER
 GETSTR	PUSH	AF		;MUST SAVE
 	LD	A,18		;18 INPUT CHAR ALLOWED
 	LD	B,A		;PASS TO LOOP COUNTER
 SPEC11	LD	(REQLEN),A	;SAVE IT
 	LD	HL,(8C23H)	;GET BEGINNING CURSOR POS
 	LD	(4020H),HL	;SAVE IT
 NEWST	LD	HL,(4020H)	;GET IT FOR RESTART
 	PUSH	HL		;PASS TO DE
 	POP	DE
 	INC	DE		;POINT TO NEXT
 	LD	BC,18		;18 SPACES TO ERASE LINE
 	LD	(HL),20H
 	LDIR
 	LD	HL,(4020H)	;GET START CURSOR AGAIN
 	LD	(8C23H),HL	;RESTART
 	LD	DE,STRING	;POINT TO BUFFER
 	LD	A,(REQLEN)
 	LD	B,A
 	XOR	A		;FOR BUFFER
 LOOP15	LD	(HL),20H	;INTO VIDEO
 	LD	(DE),A		;INTO BUFFER
 	INC	DE		;	NEXT
 	INC	HL		;    TYPED INTO
 	DJNZ	LOOP15		;NEXT SPACE
 	XOR	A		;ZERO THE ACCUMULATOR
 	LD	(LENGTH),A	;INITIALIZE LENGTH
 	LD	HL,STRING	;SET POINTER TO BEGINNING
 ;					OF BUFFER AREA
 	LD	DE,(8C23H)	;GET CURSOR POSITION
 SCAN	LD	A,5DH		;CURSOR CHARACTER
 LOOP3	LD	(DE),A		;CURSOR ON
 LOOP2	LD	BC,500H
 LOOP1	PUSH	DE
 	PUSH	IY
 	CALL	2BH
 	POP	IY
 	POP	DE
 	OR	A
 	JR	NZ,GOTONE
 LOOPZZ	DEC	BC
 	LD	A,B
 	OR	C
 	JR	NZ,LOOPZZ
 	LD	A,(DE)
 	CP	'+'
 	JR	Z,SCAN
 	CP	5DH
 	LD	A,5EH
 	JR	Z,LOOP3
 	LD	A,'+'
 	JR	LOOP3
 ;  KEY PRESSED IS IN <A> REG.
 GOTONE	LD	(CHAR),A	;SAVE INPUT CHARACTER
 	CP	0DH		;IS IT A CARRIAGE RETURN
 	JP	Z,DONE		;GO IF IT IS
 	CP	8		;IS IT A BACKSPACE
 	JR	Z,BCKSPA	;SEE IF IT'S OK
 	CP	18H		;SHIFT LEFT ARROW
 	JR	Z,NEWST		;INITIALIZE IF YES
 	CP	20H		;SEE IF A NON-ALPHA KEY
 	JP	C,SCAN		;   WAS PRESSED
 	LD	A,(REQLEN)	;GET REQUESTED LENGTH
 	LD	B,A		;GIVE VALUE TO <B> REG.
 	LD	A,(LENGTH)	;GET CURRENT LENGTH
 	CP	B		;COMPARE VALUES
 	JR	NC,SCAN		;TOO MANY CHARACTERS
 ;  HERE THE NEW KEY IS DISPLAYED AND STORED IN <STRING>
 	LD	A,(CHAR)	;RESTORE INPUT CHARACTER
 	LD	(DE),A		;PUT IN ON VIDEO
 	LD	(HL),A		;PUT IT IN BUFFER
 	INC	DE		;INCREMENT <HL> AND <DE>
 	INC	HL		;    TABLE POINTERS
 	LD	(8C23H),DE	;NEW CURSOR POSITION
 	LD	A,(LENGTH)	;GET LENGTH
 	INC	A		;ADD 1
 	LD	(LENGTH),A	;SAVE VALUE
 	JR	SCAN		;GET NEXT KEY
 BCKSPA	LD	A,(LENGTH)	;GET CURRENT LENGTH
 	OR	A		;SET FLAGS
 	JR	Z,SCAN		;NO CHARACTERS IN BUFFER
 	DEC	A		;SUBTRACT 1
 	LD	(LENGTH),A	;NEW LENGTH
 	LD	A,20H		;CURSOR OFF CHAR.
 	LD	(DE),A		;CURSOR OFF
 	LD	(HL),A		;PUT SPACE IN BUFFER
 	DEC	HL		;DECREMENT BOTH
 	DEC	DE		;    TABLE POINTERS
 	LD	(8C23H),DE	;NEW CURSOR POSITION
 	JR	SCAN		;GET ANOTHER KEY
 DONE	LD	A,20H		;ASCII - SPACE
 	LD	(DE),A		;CURSOR OFF
 	LD	(HL),00H	;TERMINATOR
 	LD	A,(LENGTH)	;GET LENGTH
 	LD	B,A		;GIVE TO B REG.
 	LD	HL,(8C23H)
 	LD	A,0DH
 	CALL	7427H		;ADJUST DISPLAY
 	POP	AF		;RESTORE
 	RET			;DONE
 SLOWUP	CALL	7036H		;ORIGINAL DISPLAY INST.
 	CALL	SELECT		;SELECT DRIVE
 	JP	84E6H		;BACK TO ADVENTURE
 PREVMG	DEFM	'5 available areas.  Which one ? '
 	DEFB	0
 PREVGM	CALL	WHICH1		;GET WHICH ONE TO USE
 	JP	NZ,77BCH	;INVALID INPUT IF NZ
 	PUSH	DE
 	CALL	STATCK		;CHECK DISK STATUS
 	POP	DE
 	JP	NZ,77BCH	;NZ = DRIVE NOT READY
 	JP	OVERM
 WHICH1	LD	HL,PREVMG	;POINT TO MESSAGE
 	CALL	7036H		;ADVENTURE DISPLAY
 	CALL	GETSTR		;GET KEY INPUT
 	LD	A,(STRING)	;GET FIRST CHARACTER
 	SUB	30H		;REMOVE ASCII
 	JR	C,BADDZ		;LESS THAN 0
 	JR	Z,BADDZ		;0
 	CP	6
 	JR	NC,BADDZ	;MORE THAN 9
 	LD	C,10		;START WITH SECTOR 10
 COMLP1	DEC	A		;REDUCE REQUEST
 	JR	Z,COMOK1	;SECTOR FOUND
 	INC	C		;BUMP BY 2
 	INC	C
 	JR	COMLP1
 COMOK1	LD	A,C		;A HAS PROPER SECTOR
 	LD	D,0		;START WITH TRACK 0
 	LD	E,A		;SECTOR REQUESTED
 PRLP11	SUB	0AH		;-10
 	JR	C,PRLP22	;LESS THAN 10 FOR SECTOR
 	INC	D		;BUMP TRACK
 	LD	E,A		;NEW SECTOR
 	JR	PRLP11		;GO AGAIN
 PRLP22	XOR	A
 	RET
 BADDZ	LD	A,0FFH
 	OR	A
 	RET
 ; DE HAS TRACK SECTOR
 OVERM	CALL	SELECT		;SELECT DRIVE
 	LD	BC,8AA3H	;BUFFER
 	LD	HL,1		;ONE SECTOR
 	CALL	DREAD		;READ THE SECTORS
 	LD	(77E7H),DE	;SAVE TRACK SECTOR
 	LD	DE,(8BC7H)
 	LD	HL,(8AA3H)
 	SCF
 	CCF
 	SBC	HL,DE
 	JR	NZ,PRLP33	;BAD ONE
 	LD	DE,8C37H
 	LD	HL,8AA5H
 	LD	BC,3CH
 	LDIR			;MOVE NEW DATA
 	LD	BC,8AA3H	;BUFFER
 	LD	HL,1		;ONE SECTOR
 	LD	DE,(77E7H)	;RESTORE TRACK/SECTOR
 	CALL	DREAD		;READ IT
 	JP	77FEH		;BACK TO ADVENTURE
 PRLP33	LD	HL,PRMSG3	;MESSAGE
 	CALL	7036H		;DISPLAY
 	JP	PREVGM		;TRY AGAIN
 PRMSG3	DEFM	'That game cannot be restored or has not been saved.'
 	DEFB	0DH
 	DEFB	0
 SAVGAM	CALL	WHICH1		;GET WHICH 1
 	JR	NZ,BADSV1	;BAD REQUEST
 	PUSH	DE
 	CALL	STATCK		;CHECK DISK STATUS
 	POP	DE		;RESTORE TRACK/SECTOR
 	JR	NZ,BADSV1
 	LD	(7BACH),DE	;SAVE TRACK/SECTOR
 	LD	HL,(8BC7H)
 	LD	(8AA3H),HL
 	LD	DE,8AA5H
 	LD	HL,8C37H
 	LD	BC,3CH
 	LDIR
 	CALL	SELECT
 	LD	HL,1		;ONE SECTOR
 	LD	DE,(7BACH)	;TRACK SECTOR
 	LD	BC,8AA3H
 	CALL	DWRITE
 	JR	NZ,BADSV6	;DISK I/O ERROR
 	INC	E
 	LD	(7BACH),DE	;SAVE NEXT SECTOR
 	LD	HL,CONT11	;CONTINE POINT
 	LD	(7BD3H),HL	;PUT INTO PROGRAM
 	JP	7BB7H		;CONTINUE
 BADSV1	LD	HL,BADMS9	;MESSAGE
 	CALL	7036H		;DISPLAY IT
 	POP	IY
 	POP	IX
 	RET
 BADSV6	LD	HL,BADMG8
 	CALL	7036H
 	JR	BADSV1
 BADMG8	DEFM	'DISK ERROR !'
 	DEFB	0DH
 	DEFB	0
 STATCK	CALL	RESTOR
 	CALL	SELECT
 	LD	A,(37ECH)	;GET STATUS
 	LD	HL,ERMSG5	;DRIVE NOT READY
 	BIT	7,A
 	JP	NZ,BADXX
 	LD	HL,ERMSG6	;WRITE PROTECTED
 	BIT	6,A
 	JP	NZ,BADXX
 	LD	BC,00CDH
 	LD	HL,ERMSG8	;NO SYSTEM IN DRIVE
 TST1	DEC	BC
 	LD	A,B
 	OR	C
 	JP	Z,BADXX
 	LD	A,(37ECH)
 	AND	2
 	JR	NZ,TST1
 	LD	BC,199DH
 	LD	HL,ERMSG9	;DOOR NOT CLOSED
 TST2	DEC	BC
 	LD	A,B
 	OR	C
 	JP	Z,BADXX
 	LD	A,(37ECH)
 	AND	2
 	JP	Z,TST2
 	LD	DE,0
 	LD	BC,00BAH
 	LD	HL,ERMSG0	;NO DISK IN DRIVE
 TST3	DEC	BC
 	LD	A,B
 	OR	C
 	JP	Z,BADXX
 	INC	DE
 	LD	A,(37ECH)
 	AND	2
 	JR	NZ,TST3
 	LD	BC,1720H
 	LD	HL,ERMSG9	;DOOR NOT CLOSED
 TST4	DEC	BC
 	LD	A,B
 	OR	C
 	JP	Z,BADXX
 	INC	DE
 	LD	A,(37ECH)
 	AND	2
 	JR	Z,TST4
 	LD	HL,0EACBH
 	ADD	HL,DE
 	LD	HL,ERMSG7	;HARD SECTORED
 	JP	NC,BADXX
 	XOR	A		;SET ZERO FLAG
 	RET			;CHECKS OUT OK
 BADXX	CALL	7036H		;DISPLAY ERROR TYPE
 	LD	A,0FFH
 	OR	A		;RESET ZERO FLAG FOR BAD
 	RET			;RETURN IN ERROR
 ERMSG5	DEFM	'Drive NOT READY !'
 	DEFB	0DH
 	DEFB	0
 ERMSG6	DEFM	'Diskette WRITE PROTECTED !'
 	DEFB	0DH
 	DEFB	0
 ERMSG7	DEFM	'Diskette is HARD SECTORED !'
 	DEFB	0DH
 	DEFB	0
 ERMSG8	DEFM	'NO DISKETTE in drive !'
 	DEFB	0DH
 	DEFB	0
 ERMSG9	DEFM	'DOOR NOT CLOSED on drive !'
 	DEFB	0DH
 	DEFB	0
 ERMSG0	DEFM	'NO DISKETTE in drive !'
 	DEFB	0DH
 	DEFB	0
 ERMSGC	DEFM	'Drive NOT IN SYSTEM !'
 	DEFB	0DH
 	DEFB	0
 BADMS9	DEFM	'Game was not saved !   Try again.'
 	DEFB	0DH
 	DEFB	0
 CONT11	LD	HL,1
 	LD	BC,8AA3H	;DATA ADDRESS
 	LD	DE,(7BACH)	;TRACK SECTOR
 	CALL	DWRITE		;WRITE THE DATA
 	RET			;ALL DONE
 ;  FOLLOWING ROUTINE USED TO FLASH CURSOR DURING
 ;	FIRST SCREEN.  ONLY ALLOW ENTER KEY INPUT.
 XENTER	LD	HL,3FFFH	;CURSOR POSITION
 XWAIT	LD	(HL),5DH	;CURSOR CHARACTER
 XW0	LD	BC,800H
 	CALL	2BH
 	CP	13
 	RET	Z
 XW1	DEC	BC
 	LD	A,B
 	OR	C
 	JR	NZ,XW1
 	LD	A,(HL)
 	CP	5DH
 	JR	NZ,XWAIT
 	LD	(HL),5EH
 	JR	XW0
 VALUE	LD	E,0		;CONVERT ASCII TO NUMERIC
 VALLP	LD	A,(HL)		;GET A BYTE
 	INC	HL		;POINT TO NEXT
 	CP	30H
 	RET	C
 	CP	3AH
 	RET	NC
 	SUB	30H
 	LD	B,A
 	LD	A,E
 	ADD	A,A
 	ADD	A,A
 	ADD	A,E
 	ADD	A,A
 	ADD	A,B
 	LD	E,A
 	JR	VALLP
 	ORG	6F00H		;AUTHOR CREDIT
 	DEFW	0D0DH
 	DEFM	'THIS ADVENTURE "INTERCEPT" '
 	DEFB	0DH
 	DEFM	'WAS WRITTEN BY KIM WATT'
 	DEFB	0DH
 	DEFM	'BREEZE COMPUTING INC.'
 	DEFB	0DH
 	DEFM	'P.O. BOX 1013'
 	DEFB	0DH
 	DEFM	'BERKLEY, MICH. 48072'
 	DEFW	0D0DH
 	END	402DH
TURE "INTERCEPT" '
 	DEFB	0DH
 	DEFM	'WAS WRITTEN BY KIM WATT'
 	DEFB	0DH
 	DEFM	'BREEZE COMPUTING INC.'
 	DEFB	0DH
 	DEFM	'P.O. BOX 1013'
 	DEFB	0DH
 	DEFM	'BERKLEY, MICH. 48072'
 	DEFW	0D0DH
 	