NEWPAY ;		* * * * * * * * * * * * *
 ;		*  PROGRAM BY KIM WATT  *
 ;		* BREEZE COMPUTING INC. *
 ;		*     P.O. BOX  1013    *
 ;		* BERKLEY, MICH.  48072 *
 ;		*    (313)  288-9422    *
 ;		* * * * * * * * * * * * *
 ;
 ;
 	ORG	0F43DH
 BELOW	DEFW	0
 WHVID	DEFW	0
 WHPTR	DEFW	0
 START	LD	HL,(401EH)
 	LD	(WHVID),HL
 	LD	HL,(4026H)
 	LD	(WHPTR),HL
 	RET
 OUTTYP	DEFB	0
 OUTPUT	LD	A,(OUTTYP)
 	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	DEFB	0
 FLASH	CALL	SETUP
 	LDIR
 	CALL	LITE
 	CALL	GETKEY
 	CALL	SETUP
 	EX	DE,HL
 	LDIR
 	CALL	GETKEY
 	JR	FLASH
 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
 	RET
 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
 PRTTYP	DEFB	0
 PRINT	LD	A,(PRTTYP)
 	LD	(4028H),A
 	XOR	A
 	LD	(4029H),A
 	RET
 STRING	DEFS	20H
 LENGTH	DEFB	0
 REQLEN	DEFB	0FFH
 CHAR	DEFB	0
 GETSTR	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,GETSTR
 	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	RET
 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	FLASH
 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
 L2105	CALL	1C9H
 	LD	DE,S2105
 	JR	DISPLY
 S2105	DEFB	03
 	DEFW	5
 	DEFM	'>>>>>>>>>>  '
 	DEFM	'P A Y R O L L   '
 	DEFM	'S Y S T E M  '
 	DEFM	'<<<<<<<<<<'
 	DEFB	0
 DISPLY	LD	HL,(4020H)
 DISLP	LD	A,(DE)
 	INC	DE
 	OR	A
 	JR	Z,DISDN
 	CP	3
 	JR	Z,OFFSET
 	LD	(HL),A
 	CP	(HL)
 	JR	Z,DISOK
 	SUB	20H
 	LD	(HL),A
 DISOK	INC	HL
 	JR	DISLP
 DISDN	LD	(4020H),HL
 	RET
 OFFSET	LD	A,(DE)
 	LD	C,A
 	INC	DE
 	LD	A,(DE)
 	LD	B,A
 	INC	DE
 	LD	HL,3C00H
 	ADD	HL,BC
 	JR	DISLP
 L1900	CALL	1C9H
 	LD	DE,S1900
 	CALL	DISPLY
 	LD	HL,15360+448
 	LD	DE,15360+449
 	LD	BC,63
 	LD	(HL),140
 	LDIR
 	LD	HL,15360+896
 	LD	DE,15360+897
 	LD	BC,63
 	LD	(HL),140
 	LDIR
 	RET
 S1900	DEFM	'Employee #:'
 	DEFB	3
 	DEFW	19
 	DEFM	'SS#:'
 	DEFB	3
 	DEFW	36
 	DEFM	'Birth Date:'
 	DEFB	3
 	DEFW	57
 	DEFM	'Ex:'
 	DEFB	3
 	DEFW	64
 	DEFM	'Name:'
 	DEFB	3
 	DEFW	64+33
 	DEFM	'Ad:'
 	DEFB	3
 	DEFW	128
 	DEFM	'City/St/Zip:'
 	DEFB	3
 	DEFW	128+40
 	DEFM	'Phone:'
 	DEFB	3
 	DEFW	192
 	DEFM	'Hire Date:'
 	DEFB	3
 	DEFW	192+20
 	DEFM	'Position:'
 	DEFB	3
 	DEFW	192+41
 	DEFM	'Comp Code:'
 	DEFB	3
 	DEFW	192+55
 	DEFM	'M/S:'
 	DEFB	3
 	DEFW	256
 	DEFM	'Pay Type:'
 	DEFB	3
 	DEFW	256+26
 	DEFM	'Pay Status:'
 	DEFB	3
 	DEFW	256+40
 	DEFM	'Loan St:'
 	DEFB	3
 	DEFW	256+51
 	DEFM	'Bal:'
 	DEFB	3
 	DEFW	320
 	DEFM	'Remaining Vacation:'
 	DEFB	3
 	DEFW	320+29
 	DEFM	'Holiday:'
 	DEFB	3
 	DEFW	320+47
 	DEFM	'Sick:'
 	DEFB	3
 	DEFW	384
 	DEFM	'Last Check #:'
 	DEFB	3
 	DEFW	384+23
 	DEFM	'Remark:'
 	DEFB	3
 	DEFW	512
 	DEFM	'*  INCOME  *  Regular Hours:'
 	DEFB	3
 	DEFW	512+37
 	DEFM	'Overtime Hours:'
 	DEFB	3
 	DEFW	576+14
 	DEFM	'Commission Units:'
 	DEFB	3
 	DEFW	576+43
 	DEFM	'Bonus:'
 	DEFB	3
 	DEFW	640+14
 	DEFM	'Vacation:'
 	DEFB	3
 	DEFW	640+32
 	DEFM	'Holiday:'
 	DEFB	3
 	DEFW	640+49
 	DEFM	'Sick:'
 	DEFB	3
 	DEFW	704+14
 	DEFM	'X - Income :'
 	DEFB	3
 	DEFW	704+37
 	DEFM	'X - Income :'
 	DEFB	3
 	DEFW	768
 	DEFM	'* EXPENSES *  Insurance:'
 	DEFB	3
 	DEFW	768+33
 	DEFM	'Loan:'
 	DEFB	3
 	DEFW	768+47
 	DEFM	'Dues:'
 	DEFB	3
 	DEFW	832+14
 	DEFM	'X - Deduct :'
 	DEFB	3
 	DEFW	832+37
 	DEFM	'X - Deduct :'
 	DEFB	0
 ENTRY	LD	HL,BELOW
 	LD	(40B1H),HL
 	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	'PAYROLL'
 	DEFW	0DH
 	DEFB	0AH
 MG1	DEFB	3
 	DEFW	128+19
 	DEFM	'<A>.  Enter new employees'
 	DEFB	3
 	DEFW	192+19
 	DEFM	'<B>.  Delete employee file'
 	DEFB	3
 	DEFW	256+19
 	DEFM	'<C>.  Edit employee file'
 	DEFB	3
 	DEFW	320+19
 	DEFM	'<D>.  Print employee list'
 	DEFB	3
 	DEFW	384+19
 	DEFM	'<E>.  Print paychecks'
 	DEFB	3
 	DEFW	448+19
 	DEFM	'<F>.  Weekly summary'
 	DEFB	3
 	DEFW	512+19
 	DEFM	'<G>.  Monthly summary'
 	DEFB	3
 	DEFW	576+19
 	DEFM	'<H>.  Quarterly summary'
 	DEFB	3
 	DEFW	640+19
 	DEFM	'<I>.  Yearly summary'
 	DEFB	3
 	DEFW	704+19
 	DEFM	'<J>.  W-2 forms'
 	DEFB	3
 	DEFW	768+19
 	DEFM	'<K>.  940-worksheet'
 	DEFB	3
 	DEFW	832+19
 	DEFM	'<L>.  Comp summary'
 	DEFB	3
 	DEFW	896+19
 	DEFM	'<M>.  Control file'
 	DEFB	3
 	DEFW	960+19
 	DEFM	'<N>.  Exit program'
 	DEFB	0
 MG2	DEFB	3
 	DEFW	983
 	DEFM	'Use both names !!'
 	DEFB	0
 MG3	DEFB	3
 	DEFW	981
 	DEFM	'<M>arried or <S>ingle'
 	DEFB	0
 MG4	DEFB	3
 	DEFW	974
 	DEFM	'<W/S/C/O> <Rate> <Comm Y/N> <Rate>'
 	DEFB	0
 MG5	DEFB	3
 	DEFW	965
 	DEFM	'<A>ctive - <I>nactive - <V>acation - '
 	DEFM	'<S>ick - <Q>uit - <F>ired'
 	DEFB	0
 MG6	DEFB	3
 	DEFW	980
 	DEFM	'<A>ctive or <I>nactive'
 	DEFB	0
 MG7	DEFB	3
 	DEFW	977
 	DEFM	'Vacation exceeds remaining !!'
 	DEFB	0
 MG8	DEFB	3
 	DEFW	977
 	DEFM	'Holiday exceeds remaining !!'
 	DEFB	0
 MG9	DEFB	3
 	DEFW	979
 	DEFM	'Sick exceeds remaining !!'
 	DEFB	0
 MG10	DEFB	3
 	DEFW	148
 	DEFM	'One Moment for Load'
 	DEFB	0
 MG11	DEFB	3
 	DEFW	341
 	DEFM	'Enter Month ==>> '
 	DEFB	0
 MG12	DEFB	3
 	DEFW	405
 	DEFM	'Enter Day   ==>> '
 	DEFB	0
 MG13	DEFB	3
 	DEFW	469
 	DEFM	'Enter Year  ==>> '
 	DEFB	0
 MG14	DEFB	3
 	DEFW	84
 	DEFM	'- Available Routines -'
 	DEFB	0
 MG15	DEFB	3
 	DEFW	960
 	DEFM	'Enter store where employed ==>> '
 	DEFB	0
 MG16	DEFB	3
 	DEFW	977
 	DEFM	'Killing this file !!'
 	DEFB	0
 MG17	DEFB	3
 	DEFW	971
 	DEFM	'<K>ill - <C>lear data file - '
 	DEFM	'<N>o change'
 	DEFB	0
 MG18	DEFB	3
 	DEFW	977
 	DEFM	'No changes made !!'
 	DEFB	0
 MG19	DEFB	3
 	DEFW	977
 	DEFM	'Clearing this file !!'
 	DEFB	0
 MG20	DEFB	3
 	DEFW	980
 	DEFM	'No employees on file !!'
 	DEFB	0
 MG21	DEFB	3
 	DEFW	980
 	DEFM	'<< Enter Correction >>'
 	DEFB	0
 MG22	DEFB	3
 	DEFW	973
 	DEFM	'<< Is everything correct (Y/N/C) >>'
 	DEFB	0
 MG23	DEFB	3
 	DEFW	977
 	DEFM	'<< Correct employee (Y/N/C) >>'
 	DEFB	0
 MG24	DEFB	3
 	DEFW	960
 	DEFM	'Enter employee name or number ==>> '
 	DEFB	0
 MG25	DEFB	3
 	DEFW	464
 	DEFM	'Output to <V>ideo or <P>rinter'
 	DEFB	0
 MG26	DEFB	3
 	DEFW	467
 	DEFM	'** Printer Not Ready **'
 	DEFB	0
 MG27	DEFB	3
 	DEFW	463
 	DEFM	'** Set Printer to top of page **'
 	DEFB	0
 MG28	DEFB	3
 	DEFW	457
 	DEFM	'List:  <N>umerical - <A>lphabetic - by '
 	DEFM	'<S>tores'
 	DEFB	0
 MG29	DEFB	3
 	DEFW	467
 	DEFM	'<Q>uick list or <D>etailed'
 	DEFB	0
 MG30	DEFB	3
 	DEFW	331
 	DEFM	'<U>se existing hours or '
 	DEFM	'<E>nter new ones'
 	DEFB	0
 MG31	DEFB	3
 	DEFW	978
 	DEFM	'<< Enter pay information >>'
 	DEFB	0
 MG32	DEFB	3
 	DEFW	468
 	DEFM	'Sign in ==>> '
 	DEFB	0
 MG33	DEFB	3
 	DEFW	532
 	DEFM	'Enter Master Password ==>> '
 	DEFB	0
 MG34	DEFB	3
 	DEFW	596
 	DEFM	'New Master Password ==>> '
 	DEFB	0
 MG35	DEFB	3
 	DEFW	660
 	DEFM	'New Access Password ==>> '
 	DEFB	0
 MG36	DEFB	3
 	DEFW	192
 	DEFM	'Program Terminated in Error !!'
 	DEFB	3
 	DEFW	256
 	DEFM	'Abnormal end of job.'
 	DEFB	3
 	DEFW	384
 	DEFM	'Call Breeze Computing @ (313) 288-9422'
 	DEFB	0
 MESG	DEFB	0
 MESSAG	LD	A,(MESG)
 	OR	A
 	RET	Z
 	CP	37
 	RET	NC
 	EX	AF,AF'
 	XOR	A
 	LD	(MESG),A
 	EX	AF,AF'
 	LD	DE,MG1
 	CP	1
 	JP	Z,PUTB
 	LD	DE,MG2
 	CP	2
 	JP	Z,PUTB
 	LD	DE,MG3
 	CP	3
 	JP	Z,PUTB
 	LD	DE,MG4
 	CP	4
 	JP	Z,PUTB
 	LD	DE,MG5
 	CP	5
 	JP	Z,PUTB
 	LD	DE,MG6
 	CP	6
 	JP	Z,PUTB
 	LD	DE,MG7
 	CP	7
 	JP	Z,PUTB
 	LD	DE,MG8
 	CP	8
 	JP	Z,PUTB
 	LD	DE,MG9
 	CP	9
 	JP	Z,PUTB
 	LD	DE,MG10
 	CP	10
 	JP	Z,DISPLY
 	LD	DE,MG11
 	CP	11
 	JP	Z,DISPLY
 	LD	DE,MG12
 	CP	12
 	JP	Z,DISPLY
 	LD	DE,MG13
 	CP	13
 	JP	Z,DISPLY
 	LD	DE,MG14
 	CP	14
 	JP	Z,DISPLY
 	LD	DE,MG15
 	CP	15
 	JP	Z,PUTB
 	LD	DE,MG16
 	CP	16
 	JP	Z,PUTB
 	LD	DE,MG17
 	CP	17
 	JP	Z,PUTB
 	LD	DE,MG18
 	CP	18
 	JP	Z,PUTB
 	LD	DE,MG19
 	CP	19
 	JP	Z,PUTB
 	LD	DE,MG20
 	CP	20
 	JP	Z,PUTB
 	LD	DE,MG21
 	CP	21
 	JP	Z,PUTB
 	LD	DE,MG22
 	CP	22
 	JR	Z,PUTB
 	LD	DE,MG23
 	CP	23
 	JR	Z,PUTB
 	LD	DE,MG24
 	CP	24
 	JR	Z,PUTB
 	LD	DE,MG25
 	CP	25
 	JP	Z,DISPLY
 	LD	DE,MG26
 	CP	26
 	JP	Z,DISPLY
 	LD	DE,MG27
 	CP	27
 	JP	Z,DISPLY
 	LD	DE,MG28
 	CP	28
 	JP	Z,DISPLY
 	LD	DE,MG29
 	CP	29
 	JP	Z,DISPLY
 	LD	DE,MG30
 	CP	30
 	JP	Z,DISPLY
 	LD	DE,MG31
 	CP	31
 	JR	Z,PUTB
 	LD	DE,MG32
 	CP	32
 	JP	Z,DISPLY
 	LD	DE,MG33
 	CP	33
 	JP	Z,DISPLY
 	LD	DE,MG34
 	CP	34
 	JP	Z,DISPLY
 	LD	DE,MG35
 	CP	35
 	JP	Z,DISPLY
 	LD	DE,MG36
 	CP	36
 	JP	Z,DISPLY
 	RET
 PUTB	PUSH	DE
 	LD	HL,3C00H+960
 	LD	DE,3C00H+961
 	LD	(HL),20H
 	LD	BC,63
 	LDIR
 	POP	DE
 	JP	DISPLY
 	DEFM	'00000000'
 	DEFB	0
 	END	ENTRY
 	LD	DE,MG36
 	CP	36
 	JP	Z,DISPLY
 	RET
 PUTB	PUSH	DE
 	LD	HL,3C00H+960
 	LD	DE,3C00H+961
 	LD	(HL),20H
 	LD	