2 ! CREATES OR MAINTAINS SALARY CONTRACT REGISTER 5 ! PROGRAM NAME:"MTNSCR" - BY JAC. 10 OPEN "DK1:PAYROL.MST" AS FILE 1% 15 DIM #1%,A$(1500%)=128%,A%(0%):A%=A%(0%) 20 OPEN "DK1:PAYROL.SCR" AS FILE 2% 25 DIM #2%,S$(1500%)=128%,S%(0%) 40 OPEN "DK1:PAYROL.TPY" AS FILE 4% 45 DIM #4%,T$(700%)=64%,T%(0%):T%=T%(0%) 60 INPUT "INPUT THE PRESENT DATE AS MM-DD-YY";D$ 65 N%=INSTR(1%,D$,"-"):IF N%=0% OR N%>3% THEN 60 70 IF N%=2% THEN D$=" "+D$ 75 N%=INSTR(4%,D$,"-"):IF N%=0% OR N%>6% THEN 60 80 IF N%=5% THEN D$=LEFT(D$,3%)+" "+RIGHT(D$,4%) 85 OPEN "CR:" FOR INPUT AS FILE 6% 90 DEF FNZ$(A,B%) 95 IF ABS(A)<1E+6 THEN FNZ$=LEFT(NUM$(A)+SPACE$(B%-LEN(NUM$(A))),B%):GOTO 112 100 A1=FIX(A/1E+6):A2=((A/1E+6)-A1)*1E+6:A3$=NUM$(A1):A4$=RIGHT(NUM$(A2),2%) 102 IF LEN(A4$)<7% THEN A4$="0"+A4$:GOTO 102 105 A3$=LEFT(A3$,INSTR(2%,A3$," ")-1%)+A4$ 110 FNZ$=LEFT(A3$+SPACE$(B%-LEN(A3$)),B%) 112 FNEND 115 D2$=LEFT(D$,2%)+MID(D$,4%,2%)+MID(D$,7%,2%):E$=" ":K%=1% 120 GET #6%:FIELD #6%,RECOUNT-1% AS A$:E1$=E$ 125 IF LEFT(A$,3%)="END" THEN 335 130 GOSUB 400:F$=MID(A$,62%,1%):IF E1$=E$ AND F$=" " THEN 155 132 IF E$A% 140 IF K%>A% THEN PRINT "CAN'T FIND EMPLOYEE NO.",E$:GOTO 115 145 IF F$<>" " THEN 195 ELSE S$(K%)=" " 155 N%=VAL(MID(S$(K%),4%,1%)):N%=N%+1% 160 S$(K%)=" "+"Y"+MID(NUM$(N%),2%,1%)+RIGHT(S$(K%),5%) 165 S$(K%)=LEFT(S$(K%),(N%-1%)*31%+4%)+D1$+M$+T$+C$:T%=T%+1% 170 T$(T%)=" S"+LEFT(A$(K%),24%)+MID(A$(K%),37%,6%)+D1$+C$+" "+T$+M$ 175 A$(K%)=LEFT(A$(K%),115%)+" "+RIGHT(A$(K%),117%):GOTO 120 195 IF F$="B" THEN 260 200 IF F$<>"D" THEN PRINT "ILLEGAL CODE IN 62-IGNORED CARD":GOTO 120 205 N%=VAL(MID(S$(K%),4%,1%)) 210 FOR I%=1% TO N% 215 T$=MID(S$(K%),(I%-1%)*31%+13%,7%):C$=MID(S$(K%),(I%-1%)*31%+20%,16%) 220 T%=T%+1%:T$(T%)=" D"+LEFT(A$(K%),24%)+MID(A$(K%),37%,6%)+D2$+C$+"-"+T$+" " 240 NEXT I% 245 S$(K%)=SPACE$(128%):A$(K%)=LEFT(A$(K%),115%)+"D"+RIGHT(A$(K%),117%):GOTO 120 260 ON ERROR GOTO 500 265 T1$=LEFT(T$,6%):T2$=RIGHT(T$,7%):N%=1% 270 T=(VAL(T1$)*10%+VAL(T2$))*N%:ON ERROR GOTO 0 275 T$=FNZ$(T,8%):T%=T%+1% 280 T$(T%)=" B"+LEFT(A$(K%),24%)+MID(A$(K%),37%,6%)+D2$+C$+T$+" " 300 S$(K%)=SPACE$(128%):A$(K%)=LEFT(A$(K%),115%)+"D"+RIGHT(A$(K%),117%):GOTO 120 335 T%(0%)=T%:CLOSE 1%,2%,4%,6%:STOP 400 E$=MID(A$,26%,4%):D1$=MID(A$,30%,4%)+"7"+MID(A$,34%,1%) 405 M$=MID(A$,35%,2%):T$=MID(A$,37%,7%) 410 C$=MID(A$,64%,16%):RETURN 500 IF ERR<>52% THEN ON ERROR GOTO 0 505 IF ASCII(T2$)=125% THEN T2$="I" 510 T2$=CHR$(ASCII(T2$)-25%):N%=-1%:RESUME 270 515 END