Tax

Products: Tax Command
Date: 1983
Type: Program
Platform(s): TS 1000
Tags: Finance

This program is Part 1 of a two-part 1983 US income tax computation aid. It guides users through entering wages, interest, dividends, capital gains, other income, adjustments to income, and itemized deductions (medical, taxes, interest, contributions, and miscellaneous), then calculates gross income and total deductions. A subroutine at line 5500 parses colon-delimited string literals (C$ and D$) into a string array V$(21,20) and numeric array V(21) for storing deduction category names and values. At the end of Part 1 the program instructs the user to note key computed values (adjusted income AI and deductions DE), flip the cassette tape, and LOAD “TAX 2” to continue with tax calculation in Part 2. The program uses SLOW/FAST mode switching and INKEY$-based menu navigation throughout.


Program Structure

The program is divided into clearly separated functional blocks, invoked via GOSUB from two main menu loops:

  1. Lines 1–78: Initialisation — arrays, variables, and the category-string parser (GOSUB 5500).
  2. Lines 80–600: Income sub-sections — wages (80), dividends (180), interest (300), other income (430).
  3. Lines 610–820: Income summary screen with letter-key dispatch.
  4. Lines 840–1350: Capital gains — short-term (1100) and long-term (1230) entry, carry-forward calculation.
  5. Lines 1360–1480: Main Part-1 menu (gross income, adjustments, deductions, jump to Part 2).
  6. Lines 1490–1770: Adjustments-to-income sub-menu (moving, IRA, Keogh, alimony, etc.).
  7. Lines 1840–2870: Deductions — medical (1980), taxes (2280), interest (2430), contributions (2570), miscellaneous (2700), losses (2691).
  8. Lines 2880–2936: Display/input helper subroutines using the V$()/V() arrays.
  9. Lines 3000–4000: Part-2 handoff — prints computed values, instructs LOAD “TAX 2”.
  10. Lines 5500–5570: String parser — splits F$ on :/; into V$(H).
  11. Lines 9000–9030: Utility block for saving the program (not reached in normal execution).

Category String Parser (lines 5500–5570)

Rather than embedding each deduction category name as a separate string variable or DATA statement, the author encodes all names into two long strings C$ (line 14) and D$ (line 15), delimited by : between fields and terminated by ;. The subroutine at 5500 walks the string character by character, accumulating characters into E$ until a : triggers storage of E$ into V$(H), and a ; terminates the loop. This is a compact way to initialise a string array from a single literal, saving both line overhead and memory.

Each entry in V$(21,20) holds a 20-character padded name. The display subroutine at line 2880 slices columns 1–4 as a line-number prefix (L$), column 5 as a colour/highlight character (M$), and columns 6 onward as the label text (R$). It then adds 128 to the character code of M$ to produce an inverse-video character — a simple way to render menu key letters in inverse.

Key BASIC Idioms

  • INKEY$ polling loops — e.g. IF INKEY$="" THEN GOTO 770 — used throughout instead of INPUT for single-key menu selection, giving immediate response.
  • SLOW/FAST togglingSLOW at line 2 and 77, FAST at line 70, brackets the string-parser calls to allow display during the loop.
  • Array reuseV(21) stores numeric values for all deduction categories by index, allowing a single pair of subroutines (2880, 2930) to handle display and input for any category.
  • Zero-entry sentinelIF D(I)=0 THEN GOTO 280 (line 250) terminates a data-entry loop on a zero input rather than requiring a fixed count, a common idiom for variable-length lists.

Capital Gains Computation (lines 840–1010)

The capital-gains section implements the 1983 US tax rules with some complexity:

  • If net gain NG = NS + NL is positive, 60% of the long-term portion (GG) is excluded: CG = NG - 0.6*GG.
  • If net gain is negative and short-term is positive: CG = 0.5*NG.
  • If net loss exceeds −3000, carry-forwards are computed and displayed (lines 950–1006), and CG is clamped to −3000.

There is a structural anomaly: lines 910–930 contain orphaned conditional branches (IF NS>0, IF NL>0, LET CG=NS+.5*NL) that are never reached because the preceding GOTO 940 at line 902 skips them entirely. These appear to be dead code from an earlier version of the logic.

