Source Code
1 FAST
2 DIM E$(50,60)
3 LET R1=0
10 FAST
15 CLS
20 POKE 16418,0
30 LET A$="\: \@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\@@\ :"
40 FOR N=1 TO 23
50 PRINT A$
60 NEXT N
70 PRINT AT 0,0;"\:'\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\':";AT 23,0;"\:.\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.:"
80 FOR N=1 TO 22
90 PRINT AT 2,6;"% %E%M%P%L%O%Y%E%E% %P%A%Y%R%O%L%L% "
100 PRINT AT 5,2;" TO ENTER EMPLOYEE INFO %1"
110 PRINT AT 7,2;" TO CALCULATE WEEKLY WAGES %2"
120 PRINT AT 9,2;" TO EDIT EMPLOYEE INFO %3"
130 PRINT AT 11,2;" TO SAVE FILE ON TAPE %4"
140 PRINT AT 13,2;" TO SET TAX PARAMETERS %5"
150 PRINT AT 15,2;" TO CLEAR HOURS %6"
160 PRINT AT 17,2;" TO INITIALIZE PROGRAM %7"
170 LET AA=0
199 SLOW
200 GOSUB 9000
210 IF CODE B$<29 OR CODE B$>35 THEN GOTO 200
220 FAST
225 IF B$="7" THEN RUN
230 CLS
240 POKE 16418,2
250 GOTO VAL B$*1000
\n1000 SCROLL
\n1010 SCROLL
\n1020 PRINT "IF NO MORE EMPLOYEES ARE TO BE"
\n1030 SCROLL
\n1040 PRINT "ENTERED, JUST PRESS ENTER FOR"
\n1050 SCROLL
\n1060 PRINT "THE LAST NAME:::"
\n1070 FOR N=1 TO 14
\n1075 LET O=0
\n1080 SCROLL
\n1090 NEXT N
\n1100 FOR N=R1+1 TO 100
\n1110 SCROLL
\n1120 SCROLL
\n1130 PRINT "LAST NAME OF EMPLOYEE NO. ";N
\n1140 SCROLL
\n1150 SLOW
\n1160 INPUT N$
\n1170 FAST
\n1180 IF N$="" THEN GOTO 1900
\n1190 SCROLL
\n1200 PRINT ,N$
\n1210 SCROLL
\n1220 SCROLL
\n1230 PRINT "FIRST, MID NAME OF EMPLOYEE?"
\n1240 SCROLL
\n1250 SLOW
\n1260 INPUT F$
\n1270 FAST
\n1280 SCROLL
\n1290 PRINT ,F$
\n1300 SCROLL
\n1310 SCROLL
\n1320 PRINT "EMPLOYEE NUMBER?"
\n1330 SLOW
\n1340 INPUT P$
\n1350 FAST
\n1360 SCROLL
\n1370 PRINT ,P$
\n1380 SCROLL
\n1390 SCROLL
\n1400 PRINT "TOTAL HOURS WORKED DURING WEEK"
\n1410 SLOW
\n1420 INPUT H
\n1430 FAST
\n1440 IF H<=40 THEN LET H$=STR$ H
\n1445 IF H>40 THEN LET H$="40"
\n1450 IF H>40 THEN LET O=H-40
\n1455 LET O$=STR$ O
\n1460 SCROLL
\n1470 IF H<=40 THEN PRINT "REG HOURS = ";H
\n1480 IF H>40 THEN PRINT "REG HOURS = 40, OT HOURS = ";O
\n1490 SCROLL
\n1500 SCROLL
\n1510 PRINT "HOURLY WAGE?";
\n1520 SCROLL
\n1530 SLOW
\n1540 INPUT W
\n1550 FAST
\n1555 LET W$=STR$ W
\n1560 PRINT ,W
\n1570 SCROLL
\n1580 SCROLL
\n1581 PRINT "TOTAL NON-TAX DEDUCTIONS?"
\n1582 SLOW
\n1583 INPUT D$
\n1584 FAST
\n1585 IF D$="" THEN LET D$="0"
\n1586 SCROLL
\n1587 PRINT ,D$
\n1588 SCROLL
\n1589 SCROLL
\n1590 PRINT "DO YOU WANT TO SEE EMPLOYEE PAY?"
\n1600 SLOW
\n1610 INPUT Y$
\n1620 FAST
\n1625 GOSUB 8000
\n1630 IF Y$(1)="Y" THEN GOSUB 7000
\n1640 CLS
\n1650 NEXT N
\n1660 STOP
\n1900 LET R1=N-1
\n1910 GOTO 10
\n2000 LET AA=1
\n2010 GOTO 3000
\n2020 PRINT AT 21,0;
\n2030 GOTO 5250
\n3000 PRINT ,,"WHAT IS THE EMPLOYEE NUMBER?"
\n3010 SLOW
\n3020 INPUT P$
\n3030 FAST
\n3040 CLS
\n3050 FOR N=1 TO R1
\n3060 IF P$=E$(N, TO LEN P$) THEN GOTO 3100
\n3065 NEXT N
\n3070 PRINT AT 10,0;P$;" IS NOT IN THE FILE :::"
\n3080 GOTO 5226
\n3100 GOSUB 3500
\n3105 IF AA=1 THEN GOTO 2020
\n3110 PRINT ,,"1 %L%A%S%T% %N%A%M%E","5 %W%A%G%E"
\n3120 PRINT ,,"2 %F%I%R%S%T% %N%A%M%E","6 %R%E%G%.% %H%O%U%R%S"
\n3130 PRINT ,,"3 %E%M%P%.% %N%O%.","7 %O%.%T%.% %H%O%U%R%S",,,"4 %X%T%R%A% %D%E%D%.","8 %R%E%T%.% %T%O% %M%E%N%U"
\n3140 SLOW
\n3150 GOSUB 9000
\n3160 FAST
\n3170 IF CODE B$<29 OR CODE B$>36 THEN GOTO 3140
\n3180 CLS
\n3190 GOTO 3180+(20*VAL B$)
\n3200 PRINT ,,"OLD LAST NAME IS ";E$(N,7 TO 18),,,"TYPE IN NEW LAST NAME ::"
\n3202 SLOW
\n3204 INPUT B$
\n3206 FAST
\n3208 LET E$(N,7 TO 18)=B$
\n3210 CLS
\n3212 GOTO 3100
\n3220 PRINT ,,"OLD FIRST NAME IS ";E$(N,19 TO 30),,,"TYPE IN NEW FIRST NAME ::"
\n3222 SLOW
\n3224 INPUT B$
\n3226 FAST
\n3228 LET E$(N,19 TO 30)=B$
\n3230 GOTO 3210
\n3240 PRINT ,,"OLD EMP. NO. IS ";E$(N, TO 6),,,"TYPE IN NEW EMP. NO. ::"
\n3242 SLOW
\n3244 INPUT B$
\n3246 FAST
\n3248 LET E$(N, TO 6)=B$
\n3250 GOTO 3210
\n3260 PRINT ,,"OLD XTRA DED. ARE ";E$(N,51 TO 60),,,"TYPE IN NEW XTRA DED. ::"
\n3262 SLOW
\n3264 INPUT B$
\n3266 FAST
\n3268 LET E$(N,51 TO 60)=B$
\n3270 GOTO 3210
\n3280 PRINT ,,"OLD WAGES ARE ";E$(N,31 TO 35),,,"TYPE IN NEW WAGES ::"
\n3282 SLOW
\n3284 INPUT B$
\n3286 FAST
\n3288 LET E$(N,31 TO 35)=B$
\n3290 GOTO 3210
\n3300 PRINT ,,"OLD REG..HOURS ARE ";E$(N,36 TO 42),,,"TYPE IN NEW REG. HOURS ::"
\n3302 SLOW
\n3304 INPUT B$
\n3306 FAST
\n3308 LET E$(N,36 TO 42)=B$
\n3310 GOTO 3210
\n3320 PRINT ,,"OLD O.T..HOURS ARE ";E$(N,43 TO 50),,,"TYPE IN NEW O.T. HOURS ::"
\n3322 SLOW
\n3324 INPUT B$
\n3326 FAST
\n3328 LET E$(N,43 TO 50)=B$
\n3330 GOTO 3210
\n3340 CLS
\n3350 GOTO 10
\n3500 PRINT ,,"EMPLOYEE NO.",E$(N, TO 6)
\n3510 PRINT "NAME - ";E$(N,19 TO 30);" ";E$(N,7 TO 18)
\n3520 PRINT "HOURLY WAGE";
\n3530 LET X=VAL E$(N,31 TO 35)
\n3540 GOSUB 9500
\n3550 LET W$=X$
\n3560 PRINT TAB 32-LEN W$;W$
\n3570 PRINT "REGULAR HOURS",E$(N,36 TO 42)
\n3580 IF VAL E$(N,43 TO 50)<>0 THEN PRINT "OVERTIME HOURS",E$(N,43 TO 50)
\n3590 LET GP=VAL E$(N,31 TO 35)*(VAL E$(N,36 TO 42)+(1.5*(VAL E$(N,43 TO 50))))
\n3600 LET X=GP
\n3610 GOSUB 9500
\n3620 PRINT "GROSS PAY -";TAB 32-LEN X$;X$
\n3625 LET GP=VAL X$
\n3630 PRINT "FED. WITH. TAX";
\n3640 LET FT=GP*.01*FWT
\n3650 LET X=FT
\n3670 GOSUB 9500
\n3680 PRINT TAB 32-LEN X$;X$
\n3685 LET FT=VAL X$
\n3690 PRINT "FICA";
\n3700 LET FICA=GP*.01*SS
\n3710 LET X=FICA
\n3720 GOSUB 9500
\n3730 PRINT TAB 32-LEN X$;X$
\n3735 LET FICA=VAL X$
\n3737 LET SWT=0
\n3740 IF ST=0 THEN GOTO 3800
\n3750 PRINT "STATE WITH. TAX";
\n3760 LET SWT=GP*.01*ST
\n3770 LET X=SWT
\n3780 GOSUB 9500
\n3790 PRINT TAB 32-LEN X$;X$
\n3795 LET SWT=VAL X$
\n3800 PRINT "EXTRA DEDUCTIONS -";
\n3810 LET ED=VAL E$(N,51 TO 60)
\n3815 LET X=ED
\n3820 GOSUB 9500
\n3830 PRINT TAB 32-LEN X$;X$
\n3835 LET ED=VAL X$
\n3840 PRINT ,,"NET PAY -";
\n3850 LET NP=GP-FT-FICA-SWT-ED
\n3860 LET X=NP
\n3870 GOSUB 9500
\n3880 PRINT TAB 32-LEN X$;X$
\n3890 RETURN
\n4000 PRINT AT 10,4;"WHAT IS THE FILE NAME?"
\n4010 INPUT N$
\n4020 PRINT AT 12,0;"SET UP THE TAPE RECORDER AND PRESS THE ENTER KEY TO SAVE :::"
\n4030 INPUT B$
\n4040 SAVE N$
\n4050 GOTO 10
\n5000 SCROLL
\n5010 PRINT "WHAT PERCENTAGE FOR FED W. TAX?"
\n5020 SCROLL
\n5030 SLOW
\n5040 INPUT FWT
\n5050 FAST
\n5060 SCROLL
\n5070 PRINT ,FWT;" \ '/\. "
\n5080 SCROLL
\n5090 SCROLL
\n5100 PRINT "WHAT PERCENTAGE FOR SOC SEC?"
\n5105 SCROLL
\n5110 SLOW
\n5120 INPUT SS
\n5130 FAST
\n5140 SCROLL
\n5150 PRINT ,SS;" \ '/\. "
\n5160 SCROLL
\n5170 SCROLL
\n5180 PRINT "WHAT PER. FOR STATE INC. TAX?"
\n5185 SCROLL
\n5190 SLOW
\n5200 INPUT ST
\n5210 FAST
\n5220 SCROLL
\n5225 PRINT ,ST;" \ '/\. "
\n5226 SCROLL
\n5230 SCROLL
\n5240 SCROLL
\n5250 PRINT "PRESS ENTER TO RETURN TO MENU ::"
\n5260 INPUT A$
\n5270 GOTO 10
\n6000 FOR N=1 TO R1
\n6010 LET E$(N,36 TO 50)="0 0"
\n6020 NEXT N
\n6030 PRINT AT 10,0;"HOURS CLEARED - READY FOR NEXT WEEK"
\n6050 GOTO 5226
\n7000 CLS
\n7010 GOSUB 3500
\n7020 PRINT AT 21,0;"PRESS ENTER TO CONTINUE :::"
\n7030 INPUT B$
\n7040 RETURN
\n8000 LET E$(N, TO 6)=P$
\n8010 LET E$(N,7 TO 18)=N$
\n8020 LET E$(N,19 TO 30)=F$
\n8030 LET E$(N,31 TO 35)=W$
\n8040 LET E$(N,36 TO 42)=H$
\n8050 LET E$(N,43 TO 50)=O$
\n8060 LET E$(N,51 TO 60)=D$
\n8070 RETURN
\n9000 PRINT AT 21,5;" ENTER ONE OF ABOVE ";AT 21,5;"% %E%N%T%E%R% %O%N%E% %O%F% %A%B%O%V%E% "
\n9005 LET B$=INKEY$
\n9010 IF B$="" THEN GOTO 9000
\n9020 RETURN
\n9500 LET X=INT (100*X+.05)/100
\n9510 LET X$=STR$ X
\n9520 IF LEN X$=1 THEN LET X$=X$+".00"
\n9525 IF LEN X$=2 THEN LET X$=X$+".0"
\n9530 IF X$(LEN X$-1)="." THEN LET X$=X$+"0"
\n9540 IF X$(LEN X$-2)<>"." THEN LET X$=X$+".00"
\n9550 IF LEN X$>6 THEN LET X$=X$( TO LEN X$-7)+","+X$(LEN X$-6 TO LEN X$)
\n9560 RETURN