10 ! MAINTAIN PAYROLL MASTER FILE 11 ! PROGRAM NAME: PRMMT BY CWR 20 OPEN "DK1:PAYROL.MST" AS FILE 1% 40 DIM#1,A$(1500%)=128%,A%(0%) 50 DIM #2,S$(1500%)=128%,S%(0%) 55 DIM #3, M$(1500%)=128%,M%(0%),D$(0%)=8% 56 DIM #4,Y$(1500%)=64%,Y%(0%) 60 DIM H$(20%),H%(20%),H1$(32%),D1$(9%),H1%(20%) 70 H$(1%)="NAM" : H%(1%)=24% 72 H$(2%)="SS#" : H%(2%)=12% 73 H$(3%)="EMP" : H%(3%)=6% 74 H$(4%)="RET" : H%(4%)=6% 75 H$(5%)="SSE" : H%(5%)=1% 76 H$(6%)="DEP" : H%(6%)=2% 77 H$(7%)="MAR" : H%(7%)=1% 78 H$(8%)="LAB" : H%(8%)=1% 79 H$(9%)="COD" : H%(9%)=16% 80 H$(10%)="STR" : H%(10%)=24% 81 H$(11%)="CIT" : H%(11%)=16% 82 H$(12%)="ZIP" : H%(12%)=6% 83 H$(13%)="TER" : H%(13%)=1% 85 H$(14%)="SUB" : H%(14%)=1% 86 H$(15%)="3X5" : H%(15%)=1% 87 H$(16%)="W-2" : H%(16%)=1% 90 H1%(1%)=1%:H1%(2%)=25%:H1%(3%)=37%:H1%(4%)=43% 91 H1%(5%)=49%:H1%(6%)=50%:H1%(7%)=52%:H1%(8%)=53% 92 H1%(9%)=54%:H1%(10%)=70%:H1%(11%)=94%:H1%(12%)=110% 93 H1%(13%)=116%:H1%(14%)=117%:H1%(15%)=118%:H1%(16%)=119% 100 Z%=A%(0%) : X%=A%(0%) : I5%=1% 110 INPUT "SEARCH, EPRINT, LIST, CHANGE, PRINT OR SPRINT";D$ 120 IF LEN(D$)=0% THEN 9000 139 IF D$="SEARCH" THEN D%=1% ELSE D%=0% 140 IF D$="EPRINT" THEN D%=2% 150 IF D$="CHANGE" THEN D%=3% 160 IF D$="PRINT" THEN D%=4% 170 IF D$="SPRINT" THEN D%=5% 175 IF D$="LIST" THEN D%=6% 179 IF D%=0% THEN 110 184 ON D% GOSUB 3800,190,460,500,600,3600 185 GOTO 110 190 GOSUB 2000 200 IF LEN(E$)=0% THEN 110 ELSE 190 410 INPUT "ITEM",W$:J%=0%: IF LEN(W$)=0% THEN I%=0% : GOTO 446 420 FOR I%=1% TO 16% 430 IF W$=H$(I%) THEN 446 440 NEXT I% 445 GOTO 410 446 RETURN 460 GOSUB 2000: IF LEN(E$)=0% THEN 498 461 GOSUB 700 462 GOSUB 410 465 IF I%=0% THEN 496 470 PRINT H$(I%),H1$(I%),:INPUT LINE W$ 475 W$=LEFT(W$,LEN(W$)-2%) 480 IF LEN(W$)=0% THEN 495 ELSE IF I%=2% THEN W$=" "+W$ 481 IF LEN(W$)>H%(I%) THEN 495 485 H1$(15%) = "C" 490 H1$(I%)=W$+SPACE$(H%(I%)-LEN(W$)) 495 PRINT H$(I%),H1$(I%):GOTO 462 496 GOSUB 1000 ! PACK 497 GOTO 460 498 RETURN 500 GOSUB 2000: IF LEN(E$)=0 THEN 595 502 GOSUB 700 505 PRINT 510 FOR I%=1% TO 16% 520 PRINT H$(I%),H1$(I%) 530 NEXT I% 593 PRINT 594 GOSUB 500 595 RETURN 600 INPUT "INDEX";L%: IF L%=0% THEN 610 604 PRINT MID(A$(L%),1%,24%),MID(A$(L%),37%,6%) 605 PRINT 606 GOTO 600 610 RETURN 700 ! UNPACK PAYROLL FILES SUBROUTINE 710 J%=1% 720 FOR I3%=1% TO 16% 730 K%=J%+H%(I3%)-1% 740 H1$(I3%)=MID(A$(L%),J%,K%-J%+1%) : J%=J%+H%(I3%) 750 NEXT I3% 950 RETURN 1000 ! PACK PAYROLL FILES SUBROUTINE 1010 A$=SPACE$(0%) 1020 A$=A$+H1$(I3%) FOR I3%=1% TO 16% 1025 A$(L%)=A$ 1070 RETURN 1080 PRINT "INPUT ERROR" : STOP 2000 INPUT "EMPLOYEE # ";E$:J%=Z%/2%:L%=J%:IF LEN(E$)=0% THEN 2170 2010 IF E$MID(A$(L%),39%,4%) THEN 2090 ELSE 2160 2030 IF L%<=1% THEN 2080 2040 J%=J%/2%:L%=L%-J%:IF L%<1% THEN L%=1% 2050 IF J%>0% THEN 2010 2060 IF E$>=MID(A$(L%),39%,4%) THEN 2150 2070 IF L%>1% THEN L%=L%-1%:GOTO 2060 2080 PRINT "EMP# ";E$;" NOT FOUND AT INDEX ";L%:E$="":GOTO 2170 2090 IF L%>=Z% THEN 2080 2100 J%=J%/2%:L%=L%+J%:IF L%>Z% THEN L%=Z% 2110 IF J%>0% THEN 2010 2120 IF E$<=MID(A$(L%),39%,4%) THEN 2150 2130 IF L%MID(A$(L%),39%,4%) THEN 2080 2160 PRINT E$;" ";LEFT(A$(L%),24%);L% 2170 RETURN 3060 IF S%=0% THEN 3980 3190 GOTO 110 3600 GOSUB 410 3610 IF I%=0% THEN 110 3620 PRINT :PRINT "PAYROLL LIST OF ";W$ 3630 FOR L%=1% TO Z% 3640 GOSUB 700 ! UNPACK 3650 PRINT H1$(3%), 3660 PRINT H1$(1%), 3670 IF I%<>1% AND I%<>3% THEN PRINT H1$(I%) ELSE PRINT 3680 NEXT L% 3690 PRINT 3695 GOTO 3600 3800 GOSUB 410 3810 INPUT "FOR",W1$ 3820 IF LEN (W1$)=0% THEN 110 3830 IF I%=0% THEN 3930 3835 PRINT:PRINT "SEARCH ";W$;" FOR ";W1$ 3840 FOR L%=1% TO Z% 3860 S%=INSTR(1%,MID(A$(L%),H1%(I%),H%(I%)),W1$) 3870 IF S%=0% THEN 3920 3880 PRINT L%, 3890 PRINT MID(A$(L%),39%,4%), 3900 PRINT LEFT(A$(L%),24%) 3910 IF I%<>1% AND I%<>3% THEN PRINT MID(A$(L%),H1%(I%),H%(I%)) ELSE PRINT 3920 NEXT L% 3923 PRINT 3925 GOTO 3810 3930 PRINT:PRINT "SEARCH FILE FOR ";W1$ 3940 FOR L%=1% TO Z% 3950 S%=INSTR(1%,A$(L%),W1$) 3960 IF S%=0% THEN 3980 3970 PRINT MID(A$(L%),1%,24%) , MID(A$(L%),37%,6%) 3980 NEXT L% 3990 GOTO 3810 9000 PRINT "END OF RUN" 9100 CLOSE 1% 9200 END