10 ! INSERT PAYROLL MASTER CARDS AND NAME AND ADDRESS CARDS 11 ! PROGRAM NAME: PRINST BY CWR 12 ! EACH INSERT MUST HAVE ONE MASTER CARD AND 13 ! ONE NAME AND ADDRESS CARD 14 INPUT "FILE";F$:ON ERROR GOTO 850:Z%=-1% 15 OPEN F$ FOR INPUT AS FILE 1% 25 OPEN "DK1:INSERT.PAY" AS FILE 6% 26 OPEN "DK1:PAYROLL.QRT" AS FILE 7% 30 OPEN "DK1:PAYROL.MST" AS FILE 2% 40 OPEN "DK1:PAYROL.SCR" AS FILE 3% 50 OPEN "DK1:PAYROL.YTD" AS FILE 4% 55 OPEN "DK1:PAYROL.MDR" AS FILE 5% 58 OPEN "DK1:PAYROL.MDS" FOR INPUT AS FILE 8%:DIM #8%,M1$(1500%)=128%,M1%(0%) 60 DIM #2,A$(1500%)=128%,A%(0%) 65 DIM #6,A1$(100%)=128% 66 DIM #7%,Q$(1500%)=64%,Q%(0%) 70 DIM #3,S$(1500%)=128%,S%(0%) 80 DIM #4,Y$(1500%)=64%,Y%(0%) 85 DIM #5,M$(1500%)=128%,M%(0%),D$(0%)=8% 90 Q%=0%:A%=A%(0%) 100 INPUT LINE #1, C$ 110 IF LEN(C$) <82% OR MID(C$,80%,1%)<>"-" THEN 240 115 Q%=Q%+1% 120 S1$="*"+MID(C$,16%,3%)+"-"+MID(C$,19%,2%)+"-"+MID(C$,21%,4%) 130 E$=MID(C$,26%,4%) : R$=MID(C$,35%,6%) : S2$=MID(C$,44%,1%) 140 D$=MID(C$,45%,2%) : M$=MID(C$,47%,1%) : L$=MID(C$,50%,1%) 150 C1$=MID(C$,64%,16%):E4$=MID(C$,25%,1%) 160 INPUT LINE #1, C$ 165 IF LEN (C$)<>82% OR MID(C$,80%,1%)<>"J" THEN 250 170 IF MID(C$,26%,4%)<>E$ THEN 250 180 N$=MID(C$,1%,24%) : S3$=MID(C$,35%,24%) 190 C2$=MID(C$,59%,15%)+" ": Z$=MID(C$,75%,5%)+" C" 200 A1$(Q%)=N$+S1$+E4$+"-"+E$+R$+S2$+D$+M$+L$+C1$+S3$+C2$+Z$ 230 GOTO 100 240 IF LEFT(C$,3%)="END" THEN 290 250 PRINT "CARD ERROR", C$ 280 GOTO 800 290 IF Q%+A%<1500% THEN 330 300 PRINT A%;" EMP'S ARE IN FILES" 310 PRINT Q%;" EMP'S ARE IN INSERT FILE" 320 PRINT "INSERTING WILL BE TERMINATED":GOTO 800 330 CLOSE 1%:PRINT Q%;"EMPLOYEES ARE COMING IN" 350 FOR I%=1% TO Q%-1%:T$=MID(A1$(I%+1%),39%,4%) 360 IF MID(A1$(I%),39%,4%)<=T$ THEN 570 370 T1$=A1$(I%+1%):A1$(I%+1%)=A1$(I%) 410 FOR J%=I% TO 2% STEP -1% 420 IF MID(A1$(J%-1%),39%,4%)<=T$ THEN 430 ELSE 480 430 A1$(J%)=T1$ 470 GOTO 570 480 A1$(J%)=A1$(J%-1%) 520 NEXT J% 530 A1$(1%)=T1$ 570 NEXT I% 575 PRINT "BEGIN MERGE - ERRORS ARE FATAL FROM NOW ON!" 580 J%=Q%:E1$=MID(A1$(J%),39%,4%) 590 FOR I%=A% TO 0% STEP -1% 600 IF J%<1% THEN 700 ELSE IF I%=0% THEN 630 610 IF E1$MID(A$(I%),39%,4%) THEN 630 ELSE PRINT E1$;" IS ALREADY IN FILE" 622 Q%=Q%-1%:FOR J1%=I%+J% TO A%+Q% 623 A$(J1%)=A$(J1%+1%):M$(J1%)=M$(J1%+1%):Q$(J1%)=Q$(J1%+1%):S$(J1%)=S$(J1%+1%): Y$(J1%)=Y$(J1%+1%):M1$(J1%)=M1$(J1%+1%) IF Z% 625 NEXT J1%:GOTO 660 630 A$(I%+J%)=A1$(J%) 640 S$(I%+J%)=SPACE$(128%):Y$(I%+J%)=SPACE$(64%):M$(I%+J%)=SPACE$(128%) 650 Q$(I%+J%)=SPACE$(64%):M1$(I%+J%)=SPACE$(128%) IF Z% 660 J%=J%-1%:E1$=MID(A1$(J%),39%,4%) 670 GO TO 600 680 A$(I%+J%)=A$(I%):M$(I%+J%)=M$(I%):Q$(I%+J%)=Q$(I%) 681 S$(I%+J%)=S$(I%):Y$(I%+J%)=Y$(I%):M1$(I%+J%)=M1$(I%) IF Z% 690 NEXT I% 700 Q%=Q%+A%:PRINT Q%;" EMP'S ARE NOW IN PAYROLL.MST" 710 A%(0%),S%(0%),Y%(0%),M%(0%),Q%(0%)=Q%:M1%(0%)=Q% IF Z% 800 CLOSE 1%,2%,3%,4%,5%,6%,7%:CLOSE 8% IF Z%:KILL "DK1:INSERT.PAY":STOP 850 IF ERR<>5% THEN ON ERROR GOTO 0 ELSE Z%=0%:RESUME 60 900 END