Notable Techniques

TechniqueLocationPurpose
Inverse-video key hint via CODE + 128Lines 2902–2906Highlights menu letter in display without separate PRINT AT/INK statements
Delimited string as array initialiserLines 14–15, 5500–5570Compresses 21 category names into two string literals
Part handoff via cassette flipLines 3100–3165Splits computation across two cassette sides; user notes AI and DE manually
INT(x + 0.5) roundingLines 1020, 2000, 2100Banker-friendly rounding of currency values
CHR$ 118 as ENTER key testLine 1072Allows pressing ENTER as an alternative to “R” to return

Content

Appears On

Related Products

Federal income tax forms with tax tables built in. 16K.

Related Articles

Related Content

Image Gallery

Tax

Source Code

   1 REM "TAX 1"
   2 SLOW 
   3 PRINT AT 11,9;"PLEASE WAIT"
   4 LET GI=0
   5 LET AD=0
   6 LET DE=0
   7 LET TX=0
   8 LET P=0
   9 LET TT=0
  12 DIM V$(21,20)
  13 DIM V(21)
  14 LET C$=" 1  MEDICINE:: 4A DOCTORS, ETC.: 4B TRANSPORT.: 4C OTHER MEDICAL: 8  INCOME TAXES: 9  PROPERTY:10A SALES TAXES:10B VEHICLE:11  OTHER TAXES:13A BANK MORT:13B IND. MORT:14  CREDIT CARDS:15  OTHER INTER.:17ABCASH CONT.:18  OTHER CONT.:19  PRIOR YEARS:;"
  15 LET D$="21  CASUALTY:22  DUES-UN. AND PR.:23  TAX FEE:24  OTHER DEDUC.:;"
  22 LET H$="NO"
  24 LET EX=1
  25 LET NN=0
  26 LET FS=1
  28 LET SD=2300
  30 DIM I(10)
  31 LET ND=0
  32 DIM D(10)
  33 LET NS=0
  34 LET NL=0
  35 LET IG=0
  36 DIM S(10)
  37 DIM L(10)
  38 LET IL=0
  39 DIM O(10)
  40 LET W2=0
  41 LET IN=0
  42 LET D=0
  43 LET EC=0
  44 LET CG=0
  45 LET IO=0
  47 LET MV=0
  48 LET BS=0
  49 LET IR=0
  50 LET K=0
  51 LET SP=0
  52 LET AL=0
  53 LET MP=0
  54 LET DS=0
  55 LET M=0
  56 LET T=0
  57 LET ID=0
  58 LET CO=0
  59 LET MS=0
  60 LET LO=0
  62 LET B=0
  65 LET H=0
  66 LET F$=C$
  68 CLS 
  70 FAST 
  72 GOSUB 5500
  74 LET F$=D$
  76 GOSUB 5500
  77 SLOW 
  78 GOTO 1360
  80 CLS 
  84 PRINT AT 1,0;"7.TYPE TOTAL WAGES"
  94 PRINT AT 4,0;" ";W2
 120 INPUT W2
 124 PRINT AT 4,0;" ";W2;"   "
 170 RETURN 
 180 CLS 
 184 PRINT AT 1,0;"9.TYPE DIVIDEND"
 185 PRINT "TYPE 0 TO QUIT"
 186 PRINT 
 190 IF ND=0 THEN GOTO 220
 200 FOR I=14 TO ND
 210 PRINT "  ";D(I)
 212 NEXT I
 220 LET D=0
 230 FOR I=1 TO 10
 240 INPUT D(I)
 245 PRINT D(I);"     "
 250 IF D(I)=0 THEN GOTO 280
 260 LET D=D+D(I)
 270 NEXT I
 280 LET ND=I-1
 290 RETURN 
 300 CLS 
 302 PRINT AT 1,0;"8.TYPE INTEREST"
 306 PRINT "TYPE 0 TO QUIT"
 308 PRINT 
 310 IF NN=0 THEN GOTO 350
 320 FOR I=1 TO NN
 330 PRINT " ";I(I)
 332 NEXT I
 340 PRINT AT 3,0
 350 LET IN=0
 360 FOR I=1 TO 10
 370 INPUT I(I)
 375 PRINT "  ";I(I);"     "
 380 IF I(I)=0 THEN GOTO 410
 390 LET IN=IN+I(I)
 400 NEXT I
 410 LET NN=I-1
 420 RETURN 
 430 CLS 
 432 PRINT AT 1,0;"OTHER INCOME"
 436 PRINT 
 440 PRINT "10%TAX REFUND   ";O(1)
 450 PRINT "11%ALIMONY REC. ";O(2)
 460 PRINT "12%BUSINESS INC.";O(3)
 470 PRINT "14%OTHER GAIN   ";O(4)
 480 PRINT "15%SUPP. GAIN   ";O(5)
 490 PRINT "16/17%PENSION   ";O(6)
 500 PRINT "18R%ENTS, ROYAL.";O(7)
 510 PRINT "19%FARM INCOME  ";O(8)
 520 PRINT "20%UNEMP. COM.  ";O(9)
 530 PRINT "21OTHER %INCOME ";O(10)
 531 PRINT 
 532 PRINT "  %RETURN"
 533 PRINT 
 534 PRINT "TYPE BLACK LETTER"
 535 PRINT 
 536 IF INKEY$="" THEN GOTO 536
 538 LET A$=INKEY$
 540 IF A$="R" THEN GOTO 593
 541 IF A$<>"T" THEN GOTO 546
 542 PRINT "TAX REFUND"
 543 INPUT O(1)
 544 PRINT AT 3,15;O(1);"     "
 545 GOTO 590
 546 IF A$<>"A" THEN GOTO 551
 547 PRINT "ALIMONY REC."
 548 INPUT O(2)
 549 PRINT AT 4,15;O(2);"     "
 550 GOTO 590
 551 IF A$<>"B" THEN GOTO 556
 552 PRINT "BUSINESS INC."
 553 INPUT O(3)
 554 PRINT AT 5,15;O(3);"     "
 555 GOTO 590
 556 IF A$<>"O" THEN GOTO 561
 557 PRINT "OTHER GAIN"
 558 INPUT O(4)
 559 PRINT AT 6,15;O(4);"     "
 560 GOTO 590
 561 IF A$<>"S" THEN GOTO 566
 562 PRINT "SUPP. GAIN"
 563 INPUT O(5)
 564 PRINT AT 7,15;O(5);"     "
 565 GOTO 590
 566 IF A$<>"P" THEN GOTO 571
 567 PRINT "PENSION"
 568 INPUT O(6)
 569 PRINT AT 8,15;O(6);"     "
 570 GOTO 590
 571 IF A$<>"E" THEN GOTO 576
 572 PRINT "RENTS, ROYAL."
 573 INPUT O(7)
 574 PRINT AT 9,15;O(7);"     "
 575 GOTO 590
 576 IF A$<>"F" THEN GOTO 581
 577 PRINT "FARM INC."
 578 INPUT O(8)
 579 PRINT AT 10,15;O(8);"     "
 580 GOTO 590
 581 IF A$<>"U" THEN GOTO 586
 582 PRINT "UNEMP. COM."
 583 INPUT O(9)
 584 PRINT AT 11,15;O(9);"     "
 585 GOTO 590
 586 IF A$<>"I" THEN GOTO 590
 587 PRINT "OTHER INCOME"
 588 INPUT O(10)
 589 PRINT AT 12,15;O(10);"     "
 590 PRINT AT 18,0;"             "
 591 PRINT AT 17,0
 592 GOTO 536
 593 LET IO=0
 594 FOR I=1 TO 10
 596 LET IO=IO+O(I)
 598 NEXT I
 600 RETURN 
 610 CLS 
 612 PRINT 
 614 PRINT "1983 TAX: INCOME"
 616 PRINT "TYPE BLACK LETTERS"
 620 PRINT 
 622 PRINT " 7%WAGES, SAL.",W2
 630 PRINT " 8%INTEREST",IN
 640 LET DV=D-EC
 642 IF DV<0 THEN LET DV=0
 650 PRINT " 9%DIVIDEND",DV
 660 PRINT "(";D;"-";EC;")"
 670 PRINT " (%EXCL.)",EC
 680 PRINT "13%CAP. GAIN",CG
 690 PRINT "  %OTHER INCOME",IO
 700 LET GI=W2+DV+IN+IO+CG
 710 IF GI<0  THEN LET GI=0
 720 PRINT 
 722 PRINT "22TOTAL INCOME",GI
 740 PRINT 
 742 PRINT "  %RETURN"
 750 PRINT AT 21,0;"COPR 1983 PRACTIC PROG"
 770 IF INKEY$="" THEN GOTO 770
 772 LET A$=INKEY$
 780 IF A$="R" THEN RETURN 
 790 IF A$="W" THEN GOSUB 80
 792 IF A$="D" THEN GOSUB 180
 800 IF A$="I" THEN GOSUB 300
 802 IF A$="O" THEN GOSUB 430
 804 IF A$="C" THEN GOSUB 840
 810 IF A$="E" THEN GOSUB 830
 820 GOTO 610
 830 CLS 
 832 PRINT 
 834 PRINT "EXCLUSION"
 836 INPUT EC
 837 PRINT "  ";EC
 838 RETURN 
 840 CLS 
 842 PRINT 
 844 PRINT "D.CAPITAL GAIN"
 850 PRINT 
 852 PRINT "I. %SHORT",NS
 860 PRINT 
 862 PRINT "II.%LONG",NL
 870 LET NG=NS+NL
 880 IF NG<0 THEN GOTO 910
 890 LET GG=NG
 892 IF NL<NG THEN LET GG=NL
 894 IF GG<0 THEN LET GG=0
 900 LET CG=NG-.6*GG
 902 GOTO 940
 910 IF NS>0 THEN LET CG=.5*NG
 912 GOTO 940
 920 IF NL>0 THEN LET CG=NG
 922 GOTO 940
 930 LET CG=NS+.5*NL
 940 IF CG>-3000 THEN GOTO 1010
 950 LET CF=CG+3000
 952 LET CG=-3000
 960 LET S1=NS+3000
 970 IF S1>0 THEN LET S1=0
 980 IF S1<CF THEN LET S1=CF
 990 LET S2=2*(CF-S1)
 1000 PRINT 
 1002 PRINT "CARRYFORWARDS:"
 1004 PRINT "30SHORT",S1
 1006 PRINT "36LONG",S2
 1010 LET A=22
 1012 IF CG<0 THEN LET A=24
 1020 LET CG=INT (CG+.5)
 1030 PRINT 
 1032 PRINT A;"TOTAL",CG
 1040 PRINT 
 1042 PRINT "%RETURN"
 1050 PRINT "TYPE LETTER"
 1060 IF INKEY$="" THEN GOTO 1060
 1062 LET A$=INKEY$
 1070 IF A$="R" THEN RETURN 
 1072 IF A$=CHR$ 118 THEN RETURN 
 1080 IF A$="S" THEN GOSUB 1100
 1082 IF A$="L" THEN GOSUB 1230
 1090 GOTO 840
 1100 CLS 
 1102 PRINT 
 1104 PRINT "I.TYPE SHORT TERM CAPITAL GAINS."
 1105 PRINT "TYPE 0 TO QUIT"
 1106 PRINT 
 1110 IF IG=0 THEN GOTO 1150
 1120 FOR I=1 TO IG
 1130 PRINT "  ";S(I)
 1132 NEXT I
 1150 LET NS=0
 1152 PRINT AT 3,0
 1160 FOR I=1 TO 10
 1170 INPUT S(I)
 1175 PRINT "  ";S(I);"    "
 1180 IF S(I)=0 THEN GOTO 1210
 1190 LET NS=NS+S(I)
 1200 NEXT I
 1210 LET IG=I-1
 1220 RETURN 
 1230 CLS 
 1232 PRINT 
 1234 PRINT "II.TYPE LONG TERM CAPITAL GAINS."
 1235 PRINT "TYPE 0 TO QUIT"
 1236 PRINT 
 1240 IF IL=0 THEN GOTO 1280
 1250 FOR I=1 TO IL
 1260 PRINT "  ";L(I)
 1262 NEXT I
 1280 LET NL=0
 1285 PRINT AT 3,0
 1290 FOR I=1 TO 10
 1300 INPUT L(I)
 1302 PRINT "  ";L(I);"     "
 1310 IF L(I)=0 THEN GOTO 1340
 1320 LET NL=NL+L(I)
 1330 NEXT I
 1340 LET IL=I-1
 1350 RETURN 
 1360 CLS 
 1362 PRINT 
 1364 PRINT "1983 INCOME TAX COMPUTATION PROG"
 1366 PRINT "TYPE BLACK LETTERS"
 1370 PRINT 
 1372 PRINT "22TOT. %INC",GI
 1380 PRINT 
 1382 PRINT "31%ADJUSTMENTS",AD
 1390 LET AI=GI-AD
 1392 IF AI<0 THEN LET AI=0
 1400 PRINT 
 1402 PRINT "32ADJ. INC.",AI
 1404 PRINT 
 1406 PRINT "34%DEDUCTIONS",DE
 1408 PRINT 
 1410 PRINT "  %GOTO PART 2 OF PROG."
 1416 PRINT 
 1418 PRINT "  %QUIT"
 1420 PRINT AT 20,0;"COPR 1983 PRACTICAL PROGRAMS,   INC."
 1422 SLOW 
 1430 IF INKEY$="" THEN GOTO 1430
 1432 LET A$=INKEY$
 1440 IF A$="Q" THEN STOP 
 1450 IF A$="A" THEN GOSUB 1490
 1452 IF A$="I" THEN GOSUB 610
 1454 IF A$="D" THEN GOSUB 1840
 1456 IF A$="G" THEN GOSUB 3000
 1460 GOTO 1360
 1470 PRINT "TOTAL INC."
 1472 INPUT GI
 1474 PRINT AT 12,0;GI
 1480 GOTO 1360
 1490 CLS 
 1491 PRINT 
 1492 PRINT "TYPE ADJUSTMENTS TO INCOME"
 1500 PRINT 
 1502 PRINT "23M%OVING EXP.",MV
 1510 PRINT "24%BUSINESS",BS
 1520 PRINT "25%IRA PAYMENTS",IR
 1530 PRINT "26%KEOGH PAYM.",K
 1540 PRINT "27%SAV. PENALTY",SP
 1550 PRINT "28%ALIMONY PAID",AL
 1560 PRINT "29%MARRIAGE",MP
 1570 PRINT "30%DISABILITY",DS
 1580 LET AD=MV+BS+IR+K+SP+AL+MP+DS
 1590 GOSUB 1740
 1600 IF A$="R" THEN RETURN 
 1610 IF A$="O" THEN GOTO 1650
 1612 IF A$="B" THEN GOTO 1660
 1614 IF A$="I" THEN GOTO 1680
 1620 IF A$="K" THEN GOTO 1690
 1622 IF A$="S" THEN GOTO 1700
 1624 IF A$="A" THEN GOTO 1710
 1630 IF A$="M" THEN GOTO 1720
 1632 IF A$="D" THEN GOTO 1730
 1640 GOTO 1490
 1650 PRINT 
 1652 PRINT "MOVING"
 1654 INPUT MV
 1656 GOTO 1490
 1660 PRINT 
 1662 PRINT "BUSINESS EXPENSE"
 1664 INPUT BS
 1670 GOTO 1490
 1680 PRINT 
 1682 PRINT "IRA CONTRIB."
 1684 INPUT IR
 1686 GOTO 1490
 1690 PRINT 
 1692 PRINT "KEOGH"
 1694 INPUT K
 1696 GOTO 1490
 1700 PRINT 
 1702 PRINT "SAVING PEN."
 1704 INPUT SP
 1706 GOTO 1490
 1710 PRINT 
 1712 PRINT "ALIMONY"
 1714 INPUT AL
 1716 GOTO 1490
 1720 PRINT 
 1722 PRINT "MARRIAGE"
 1724 INPUT MP
 1726 GOTO 1490
 1730 PRINT 
 1732 PRINT "DISIBILITY"
 1734 INPUT DS
 1736 GOTO 1490
 1740 PRINT 
 1742 PRINT "%RETURN"
 1750 PRINT 
 1752 PRINT "TYPE LETTER"
 1760 IF INKEY$="" THEN GOTO 1760
 1762 LET A$=INKEY$
 1770 RETURN 
 1840 CLS 
 1842 PRINT 
 1844 PRINT "DEDUCTIONS"
 1850 PRINT 
 1852 PRINT "32ADJUST. INC",AI
 1860 PRINT 
 1862 PRINT " 7%MEDICAL DED.",M
 1865 PRINT "12%TAXES",T
 1870 PRINT "16%INTEREST EXP.",ID
 1875 PRINT "20%CONTRIBUTIONS",CO
 1877 PRINT "21%LOSSES",LO
 1880 PRINT "24%OTHER DEDUCT.",MS
 1890 LET DE=M+T+ID+CO+LO+B+MS
 1900 PRINT 
 1902 PRINT "25TOTAL DEDUCT.",DE
 1910 PRINT 
 1912 PRINT "  %RETURN"
 1914 PRINT 
 1916 PRINT "TYPE LETTER"
 1920 IF INKEY$="" THEN GOTO 1920
 1922 LET A$=INKEY$
 1930 IF A$="R" THEN RETURN 
 1950 IF A$="M" THEN GOSUB 1980
 1952 IF A$="T" THEN GOSUB 2280
 1960 IF A$="I" THEN GOSUB 2430
 1962 IF A$="C" THEN GOSUB 2570
 1964 IF A$="O" THEN GOSUB 2700
 1966 IF A$="L" THEN GOSUB 2691
 1970 GOTO 1840
 1980 CLS 
 1981 PRINT 
 1982 PRINT "MEDICAL DEDUCTIONS"
 1990 LET I=1
 1992 GOSUB 2880
 2000 LET L2=INT (.01*AI+.5)
 2010 PRINT " 2 1PERCENT INC.     ";L2
 2020 LET L3=V(1)-L2
 2022 IF L3<0 THEN LET L3=0
 2030 PRINT " 3","     ";L3
 2050 LET I=3
 2052 GOSUB 2880
 2060 LET I=4
 2062 GOSUB 2880
 2070 LET I=5
 2072 GOSUB 2880
 2080 LET L6=L3
 2082 FOR I=2 TO 5
 2084 LET L6=L6+V(I)
 2086 NEXT I
 2090 PRINT " 5","     ";L6
 2100 LET L7=INT (.05*AI+.5)
 2110 PRINT " 6 5PERCENT INC.     ";L7
 2120 LET M=L6-L7
 2122 IF M<0 THEN LET M=0
 2170 PRINT " 7 TOTAL MEDICAL     ";M
 2180 GOSUB 2840
 2190 IF A$="R" THEN RETURN 
 2200 IF A$="M" THEN LET I=1
 2220 IF A$="D" THEN LET I=3
 2230 IF A$="T" THEN LET I=4
 2240 IF A$="O" THEN LET I=5
 2250 IF I=0 THEN GOTO 1980
 2260 GOSUB 2930
 2270 GOTO 1980
 2280 CLS 
 2282 PRINT 
 2284 PRINT "TAXES"
 2290 LET T=0
 2300 FOR I=6 TO 10
 2302 GOSUB 2880
 2310 LET T=T+V(I)
 2312 NEXT I
 2320 PRINT "12TOTAL TAXES        ";T
 2330 GOSUB 2840
 2340 IF A$="R" THEN RETURN 
 2350 IF A$="I" THEN LET I=6
 2360 IF A$="P" THEN LET I=7
 2370 IF A$="S" THEN LET I=8
 2380 IF A$="V" THEN LET I=9
 2390 IF A$="O" THEN LET I=10
 2400 IF I=0 THEN GOTO 2280
 2410 GOSUB 2930
 2420 GOTO 2280
 2430 CLS 
 2432 PRINT 
 2434 PRINT "INTEREST EXPENSE"
 2440 LET ID=0
 2450 FOR I=11 TO 14
 2452 GOSUB 2880
 2460 LET ID=ID+V(I)
 2462 NEXT I
 2470 PRINT "16TOTAL INTEREST     ";ID
 2480 GOSUB 2840
 2490 IF A$="R" THEN RETURN 
 2500 IF A$="B" THEN LET I=11
 2510 IF A$="I" THEN LET I=12
 2520 IF A$="C" THEN LET I=13
 2530 IF A$="O" THEN LET I=14
 2540 IF I=0 THEN GOTO 2430
 2550 GOSUB 2930
 2560 GOTO 2430
 2570 CLS 
 2572 PRINT 
 2574 PRINT "CONTRIBUTIONS"
 2580 LET CO=0
 2590 FOR I=15 TO 17
 2592 GOSUB 2880
 2600 LET CO=CO+V(I)
 2602 NEXT I
 2610 PRINT "20TOTAL CONTRIB.     ";CO
 2620 GOSUB 2840
 2630 IF A$="R" THEN RETURN 
 2640 IF A$="C" THEN LET I=15
 2650 IF A$="O" THEN LET I=16
 2660 IF A$="P" THEN LET I=17
 2670 IF I=0 THEN GOTO 2570
 2680 GOSUB 2930
 2690 GOTO 2570
 2691 CLS 
 2692 PRINT "21 LOSSES ";LO
 2693 INPUT LO
 2694 RETURN 
 2700 CLS 
 2702 PRINT 
 2704 PRINT "MISCELLANEOUS"
 2710 LET MS=0
 2720 FOR I=19 TO 21
 2722 GOSUB 2880
 2730 LET MS=MS+V(I)
 2732 NEXT I
 2740 PRINT "25TOTAL MISCEL.      ";MS
 2750 GOSUB 2840
 2760 IF A$="R" THEN RETURN 
 2780 IF A$="D" THEN LET I=19
 2790 IF A$="T" THEN LET I=20
 2800 IF A$="O" THEN LET I=21
 2810 IF I=0 THEN GOTO 2700
 2820 GOSUB 2930
 2830 GOTO 2700
 2840 PRINT 
 2842 PRINT "  %RETURN"
 2850 PRINT 
 2852 PRINT "TYPE LETTER"
 2860 IF INKEY$="" THEN GOTO 2860
 2862 LET A$=INKEY$
 2870 LET I=0
 2872 RETURN 
 2880 LET L$=V$(I)( TO 4)
 2890 LET M$=V$(I)(5 TO 5)
 2900 LET R$=V$(I)(6 TO )
 2902 LET ZZ=CODE M$
 2904 LET ZZ=ZZ+128
 2906 LET M$=CHR$ ZZ
 2910 PRINT L$;M$;R$;" ";V(I)
 2920 RETURN 
 2930 PRINT 
 2932 PRINT V$(I)
 2934 INPUT V(I)
 2936 RETURN 
 3000 CLS 
 3002 PRINT 
 3009 PRINT "ARE YOU SURE YOU ARE"
 3010 PRINT "COMPLETELY FINISHED WITH PART 1"
 3020 PRINT "(Y OR N)"
 3030 INPUT T$
 3040 IF T$="Y" THEN GOTO 3100
 3050 GOTO 1360
 3100 PRINT "WRITE DOWN THE FOLLOWING VALUES"
 3105 PRINT 
 3110 PRINT "1. ";AI
 3120 PRINT "2. ";DE
 3140 PRINT 
 3150 PRINT "THEN FLIP OVER CASSETTE AND TYPE"
 3155 PRINT 
 3160 PRINT " LOAD ""TAX 2"""
 3165 PRINT 
 3170 PRINT "PART 2 WILL ASK FOR VALUES"
 3180 PRINT "1-2 IN ORDER"
 4000 STOP 
 5500 LET N=0
 5505 LET E$=""
 5510 LET H=H+1
 5515 LET N=N+1
 5520 LET G$=F$(N TO N)
 5525 IF G$=":" THEN GOTO 5545
 5530 IF G$=";" THEN GOTO 5565
 5535 LET E$=E$+G$
 5540 GOTO 5515
 5545 LET V$(H)=E$
 5550 LET E$=""
 5555 GOTO 5510
 5565 LET H=H-1
 5570 RETURN 
 9000 CLS 
 9010 CLEAR 
 9020 SAVE "TAX %1"
 9030 RUN 

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

People

No people associated with this content.

Scroll to Top