MACHIN ;		* * * * * * * * * * * * *
 ;		*  PROGRAM BY KIM WATT  *
 ;		* BREEZE COMPUTING INC. *
 ;		*     P.O. BOX  1013    *
 ;		* BERKLEY, MICH.  48072 *
 ;		*    (313)  288-9422    *
 ;		* * * * * * * * * * * * *				
 ;	ROUTINE TO FLASH AN AREA ON THE SCREEN WHILE
 ;		WAITING FOR A 1 KEY RESPONSE FROM
 ;		THE KEYBOARD.
 ;
 	ORG	0F863H
 BUFFER	DEFS	0FFH		;255 BYTE FLASH BUFFER
 FLALEN	DEFB	0		;LENGTH TO FLASH
 ; ROUTINE USES BASIC'S CURSOR POSITION FOR BEGINNING
 ;	OF FLASH
 FLASH	CALL	0A7FH		;GET VALUE FROM BASIC
 	LD	A,L		;GET LSB
 	LD	(FLALEN),A	;SAVE VALUE
 FLON	CALL	SETUP		;GET VALUES
 	LDIR			;MOVE VIDEO TO BUFFER
 	CALL	LITE		;LIGHT UP AREA
 	CALL	GETKEY		;KEYBOARD SCAN
 	JR	FLOFF		;TURN ON ASCII
 GETKEY	LD	BC,40H		;DELAY COUNT
 SCANIT	PUSH	BC		;MUST SAVE
 	CALL	2BH		;SCAN KEYBOARD
 	POP	BC		;RESTORE COUNT
 	OR	A		;SET FLAGS
 	JR	NZ,HAVEIT	;HAVE A KEY
 	DEC	BC		;DECREMENT COUNT
 	LD	A,B		;TEST IF <BC> IS ZERO
 	OR	C		;FLAGS ARE SET
 	JR	NZ,SCANIT	;NEXT COUNT
 	RET			;NO KEYS PRESSED
 FLOFF	CALL	SETUP		;GET VALUES
 	EX	DE,HL		;TRADE POINTERS
 	LDIR			;MOVE BUFFER TO VIDEO
 	EX	DE,HL		;TRANSFER VALUES
 	LD	(HL),20H	;SPACE AT END OF DISPLAY
 	CALL	GETKEY		;CHECK KEYBOARD
 	JR	FLON		;TURN BACK ON
 HAVEIT	LD	(CHAR),A	;SAVE CHARACTER FOR BASIC
 	CALL	SETUP		;GET POINTERS
 	EX	DE,HL		;SWAP POINTERS
 	LDIR			;ASCII ON SCREEN
 	POP	HL		;POP RETURN ADDRESS
 	CALL	TONE		;KEY TONE
 	LD	HL,CHAR		;VALUE TO BASIC
 	JP	0A9AH		;BACK TO BASIC
 SETUP	LD	HL,(4020H)	;CURSOR POSITION
 	LD	DE,BUFFER	;BUFFER POINTER
 	LD	A,(FLALEN)	;LENGTH TO FLASH
 	LD	C,A		;LSB OF BYTE COUNT
 	LD	B,0		;ZERO THE B REG.
 	RET			;ALL POINTERS SET
 LITE	CALL	SETUP		;GET POINTERS
 	PUSH	HL		;PASS VALUE TO
 	POP	DE		;   <DE> REGS.
 	INC	DE		;NEXT ADDRESS
 	LD	(HL),143	;GRAPHICS BYTE
 	LDIR			;MOVE BYTES
 	LD	A,20H		;ASCII SPACE
 	DEC	DE		;POINT TO END
 	LD	(DE),A		;WRITE IT
 	RET			;DONE
 ;		* * * * * * * * * * * * *
 ;		*  PROGRAM BY KIM WATT  *
 ;		* BREEZE COMPUTING INC. *
 ;		*     P.O. BOX  1013    *
 ;		* BERKLEY, MICH. 48072  *
 ;		*    (313)  288-9422    *
 ;		* * * * * * * * * * * * * 											
 ;	THIS IS AN "AUTO" LOADING PROGRAM.
 ;	PROGRAM CONTAINS 9 BASIC USR SUBROUTINES, AND
 ;		WILL ALSO LOAD IN BASIC, SET FILES AND
 ;		MEMORY SIZE, AND EXECUTE BASIC PROGRAM
 ;		"PAYROLL".
 ;	ORG	0FA0FH
 ; MEMORY SIZE IS SET FOR THIS ROUTINE ALSO, SO THAT A
 ;	LONG BASIC PROGRAM DOES NOT OVERWRITE IT.
 ENTRY	LD	HL,ROUTIN	;PROCESSING ROUTINE
 	LD	(4016H),HL	;PASS TO DOS
 	LD	HL,DATA1	;POINTER TO DATA
 	LD	(POINT),HL	;POSITION OF CURRENT READ
 	RET			;BACK TO DOS
 ;					 FOR NEXT ROUTINE
 ROUTIN	PUSH	HL		;MUST SAVE FOR DOS
 	LD	HL,(POINT)	;GET POINTER
 	LD	A,(HL)		;GET DATA BYTE
 	CP	0AH		;ARE WE DONE ?
 	JR	Z,GOBACK	;EXECUTE BASIC PROGRAM
 	INC	HL		;NEXT DATA BYTE
 	LD	(POINT),HL	;SAVE CURRENT POINTER
 	POP	HL		;RESTORE
 	RET			;BACK TO DOS TO PROCESS
 GOBACK	LD	HL,3E3H		;BASIC <RUN> ADDRESS
 	LD	(4016H),HL	;GIVE IT TO DOS
 	LD	A,0DH		;CARRIAGE RETURN BYTE
 	POP	HL		;RESTORE
 	RET			;TO DOS - TO BASIC
 POINT	DEFW	0H		;DATA POINTER
 DATA1	DEFW	1F18H		;CLEAR SCREEN
 	DEFM	'BASIC 63587,3,RUN"PAY.ROL"
 	DEFW	0DH		;CARRIAGE RETURN
 	DEFB	0AH		;TERMINATOR
 ;		* * * * * * * * * * * * *
 ;		*  PROGRAM BY KIM WATT  *
 ;		* BREEZE COMPUTING INC. *
 ;		*     P.O. BOX   1013   *
 ;		* BERKLEY, MICH.  48072 *
 ;		*    (313)  288-9422    *
 ;		* * * * * * * * * * * * *											
 ;	ORG	0F8F0H		;USE HIGH MEMORY
 ;  ROUTINE TO GET A STRING FROM THE KEYBOARD.
 ;  A ROM ROUTINE IS USED TO SCAN THE KEYBOARD,
 ;	AND THIS ROUTINE PROVIDES THE VIDEO DRIVER.
 ;	THE POSITON OF THE CURSOR IS TAKEN FROM
 ;	ADDRESS 4020H, WHICH IS THE ADDRESS USED
 ;	BY BASIC.  THE MAXIMUM LENGTH OF THE STRING
 ;	IS PASSED IN BYTE <REQLEN>.  THE CHARACTERS
 ;	ARE PLACED IN A BUFFER CALLED <STRING>.
 STRING	DEFS	0FFH		;255 BYTE STRING BUFFER
 ;	ROUTINE WILL PASS THE LENGTH OF THE STRING
 ;	BACK IN BYTE <LENGTH>.
 LENGTH	DEFB	0		;LENGTH OF INPUT STRING
 REQLEN	DEFB	0FFH		;REQUESTED LENGTH
 CHAR	DEFB	0		;LAST INPUT CHARACTER
 GETSTR	CALL	0A7FH		;GET VALUE FROM BASIC
 	LD	A,L		;GET LSB OF VALUE
 	LD	(REQLEN),A	;SAVE VALUE
 AGAIN	CALL	CURSOR		;PUT SPACES IN PATH
 	XOR	A		;ZERO THE ACCUM.
 	LD	(LENGTH),A	;INITIALIZE LENGTH
 	LD	HL,STRING	;SET POINTER TO BEGINNING
 ;					OF BUFFER AREA
 	LD	DE,(4020H)	;GET CURSOR POSITION
 SCAN	LD	A,8FH		;CURSOR CHARACTER
 	LD	(DE),A		;CURSOR ON
 	LD	BC,4FFH		;DELAY COUNT
 LOOP1	DEC	BC		;START COUNT
 	PUSH	BC		;SAVE COUNT
 	PUSH	DE		;MUST SAVE
 	CALL	2BH		;ROM KEYBOARD SCAN
 	POP	DE		;   <DE> AND <IY>
 	POP	BC		;RESTORE COUNT
 	OR	A		;SET FLAGS
 	JP	NZ,GOTONE	;IF KEY WAS PRESSED
 	LD	A,B		;TEST <BC> REG. FOR
 	OR	C		;   ZERO VALUE
 	JR	NZ,LOOP1	;GO BACK IF NOT DONE
 	LD	A,20H		;CURSOR CHARACTER
 	LD	(DE),A		;CURSOR OFF
 	LD	BC,4FFH		;DELAY COUNT
 LOOP2	DEC	BC		;START COUNT
 	PUSH	BC		;SAVE COUNT
 	PUSH	DE		;MUST SAVE
 	CALL	2BH		;ROM KEYBOARD SCAN
 	POP	DE		;   <DE> AND <IY>
 	POP	BC		;RESTORE COUNT
 	OR	A		;SET FLAGS
 	JP	NZ,GOTONE	;NEW KEY IF <ACC> >< 0
 	LD	A,B		;GET VALUE OF B
 	OR	C		;ANY BITS ON ?
 	JR	NZ,LOOP2	;NEXT LOOP
 	JR	SCAN		;DO IT AGAIN
 ;  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,AGAIN		;INITIALIZE IF YES
 	CP	1BH		;SHIFT UP ARROW
 	CALL	Z,VID		;CALL VID ROUTINE
 	CP	1AH		;SHIFT DOWN ARROW
 	JP	Z,BRAKON	;TURN BREAK KEY ON
 	CP	0AH		;DOWN ARROW
 	JR	Z,SGOOD		;OK
 	CP	9H		;RIGHT ARROW
 	JR	Z,SGOOD		;OK
 	CP	31		;CLEAR KEY
 	JR	Z,AGAIN		;RE-INITIALIZE
 	CP	25		;SHIFT RIGHT
 	JR	Z,SGOOD		;OK
 	CP	20H		;SEE IF A NON-ALPHA KEY
 	JP	C,SCAN		;   WAS PRESSED
 SGOOD	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
 	CP	9
 	JR	Z,LEFTA
 	CP	25
 	JR	Z,SLEFTA
 	CP	10
 	JR	Z,LINFED
 	JR	NSGOOD
 LEFTA	LD	A,94
 	JR	NSGOOD
 SLEFTA	LD	A,93
 	JR	NSGOOD
 LINFED	LD	A,10
 NSGOOD	LD	(HL),A		;IN BUFFER
 	CP	10
 	JR	NZ,DOOS
 	LD	A,92
 DOOS	LD	(DE),A		;PUT IT ON VIDEO
 	INC	DE		;INCREMENT <HL> AND <DE>
 	INC	HL		;    TABLE POINTERS
 	LD	A,(LENGTH)	;GET LENGTH
 	INC	A		;ADD ONE
 	LD	(LENGTH),A	;SAVE VALUE
 	EXX			;ALTERNATE REGISTERS
 	EX	AF,AF'		;   THESE TOO
 	CALL	TONE		;BEEP SOUND
 	EX	AF,AF'		;GET REGS. BACK
 	EXX			;TO NORMAL
 	JP	SCAN		;GET NEXT KEY
 BCKSPA	LD	A,(LENGTH)	;GET CURRENT LENGTH
 	OR	A		;SET FLAGS
 	JP	Z,SCAN		;NO CHARACTERS IN BUFFER
 	DEC	A		;SUBTRACT 1
 	LD	(LENGTH),A	;NEW LENGTH
 	LD	A,20H		;ASCII - SPACE
 	LD	(DE),A		;CURSOR OFF
 	LD	(HL),A		;PUT SPACE IN BUFFER
 	DEC	HL		;DECREMENT BOTH
 	DEC	DE		;    TABLE POINTERS
 	EXX			;ALTERNATE REGISTERS
 	EX	AF,AF'		;THESE TOO
 	CALL	TONE		;BEEP SOUND
 	EX	AF,AF'		;SWAP BACK
 	EXX			;   TO ORIGINAL VALUES
 	JP	SCAN		;GET ANOTHER KEY
 CURSOR	LD	HL,(4020H)	;GET CURSOR POSITION
 	LD	A,(REQLEN)	;GET REQUESTED LENGTH
 	LD	B,A		;TRANSFER TO BYTE COUNTER
 	INC	B		;ONE MORE SPACE AT END
 	LD	A,20H		;ASCII - SPACE
 LOOP3	LD	(HL),A		;DISPLAY BYTE
 	INC	HL		;NEXT VIDEO LOCATION
 	DJNZ	LOOP3		;DO THEM ALL
 	RET			;ALL LIT UP
 DONE	LD	A,20H		;ASCII - SPACE
 	LD	(DE),A		;CURSOR OFF
 	LD	A,0DH		;CARRIAGE RETURN
 	LD	(HL),A		;INTO STRING BUFFER
 	LD	HL,LENGTH	;POINT TO LENGTH
 	JP	0A9AH		;GIVE VALUE TO BASIC
 ;		*  PROGRAM BY KIM WATT  *
 ;		* BREEZE COMPUTING INC. *
 ;		*     P.O. BOX  1013    *
 ;		* BERKLEY, MICH.  48072 *
 ;		*    (313)  288-9422    *
 ;		* * * * * * * * * * * * *			
 ;	PROGRAM TO PRODUCE A BEEP TONE IN CASSETTE #1.
 ;
 ;	COULD BE USED IN AN INKEY$ ROUTINE TO "BEEP"
 ;	WHENEVER A KEY IS PRESSED.
 ;
 ;	ORG	4944H		;4-K LOCATION
 ;	ORG	7944H		;16-K LOCATION
 ;	ORG	0B944H		;32-K LOCATION
 ;	ORG	0FAC4H		;48-K LOCATION
 TONE	DI			;WE'RE BUSY !
 	LD	HL,DURAT	;DURATION ADDRESS
 	LD	C,(HL)		;GIVE BYTE TO C REG.
 LOOPZ	LD	HL,FREQ		;FREQUENCY ADDRESS
 	LD	B,(HL)		;GIVE BYTE TO B REG.
 	LD	A,1		;SIGNAL ON BYTE
 	OUT	(0FFH),A	;TURN ON 1/2 CYCLE
 LOOPY	DJNZ	LOOPY		;DELAY FOR FREQUENCY
 	LD	HL,FREQ		;GET FREQUENCY AGAIN
 	LD	B,(HL)		;GIVE BYTE TO B REG.
 	LD	A,2		;SIGNAL OFF BYTE
 	OUT	(0FFH),A	;TURN ON OTHER 1/2 CYCLE
 LOOPX	DJNZ	LOOPX		;DELAY FOR FREQUENCY
 	DEC	C		;DECREMENT DURATION
 	JR	NZ,LOOPZ	;GO IF NOT DONE
 	EI			;REENABLE INTERRUPTS
 	RET			;BACK TO CALL
 ;		* * * * * * * * * * * * *
 ;		*  PROGRAM BY KIM WATT  *
 ;		* BREEZE COMPUTING INC. *
 ;		*     P.O. BOX  1013    *
 ;		* BERKLEY, MICH.  48072 *
 ;		*    (313) 288-9422     *
 ;		* * * * * * * * * * * * * 				
 ;	RELOCATABLE MACHINE CODE TO TRANSFER THE
 ;	CONTENTS OF THE SCREEN TO THE LINEPRINTER.
 ;
 ;	GRAPHICS CHARACTERS ARE PRINTED AS PERIODS.
 ;
 ;	PRINTING MAY BE INTERRUPTED BY HITTING
 ;	THE <BREAK> KEY.
 ;
 VID	LD	A,(37E8H)	;LINE PRINTER ADDRESS
 	AND	80H		;TEST BIT 7
 	JR	NZ,PRTDN	;PRINTER NOT READY
 	XOR	A		;ZERO ACCUMULATOR
 	LD	(LABEL1),A	;LD INTO COUNTER ADDR.
 	LD	B,40H		;LENGTH OF SCREEN LINE
 	LD	DE,3BFFH	;VIDEO ADDR. -1
 	LD	HL,37E8H	;LINE PRINTER ADDRESS
 LABEL3	INC	DE		;INC. VIDEO ADDR.
 	LD	A,(DE)		;GET VIDEO BYTE
 	CP	80H		;GRAPHICS CHARACTER ?
 	JR	Z,PAST		;128 ASCII SPACE
 	JP	M,PAST		;GO IF NO
 	LD	A,46		;ASCII FOR PERIOD <.>
 PAST	CALL	LABEL2		;TRANSFER TO PRINTER
 	LD	A,(3840H)	;KEYBOARD MEMORY
 	CP	4		;<BREAK> KEY PRESSED ?
 	JR	Z,PRTDN		;STOP IF IT IS
 	DJNZ	LABEL3		;GET NEXT CHARACTER
 	LD	A,0DH		;CARRIAGE RETURN BYTE
 	CALL	LABEL2		;PRINTER LINEFEED
 	LD	A,(LABEL1)	;GET LOOP VALUE
 	INC	A		;INCREMENT
 	LD	(LABEL1),A	;STORE NEW VALUE
 	CP	10H		;LOOP FOR 16 LINES
 	JR	Z,PRTDN		;RETURN IF DONE
 	LD	B,40H		;LOAD # CHAR. PER LINE
 	JR	LABEL3		;PRINT NEXT LINE
 LABEL2	LD	C,(HL)		;GET LINEPRINTER STATUS
 	BIT	7,C		;TEST IF READY
 	JR	NZ,LABEL2	;WAIT IF NOT READY
 	LD	(HL),A		;SEND BYTE TO PORT
 	RET
 PRTDN	JP	AGAIN		;BACK TO GETKEY ROUTINE
 LABEL1	DEFB	0		;COUNTER BYTE
 DURAT	DEFB	8		;TONE DURATION BYTE
 FREQ	DEFB	60		;TONE FREQUENCY BYTE
 COUNT	DEFW	0H		;LOOP COUNTER FOR STAYON
 ;		* * * * * * * * * * * * *
 ;		*  PROGRAM BY KIM WATT  *
 ;		* BREEZE COMPUTING INC. *
 ;		*     P.O. BOX  1013    *
 ;		* BERKLEY, MICH.  48072 *
 ;		* * * * * * * * * * * * *			
 ;	ROUTINE TO PRODUCE A LOW FOR ABOUT 1/4 SEC.
 ;	USES "TONE" ROUTINE AND RESTORES PREVIOUS STATE.
 ;
 LOWNOT	DI			;CLEAN, CRISP SOUND
 	LD	A,60H		;NEW DURATION
 	LD	(DURAT),A	;SET BYTE
 	LD	A,0FFH		;NEW TONE FREQUENCY
 	LD	(FREQ),A	;SET BYTE
 	CALL	TONE		;CALL SOUND ROUTINE
 	LD	A,8		;PREVIOUS DURATION
 	LD	(DURAT),A	;SET BYTE
 	LD	A,60H		;PREVIOUS FREQUENCY
 	LD	(FREQ),A	;SET BYTE
 	EI			;REENABLE INTERRUPTS
 	RET			;BACK TO CALL
 TWICE	DI			;KEEP IT CLEAN
 	CALL	LOWNOT		;PLAYING ONCE
 	LD	E,6		;MORE DELAY
 MORE	LD	BC,0FFFFH	;DELAY ABOUT 1 SEC.
 ZIG	DEC	BC		;START LOOP
 	LD	A,C		;GET 1 REG.
 	AND	B		;ANY BIT'S ON ?
 	JR	NZ,ZIG		;DO IT AGAIN IF NO
 	DEC	E		;OUTSIDE LOOP
 	JR	NZ,MORE		;BACK FOR MORE
 	CALL	LOWNOT		;PLAYING TWICE
 	EI			;ENABLE INTERRUPTS
 	RET			;BACK TO CALL
 BRAKON	LD	A,1		;(ON) BYTE
 	LD	(5BA5H),A	;ENABLE <BREAK> KEY
 	JP	VID		;BACK TO KEYSCAN ROUTINE
 L2105	CALL	CLS		;CLEAR SCREEN
 	LD	HL,S2105	;DATA ADDRESS
 	CALL	DISPLY		;PUT IT ON SCREEN
 	RET			;DONE
 S2105	DEFB	03		;ADD POINTER
 	DEFW	5
 	DEFM	'>>>>>>>>>>  '
 	DEFM	'P A Y R O L L   '
 	DEFM	'S Y S T E M  '
 	DEFM	'<<<<<<<<<<'
 	DEFB	0DH
 L2120	LD	HL,S2120	;DATA POINTER
 	CALL	DISPLY		;PRINT IT
 	RET			;DONE
 DISPLY	LD	A,(HL)		;GET NEXT BYTE
 	CP	3		;ADDRESS POINTER
 	JR	Z,OFFSET	;VIDEO DISPLACEMENT
 	CP	0DH		;CARRIAGE RETURN
 	RET	Z		;DONE WITH PRINT
 	PUSH	DE		;MUST SAVE
 	CALL	33H		;DISPLAY BYTE
 	POP	DE		;RESTORE
 	INC	HL		;INCREMENT DATA POINTER
 	JR	DISPLY		;NEXT BYTE
 OFFSET	INC	HL		;ADVANCE POINTER
 	PUSH	DE		;MUST SAVE
 	LD	E,(HL)		;ADDRESS LSB
 	INC	HL		;NEXT BYTE
 	LD	D,(HL)		;ADDRESS MSB
 	PUSH	HL		;MUST SAVE
 	LD	HL,3C00H	;VIDEO ADDRESS
 	ADD	HL,DE		;ADD DISPLACEMENT
 	LD	(4020H),HL	;UPDATE CURSOR
 	POP	HL		;RESTORE
 	INC	HL		;NEXT DATA BYTE
 	POP	DE		;RESTORE
 	JR	DISPLY		;GET NEXT BYTE
 S2120	DEFB	3
 	DEFW	84
 	DEFM	'- AVAILABLE ROUTINES -'
 	DEFB	3
 	DEFW	147
 	DEFM	'<A>. ENTER NEW EMPLOYEES'
 	DEFB	3
 	DEFW	211
 	DEFM	'<B>. DELETE EMPLOYEE FILE'
 	DEFB	3
 	DEFW	275
 	DEFM	'<C>. EDIT EMPLOYEE DATA'
 	DEFB	3
 	DEFW	339
 	DEFM	'<D>. PRINT EMPLOYEE LIST'
 	DEFB	3
 	DEFW	403
 	DEFM	'<E>. PRINT PAYCHECKS'
 	DEFB	3
 	DEFW	467
 	DEFM	'<F>. WEEKLY SUMMARY'
 	DEFB	3
 	DEFW	531
 	DEFM	'<G>. MONTHLY SUMMARY'
 	DEFB	3
 	DEFW	595
 	DEFM	'<H>. QUARTERLY SUMMARY'
 	DEFB	3
 	DEFW	659
 	DEFM	'<I>. YEARLY SUMMARY'
 	DEFB	3
 	DEFW	723
 	DEFM	'<J>. PRINT W-2 FORMS'
 	DEFB	3
 	DEFW	787
 	DEFM	'<K>. 940 WORKSHEET  '
 	DEFB	3
 	DEFW	851
 	DEFM	'<L>. EXIT PROGRAM'
 	DEFB	0DH
 L1900	CALL	CLS		;CLEAR SCREEN
 	LD	HL,S1900	;DATA BYTES
 	CALL	DISPLY		;PRINT VIDEO
 	LD	HL,15360+640	;DRAW LINE UNDER
 	LD	DE,15360+641	;    EMPLOYEE
 	LD	BC,3FH		;    DATA FILE
 	LD	(HL),140	;GRAPHIC BYTE
 	LDIR			;DRAW IT
 	RET			;DONE
 S1900	DEFB	3
 	DEFW	8
 	DEFM	'* * *  EMPLOYEE DATA FILE FOR:           * * *'
 	DEFB	3
 	DEFW	64
 	DEFM	'NAME:'
 	DEFB	3
 	DEFW	99
 	DEFM	'EMPL#:'
 	DEFB	3
 	DEFW	114
 	DEFM	'EMPL*:'
 	DEFB	3
 	DEFW	128
 	DEFM	'ADDRESS:'
 	DEFB	3
 	DEFW	166
 	DEFM	'PAY TYPE:'
 	DEFB	3
 	DEFW	192
 	DEFM	'CITY/STATE/ZIP:'
 	DEFB	3
 	DEFW	235
 	DEFM	'COMP:'
 	DEFB	3
 	DEFW	243
 	DEFM	'MS:'
 	DEFB	3
 	DEFW	249
 	DEFM	'EX:'
 	DEFB	3
 	DEFW	256
 	DEFM	'PHONE:'
 	DEFB	3
 	DEFW	282
 	DEFM	'LOAN STATUS:'
 	DEFB	3
 	DEFW	300
 	DEFM	'PAY STATUS:'
 	DEFB	3
 	DEFW	320
 	DEFM	'SS#:'
 	DEFB	3
 	DEFW	335
 	DEFM	'BIRTH DATE:'
 	DEFB	3
 	DEFW	354
 	DEFM	'LOAN DED:'
 	DEFB	3
 	DEFW	370
 	DEFM	'BAL:'
 	DEFB	3
 	DEFW	384
 	DEFM	'BEG. POS:'
 	DEFB	3
 	DEFW	405
 	DEFM	'CURR. POS:'
 	DEFB	3
 	DEFW	426
 	DEFM	'VAC:'
 	DEFB	3
 	DEFW	433
 	DEFM	'HOL:'
 	DEFB	3
 	DEFW	440
 	DEFM	'SICK:'
 	DEFB	3
 	DEFW	448
 	DEFM	'REG. HOURS:'
 	DEFB	3
 	DEFW	466
 	DEFM	'O/T HOURS:'
 	DEFB	3
 	DEFW	483
 	DEFM	'PIECES:'
 	DEFB	3
 	DEFW	497
 	DEFM	'BONUS:'
 	DEFB	3
 	DEFW	512
 	DEFM	'VAC. HOURS:'
 	DEFB	3
 	DEFW	527
 	DEFM	'HOLIDAY HOURS:'
 	DEFB	3
 	DEFW	545
 	DEFM	'SICK HOURS:'
 	DEFB	3
 	DEFW	560
 	DEFM	'INSUR:'
 	DEFB	3
 	DEFW	576
 	DEFM	'X - INCOME:'
 	DEFB	3
 	DEFW	594
 	DEFM	'X - DEDUCT:'
 	DEFB	3
 	DEFW	612
 	DEFM	'X - DEDUCT:'
 	DEFB	0DH
 CLS	LD	A,1CH		;HOME CURSOR BYTE
 	CALL	33H		;MOVE IT
 	LD	A,1FH		;CLEAR TO END OF PAGE
 	CALL	33H		;DO IT
 	RET
 LOCK	DI
 	CALL	TONE
 	JR	LOCK
 	DEFM	'......'
 	END	ENTRY
