1 ! PAY 11 -- PAYROLL REGISTER 2 ON ERROR GO TO 1000 5 DEF FNK$=NUM$(ASCII(RIGHT(SYS(CHR$(6)+CHR$(9)),2%))/2%) 15 OPEN"PAY."+FNK$ FOR OUTPUT AS FILE 2% 30 DEF FNR$(X,N) 40 X9$=MID(NUM$(X/100),2%,LEN(NUM$(X/100))-2%) 45 IF INSTR(1%,X9$,".")=0%THEN X9$=X9$+".00" ELSE X9$=LEFT(X9$+"00",INSTR(1,X9$,".")+2%) 52 FNR$=SPACE$(N-LEN(X9$))+X9$ 55 FN END 120 INPUT "NAME";N$ 130 INPUT "COMPANY"; C1$ 140 & "DATE";: INPUT LINE D1$ 143 & 145 INPUT"DEVICE (KB: OR CR:)";A9$ : IF LEFT(A9$,1)="C"THEN OPEN "CR:" AS FILE 7 147 & 150 N%=D% 160 ,SPACE$(10);N$: FOR I=1% TO 4% 170  SPACE$(62-(LEN(C1$)/2%));C1$: 180  SPACE $ (53); "PAYROLL REGISTER." 185  190 ,TAB(44);"FOR WEEK ENDING "D1$:  FOR I%=1% TO 4% 200TAB(11);"EMP";TAB(18);"NO. OF";TAB(27);"NO. OF";TAB(36); "RATE";TAB(43);"TOTAL EARNINGS";TAB(74);"DEDUCTIONS";TAB(101); "NET PAY" 250 TAB(11);"NO.";TAB(18);"EXEM.";TAB(27); "HOURS";TAB(46);"FOR WEEK";TAB(59); 260 "-";FOR I%=1% TO 40%: 270TAB(60);"INCOME";SPACE$(3);"FICA";SPACE$(3);"INSUR.";SPACE$ (3);"OTHER";SPACE$(3);"TOTAL" 280 TAB(61);"TAX";TAB(69);"TAX" 285 : 290 DATA "EMPLOYEE #",1,99 291 DATA "# OF EXEMPTIONS",0,15 292 DATA "# OF HOURS WORKED",1,60 293 DATA "HOURLY RATE OF PAY",.01,9.99 294 DATA "AMOUNT OF INSURANCE",0,5 295 DATA "# OF BONDS PURCHASED",0,5 300 IF LEFT(A9$,1)<>"C"THEN 309 301 INPUTLINE #7,A8$:A8=0:A8$=LEFT(A8$,LEN(A8$)-2)+",": RESTORE: FOR I%=1%TO6%: READ A$,A3,A4 302 A7=INSTR(A8+1,A8$,","):Y(I%)=VAL(MID(A8$,A8+1,A7-A8-1)):A8=A7 303 IF((I%=1%ORI%=2%ORI%=6%)ANDY(I%)<>INT(Y(I%)))ORY(I%)A4 THEN &"ILLEGAL DATUM ON CARD":CLOSE7:GOTO1100 304 NEXT I% : GOTO 390 309 RESTORE : FOR I%=1%TO 6%: READ A$,A3,A4 310 &A$;:INPUT Y(I%) 315 IF (( I%=1%OR I%=2%OR I%=6%)AND Y(I%)<>INT(Y(I%)))OR Y(I%)A4 THEN &"ILLEGAL DATUM": GOTO 310 320 NEXT I% 390 Y(4)=Y(4)*100 : Y(5)=Y(5)*100 392 IF Y(3)>40 THEN 420 400 A(1)=Y(3)*Y(4) 410 GOTO 430 420 A(1)=40*Y(4)+((Y(3)-40)*1.5*Y(4)) 430 T=A(1)-(Y(2)*14.40)*100 450 IF T<=0 THEN A(2)=0: GOTO470 460 A(2)=.14*T 470 A(3)=.058*A(1) 480 A(4) = Y (5) 490 A(5)=375*Y(6) 500 A (6) = A (2) + A(3) + A (4) + A (5) 510 A(7)=A(1)-A(6) 520 T (I%)= T (I%) + A ( I%) FOR I%= 1% TO 7% 525 IF Y(1)>9 THEN Q%=1% ELSE Q%=0% 530 ,TAB(12-Q%);Y(1);TAB(20);Y(2);TAB(27);FNR$(Y(3)*100,5);TAB(35);FNR$(Y(4),5);TAB(44); 532  FNR$(A(1),8);TAB(59);FNR$(A(2),6);TAB(68); FNR$(A(3),6);TAB(76);FNR$(A(4),5); 534 TAB(83);FNR$(A(5),6);TAB(91);FNR$(A(6),7);TAB(100);FNR$(A(7),7) 535 IF LEFT(A9$,1)<>"C" THEN & 540 GOTO 300 1000 IF ERR=11% THEN CLOSE 7 : RESUME 1010 1005 ON ERROR GOTO 0% 1010 & #2 TAB (44); "--------"; TAB (58);"-------"; TAB (67);"------"; TAB (75);"------"; TAB (83);"------"; TAB (91);"-------"; TAB (100);"-------":: 1020 TAB(15);"TOTALS";TAB(44);FNR$(T(1),8);TAB(59);FNR$(T(2),6); TAB(68);FNR$(T(3),5);TAB(76); 1030  FNR$(T(4),5);TAB(83);FNR$(T(5),6);TAB(91);FNR$(T(6),7); TAB(100);FNR$(T(7),7) 1040  CHR$(26);: CLOSE 2 1050 &:&"OUTPUT FOR KB:";FNK$;"IS READY FOR DUMPING":& 1100 END