Plan your taxes for 1983. Might be able to update for the present.
Content
Source Code
1 REM TAX ***PLANER***
2 REM ...COPYRIGHT..1982.....
3 REM ...BY..H.GESCHWIND.....
100 REM ***INITIALIZE***
110 DIM D$(26,18)
120 DIM S(26)
130 DIM T(26)
135 LET M$="PRESS ANY KEY TO CONTINUE"
140 LET P$="ENTER"
150 LET X$="--------------------------------"
160 LET Y$=" 1982"
170 LET Z$=" 1983"
180 LET V$="INCOME"
190 LET W$="DEDUCTIONS"
195 LET H$="---->"
200 LET S=0
210 LET M=0
220 LET N=0
225 LET F$=" ENTER FILING STATUS:-->1 FOR SINGLE,-->2 FOR MARRIED,-->3 FORMARRIED FILING SEPARATELY"
240 GO SUB 1000
499 REM ***MENU***
500 PRINT AT 3,6;" TAX PLANNER"
510 PRINT AT 6,4;"-->PRESS DESIRED FUNCTION"
520 PRINT AT 8,6;"1. ENTER VALUES"
525 PRINT AT 9,6;"2. REVIEW RESULTS"
530 PRINT AT 10,6;"3. CLEAR DATA"
570 PRINT AT 11,6;"4. SAVE DATA"
580 PRINT AT 12,6;"5. ENTER 1983 VALUES ONLY"
590 PAUSE 4E4
600 LET K$=INKEY$
610 IF K$<"1" OR K$>"5" THEN GO TO 690
620 IF K$="1" THEN GO TO 3000
622 IF K$="2" THEN GO TO 6000
624 IF K$="3" THEN GO TO 2000
626 IF K$="4" THEN GO TO 4000
627 IF K$="5" THEN GO TO 3500
690 GO TO 500
998 STOP
999 REM ***DESCRIPTIONS***
1000 CLS
1005 PRINT AT 21,5;"LOADING DESCRIPTIONS"
1020 LET D$(1)="SALARIES, WAGES"
1021 LET D$(2)="DIVIDENDS"
1022 LET D$(3)="INTEREST INCOME"
1023 LET D$(4)="NET BUS. INCOME"
1024 LET D$(5)="OTHER GAINS/LOSSES"
1025 LET D$(7)="PENSIONS,ANNUITIES"
1026 LET D$(8)="RENTS, ROYALTIES"
1027 LET D$(9)="PARTNERSJIP INC."
1028 LET D$(10)="TRUST/ESTATE INC."
1029 LET D$(11)="CHAPTER""S""CORP."
1030 LET D$(12)="OTHER INCOME"
1031 LET D$(13)="INCOME CREDITS(*)"
1032 LET D$(14)="ADJ. GROSS INCOME"
1034 LET D$(15)="MEDICAL EXPENSES"
1035 LET D$(16)="TAXES"
1036 LET D$(17)="CONTRIBUTIONS"
1037 LET D$(18)="INTEREST EXPENSES"
1038 LET D$(19)="CASUALTY LOSS,MISC."
1039 LET D$(20)="TOTAL DEDUCTIONS"
1040 LET D$(21)="ZERO BRACKET"
1041 LET D$(22)="NET DEDUCTIONS"
1042 LET D$(23)="INC.BEF.EXEMPTIONS"
1043 LET D$(24)="EXEMPTIONS"
1044 LET D$(25)="TAXABLE INCOME"
1045 LET D$(26)="INCOME TAX"
1050 CLS
1060 RETURN
1998 STOP
1999 REM ***CLEAR***
2000 CLS
2010 PRINT AT 6,4;"-->PRESS DESIRED FUNCTION"
2020 PRINT AT 8,6;"1. DELETE 1982 VALUES"
2030 PRINT AT 9,6;"2. DELETE 1983 VALUES"
2050 PAUSE 4E4
2060 LET K$=INKEY$
2070 IF K$<"1" OR K$>"2" THEN GO TO 2090
2072 IF K$="1" THEN GO TO 2100
2074 IF K$="2" THEN GO TO 2300
2090 GO TO 2010
2100 DIM S(26)
2101 LET S=0
2105 CLS
2110 GO TO 500
2300 DIM T(26)
2301 LET S=0
2305 CLS
2310 GO TO 500
2999 REM ***82 VALUES***
3000 CLS
3001 LET M=0
3002 LET N=0
3003 LET I=0
3005 PRINT F$
3006 INPUT S
3007 IF S<1 OR S>3 THEN GO TO 3005
3008 CLS
3010 FOR I=1 TO 13
3015 PRINT AT 10,(31-LEN V$)/2;V$
3016 PRINT X$
3020 PRINT P$
3025 PRINT D$(I)+" FOR "+Y$
3030 INPUT S(I)
3035 IF S(13) THEN LET S(13)=-1*S(13)
3036 PRINT H$; S(I)
3037 PAUSE 180
3038 CLS
3039 LET M=M+S(I)
3040 NEXT I
3041 LET S(14)=M
3042 LET M=0
3050 PRINT AT 10,(31-LEN W$)/2;W$
3051 PRINT X$
3052 PRINT P$+" FULL AMOUNT OF MEDICAL INSURANCE PREMIUMS"
3053 INPUT I
3054 PRINT H$;I
3055 PAUSE 180
3056 CLS
3058 LET I=I/2
3060 IF I>150 THEN LET I=150
3062 PRINT AT 10,(31-LEN W$)/2;W$
3064 PRINT X$
3066 PRINT P$
3068 PRINT D$(15)+" FOR "+Y$
3102 INPUT N
3103 PRINT H$;N
3104 LET M=INT (3/100*S(14)+.5)
3105 LET S(15)=N-M
3106 IF S(15)<=0 THEN LET S(15)=0+I
3107 LET M=0
3108 LET N=0
3109 CLS
3110 FOR I=16 TO 19
3111 PRINT AT 10,(31-LEN W$)/2;W$
3112 PRINT X$
3120 PRINT P$
3125 PRINT D$(I)+" FOR "+Y$
3130 INPUT S(I)
3140 PRINT H$;S(I)
3150 PAUSE 180
3160 CLS
3170 LET M=M+S(I)
3180 NEXT I
3185 IF S(15) AND S(16)=0 AND S(18)=0 AND S(19)=0 THEN LET S(17)=S(17)/4
3190 LET S(20)=M+S(15)
3192 IF S(15)=0 AND S(16)=0 AND S(18)=0 AND S(19)=0 THEN LET S(2)=S(17)
3195 LET M=0
3200 IF S=1 THEN LET S(21)=2300
3205 IF S=2 THEN LET S(21)=3400
3210 IF S=3 THEN LET S(21)=1700
3215 IF S=3 THEN LET S=1
3220 LET S(22)=S(20)-S(21)
3225 IF S(22)<=0 THEN LET S(22)=0
3230 LET S(23)=S(14)-S(22)
3240 PRINT "ENTER NUMBER OF EXEMPTIONS"
3250 INPUT M
3255 IF M<1 THEN LET M=1
3260 LET S(24)=M*1000
3265 LET M=0
3270 LET S(25)=S(23)-S(24)
3275 CLS
3280 GO SUB 5000
3499 REM ***83 VALUES***
3500 CLS
3501 LET M=0
3502 LET N=0
3503 LET I=0
3505 PRINT F$
3506 INPUT S
3507 IF S<1 OR S>3 THEN GO TO 3505
3508 CLS
3510 FOR I=1 TO 13
3515 PRINT AT 10,(31-LEN V$)/2;V$
3516 PRINT X$
3520 PRINT P$
3525 PRINT D$(I)+" FOR "+Z$
3538 INPUT T(I)
3539 IF T(13) THEN LET T(13)=-1*T(13)
3540 PRINT H$;T(I)
3550 PAUSE 180
3560 CLS
3570 LET N=N+T(I)
3580 NEXT I
3590 LET T(14)=N
3595 LET N=0
3596 PRINT AT 10,(31-LEN W$)/2;W$
3597 PRINT X$
3598 PRINT P$
3599 PRINT D$(15)+" FOR "+Z$
3602 INPUT N
3603 PRINT H$;N
3604 LET M=INT (5/100*T(14)+.5)
3605 LET T(15)=N-M
3606 IF T(15)<=0 THEN LET T(15)=0
3607 LET M=0
3608 LET N=0
3609 CLS
3610 FOR I=16 TO 19
3611 PRINT AT 10,(31-LEN W$)/2;W$
3612 PRINT X$
3620 PRINT P$
3625 PRINT D$(I)+" FOR "+Z$
3630 INPUT T(I)
3640 PRINT H$;T(I)
3650 PAUSE 180
3660 CLS
3670 LET N=N+T(I)
3680 NEXT I
3685 IF T(15)=0 AND T(16)=0 AND T(18)=0 AND T(19)=0 THEN LET T(17)=T(17)/4
3690 LET T(20)=N+T(15)
3692 IF T(15)=0 AND T(16)=0 AND T(18)=0 AND T(19)=0 THEN LET T(20)=T(17)
3695 LET N=0
3700 IF S=1 THEN LET T(21)=2300
3705 IF S=2 THEN LET T(21)=3400
3710 IF S=3 THEN LET T(21)=1700
3715 IF S=3 THEN LET S=1
3717 LET M=0
3718 LET N=0
3720 LET T(22)=T(20)-T(21)
3725 IF T(22)<=0 THEN LET T(22)=0
3730 LET T(23)=T(14)-T(22)
3740 PRINT "ENTER NUMBER OF EXEMPTIONS"
3750 INPUT M
3755 IF M<1 THEN LET M=1
3760 LET T(24)=M*1000
3765 LET M=0
3770 LET T(25)=T(23)-T(24)
3780 GO SUB 5500
3785 GO TO 500
3990 STOP
3999 REM ***SAVE***
4000 CLS
4020 PRINT AT 8,7;"PREPARE RECORDER"
4030 PRINT AT 10,3;M$
4040 PAUSE 4E4
4050 CLS
4060 SAVE "TAX PLANNER"
4070 GO TO 500
4999 REM ***82 TABLE***
5000 CLS
5010 IF S=1 THEN LET B=13
5011 IF S=2 THEN LET B=12
5040 DIM A(B)
5050 DIM B(B)
5060 DIM C(B)
5065 PRINT AT 21,0;"LOADING TAX TABLE"
5070 FOR I=1 TO B
5075 GO SUB 6900
5080 NEXT I
5350 GO TO 5399
5361 STOP
5399 REM ***82 CALC***
5400 LET S(26)=0
5420 IF S(25)<A(1) THEN RETURN
5430 FOR E=2 TO B
5440 IF S(25)<A(E) THEN GO TO 5460
5450 NEXT E
5460 LET E=E-1
5470 LET S(26)=INT ((B(E)+(S(25)-A(E))*C(E)/100)+.5)
5480 LET B=0
5490 RETURN
5491 STOP
5500 CLS
5510 REM ***83 TABLE***
5535 LET B=13
5540 DIM D(B)
5550 DIM E(B)
5560 DIM F(B)
5565 PRINT AT 21,0;"LOADING TAX TABLE"
5570 FOR I=1 TO B
5580 GO SUB 7400
5690 NEXT I
5770 GO TO 5800
5771 STOP
5799 REM ***83 CALC***
5800 LET T(26)=0
5810 IF T(25)<D(1) THEN RETURN
5820 FOR E=2 TO B
5830 IF T(25)<D(E) THEN GO TO 5860
5840 NEXT E
5860 LET E=E-1
5870 LET T(26)=INT ((E(E)+(T(25)-D(E))*F(E)/100)+.5)
5890 LET B=0
5895 CLS
5900 GO TO 500
5999 REM ***PRINT RESULTS***
6000 CLS
6010 PRINT V$;TAB 20;Y$;TAB 27;Z$
6015 PRINT X$
6020 FOR I=1 TO 13
6022 PRINT D$(I);
6024 LET V=S(I)
6026 LET C=24
6028 GO SUB 9500
6030 LET V=T(I)
6032 LET C=31
6034 GO SUB 9500
6035 NEXT I
6040 PRINT X$
6042 PRINT D$(14);
6044 LET V=S(14)
6046 LET C=24
6048 GO SUB 9500
6050 LET V=T(14)
6051 LET C=31
6052 GO SUB 9500
6053 PRINT AT 21,0;M$
6055 IF INKEY$="" THEN GO TO 6055
6056 IF INKEY$="Z" THEN COPY
6059 CLS
6060 PRINT W$;TAB 20;Y$;TAB 27;Z$
6062 PRINT X$
6064 FOR I=15 TO 19
6066 PRINT D$(I);
6068 LET V=S(I)
6070 LET C=24
6072 GO SUB 9500
6074 LET V=T(I)
6076 LET C=31
6078 GO SUB 9500
6080 NEXT I
6100 PRINT X$
6110 FOR I=20 TO 26
6120 PRINT D$(I);
6130 LET V=S(I)
6140 LET C=24
6150 GO SUB 9500
6160 LET V=T(I)
6170 LET C=31
6180 GO SUB 9500
6185 PRINT X$
6200 NEXT I
6890 PRINT AT 21,3;M$
6892 IF INKEY$="" THEN GO TO 6892
6894 IF INKEY$="Z" THEN COPY
6896 CLS
6897 GO TO 500
6900 REM ***82 TAX***
6910 IF S=1 THEN GO TO 7000
6920 IF S=2 THEN GO TO 7200
6925 RETURN
7000 LET A(1)=2500
7001 LET A(2)=3400
7002 LET A(3)=4400
7003 LET A(4)=6500
7004 LET A(5)=8500
7005 LET A(6)=10800
7006 LET A(7)=12900
7007 LET A(8)=15000
7008 LET A(9)=18200
7009 LET A(10)=23500
7010 LET A(11)=28800
7011 LET A(12)=34100
7012 LET A(13)=41500
7013 LET B(1)=0
7014 LET B(2)=132
7015 LET B(3)=272
7016 LET B(4)=608
7017 LET B(5)=948
7018 LET B(6)=1385
7019 LET B(7)=1847
7020 LET B(8)=2330
7021 LET B(9)=3194
7022 LET B(10)=4837
7023 LET B(11)=6692
7024 LET B(12)=8812
7025 LET B(13)=12068
7026 LET C(1)=12
7027 LET C(2)=14
7028 LET C(3)=16
7029 LET C(4)=17
7030 LET C(5)=19
7031 LET C(6)=22
7032 LET C(7)=23
7033 LET C(8)=27
7034 LET C(9)=31
7035 LET C(10)=35
7036 LET C(11)=40
7037 LET C(12)=44
7038 LET C(13)=50
7199 RETURN
7200 LET A(1)=3400
7201 LET A(2)=5500
7202 LET A(3)=7600
7203 LET A(4)=11900
7204 LET A(5)=16000
7205 LET A(6)=20200
7206 LET A(7)=24600
7207 LET A(8)=29900
7208 LET A(9)=35200
7209 LET A(10)=45800
7210 LET A(11)=60000
7212 LET A(12)=85600
7213 LET B(1)=0
7214 LET B(2)=252
7215 LET B(3)=546
7216 LET B(4)=1234
7217 LET B(5)=2013
7218 LET B(6)=2937
7219 LET B(7)=4037
7220 LET B(8)=5574
7221 LET B(9)=7323
7222 LET B(10)=11457
7223 LET B(11)=17705
7224 LET B(12)=30249
7225 LET C(1)=12
7226 LET C(2)=14
7227 LET C(3)=16
7228 LET C(4)=19
7229 LET C(5)=22
7230 LET C(6)=25
7231 LET C(7)=29
7232 LET C(8)=33
7233 LET C(9)=39
7234 LET C(10)=44
7235 LET C(11)=49
7236 LET C(12)=50
7299 RETURN
7400 REM 83 TAX
7410 IF S=1 THEN GO SUB 7500
7420 IF S=2 THEN GO SUB 7600
7425 RETURN
7500 LET D(1)=2300
7501 LET D(2)=3400
7502 LET D(3)=4400
7503 LET D(4)=8500
7504 LET D(5)=10800
7505 LET D(6)=12900
7506 LET D(7)=15000
7507 LET D(8)=18200
7508 LET D(9)=23500
7509 LET D(10)=28800
7510 LET D(11)=34100
7511 LET D(12)=41500
7512 LET D(13)=55300
7513 LET E(1)=0
7514 LET E(2)=121
7515 LET E(3)=251
7516 LET E(4)=866
7517 LET E(5)=1257
7518 LET E(6)=1656
7519 LET E(7)=2097
7520 LET E(8)=2865
7521 LET E(9)=4349
7522 LET E(10)=6045
7523 LET E(11)=7953
7524 LET E(12)=10913
7525 LET E(13)=17123
7527 LET F(1)=11
7528 LET F(2)=13
7529 LET F(3)=15
7530 LET F(4)=17
7531 LET F(5)=19
7532 LET F(6)=21
7533 LET F(7)=24
7534 LET F(8)=28
7535 LET F(9)=32
7536 LET F(10)=36
7537 LET F(11)=40
7538 LET F(12)=45
7539 LET F(13)=50
7598 RETURN
7600 LET D(1)=3400
7601 LET D(2)=5500
7602 LET D(3)=7600
7603 LET D(4)=11900
7604 LET D(5)=16000
7605 LET D(6)=20200
7606 LET D(7)=24600
7607 LET D(8)=29900
7608 LET D(9)=35200
7609 LET D(10)=45800
7610 LET D(11)=60000
7611 LET D(12)=27278
7612 LET D(13)=109400
7613 LET E(1)=0
7614 LET E(2)=231
7615 LET E(3)=504
7616 LET E(4)=1149
7617 LET E(5)=1846
7618 LET E(6)=2644
7619 LET E(7)=3656
7620 LET E(8)=5034
7621 LET E(9)=6624
7622 LET E(10)=10334
7623 LET E(11)=16014
7624 LET E(12)=27278
7625 LET E(13)=38702
7626 LET F(1)=11
7627 LET F(2)=13
7628 LET F(3)=15
7629 LET F(4)=17
7630 LET F(5)=19
7631 LET F(6)=23
7632 LET F(7)=26
7633 LET F(8)=30
7634 LET F(9)=35
7635 LET F(10)=40
7636 LET F(11)=44
7637 LET F(12)=48
7638 LET F(13)=50
7639 RETURN
7999 STOP
9500 REM ***JUSTIFY***
9510 LET XL=INT (ABS V+.005)*SGN V
9540 LET J$=STR$ XL
9550 PRINT TAB (C-LEN J$+1);J$;
9560 RETURN