This program is a comprehensive U.S. federal and state income tax calculator for the 1986 tax year, covering IRS Form 1040 (Pages 1 and 2), Schedule A (itemized deductions including medical, taxes, interest, and contributions), Schedule B (interest income), Schedule W (married couple’s deduction), Ohio state income tax, and city/local tax calculations. The federal tax computation at lines 50–88 uses a bracket interpolation technique, reading tax table data with RESTORE and FOR/NEXT loops across up to 16 brackets depending on filing status (BOX variable), and applies a midpoint averaging method for incomes that fall between bracket boundaries. A machine code routine is called via RANDOMIZE USR 64716 to perform a screen copy (print) operation, suggesting a third-party printer driver is loaded separately from tape as noted in the REM at line 9098. All numeric variables are reset to NOT PI (which evaluates to 0 in Sinclair BASIC) at line 9000 rather than using a simple assignment of 0, and column positioning for right-aligned currency display is handled through a set of subroutines (lines 580–597, 3100–3119, 8980–8986) that calculate the correct AT column based on the magnitude of the value.
Program Structure
The program is organized as a menu-driven suite of tax modules, each occupying a distinct line-number range. Execution begins at line 100 (the main menu) after initialization data is set up at lines 9098–9120. The top-level menu dispatches to the following modules:
| Option | Module | Entry Line |
|---|---|---|
| 1 | 1040 Page 1 | 600 |
| 2 | 1040 Page 2 | 1000 |
| 3 | Schedule A | 2000 |
| 4 | Schedule B | 2500 |
| 6 | Schedule W | 3000 |
| 7 | Ohio Tax | 6000 |
| 8 | City Tax | 7000 |
| 9 | Reset all variables | 9000 |
| 11 | Save to tape | 9900 |
| 12 | STOP | — |
Lines 9099–9116 use a DIM T$(17,29) string array to hold the labels for 1040 Page 2 rows, which are printed en masse at line 1005. This is an efficient way to store fixed display strings without cluttering the PRINT statements.
Federal Tax Bracket Engine (Lines 50–88)
The core tax calculation is a reusable subroutine entered at line 50. The filing status is held in BOX (1–5, corresponding to the five IRS filing categories). The data variable is computed at line 50 to select the correct RESTORE target line from the four DATA blocks at lines 78–92. The formula 74+(BOX*4)-INT((BOX=5)*12) maps each BOX value to a specific DATA line number.
For incomes below $50,000 (and not on Schedule C), the program uses a bracket-averaging technique at lines 58–66: it finds the two nearest $25 or $50 bracket boundaries, computes the tax at each boundary by calling the inner subroutine at line 68 twice, then averages the results and rounds to the nearest cent. This mirrors the IRS Tax Table lookup methodology.
The inner subroutine at lines 68–76 performs a sequential scan through up to 16 tax brackets using a FOR/NEXT loop. Each bracket is defined by three DATA values: upper income limit h1, base tax plus, and marginal rate pct. The formula (l-lo)*pct+plus computes the marginal tax within the bracket. The use of 1E36 as the upper limit of the top bracket is a sentinel value ensuring the last bracket always matches.
A notable detail in the Schedule A DATA at line 82 is the expression 0-((A37>3670) AND (A37<3700))+sch as the base tax for the first married-filing-jointly bracket — this embeds an inline correction for a narrow income range, reflecting an actual quirk in the 1986 tax tables.
Column-Positioning Subroutines
Right-aligning currency values on screen is handled by three variants of a magnitude-testing subroutine, each calibrated for a different screen region:
- Lines 580–586: Right margin at column 29 (for 1040 Page 1, right side)
- Lines 590–597: Negative number column positioning (right margin at column 28)
- Lines 3100–3109 / 3110–3119: Left-panel columns for Schedule W display
- Lines 8980–8986: City tax display columns
Each subroutine sets the variable K by testing R against descending powers of 10, so the final value of K is the correct AT column for right-aligned display. Because the tests are sequential IF statements without ELSE, every condition is evaluated, and the last matching condition wins — a standard Sinclair BASIC idiom for magnitude dispatch.
Machine Code Usage
RANDOMIZE USR 64716 is called at several points (lines 869, 1040, 2042, 2295, 2591, 3056, 6047, 7182, 9930) to invoke a machine code routine at address 64716. The REM at line 9098 — LOAD "TASMAN" CODE : RANDOMIZE USR 64719 — indicates this is a third-party screen dump/printer driver called “TASMAN” (likely the Tasman printer interface software), loaded separately before the BASIC program runs. The slightly different entry points (64716 vs. 64719) suggest different entry points for print and initialization within the same code block.
Variable Reset Strategy
Lines 9000–9023 initialize all program variables to zero using the expression NOT PI. In Sinclair BASIC, PI is non-zero, so NOT PI evaluates to 0 (false). This is functionally identical to LET x=0 but was likely a stylistic or mnemonic choice by the author. All major variable groups are reset in sequence: 1040 variables, city tax variables, Schedule W variables, Ohio tax variables, and Schedule A/B variables.
Ohio Tax Module (Lines 6000–6325)
The Ohio tax calculation at lines 6250–6325 implements a piecewise linear tax function with eight income brackets (up to $5,000, $10,000, $15,000, $20,000, $40,000, $80,000, $100,000, and above). The module computes tax two ways — once with the standard exemption (O6) and once with an additional exemption for dependents (O66) — and selects the more favorable result at lines 6092–6094. The joint filing credit at lines 6150–6200 scales from 20% down to 5% depending on income level.
City Tax Module (Lines 7000–7290)
The city tax module handles up to three income sources (Z1A, Z1B, Z1C) with corresponding withheld amounts, a Schedule J income entry, and configurable tax rates entered as variables T3A (city rate), T5BB (out-of-city rate), and P (tax credit rate). Input is string-based (INPUT R$ at line 7165), using codes like "AA", "AAAA", "BBBB", "CCCC" to select fields — a workaround that allows alphanumeric menu codes where numeric INPUT would be ambiguous. The subroutine at line 8980 provides city-panel-specific column positioning.
Bugs and Anomalies
- Line 836 is referenced from line 628 (
IF A=25 THEN GO TO 836) but does not exist in the listing; this would cause a BASIC error if option 25 is selected from the Page 1 menu. The intended target may be line 830. - Line 700 sets
LET A6=BX— the variableBXis never defined anywhere in the program; this should almost certainly beBOX. As a result,A6(exemption count) would always be set to 0 from this path. - Line 560 is called at line 710 (
GO SUB 560) but does not exist; the intended subroutine is likely at line 580. - Line 905 prints
A12instead ofA13at the capital gains row:PRINT AT 6,K;A12— a copy-paste error that causes the wrong value to display. - Line 7145 contains a syntax anomaly:
PRINT AT 17,22;" ";17,K;T12is missing theATkeyword before the second position, which would cause a syntax error at runtime whenR<0. - Lines 590–591 both test
R<-0andR<-1respectively and setK=27in both cases; since-0 = 0, the first conditionR<-0is equivalent toR<0and will always be true for negative numbers, making line 591 redundant. - The
DIM T$(17,29)at line 9099 and the subsequentGO TO 80at line 9120 indicate this initialization block is intended to run only once at first load (jumping to the DATA block entry, then to line 100 via line 49). Re-runningGO TO 9099would re-dimension the array and clear all string data.
Content
Source Code
49 GO TO 100
50 LET l=A37:LET l=l/100:LET data=74+(BOX*4)- INT ((BOX=5)*12)
52 IF NOT sch AND A37<50000 THEN GO TO 56
54 GO SUB 68:LET tax= INT (l*100+.5)/100:RETURN
56 IF ((BOX=1 OR BOX=4) AND A37 <=2480) OR ((BOX=2 OR BOX=5) AND A37 <=3670) OR ((BOX=3) AND A37 <=1850) THEN LET tax=0:RETURN
58 LET br=25+((l>30)*25):LET b1= INT (A37/br):LET b2=b1*br:LET b3=b2+br:LET l=b2/100
60 GO SUB 68:LET l1=l:LET l=b3/100
62 GO SUB 68:LET l2=l
64 LET tax= INT ((l1+l2)/2+.5)
66 RETURN
68 RESTORE data:LET lo=0
70 FOR f=1 TO 15+(BOX=1)
72 READ h1,plus,pct
74 IF l>lo AND l <=h1 THEN LET l=(l-lo)*pct+plus:RETURN
76 LET lo=h1:NEXT f:RETURN
78 DATA 24.8,0,0,36.7,0,11,47.5,131.9-sch,12,70.1,260.5,14,91.7,576.9,15,116.5,900.9,16,139.2,1297.7,18,161.9,1706.3,20,196.4,2160.3,23
80 DATA 253.6,2953.8,26,310.8,4441,30,368,6157,34,447.8,8101.8,38,596.7,11134.2,42,882.7,17388,48,1E36,31116,50
82 DATA 36.7,0,0,59.4,0-((A37>3670) AND (A37<3700))+sch,11,82,249.7,12,128.4,520.9,14,172.7,1170.5,16,218,1879.3,18,265.5,2694.7,22,322.7,3739.7,25
84 DATA 379.8,5169.7,28,494.2,6768.5,33,647.5,10543.7,38,923.7,16369.1,42,1180.5,27969.5,45,1752.5,39525.5,49,1E36,67553.5,50
86 DATA 18.35,0,0,29.7,0,11,41,124.85,12,64.2,260.45,14,86.35,585.25,16,109,939.65,18,132.75,1347.35,22,161.35,1869.85,25
88 DATA 189.9,2584.85,28,247.1,3384.25,33,323.75,5271.85,38,461.85,8184.55,42,590.25,13984.75,45,876.25,19762.75,49,1E36,33776.75,50
90 DATA 24.8,0,0,47.5,0,11,70.1,249.7,12,93.9,520.9,14,127.3,854.1,17,161.9,1421.9,18,196.4,2044.7,20,253.6,2734.7,24
92 DATA 310.8,4107.5,28,368,5709.1,32,482.4,7539.5,35,653.9,11543.5,42,882.7,18746.5,45,1168.7,29042.5,48,1E36,42770.5,50
100 CLS :POKE 23658,8:POKE 23609,40
103 PRINT AT 0,2;"\{16}\{2}\{20}\{1} \{20}\{0} I R S *1 9 8 6* \{20}\{1} \{20}\{0}\{16}\{0}";'' TAB 6;"SCHEDULE 1040"; TAB 23;"\{16}\{4}ENTER\{16}\{0}"
107 PRINT AT 3,12;"PAGE 1.......1"; TAB 12;"PAGE 2.......2"
111 PRINT AT 6,6;"SCHEDULE -A-.......3";''; TAB 6;"SCHEDULE -B-.......4";'' TAB 6;"SCHEDULE -W-.......6";'' TAB 6;"OHIO TAX...........7";'' TAB 6;"CITY TAX...........8";'' TAB 6;"RESET TO ""0"".......9"
130 PRINT AT 18,0;"\{16}\{2}ALGIS E. GEDRIS JAN. 19, 1987\{16}\{0}"
131 REM PRINT AT 19,0;"\{16}\{1}TASMAN - SG/10 ALL-UP\{16}\{0}"
132 PRINT AT 20,20;"TAPE......11";'"\{16}\{4}OPTION?\{16}\{0}"; TAB 20;"STOP......12"
140 INPUT A
142 IF A=1 THEN GO TO 600
144 IF A=2 THEN GO TO 1000
146 IF A=3 THEN GO TO 2000
148 IF A=4 THEN GO TO 2500
150 IF A=6 THEN GO TO 3000
152 IF A=7 THEN GO TO 6000
155 IF A=8 THEN GO TO 7000
157 IF A=9 THEN GO TO 9000
158 IF A=11 THEN GO TO 9900
159 IF A=12 THEN STOP
160 PRINT INK 2; FLASH 1; AT 21,0;"INVALID":PAUSE 50:GO TO 100
500 REM \{16}\{2}1040 PAGE 1\{16}\{0}
505 CLS
510 PRINT AT 0,5;"\{18}\{1}\{16}\{2}6\{16}\{0}\{18}\{0} EXEMPTION No...";' TAB 2;"// 7 WAGES..........";' TAB 2;"/ 8 INTEREST.......";' TAB 2;"/ 9 DIVIDENDS......";' TAB 2;"I 10 REFUNDS(TAX)..";' TAB 2;"N 12 BUSINESS INCOME";' TAB 2;"C 13 CAPITAL GAIN...";' TAB 2;"O 14 40% CAP GAIN...";' TAB 2;"M 15 SUPLEMENT GAIN.";' TAB 2;"E 16 TAXLE PENSIONS.";' TAB 2;"/ 17 PENSION ROLLOV.";' TAB 2;"/ 18 RENTS.........."
534 PRINT AT 12,2;"//22 OTHER INCOME...";' TAB 4;"23 TOTAL..........";' TAB 4;"25 BUSINESS EXPENC";' TAB 4;"26 IRA DEDUCTION..";' TAB 4;"28 PENALTY........";' TAB 4;"30 MARRIED COUPLE.";' TAB 4;"31 TOTAL ADJUST...";' TAB 4;"32 GROSS INCOME...";' TAB 10;"\{16}\{4}BALANCE..\{16}\{0}2 \{16}\{4}1040 Pg2.\{16}\{0}3";' TAB 10;"\{16}\{4}C0PY.....\{16}\{0}4 \{16}\{4}RETURN...\{16}\{0}5"
554 PRINT AT 6,0;"1"'"0"'"4"'"0"''"P"'"A"'"G"'"E"''"1"
575 GO TO 603
580 IF R<1000000 THEN LET K=23
581 IF R<100000 THEN LET K=24
582 IF R<10000 THEN LET K=25
583 IF R<1000 THEN LET K=26
584 IF R<100 THEN LET K=27
585 IF R<10 THEN LET K=28
586 RETURN
590 IF R<-0 THEN LET K=27
591 IF R<-1 THEN LET K=27
592 IF R<-10 THEN LET K=26
593 IF R<-100 THEN LET K=25
594 IF R<-1000 THEN LET K=24
595 IF R<-10000 THEN LET K=23
596 IF R<-100000 THEN LET K=22
597 RETURN
601 CLS
602 GO SUB 510
603 GO SUB 875
604 PRINT INK 4; AT 21,0;"OPTION "
605 INPUT A
611 IF A=2 THEN GO TO 9500
612 IF A=3 THEN GO TO 1000
613 IF A=4 THEN GO TO 869
614 IF A=5 THEN GO TO 100
615 IF A=6 THEN GO TO 700
616 IF A=7 THEN GO TO 710
617 IF A=8 THEN GO TO 720
618 IF A=9 THEN GO TO 730
619 IF A=10 THEN GO TO 740
620 IF A=12 THEN GO TO 750
621 IF A=13 THEN GO TO 760
622 IF A=14 THEN GO TO 770
623 IF A=15 THEN GO TO 780
624 IF A=16 THEN GO TO 790
625 IF A=17 THEN GO TO 800
626 IF A=18 THEN GO TO 810
627 IF A=22 THEN GO TO 820
628 IF A=25 THEN GO TO 836
629 IF A=26 THEN GO TO 840
630 IF A=28 THEN GO TO 850
633 PRINT AT 21,0;"\{18}\{1}\{19}\{1}\{16}\{2}INVALID\{16}\{0}\{18}\{0}\{18}\{0}"
634 PAUSE 50:GO TO 604
700 PRINT AT 0,24;"\{16}\{4}NUMBER\{16}\{0}"
702 INPUT BOX:LET A6=BX
704 PRINT AT 0,24;" "
705 PRINT AT 0,28;A6:GO TO 605
710 PRINT AT 1,22;"\{16}\{4}YOUR INCOM\{16}\{0}":INPUT W1:PRINT AT 1,22;"\{16}\{4}WIFE INCOM\{16}\{0}":INPUT W11:LET A7=W1+W11:PRINT AT 1,22;" ":LET R=A7:GO SUB 560:PRINT AT 1,K;A7:GO TO 605
720 PRINT AT 2,22;"\{16}\{4}\{16}\{0} \{16}\{4}AMOUNT\{16}\{0} ":INPUT B:LET A8=A8+B:PRINT AT 2,22;" ":LET R=A8:GO SUB 580:PRINT AT 2,K;A8:GO TO 605
730 PRINT AT 3,22;"\{16}\{4}\{16}\{0} \{16}\{4}AMOUNT\{16}\{0} ":INPUT B:LET A9=A9+B:PRINT AT 3,22;" ":LET R=A9:GO SUB 580:PRINT AT 3,K;A9:GO TO 605
740 PRINT AT 4,22;"\{16}\{4}\{16}\{0} \{16}\{4}AMOUNT\{16}\{0} ":INPUT B:LET A10=A10+B:PRINT AT 4,22;" ":LET R=A10:GO SUB 580:PRINT AT 4,K;A10:GO TO 605
750 PRINT AT 5,22;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT B:LET A12=A12+B:PRINT AT 5,22;" ":LET R=A12:GO SUB 580:PRINT AT 5,K;A12:GO TO 605
760 PRINT AT 6,22;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT B:LET A13=A13+B:PRINT AT 6,22;" ":LET R=A13:GO SUB 580:PRINT AT 6,K;A13:GO TO 605
770 PRINT AT 7,22;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT B:LET A14=A14+B:PRINT AT 7,22;" ":LET R=A14:GO SUB 580:PRINT AT 7,K;A14:GO TO 605
780 PRINT AT 8,22;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT B:LET A15=A15+B:PRINT AT 8,22;" ":LET R=A15:GO SUB 580:PRINT AT 8,K;A15:GO TO 605
790 PRINT AT 9,22;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT B:LET A16=A16+B:PRINT AT 9,22;" ":LET R=A16:GO SUB 580:PRINT AT 9,K;A16:GO TO 605
800 PRINT AT 10,22;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT B:LET A17=A17+B:PRINT AT 10,22;" ":LET R=A17:GO SUB 580:PRINT AT 10,K;A17:GO TO 605
810 PRINT AT 11,22;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT B:LET A18=A18+B:PRINT AT 11,22;" ":LET R=A18:GO SUB 815:PRINT AT 11,K;A18:GO TO 605
815 IF A18 >=0 THEN GO SUB 580
816 IF A18<0 THEN GO SUB 590
817 RETURN
820 PRINT AT 12,22;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT B:LET A22=A22+B:PRINT AT 12,22;" ":LET R=A22:GO SUB 580:PRINT AT 12,K;A22:GO TO 605
830 PRINT AT 14,22;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT B:LET A25=A25+B:PRINT AT 14,22;" ":LET R=A25:GO SUB 580:PRINT AT 14,K;A25:GO TO 605
840 PRINT AT 15,22;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT B:LET A26=A26+B:PRINT AT 15,22;" ":LET R=A26:GO SUB 580:PRINT AT 15,K;A26:GO TO 605
850 PRINT AT 16,22;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT B:LET A28=A28+B:PRINT AT 16,22;" ":LET R=A28:GO SUB 580:PRINT AT 16,K;A28:GO TO 605
860 PRINT AT 17,22;" \{16}\{4}AMOUNT\{16}\{0} ":LET A28=A28+B:LET R=A30:GO SUB 580:PRINT AT 17,K;A30:GO TO 605
869 PRINT AT 20,0;" "; AT 21,0;" ":RANDOMIZE USR 64716:GO TO 100
875 PRINT AT 0,22;" "; AT 0,28;A6
880 PRINT AT 1,22;" ":LET R=A7:GO SUB 580:PRINT AT 1,K;A7
885 PRINT AT 2,22;" ":LET R=A8:GO SUB 580:PRINT AT 2,K;A8
890 PRINT AT 3,22;" ":LET R=A9:GO SUB 580:PRINT AT 3,K;A9
895 PRINT AT 4,22;" ":LET R=A10:GO SUB 580:PRINT AT 4,K;A10
900 PRINT AT 5,22;" ":LET R=A12:GO SUB 901:PRINT AT 5,K;A12:GO TO 905
901 IF A12 >=0 THEN GO SUB 580:RETURN
902 IF A12<0 THEN GO SUB 590
904 RETURN
905 PRINT AT 6,22;" ":LET R=A13:GO SUB 580:PRINT AT 6,K;A12
910 PRINT AT 7,22;" ":LET R=A14:GO SUB 580:PRINT AT 7,K;A14
915 PRINT AT 8,22;" ":LET R=A15:GO SUB 580:PRINT AT 8,K;A15
920 PRINT AT 9,22;" ":LET R=A16:GO SUB 580:PRINT AT 9,K;A16
925 PRINT AT 10,22;" ":LET R=A17:GO SUB 580:PRINT AT 10,K;A17
930 PRINT AT 11,22;" ":LET R=A18:GO SUB 931:PRINT AT 11,K;A18:GO TO 935
931 IF A18 >=0 THEN GO SUB 580
932 IF A18<0 THEN GO SUB 590
934 RETURN
935 PRINT AT 12,22;" ":LET R=A22:GO SUB 580:PRINT AT 12,K;A22
940 PRINT AT 14,22;" ":LET R=A25:GO SUB 580:PRINT AT 14,K;A25
945 PRINT AT 15,22;" ":LET R=A26:GO SUB 580:PRINT AT 15,K;A26
950 PRINT AT 16,22;" ":LET R=A28:GO SUB 580:PRINT AT 16,K;A28
955 PRINT AT 17,22;" ":LET R=A30:GO SUB 580:PRINT AT 17,K;A30
960 RETURN
1000 REM \{16}\{2}1040 PAGE 2\{16}\{0}
1001 CLS
1005 PRINT T$(1),T$(2),T$(3),T$(4),T$(5),T$(6),T$(7),T$(8),T$(9),T$(10),T$(11),T$(12),T$(13),T$(14),T$(15),T$(16),T$(17)
1006 PRINT INK 4; AT 20,11;"BALANCE...2 COPY...3"; AT 21,0;"INPUTS RETURN....4 TAPE...5"
1007 LET A33=A32:LET A35=A33-A34:LET A35= INT (A35*100+.5)/100:LET A36=A6*\{16}\{2}1080\{16}\{0}:LET A37=A35-A36
1009 LET R=A33:GO TO 1027
1010 LET R=A34:GO TO 1032
1011 LET R=A35:GO TO 1032
1012 LET R=A36:GO TO 1032
1013 LET R=A37:GO TO 1032
1014 GO SUB 50:LET A38=tax:LET R=tax:GO TO 1032
1015 LET R=A39:GO TO 1032
1016 LET R=A40:GO TO 1032
1017 LET R=A41:GO TO 1032
1018 LET R=A42:GO TO 1032
1019 LET R=A43:GO TO 1032
1020 LET R=A55:GO TO 1032
1021 LET R=A56:GO TO 1032
1022 LET R=A60:GO TO 1032
1023 LET R=A63:GO TO 1032
1024 LET R=A64:GO TO 1032
1025 LET R=A67:GO TO 1032
1026 GO TO 1033
1027 FOR I=0 TO 16
1028 IF R >=0 THEN GO SUB 580:GO TO 1029
1029 IF R<0 THEN GO SUB 590
1030 PRINT AT I,20;" "; AT I,K;R
1031 GO TO 1010+I
1032 NEXT I
1033 INPUT R
1039 IF R=2 THEN GO TO 1115
1040 IF R=3 THEN PRINT AT 20,0;" ":PRINT AT 21,0;" ":RANDOMIZE USR 64716:GO TO 100
1041 IF R=4 THEN GO TO 100
1042 IF R=5 THEN GO TO 9900
1043 IF R=34 THEN GO TO 1060
1045 IF R=39 THEN GO TO 1070
1046 IF R=41 THEN GO TO 1075
1047 IF R=42 THEN GO TO 1080
1048 IF R=43 THEN GO TO 1085
1049 IF R=56 THEN GO TO 1090
1050 IF R=60 THEN GO TO 1095
1055 PRINT INK 2; FLASH 1; AT 21,0;"INVALID":PAUSE 50:PRINT AT 21,0;" ":GO TO 1033
1060 PRINT INK 4; AT 1,22;" AMOUNT "
1061 INPUT A34
1062 LET R=A34:GO SUB 580:PRINT AT 1,22;" ":PRINT AT 1,K;A34:GO TO 1110
1070 PRINT INK 4; AT 6,22;" AMOUNT "
1071 INPUT A39:LET R=A39:GO SUB 580:PRINT AT 6,22;" ":PRINT AT 6,K;A39:GO TO 1115
1075 PRINT INK 4; AT 8,22;" AMOUNT "
1076 INPUT A41:LET R=A41:GO SUB 580:PRINT AT 8,22;" ":PRINT AT 8,K;A41:GO TO 1115
1080 PRINT INK 4; AT 9,22;" AMOUNT "
1081 INPUT A42:LET R=A42:GO SUB 580:PRINT AT 9,22;" ":PRINT AT 9,K;A42:GO TO 1115
1085 PRINT INK 4; AT 10,22;" AMOUNT "
1086 INPUT A43:LET A43=A43/2:GO SUB 1600:LET R=A43:GO SUB 580:PRINT AT 10,22;" ":PRINT AT 10,K;A43:GO TO 1115
1090 PRINT INK 4; AT 12,22;" AMOUNT "
1091 INPUT A56:LET R=A56:GO SUB 580:PRINT AT 12,22;" ":PRINT AT 12,K;A56:GO TO 1115
1095 PRINT INK 4; AT 13,22;" AMOUNT "
1096 INPUT A60:LET R=A60:GO SUB 580:PRINT AT 13,22;" ":PRINT AT 13,K;A60:GO TO 1115
1110 LET A35=A33-A34:LET A37=A35-A36:GO TO 1500
1115 LET A40=A38+A39:LET A55=A40-A41-A42-A43:LET A63=A56+A60:LET A64=A63-A55
1116 IF A64 >=0 THEN LET A64=A64:LET A67=0:GO TO 1009
1117 IF A64<0 THEN LET A67= ABS A64:LET A64=0:GO TO 1009
1600 IF BOX=1 OR BOX=3 OR BOX=4 OR BOX=5 THEN LET RR=50:GO TO 1620
1610 IF BOX=2 THEN LET RR=100:GO TO 1630
1615 RETURN
1620 IF A43>RR THEN LET A43=50:RETURN
1630 IF A43>RR THEN LET A43=100:RETURN
1635 RETURN
2000 REM \{16}\{2}SCHEDULE A\{16}\{0}
2002 CLS
2004 LET AA6=O13+T5A+T16-T19
2005 PRINT AT 0,3;"1 MEDICINE........":PRINT AT 0,21; INK 4;"YES-1/NO-0"
2006 INPUT A
2007 IF A=0 THEN GO TO 2009
2008 IF A=1 THEN GO TO 2200
2009 PRINT " MEDICINE........":PRINT AT 1,3;"6 STATE,CITY TAX.."; AT 2,3;"7 REAL ESTATE TAX."; AT 3,3;"8 GENERAL SALES...":PRINT "S 80 CAR TAX.........","C 9 PERSONAL PROP TX","H TAXES TOTAL","E 11 HOME INTEREST...","D 12 CREDIT CARD INT.","U INTEREST TOTAL","L 15 CONTRIBUTIONS...","E 16 "" NOT CASH...."," CONTR. TOTAL"," 20 UNION DUES......","A 22 OTHER..........."," T0TAL"," SUB TOTAL......."," \{18}\{1}\{16}\{2}25\{18}\{0}\{16}\{0} STATUS \{16}\{2}BOX >\{16}\{0}"," SCHED A TOTAL...":PRINT AT 17,18;BOX
2010 PRINT AT 21,0;"OPTION?":PRINT AT 20,21;" COPY.....3":PRINT AT 21,21;" RETURN...4"
2015 LET R=AA5:GO TO 2036
2016 LET R=AA6:GO TO 2040
2017 LET R=AA7:GO TO 2040
2018 LET R=AA8:GO TO 2040
2019 LET R=AA80:GO TO 2040
2020 LET R=AA9:GO TO 2040
2021 LET R=AA10:GO TO 2040
2022 LET R=AA11:GO TO 2040
2023 LET R=AA12:GO TO 2040
2024 LET R=AA14:GO TO 2040
2025 LET R=AA15:GO TO 2040
2026 LET R=AA16:GO TO 2040
2027 LET R=AA18:GO TO 2040
2028 LET R=AA20:GO TO 2040
2029 LET R=AA22:GO TO 2040
2030 LET R=AA23:GO TO 2040
2031 LET R=AA24:GO TO 2040
2032 LET R=AA25:GO TO 2040
2033 LET R=AA26:GO TO 2040
2035 GO TO 2041
2037 FOR I=0 TO 18:LET R= INT (R*100+.5)/100:GO SUB 580:PRINT AT I,21;" "; AT I,K;R:GO TO 2016+I
2040 NEXT I
2041 INPUT R
2042 IF R=3 THEN PRINT AT 20,0;" ":RANDOMIZE USR 64716:GO TO 100
2043 IF R=4 THEN GO TO 100
2044 IF R=6 THEN GO TO 2060
2045 IF R=7 THEN GO TO 2063
2046 IF R=8 THEN GO TO 2066
2047 IF R=80 THEN GO TO 2069
2048 IF R=9 THEN GO TO 2072
2049 IF R=11 THEN GO TO 2075
2050 IF R=12 THEN GO TO 2078
2051 IF R=15 THEN GO TO 2081
2052 IF R=16 THEN GO TO 2084
2053 IF R=20 THEN GO TO 2087
2054 IF R=22 THEN GO TO 2090
2055 IF R=25 THEN GO TO 2093
2060 PRINT INK 4; AT 1,21;" AMOUNT ":INPUT AA6:GO TO 2150
2063 PRINT INK 4; AT 2,21;" AMOUNT ":INPUT AA7:GO TO 2150
2066 PRINT INK 4; AT 3,21;" AMOUNT ":INPUT AA8:LET AA8=AA8*\{16}\{2}1.3\{16}\{0}:GO TO 2150
2069 PRINT INK 4; AT 4,21;" AMOUNT ":INPUT AA80:GO TO 2150
2072 PRINT INK 4; AT 5,21;" AMOUNT ":INPUT AA9:GO TO 2150
2075 PRINT INK 4; AT 7,21;" AMOUNT ":INPUT AA11:GO TO 2150
2078 PRINT INK 4; AT 8,21;" AMOUNT ":INPUT AA12:GO TO 2150
2081 PRINT INK 4; AT 10,21;" AMOUNT ":INPUT AA15:GO TO 2150
2084 PRINT INK 4; AT 11,21;" AMOUNT ":INPUT AA16:GO TO 2150
2087 PRINT INK 4; AT 13,21;" AMOUNT ":INPUT AA20:GO TO 2150
2090 PRINT INK 4; AT 14,21;" AMOUNT ":INPUT AA22:GO TO 2150
2093 PRINT AT 17,18;"\{18}\{1}\{16}\{4}???\{16}\{0}\{18}\{0}":INPUT BOX:PRINT AT 17,18;" "; AT 17,18;BOX
2094 IF BOX=1 THEN LET AA25\{18}\{1}=\{18}\{0}2480\{18}\{0}:GO TO 2150
2095 IF BOX=2 THEN LET AA25=3670:GO TO 2150
2096 IF BOX=3 THEN LET AA25=1835:GO TO 2150
2097 IF BOX=4 THEN LET AA25=2480:GO TO 2150
2098 \{18}\{0} IF BOX=5 THEN LET \{16}\{0}AA25\{18}\{1}=\{18}\{0}3670:GO TO 2150
2099 RETURN
2150 LET AA10=AA9+AA80+AA8+AA7+AA6:LET AA14=AA12+AA11:LET AA18=AA16+AA15:LET AA23=AA22+AA20:LET AA24=AA5+AA10+AA14+AA18+AA23:LET AA26=AA24-AA25:LET AA26= INT (AA26*100+.5)/100:LET A34=AA26
2151 IF AA26<0 THEN LET AA26=0:LET A34=AA26
2152 GO TO 2015
2199 GO TO 100
2201 CLS
2202 PRINT AT 0,0;"\{20}\{1}>>>>>>\{20}\{0} MEDICAL AND DENTAL \{20}\{1}<<<<<<\{20}\{0}"; AT 1,12;"EXPENSES"
2205 PRINT AT 3,2;"1 DRUGS............"; AT 4,2;"2 DOCTORS.........."; AT 5,4;"TRANSPORTATION..."; AT 6,4;"HEARING AID......"; AT 7,4;"DENTURES.........."; AT 8,4;"GLASSES.........."; AT 9,4;"OTHERS..........."; AT 10,21;"-----------"; AT 11,2;"3 TOTAL............"; AT 12,2;"4 1040 LINE 33-5%.."; AT 13,21;"-----------"; AT 14,2;"5 MEDICAL TOTAL...."; AT 20,21;"COPY.....2"; AT 21,0;"INPUTS SCHED-A-.3"
2210 PRINT AT 3,21;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT AA1:LET R=AA1:GO SUB 580:PRINT AT 3,21;" "; AT 3,K;AA1
2220 PRINT AT 4,21;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT AA2:LET R=AA2:GO SUB 580:PRINT AT 4,21;" "; AT 4,K;AA2
2230 PRINT AT 5,21;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT AA224:LET R=AA224:GO SUB 580:PRINT AT 5,21;" "; AT 5,K;AA224
2240 PRINT AT 6,21;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT AA225:LET R=AA225:GO SUB 580:PRINT AT 6,21;" "; AT 6,K;AA225
2250 PRINT AT 7,21;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT AA226:LET R=AA226:GO SUB 580:PRINT AT 7,21;" "; AT 7,K;AA226
2260 PRINT AT 8,21;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT AA227:LET R=AA227:GO SUB 580:PRINT AT 8,21;" "; AT 8,K;AA227
2270 PRINT AT 9,21;" \{16}\{4}AMOUNT\{16}\{0} ":INPUT AA228:LET R=AA228:GO SUB 580:PRINT AT 9,21;" "; AT 9,K;AA228
2280 LET AA3=AA228+AA227+AA226+AA225+AA224+AA2+AA1:LET R=AA3:GO SUB 580:PRINT AT 11,K;AA3
2282 LET AA4=A32*.05:LET AA4= INT (AA4*100+.5)/100:LET R=AA4:GO SUB 580:PRINT AT 12,K;AA4
2285 LET AA5=AA3-AA4
2287 IF AA5<0 THEN LET R=AA5:GO SUB 590:PRINT AT 14,K;AA5:LET AA5=0:GO TO 2290
2289 IF AA5 >=0 THEN LET R=AA5:GO SUB 580:PRINT AT 14,K;AA5
2290 PRINT FLASH 1; INK 2; AT 20,14;">>>>>"; AT 21,14;">>>>>"
2291 INPUT C
2292 IF C=2 THEN GO TO 2295
2293 IF C=3 THEN CLS
2294 PRINT AT 0,3;"1 MEDICINE........":GO TO 2009
2295 PRINT AT 20,0;" "; AT 21,0;" ":RANDOMIZE USR 64716:CLS
2297 PRINT AT 0,3;"1 MEDICINE........":GO TO 2009
2299 STOP
2500 REM \{16}\{2}SCHEDULE B\{16}\{0}
2502 CLS
2505 PRINT AT 0,0;"\{20}\{1}>>>>>\{20}\{0} S C H E D U L E -B- \{20}\{1}<<<<<\{20}\{0}"
2510 PRINT AT 3,3;"1 MORTGAGE.......":PRINT INK 4; AT 3,21;" AMOUNT "
2515 INPUT "\{16}\{2}IF NONE ENTER >> 0 << \{16}\{0}";B1
2516 LET R=B1:GO SUB 580:PRINT AT 3,21;" ":PRINT AT 3,K;B1
2520 PRINT AT 4,3;"2 INTEREST.......":PRINT INK 4; AT 4,21;" AMOUNT ":LET BB2=4
2525 INPUT "\{16}\{2}IF NONE ENTER >> 0 << \{16}\{0}";B2B
2530 IF B2B=0 THEN GO TO 2580
2531 LET BB2=BB2+1
2532 IF B2B>0 THEN LET R=B2B:GO SUB 580:PRINT AT BB2,K;B2B:LET B2=B2+B2B:GO TO 2525
2580 PRINT AT BB2+1,21;"-----------":PRINT AT 4,21;" ":LET B3=B2+B1:LET R=B3:GO SUB 580:PRINT AT BB2+2,K;B3:PRINT AT BB2+2,3;"3 TOTAL":LET A8=B3
2585 PRINT AT 20,21;"COPY.....2":PRINT AT 21,0;"INPUTS RETURN...3"
2586 PRINT FLASH 1; INK 2; AT 20,15;">>>>>"; AT 21,15;">>>>>"
2590 INPUT W
2591 IF W=2 THEN PRINT AT 20,15;" ":PRINT AT 21,0;" ":RANDOMIZE USR 64716:GO TO 100
2592 IF W=3 THEN GO TO 100
2600 STOP
3000 REM \{16}\{2}SCHEDULE W\{16}\{0}
3002 CLS
3005 PRINT AT 0,0;"\{20}\{1}>>>>>\{20}\{0} S C H E D U L E -W- \{20}\{1}<<<<<<\{20}\{0}"
3007 PRINT AT 2,12;"(A) YOU (B) SPOUSE"
3010 PRINT AT 3,0;"1 WAGES":PRINT AT 5,0;"2 INC/LOSS":PRINT AT 7,0;"3 TOTAL":PRINT AT 9,0;"4 ADJUST.":PRINT AT 11,0;"5 QUALIFY":PRINT AT 13,0;"6 SMALLER":PRINT AT 15,0;"7 10%":PRINT AT 16,20;"------------":PRINT AT 17,0;"8 DEDUCTION"
3012 LET R=W1:GO SUB 3100:PRINT AT 3,K;W1:LET R=W11:GO SUB 580:PRINT AT 3,K;W11
3014 PRINT INK 4; AT 5,11;"YOU-Y/SPOUSE-S/B0TH-B"
3015 INPUT W$
3016 IF W$="Y" THEN LET W2=A18:LET W12=0:PRINT AT 5,10;" ":LET R=W2:IF R >=0 THEN GO SUB 3100:PRINT AT 5,K;W2:GO TO 3030
3017 IF R<0 THEN GO SUB 3110:PRINT AT 5,K;W2:GO TO 3030
3019 IF W$="S" THEN LET W12=A18:LET W2=0:PRINT AT 5,10;" ":LET R=W12:IF R >=0 THEN GO SUB 580:PRINT AT 5,K;W12:GO TO 3030
3020 IF R<0 THEN GO SUB 590:PRINT AT 5,K;W12:GO TO 3030
3022 IF W$="B" THEN LET W12=A18/2:PRINT AT 5,10;" ":LET R=W12:IF R >=0 THEN GO SUB 580:PRINT AT 5,K;W12:GO TO 3025
3023 IF R<0 THEN GO SUB 590:PRINT AT 5,K;W12
3025 LET W2=A18/2:LET R=W2:IF R >=0 THEN GO SUB 3100:PRINT AT 5,K;W2:GO TO 3030
3026 IF R<0 THEN GO SUB 3110:PRINT AT 5,K;W2
3030 LET W3=W1+W2:LET R=W3:GO SUB 3100:PRINT AT 7,K;W3
3031 PRINT AT 6,10;"----------------------"
3033 LET W13=W12+W11:LET R=W13:GO SUB 580:PRINT AT 7,K;W13
3034 PRINT INK 4; AT 9,13;"LINE A25 ":INPUT AA:PRINT AT 9,13;" "
3035 LET W4=A26/2+AA:LET R=W4:GO SUB 3100:PRINT AT 9,K;W4
3038 LET W5=W3-W4:LET W5= INT (W5*100+.5)/100:LET R=W5:GO SUB 3100:PRINT AT 11,K;W5
3039 PRINT INK 4; AT 9,24;"LINE A25 ":INPUT BB:PRINT AT 9,24;" "
3040 LET W14=A26/2+BB:LET R=W14:GO SUB 580:PRINT AT 9,K;W14
3043 LET W15=W13-W14:LET R=W15:GO SUB 580:PRINT AT 11,K;W15
3045 IF W5<W15 THEN LET W6=W5:LET R=W6:GO SUB 580:PRINT AT 13,K;W6:GO TO 3050
3047 IF W15<W5 THEN LET W6=W15:LET R=W6:GO SUB 580:PRINT AT 13,K;W6:GO TO 3050
3050 PRINT AT 15,27;"X .10"
3051 LET W8=W6*.1:LET W8= INT (W8*100+.5)/100:LET R=W8:GO SUB 580:PRINT AT 17,K;W8:LET A30=W8
3053 PRINT AT 20,21;"COPY.....2"; AT 21,0;"INPUT RETURN...3"
3054 PRINT FLASH 1; INK 2; AT 20,15;">>>>>"; AT 21,15;">>>>>"
3055 INPUT W
3056 IF W=2 THEN PRINT AT 20,15;" "; AT 21,0;" ":RANDOMIZE USR 64716:GO TO 100
3057 IF W=3 THEN GO TO 100
3100 IF R<1000000 THEN LET K=12
3101 IF R<100000 THEN LET K=13
3102 IF R<10000 THEN LET K=14
3103 IF R<1000 THEN LET K=15
3104 IF R<100 THEN LET K=16
3105 IF R<10 THEN LET K=17
3109 RETURN
3110 IF R<-0 THEN LET K=16
3111 IF R<-1 THEN LET K=16
3112 IF R<-10 THEN LET K=15
3113 IF R<-100 THEN LET K=14
3114 IF R<-1000 THEN LET K=13
3115 IF R<-10000 THEN LET K=12
3116 IF R<-100000 THEN LET K=11
3119 RETURN
3500 STOP
6000 REM \{16}\{2}OHIO TAX\{16}\{0}
6005 CLS
6007 PRINT " 1 INCOME 1040-32-."," \{18}\{1}\{16}\{2}2\{16}\{0}\{18}\{0} OH ADJ(IF NO-0)\{18}\{1}\{16}\{2}>\{16}\{0}\{18}\{0}"," 3 GROSS INCOME....","O 4 EXEMPTION No....","H 5 ADDITIONAL EXEMP","I 6 TAXABLE INCOME..","O 7 TAXES(TAX TABLE)"," 8 CREDITS........."," 10 EXEMPT CREDIT...","T 11 BALANCE.........","A \{18}\{1}\{16}\{2}12\{16}\{0}\{18}\{0} JOINT CREDIT..\{18}\{1}\{16}\{2}>>\{16}\{0}\{18}\{0}","X 13 OHIO TAX.....DUE"," 14 TAX PAID........"," 18 AMOUNT YOU OWE.."," 23 REFUND.........."
6008 PRINT AT 3,18;A6:LET O4=A6*650
6009 LET O4=A6*650:PRINT AT 3,18;A6; AT 20,21;"COPY....21"; AT 21,0;"INPUTS RETURN..22"; AT 20,15;"\{18}\{1}\{16}\{2}>>>>>\{16}\{0}\{18}\{0}"; AT 21,15;"\{18}\{1}\{16}\{2}>>>>>\{16}\{0}\{18}\{0}"
6010 GO SUB 6015:GO TO 6042
6015 LET R=A32:GO TO 6036
6016 LET R=O2:GO TO 6040
6017 LET R=O3:GO TO 6040
6018 LET R=O4:GO TO 6040
6019 LET R=O5:GO TO 6040
6020 LET R=O6:GO TO 6040
6021 LET R=O7:GO TO 6040
6022 LET R=O8:GO TO 6040
6023 LET R=O10:GO TO 6040
6024 LET R=O11:GO TO 6040
6025 LET R=O12:GO TO 6040
6026 LET R=O13:GO TO 6040
6027 LET R=O14:GO TO 6040
6028 LET R=O18:GO TO 6040
6029 LET R=O23:GO TO 6040
6035 GO TO 6041
6036 FOR I=0 TO 14:LET R= INT (R*100+.5)/100:IF R >=0 THEN GO SUB 580:GO TO 6038
6037 IF R<0 THEN GO SUB 590
6038 PRINT AT I,21;" "; AT I,K;R
6039 GO TO 6016+I
6040 NEXT I
6041 RETURN
6042 INPUT R
6043 IF R=2 THEN GO TO 6050
6044 IF R=8 THEN GO TO 6080
6045 IF R=12 THEN GO TO 6150
6046 IF R=14 THEN GO TO 6205
6047 IF R=21 THEN PRINT AT 20,0;" "; AT 21,0;" ":RANDOMIZE USR 64716:GO TO 100
6048 IF R=22 THEN GO TO 100
6049 PRINT #1; AT 0,0;"\{16}\{2}INVALID\{16}\{0}":PAUSE 50:GO TO 6042
6050 PRINT INK 4; AT 1,21;" AMOUNT ":INPUT O2
6051 LET O3=A32+O2:LET O4=A6*650:LET O6=O3-O4:GO SUB 6015
6052 PRINT FLASH 1; INK 2; AT 5,21;">>"; AT 6,21;" AMOUNT "
6075 INPUT O7
6076 GO TO 6250
6077 LET O5=350*A6:LET O66=O3-O4-O5:LET R=O66:GO SUB 580:PRINT AT 5,23;" ":PRINT FLASH 1; INK 4; AT 5,K;O66
6078 INPUT O77
6079 GO TO 6290
6080 PRINT INK 4; AT 7,21;" AMOUNT ":INPUT O8
6088 LET O10=A6*20:LET O11=O7-O8-O10:LET O111=O77-O8
6092 IF O11<O111 THEN LET O5=0:LET O13=O11:GO SUB 6015:GO TO 6042
6094 IF O11>O111 THEN LET O11=O111:LET O13=O11:LET O6=O66:LET O7=O77:LET O10=0:GO SUB 6015:GO TO 6042
6150 IF O6 <=25000 THEN GO TO 6160
6152 IF O6 <=50000 THEN GO TO 6170
6153 IF O6 <=75000 THEN GO TO 6180
6154 IF O6>75000 THEN GO TO 6190
6160 LET O12=.2*O11:GO TO 6200
6170 LET O12=.15*O11:GO TO 6200
6180 LET O12=.1*O11:GO TO 6200
6190 LET O12=.05*O11
6200 LET O13=O11-O12:GO TO 6210
6205 PRINT INK 4; AT 12,21;" AMOUNT ":INPUT O14
6210 LET O13=O11-O12:LET O18=O13-O14
6212 IF O18>0 THEN LET O23=0:LET O18= ABS O18:GO SUB 6015:GO TO 6042
6213 IF O18<0 THEN LET O23= ABS O18:LET O18=0:GO SUB 6015:GO TO 6042
6250 IF O6<5000 THEN GO TO 6260
6251 IF O6<10000 THEN GO TO 6263
6252 IF O6<15000 THEN GO TO 6266
6254 IF O6<20000 THEN GO TO 6270
6256 IF O6<40000 THEN GO TO 6273
6257 IF O6<80000 THEN GO TO 6276
6258 IF O6<100000 THEN GO TO 6280
6259 IF O6>100000 THEN GO TO 6283
6260 LET O7A=O6*.00855
6261 IF O7>O7A THEN LET O7=O7A:GO TO 6077
6262 IF O7<O7A THEN GO TO 6077
6263 LET O7A=42.75+(O6-5000)*.0171
6264 IF O7>O7A THEN LET O7=O7A:GO TO 6077
6265 IF O7<O7A THEN GO TO 6077
6266 LET O7A=128.25+(O6-10000)*.0342
6267 IF O7>O7A THEN LET O7=O7A:GO TO 6077
6268 IF O7<O7A THEN GO TO 6077
6270 LET O7A=299.25+(O6-15000)*.04275
6271 IF O7>O7A THEN LET O7=O7A:GO TO 6077
6272 IF O7<O7A THEN GO TO 6077
6273 LET O7A=513+(O6-20000)*.0513
6274 IF O7>O7A THEN LET O7=O7A:GO TO 6077
6275 IF O7<O7A THEN GO TO 6077
6276 LET O7A=1539+(O6-40000)*.05985
6277 IF O7>O7A THEN LET O7=O7A:GO TO 6077
6278 IF O7<O7A THEN GO TO 6077
6280 LET O7A=3933+(O6-80000)*.0684
6281 IF O7>O7A THEN LET O7=O7A:GO TO 6077
6282 IF O7<O7A THEN GO TO 6077
6283 LET O7A=5301+(O6-100000)*.0855
6284 IF O7>O7A THEN LET O7=O7A:GO TO 6077
6286 IF O7<O7A THEN GO TO 6077
6290 IF O66 <=5000 THEN GO TO 6300
6291 IF O66 <=10000 THEN GO TO 6303
6292 IF O66 <=15000 THEN GO TO 6306
6293 IF O66 <=20000 THEN GO TO 6310
6294 IF O66 <=40000 THEN GO TO 6313
6295 IF O66 <=80000 THEN GO TO 6316
6296 IF O66 <=100000 THEN GO TO 6320
6297 IF O66>100000 THEN GO TO 6323
6300 LET O77A=O66*.00855
6301 IF O77>O77A THEN LET O77=O77A:GO TO 6088
6302 IF O77<O77A THEN GO TO 6088
6303 LET O77A=42.75+(O66-5000)*.0171
6304 IF O77>O77A THEN LET O77=O77A:GO TO 6088
6305 IF O77<O77A THEN GO TO 6088
6306 LET O77A=128.25+(O66-10000)*.0342
6307 IF O77>O77A THEN LET O77=O77A:GO TO 6088
6308 IF O77<O77A THEN GO TO 6088
6310 LET O77A=299.25+(O66-15000)*.04275
6311 IF O77>O77A THEN LET O77=O77A:GO TO 6088
6312 IF O77<O77A THEN GO TO 6088
6313 LET O77A=513+(O66-20000)*.0513
6314 IF O77>O77A THEN LET O77=O77A:GO TO 6088
6315 IF O77<O77A THEN GO TO 6088
6316 LET O77A=1539+(O66-40000)*.05985
6317 IF O77>O77A THEN LET O77=O77A:GO TO 6088
6318 IF O77<O77A THEN GO TO 6088
6320 LET O77A=3933+(O66-80000)*.0684
6321 IF O77>O77A THEN LET O77=O77A:GO TO 6088
6322 IF O77<O77A THEN GO TO 6088
6323 LET O77A=5301+(O66-100000)*.0855
6324 IF O77>O77A THEN LET O77=O77A:GO TO 6088
6325 IF O77<O77A THEN GO TO 6088
6900 STOP
7000 REM \{16}\{2}CITY TAX\{16}\{0}
7001 CLS
7003 PRINT "INCOME. C/TAX.."," ""\{18}\{1}\{16}\{2}AA\{16}\{0}\{18}\{0}""":PRINT AT 3,3;"1A TOTAL WAGES...."," 1B INCOME SCHED J."," 2 TAXABLE INCOME.","\{20}\{1}C\{20}\{0} 3 CITY TAX %\{16}\{2}AAAA\{16}\{0}.","\{20}\{1}I\{20}\{0} 4A TAX WITHHELD...","\{20}\{1}T\{20}\{0} 4B DIRECT PAY O/C."
7004 PRINT "\{20}\{1}Y\{20}\{0} 5A TOTAL TAX......"," 5B INC O/SD %\{16}\{2}BBBB\{16}\{0}."," 5C LESSER 5A/5B..."," 6 TAX CRED %\{16}\{2}CCCC\{16}\{0}."," 7/8 CREDITS........","\{20}\{1}T\{20}\{0}\{20}\{0} 9 LINE3 - LINE8..","\{20}\{1}A\{20}\{0} 10 NONWITHHELD TAX"
7005 PRINT "\{20}\{1}X\{20}\{0} 11 TAX ON SCHED J."," 12 TAX DUE........"," 15 TOTAL CREDIT..."," 16 YOU OWE........"," 19 REFUND.........","INPUTS COPY.22 RETURN.33"
7007 IF T3A>0 THEN PRINT AT 6,16;" ":PRINT AT 6,16;T3A
7009 IF T5BB>0 THEN PRINT AT 10,16;" ":PRINT AT 10,16;T5BB
7011 IF P>0 THEN PRINT AT 12,16;" ":PRINT AT 12,16;P
7082 LET R=Z1A:GO SUB 8980:PRINT AT 0,6;" ":PRINT AT 0,K;Z1A
7084 LET R=Z2A:GO SUB 580:PRINT AT 0,22;" ":PRINT AT 0,K;Z2A
7088 IF Z1B=0 THEN LET Z2B=0:LET Z1C=0:LET Z2C=0:PRINT AT 1,6;" ":GO TO 7102
7090 LET R=Z1B:GO SUB 8980:PRINT AT 1,6;" ":PRINT AT 1,K;Z1B
7092 LET R=Z2B:GO SUB 580:PRINT AT 1,22;" ":PRINT AT 1,K;Z2B
7096 IF Z1C=0 THEN LET Z2C=0:PRINT AT 2,6;" ":GO TO 7102
7098 LET R=Z1C:GO SUB 8980:PRINT AT 2,6;" ":PRINT AT 2,K;Z1C
7100 LET R=Z2C:GO SUB 580:PRINT AT 2,22;" ":PRINT AT 2,K;Z2C
7102 LET T1A=Z1A+Z1B+Z1C:LET R=T1A:GO SUB 580:PRINT AT 3,22;" "; AT 3,K;T1A
7104 PRINT AT 4,21;" ":LET R=T1B:IF R >=0 THEN GO SUB 580:PRINT AT 4,K;T1B:GO TO 7106
7105 IF R<0 THEN GO SUB 590:PRINT AT 4,22;" "; AT 4,K;T1B
7106 LET T2=T1A+T1B:LET R=T2:GO SUB 580:PRINT AT 5,22;" "; AT 5,K;T2
7109 LET T3=T3A*T2:LET T3= INT (T3*100+.5)/100:LET R=T3:GO SUB 580:PRINT AT 6,22;" "; AT 6,K;T3
7110 LET T4A=Z2A+Z2B+Z2C:LET R=T4A:GO SUB 580:PRINT AT 7,22;" "; AT 7,K;T4A
7112 PRINT AT 8,21;" ":LET R=T4B:GO SUB 580:PRINT AT 8,K;T4B
7114 LET T5A=T4A+T4B:LET R=T5A:GO SUB 580:PRINT AT 9,22;" "; AT 9,K;T5A
7118 LET T5B=G*T5BB:LET T5B= INT (T5B*100+.5)/100:LET R=T5B:GO SUB 580:PRINT AT 10,21;" ":PRINT AT 10,K;T5B
7120 IF T5A <=T5B THEN GO TO 7128
7122 IF T5B<T5A THEN LET T5C=T5B
7124 LET R=T5C:GO SUB 580:PRINT AT 11,22;" "; AT 11,K;T5C
7126 GO TO 7130
7128 LET T5C=T5A:LET R=T5C:GO SUB 580:PRINT AT 11,22;" "; AT 11,K;T5C
7131 LET T6=T5C*P:LET T6= INT (T6*100+.5)/100:LET R=T6:GO SUB 580:PRINT AT 12,22;" "; AT 12,K;T6
7132 LET T8=T7+T6:LET R=T8:GO SUB 580:PRINT AT 13,21;" ":PRINT AT 13,K;T8
7134 LET T9=T3-T8:LET T9= INT (T9*100+.5)/100:LET R=T9
7136 IF T9 >=0 THEN GO SUB 580:GO TO 7139
7137 IF T9<0 THEN GO SUB 590
7139 PRINT AT 14,22;" ":PRINT AT 14,K;T9
7141 LET R=T10:GO SUB 580:PRINT AT 15,21;" ":PRINT AT 15,K;T10
7143 PRINT AT 16,21;" ":LET R=T11:GO SUB 580:PRINT AT 16,K;T11
7144 LET T12=T9+T10+T11:LET R=T12:IF R >=0 THEN GO SUB 580:PRINT AT 17,22;" ":PRINT AT 17,K;T12:GO TO 7147
7145 IF R<0 THEN GO SUB 590:PRINT AT 17,22;" ";17,K;T12
7147 LET R=T15:PRINT AT 18,21;" ":GO SUB 580:PRINT AT 18,K;T15
7149 IF T15<T12 THEN GO TO 7153
7151 IF T15>T12 THEN GO TO 7159
7153 LET T16=T12-T15:LET T16= INT (T16*100+.5)/100
7155 LET R=T16:GO SUB 580:PRINT AT 19,22;" ":PRINT INK 2; AT 19,K;T16
7157 LET T19=0:PRINT AT 20,22;" "; AT 20,28;T19:GO TO 7160
7159 LET T19=T15-T12:LET T19= INT (T19*100+.5)/100
7161 LET R=T19:GO SUB 580:PRINT AT 20,22;" ":PRINT INK 4; AT 20,K;T19
7163 LET T16=0:PRINT AT 19,22;" ":PRINT AT 19,28;T16
7165 INPUT R$
7170 IF R$="AA" THEN GO TO 7200
7172 IF R$="7" THEN GO TO 7260
7174 IF R$="10" THEN GO TO 7270
7176 IF R$="\{18}\{0}11" THEN GO TO 7280
7178 IF R$="1B" THEN GO TO 7220
7180 IF R$="15" THEN GO TO 7290
7182 IF R$="22" THEN PRINT AT 21,0;" ":RANDOMIZE USR 64716:GO TO 100
7184 IF R$="33" THEN GO TO 100
7186 IF R$="4B" THEN GO TO 7235
7188 IF R$="AAAA" THEN GO TO 7230
7190 IF R$="BBBB" THEN GO TO 7240
7192 IF R$="CCCC" THEN GO TO 7250
7199 PRINT FLASH 1; INK 2; AT 21,0;"INVALID":PAUSE 50:PRINT INK 4; AT 21,0;"INPUTS ":GO TO 7165
7200 PRINT INK 4; AT 0,6;" AMOUNT ":INPUT R:LET Z1A=R:GO SUB 8980:PRINT AT 0,6;" ":PRINT AT 0,K;Z1A
7202 PRINT INK 4; AT 0,22;" AMOUNT ":INPUT Z2A:LET R=Z2A:GO SUB 580:PRINT AT 0,22;" ":PRINT AT 0,K;Z2A
7204 PRINT INK 4; AT 1,7;" AMOUNT ":INPUT R:IF R=0 THEN GO TO 7082
7206 IF R>0 THEN LET Z1B=R:PRINT AT 1,7;" ":GO SUB 8980:PRINT AT 1,K;Z1B
7208 PRINT INK 4; AT 1,22;" AMOUNT ":INPUT R:LET Z2B=R:GO SUB 580:PRINT AT 1,22;" ":PRINT AT 1,K;R
7210 PRINT INK 4; AT 2,7;" AMOUNT ":INPUT R:IF R=0 THEN GO TO 7082
7212 IF R>0 THEN LET Z1C=R:PRINT AT 2,7;" ":GO SUB 8980:PRINT AT 2,K;Z1C
7214 PRINT INK 4; AT 2,22;" AMOUNT ":INPUT R:LET Z2C=R:GO SUB 580:PRINT AT 2,22;" ":PRINT AT 2,K;R
7216 GO TO 7102
7220 PRINT INK 4; AT 4,22;" AMOUNT ":INPUT T1B:GO TO 7104
7230 PRINT INK 4; AT 6,16;"????":INPUT T3A:PRINT AT 6,16;" ":PRINT AT 6,16;T3A:GO TO 7109
7235 PRINT INK 4; AT 8,22;" AMOUNT ":INPUT T4B:GO TO 7112
7240 PRINT INK 4; AT 10,16;"????":INPUT T5BB:PRINT AT 10,16;" ":PRINT AT 10,16;T5BB
7242 PRINT INK 4; AT 10,22;" AMOUNT ":INPUT G:GO TO 7118
7250 PRINT INK 4; AT 12,16;"????":INPUT P:PRINT AT 12,16;" ":PRINT AT 12,16;P:GO TO 7131
7260 PRINT INK 4; AT 13,22;" AMOUNT ":INPUT T7:GO TO 7132
7270 PRINT INK 4; AT 15,22;" AMOUNT ":INPUT T10:GO TO 7141
7280 PRINT INK 4; AT 16,22;" AMOUNT ":INPUT T11:GO TO 7143
7290 PRINT INK 4; AT 18,22;" AMOUNT ":INPUT T15:GO TO 7147
8980 IF R<1000000 THEN LET K=7
8981 IF R<100000 THEN LET K=8
8982 IF R<10000 THEN LET K=9
8983 IF R<1000 THEN LET K=10
8984 IF R<100 THEN LET K=11
8985 IF R<10 THEN LET K=12
8986 RETURN
9000 LET W6= NOT PI:LET W8= NOT PI:LET W1= NOT PI:LET W11= NOT PI:LET BOX= NOT PI:LET A6= NOT PI:LET A33= NOT PI:LET A40= NOT PI:LET A55= NOT PI:LET A63= NOT PI:LET A64= NOT PI
9001 LET A67= NOT PI:LET A8= NOT PI:LET A7= NOT PI:LET A34= NOT PI:LET A38= NOT PI:LET A39= NOT PI:LET A41= NOT PI:LET A42= NOT PI:LET A43= NOT PI:LET A56= NOT PI:LET A60= NOT PI
9002 LET T3A= NOT PI:LET T5BB= NOT PI:LET P= NOT PI:LET Z1A= NOT PI:LET Z2A= NOT PI:LET Z1B= NOT PI:LET Z2B= NOT PI:LET Z1C= NOT PI:LET Z2C= NOT PI:LET T1B= NOT PI:LET T4B= NOT PI:LET G= NOT PI:LET T7= NOT PI:LET T10= NOT PI:LET T11= NOT PI:LET T15= NOT PI
9003 LET A9= NOT PI:LET T2= NOT PI:LET T3= NOT PI:LET T4A= NOT PI:LET T5A= NOT PI:LET T9= NOT PI:LET T12= NOT PI:LET T16= NOT PI
9004 LET A10= NOT PI:LET A12= NOT PI:LET A13= NOT PI:LET A14= NOT PI:LET A15= NOT PI:LET A16= NOT PI:LET A17= NOT PI:LET A18= NOT PI
9012 LET O2= NOT PI:LET O3= NOT PI:LET O4= NOT PI:LET O5= NOT PI:LET O6= NOT PI:LET O7= NOT PI:LET O8= NOT PI:LET O10= NOT PI:LET O11= NOT PI:LET O12= NOT PI:LET O14= NOT PI:LET O18= NOT PI:LET O23= NOT PI
9013 LET A22= NOT PI:LET A25= NOT PI:LET A26= NOT PI:LET A28= NOT PI:LET A30= NOT PI:LET A31= NOT PI:LET A32= NOT PI
9020 LET B2= NOT PI:LET AA1= NOT PI:LET AA2= NOT PI:LET AA3= NOT PI:LET AA4= NOT PI
9021 LET AA5= NOT PI:LET AA6= NOT PI:LET AA7= NOT PI:LET AA8= NOT PI:LET AA80= NOT PI:LET AA9= NOT PI:LET AA10= NOT PI:LET AA11= NOT PI:LET AA12= NOT PI:LET AA14= NOT PI:LET AA15= NOT PI:LET AA16= NOT PI:LET AA18= NOT PI:LET AA20= NOT PI:LET AA22= NOT PI:LET AA23= NOT PI:LET AA24= NOT PI:LET AA25= NOT PI:LET AA26= NOT PI
9022 LET B= NOT PI:LET BB2= NOT PI:LET O13= NOT PI:LET T5A= NOT PI:LET T16= NOT PI:LET T19= NOT PI
9023 LET sch= NOT PI
9025 GO TO 100
9098 REM \{16}\{0}LOAD "TASMAN"CODE :RANDOMIZE USR 64719
9099 DIM T$(17,29)
9100 LET T$(1)=" 33 LINE 32......."
9101 LET T$(2)=" 34 SCHEDULE ""A"".."
9102 LET T$(3)=" 35 LINE 33-34...."
9103 LET T$(4)="1 36 EXEMPT X \{16}\{2}1080\{16}\{0}."
9104 LET T$(5)="0 37 TAXABLE INCOME"
9105 LET T$(6)="4 38 CALCULATED TAX"
9106 LET T$(7)="0 39 ADDIT'L TAX..."
9107 LET T$(8)=" 40 TOTAL TAX....."
9108 LET T$(9)="P 41 CHILD/DEPEND.."
9109 LET T$(10)="a 42 ELDERLY CREDIT"
9110 LET T$(11)="g 43 POLITIC CONTR."
9111 LET T$(12)="e 55 TOTAL TAX....."
9112 LET T$(13)=" 56 TAX PAID TOTAL"
9113 LET T$(14)="2 60 EXCESS SOC SEC"
9114 LET T$(15)=" 63 TOTAL TAX PAID"
9115 LET T$(16)=" 64 REFUND TO YOU."
9116 LET T$(17)=" 67 YOU PAY IRS..."
9120 GO TO 80
9499 STOP
9500 LET A23=A7+A8+A9+A10+A12+A13+A14+A15+A16+A17+A18+A22
9505 LET A23= INT (A23*100+.5)/100
9506 LET R=A23
9507 GO SUB 580
9508 PRINT AT 13,22;" "; AT 13,K;A23
9510 LET A31=A25+A26+A28+A30
9511 LET A31= INT (A31*100+.5)/100
9513 LET R=A31
9514 GO SUB 580
9515 PRINT AT 18,22;" "; AT 18,K;A31
9516 LET A32=A23-A31:LET A32= INT (A32*100+.5)/100:LET R=A32:GO SUB 580:PRINT AT 19,22;" "; AT 19,K;A32
9519 GO TO 605
9901 CLS
9902 PRINT INK 2; AT 7,7;"\:'\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\':"
9904 PRINT INK 2; AT 8,7;"\: STORE ON TAPE \ :"
9905 PRINT INK 2; AT 9,7;"\:.\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.:"
9908 PRINT INK 4; AT 21,0;"INPUT "
9909 PRINT INK 4; AT 19,10;"STORE ON TAPE......"; INK 0;"\{18}\{0}T"
9910 PRINT INK 4; AT 20,10;"STOP..............."; INK 0;"\{18}\{0}S"
9911 PRINT INK 4; AT 21,10;"RETURN TO START...."; INK 0;"R"
9915 INPUT M$
9916 IF M$="T" THEN GO TO 9930
9917 IF M$="S" THEN STOP
9918 IF M$="R" THEN GO TO 100
9920 FLASH 1:PRINT AT 21,0; INK 2;"INVALID"
9921 PAUSE 0
9922 FLASH 0
9923 GO TO 9908
9930 PRINT AT 13, PI;"PROGRAM IS SAVED BY TITLE"
9932 PRINT INK 2; AT 15,4;"\{18}\{1}>>>>>\{18}\{0} ""IRS - 1986"" \{18}\{1}<<<<<\{18}\{0}"
9998 SAVE "IRS - 1986" LINE 9098:REM SAVE /"TASMAN"CODE 64716,652
9999 REM PRINT AT 15,0;FLASH 1;INK 1;">>>>REWIND THE TAPE AND PLAY<<<<":VERIFY ""
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
