NEWPAY ;		* * * * * * * * * * * * *
 ;		*  PROGRAM BY KIM WATT  *
 ;		* BREEZE COMPUTING INC. *
 ;		*     P.O. BOX  1013    *
 ;		* BERKLEY, MICH.  48072 *
 ;		*    (313)  288-9422    *
 ;		* * * * * * * * * * * * *
 ;
 ;
 	ORG	0FB54H
 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
 	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
 	DEFM	'00000000'
 	DEFB	0
 	END	ENTRY

 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
 	DEFM	'00