1 REM TAX RECORDS 64 2 REM POKE788,52:REM DISABLE STOP/RUN ** 6 OPEN15,8,15:U$=CHR$(145):RT$=CHR$(18):RO$=CHR$(146):VP=1 10 POKE53281,1:POKE53280,1:PRINTCHR$(144)CHR$(147) 12 SL=54272:SH=54273:PL=54274:PH=54275:SW=54276:SA=54277:SS=54278:SV=54296 15 GOTO300 16 FORX=1TO39:PRINTCHR$(32);:NEXTX:PRINTU$:RETURN 20 GOSUB25:GOSUB26:GOSUB27:RETURN 21 FORX=1TO500:NEXTX:RETURN 22 PRINTRT$" TO CONTINUE":IP$="":GOSUB100:PRINT:INPUTA$:RETURN 24 PRINTRT$"INITIALIZING DISK":PRINT#15,"I0":RETURN 25 PRINTCHR$(147):PRINT:PRINT:RETURN 26 INPUT#15,X6$,X7$:PRINTRT$"DISK STATUS ";X6$;" ";X7$:RETURN 27 FORX=0TO39:PRINTCHR$(102);:NEXTX:IP$="":GOSUB100:PRINTU$;:RETURN 30 PRINTRT$"MEMORY AVAILABLE:";FRE(0)-(FRE(0)<0)*65536:RETURN 35 V3=LEN(AM$(C)):H3=12-V3:V5=37-V3:IFH3<1THENH3=1 36 PRINTCA$(C);" ";SC$(C);" ";SO$(C);TAB(14)DA$(C);:PRINTTAB(22)RE$(C); 37 PRINTTAB(29)"$";TAB(V5)AM$(C):AM=VAL(AM$(C)):LC=LC+1:IFZA=1THENLC=0 38 IFCA$(C)="I"THENT1=AM+T1 39 IFCA$(C)="D"THENT2=AM+T2 40 IFP$="Y"THENV1=LEN(SO$(C)):V2=LEN(RE$(C)):H1=12-V1:H2=12-V2 41 IFP$="Y"THENPRINT#2,CA$(C);"..";SC$(C);"..";SO$(C);SPC(H1)DA$(C); 42 IFP$="Y"THENPRINT#2,"";SPC(4)RE$(C);SPC(H2);"$";SPC(H3)AM$(C) 43 IFLC>12THENLC=0:GOSUB22 45 RETURN 46 IFP$="Y"THENPRINT#2:PRINT#2,"TOTAL INCOME $";T1 47 IFP$="Y"THENPRINT#2,"TOTAL DEDUCTIONS $";T2 49 RETURN 50 PRINT"CATEGORY (I) OR (D)":IP$="":GOSUB100 51 INPUTCA$:IFCA$="I"THEN53 52 IFCA$<>"D"THENPRINTU$;:GOTO51 53 PRINT"SOURCE (MINIMUM 4 LETTERS)":INPUTSO$ 54 E=0:FORC=1TON 55 IFCA$<>CA$(C)ORLEFT$(SO$,4)<>LEFT$(SO$(C),4)THEN60 56 GOSUB35 57 PRINTRT$" CORRECT DATA (Y/N) ":IP$="":GOSUB100:INPUTX$ 58 IFX$="Y"THEN62 59 PRINTU$U$U$U$:GOSUB16 60 NEXTC 61 IP$="RECORD NOT FOUND":GOSUB100:PRINT:E=1:GOSUB21 62 RETURN 70 CLOSE2:INPUT"WILL YOU NEED A PRINT OUT (Y/N)";P$:IFP$="Y"THENOPEN2,4 71 IFP$="Y"THENPRINT#2,"FILE: ";N$:PRINT#2:PRINT#2,"SEARCH:";A$;" 1=CATEGORY "; 72 IFP$="Y"THENPRINT#2,"2=SUB CAT 3=SOURCE 4=MONTH 5=RECORD 6=AMOUNT":PRINT#2 73 IFP$="Y"THENPRINT#2,"C SUB SOURCE......DATE....."; 74 IFP$="Y"THENPRINT#2,"RECORD...........AMOUNT":PRINT#2 75 RETURN 76 J=0:IFB$="I"ANDCA$(C)=B$THENJ=1:RETURN 77 IFB$="D"ANDCA$(C)=B$THENJ=1:RETURN 78 IFB$="B"THENJ=1:RETURN 79 RETURN 80 GOSUB27:PRINTRT$"I"RO$"NCOME":PRINT"OR":PRINTRT$"D"RO$"EDUCTION" 82 PRINT 84 INPUTB$ 86 IFB$="I"THENRETURN 87 IFB$="D"THENRETURN 89 IFB$<>"D"THENPRINTU$;:GOTO84 90 PRINT"FINISHED":IP$="":GOSUB100:PRINT 91 GOSUB46 92 PRINTRT$"TOTAL INCOME $"T1:PRINTRT$"TOTAL DEDUCTIONS $"T2 96 IFVP>0THEN CLOSE2 98 GOSUB22:RETURN 100 FORXC=0TOLEN(IP$) 102 POKESV,8:POKESH,50:POKESL,60:POKESA,120:POKESS,30:POKESW,17 104 PRINTLEFT$(IP$,XC+1)U$:FORX=1TO78:NEXTX:POKESV,0:POKESW,16:NEXTXC 108 FORX=54272TO54296:POKEX,0:NEXTX:FORX=1TO100:NEXTX:RETURN 200 PRINT:IP$="ARE YOU SURE (Y/N)":GOSUB100:PRINT:RETURN 300 GOSUB25:GOSUB27:PRINT:IP$="TAX RECORDS 64":GOSUB100:PRINT:GOSUB27 310 PRINT"BY G.FIELDS":PRINT:PRINT:PRINT"* 1984 *" 340 DIMCA$(500),SC$(500),SO$(500),DA$(500),RE$(500),AM$(500):GOSUB21 500 GOSUB20:LC=0 510 PRINTRT$" FILE OPTIONS ":PRINT 530 PRINTTAB(6)RT$"N"RO$"EW FILE - CREATE" 531 PRINTTAB(6)RT$"L"RO$"OAD EXISTING FILE" 532 PRINTTAB(6)RT$"A"RO$"DD TO FILE" 534 PRINTTAB(6)RT$"D"RO$"ELETE FROM FILE" 536 PRINTTAB(6)RT$"C"RO$"HANGE DATA" 538 PRINTTAB(6)RT$"M"RO$"ERGE TWO FILES" 539 PRINTTAB(6)RT$"R"RO$"ESAVE FILE" 540 PRINTTAB(6)RT$"S"RO$"TATUS CHECK" 541 PRINTTAB(6)RT$"I"RO$"NITIALIZE DISK" 542 PRINTTAB(6)RT$"?"RO$" MEMORY AVAILABLE":PRINT 543 PRINTTAB(6)RT$"H"RO$"ELP !" 544 PRINTTAB(6)RT$"F1"RO$" WORK WITH OR PRINT FILE" 545 PRINTTAB(6)RT$"F2"RO$" SCRATCH A FILE":GOSUB27 550 PRINTRT$" SELECT BY LETTER " 570 GETA$:IFA$=""THEN570 571 IFA$="S"THENGOSUB26 572 IFA$="?"THENGOSUB30 573 IFA$="I"THENGOSUB24:GOSUB16 574 IFA$="N"THENZA=0:GZ=0:GOTO7000 575 IFA$=CHR$(137)THEN1700 576 IFA$="L"THENZA=1:GZ=0:GOTO5500 577 IFA$="H"THENH=1:GOTO2000 578 IFZA<>1THENIP$="NO FILE IN MEMORY":GOSUB100:GOSUB16:GOTO570 580 IFA$="A"THEN7200 582 IFA$="D"THEN7400 584 IFA$="C"THEN7600 585 IFA$="M"THEN7800 586 IFA$="R"THEN610 590 IFA$<>CHR$(133)THEN570 600 IFWF<>1THEN700 610 GOSUB20:PRINTRT$"BEFORE CONTINUING: ":PRINT 620 PRINT"SAVE THE FILE NOW IN MEMORY" 630 PRINT"USING A DATE AS A FILE NAME" 640 PRINT"IS GOOD PRACTICE." 645 PRINT"NAME FILE":IP$="":GOSUB100:PRINT 646 N$="":INPUTN$:IFLEN(N$)<1ORLEN(N$)>16THENPRINTU$;:GOTO646 650 OPEN1,8,2,"@0:"+N$+",S,W" 655 GOSUB26:IFX7$<>"OK"THENCLOSE1:GOTO645 660 FORC=1TON 665 PRINT#1,CA$(C):PRINT#1,SC$(C):PRINT#1,SO$(C):PRINT#1,DA$(C) 667 PRINT#1,RE$(C):PRINT#1,AM$(C):NEXTC 680 CLOSE1:GOSUB26:PRINT" FILE "N$" SAVED":PRINT:GOSUB22 700 GOSUB20:ZA=0:T1=0:T2=0:P$="N":LC=0:WF=0 710 PRINTRT$"WORK WITH FILE ";N$ 720 PRINTTAB(6)RT$"T"RO$"OTAL REVIEW" 721 PRINTRT$" SEARCH FOR (BY #) " 722 PRINTTAB(6)RT$"1"RO$"CATEGORY" 724 PRINTTAB(6)RT$"2"RO$"SUBCATEGORY" 726 PRINTTAB(6)RT$"3"RO$"SOURCE" 728 PRINTTAB(6)RT$"4"RO$"MONTH" 730 PRINTTAB(6)RT$"5"RO$"RECORD" 732 PRINTTAB(6)RT$"6"RO$"AMOUNT":PRINT 734 PRINTTAB(6)RT$"Q"RO$"UIT AND CLOSE ALL FILES" 736 PRINTTAB(6)RT$"H"RO$"ELP !" 738 PRINTTAB(6)RT$"S"RO$"TATUS OF DISK" 740 PRINTTAB(6)RT$"?"RO$"MEMORY AVAILABLE" 742 PRINTTAB(6)RT$"I"RO$"NITIALIZE DISK" 744 PRINTTAB(6)RT$"F1"RO$" RETURN TO FILE OPTIONS" 800 GOSUB27:PRINTRT$" SELECT BY LETTER " 810 GETA$:IFA$=""THEN810 818 IFA$="T"THEN900 820 IFA$="1"THEN950 822 IFA$="2"THEN1000 824 IFA$="3"THEN1100 826 IFA$="4"THEN1200 828 IFA$="5"THEN1300 830 IFA$="6"THEN1400 832 IFA$="Q"THEN1500 834 IFA$="H"THENH=0:GOTO2000 836 IFA$="S"THENGOSUB26 838 IFA$="?"THENGOSUB30 840 IFA$="I"THENGOSUB24 842 IFA$=CHR$(133)THENZA=1:GOTO500 850 GOTO810 900 GOSUB20:VP=0 910 PRINTRT$" TOTAL REVIEW ":PRINT:GOSUB70:GOTO916 912 PRINTGG$:T1=0:T2=0:LC=0:IFP$="Y"THENPRINT#2:PRINT#2,GG$:PRINT#2 914 FORC=1TON:IFCA$(C)=GH$ANDSC$(C)=LEFT$(GG$,1)THENGOSUB35 915 NEXTC:GOSUB90:RETURN 916 GH$="I":GG$="WAGES":GOSUB912:GG$="FARM":GOSUB912:GG$="DIVIDENDS":GOSUB912 918 GG$="INTEREST":GOSUB912:GG$="RENTAL":GOSUB912:GG$="BUSINESS":GOSUB912 920 GG$="OTHER":GOSUB912 926 GH$="D" 928 GG$="INTEREST":GOSUB912:GG$="MEDICAL":GOSUB912:GG$="EDUCATIONAL":GOSUB912 930 GG$="TAX":GOSUB912:GG$="CONTRIBUTION":GOSUB912 932 GG$="RETIREMENT FUND":GOSUB912:GG$="BUSINESS":GOSUB912:GG$="OTHER":GOSUB912 948 GOTO700 950 GOSUB20:PRINTRT$" CATEGORY SEARCH (I) OR (D) ":GOSUB70 955 INPUT"CATEGORY";WC$:FORC=1TON:IFCA$(C)=WC$THENGOSUB35 960 NEXTC:GOSUB90:VP=1:GOTO700 1000 GOSUB20:PRINTRT$" SUB CATEGORY SEARCH ":GOSUB70:GOSUB80 1002 PRINTRT$" INCOME= W F D I R B O":PRINTRT$"DEDUCTION= I M E T C R B O" 1004 INPUT"SUB CATEGORY";WC$:FORC=1TON:GOSUB76 1005 IFCA$(C)=B$ANDSC$(C)=WC$THENGOSUB35 1006 NEXTC:GOSUB90:GOTO700 1100 GOSUB20:PRINTRT$" SOURCE SEARCH (FIRST 4 LETTERS) ":GOSUB70:GOSUB80 1102 INPUT"SOURCE";WC$:FORC=1TON:GOSUB76 1103 IFCA$(C)=B$ANDLEFT$(SO$(C),4)=LEFT$(WC$,4)THENGOSUB35 1104 NEXTC:GOSUB90:GOTO700 1200 GOSUB20:PRINTRT$" MONTH SEARCH (2 LETTERS) ":GOSUB70:GOSUB80 1202 INPUT"MONTH";WC$:IFLEN(WC$)<>2THENPRINTU$;:GOTO1202 1204 FORC=1TON:GOSUB76:IFCA$(C)=B$ANDLEFT$(DA$(C),2)=WC$THENGOSUB35 1206 NEXTC:GOSUB90:GOTO700 1300 GOSUB20:PRINTRT$" RECORD/RECEIPT SEARCH (MAX 6 LETTERS) ":GOSUB70:GOSUB80 1302 INPUT"RECORD/RECEIPT";WC$:IFLEN(WC$)<1ORLEN(WC$)>6THENPRINTU$;:GOTO1302 1304 FORC=1TON:GOSUB76:IFCA$(C)=B$ANDRE$(C)=WC$THENGOSUB35 1306 NEXTC:GOSUB90:GOTO700 1400 GOSUB20:PRINTRT$" AMOUNT SEARCH ":GOSUB70:GOSUB80 1402 INPUT"AMOUNT (NO $)";WC$:FORC=1TON:GOSUB76 1403 IFCA$(C)=B$ANDAM$(C)=WC$THENGOSUB35 1404 NEXTC:GOSUB90:GOTO700 1500 GOSUB20:PRINTRT$" EXIT & CLOSE ALL FILES ":PRINT:PRINT 1502 GOSUB200:PRINT:INPUTA$:IFA$<>"Y"THEN700 1504 POKE788,49:CLOSE1:CLOSE2:CLOSE15:END 1700 GOSUB20:PRINTRT$" SCRATCH A FILE ":GOSUB27 1702 GOSUB200:INPUTA$:IFA$<>"Y"THEN500 1704 GOSUB27:PRINT"NAME FILE TO SCRATCH":INPUTNN$:GOSUB200 1705 INPUTA$:IFA$<>"Y"THEN500 1706 GOSUB24:PRINT#15,"S0:"+NN$ 1708 GOSUB26:PRINTRT$;NN$;" SCRATCHED":GOSUB22:GOTO500 2000 PRINTCHR$(147) 2010 PRINTRT$" HELP ! ":PRINT 2020 PRINTRT$" CATEGORIES TWO " 2025 PRINT"I NCOME","D EDUCTION" 2030 PRINTRT$" SUB CATEGORY *INCOME " 2040 PRINT"W AGES","F ARM","D IVIDEND","O THER" 2045 PRINT"I NTEREST","R ENTAL","B USINESS" 2050 PRINTRT$" SUB CATEGORY *DEDUCTION" 2060 PRINT"I NTEREST","M EDICAL","E DUCATION" 2065 PRINT"B USINESS","T AX","C ONTRIBUTION" 2067 PRINT"O THER",,"R ETIREMENT FUND" 2100 PRINTRT$" SOURCE " 2110 PRINT"MINIMUM 4 LETTERS - MAXIMUM 10 LETTERS" 2120 PRINTRT$"DATE (MONTH-DAY) " 2125 PRINT"EXAMPLE:04-28 (5 LETTERS)" 2130 PRINTRT$" RECORD/RECEIPT " 2140 PRINT"EXAMPLE:CK#123 (MAX 6 LETTERS)" 2150 PRINTRT$" AMOUNT " 2160 PRINT"NO'$' (DOLLAR SIGN)" 2180 PRINT:GOSUB22 2200 IFH=1THEN500 2210 IFH<>1THEN700 5500 GOSUB20 5510 PRINT"RECALL FILE":PRINT 5515 PRINT:INPUT"NAME FILE TO RECALL";N$ 5520 IFLEN(N$)<1ORLEN(N$)>16THENPRINTU$:GOTO5515 5524 OPEN1,8,2,"0:"+N$+",S,R":C=0:GOSUB26 5525 IFX6$="62"THENCLOSE1:ZA=0:GOTO5536 5526 C=0 5527 C=C+1 5529 INPUT#1,CA$(C),SC$(C),SO$(C),DA$(C),RE$(C),AM$(C):S=ST 5530 GOSUB35 5532 IFS=0GOTO5527 5534 N=C:CLOSE1:PRINT"TOTAL COUNT: "N" RECORDS":IP$=" ":GOSUB100:PRINT 5536 GOSUB22:GOTO500 7000 GOSUB20:PRINTRT$" CREATE A NEW FILE " 7010 IP$="NAME NEW FILE":GOSUB100:PRINT:INPUTN$ 7020 OPEN1,8,2,"@0:"+N$+",S,W" 7025 GOSUB21:GOSUB20:IFX7$<>"OK"THEN7010 7030 PRINTRT$"CATEGORY: "R0$SPC(2)RT$" ! "RO$" CLOSE FILE" 7035 PRINT:PRINTRT$"CAT SUB/CAT SOURCE DATE REC AMOUNT" 7040 INPUT"CATEGORY (I) (D) (!)";CA$ 7042 IFCA$="I"THEN7045 7043 IFCA$="!"THENCLOSE1:GOSUB20:PRINT:IP$="FILE CLOSED":GOSUB100:GOTO500 7044 IFCA$<>"D"THENPRINTU$;:GOTO7040 7045 INPUT"SUB CATEGORY";SC$ 7046 IFCA$="D"THEN7056 7048 IFSC$="W"ORSC$="F"ORSC$="D"ORSC$="I"ORSC$="R"THEN7060 7052 IFSC$="B"ORSC$="O"THEN7060 7054 PRINTU$;:GOTO7045 7056 IFSC$="I"ORSC$="M"ORSC$="E"ORSC$="T"ORSC$="C"THEN7060 7058 IFCA$="D"ANDSC$="R"ORSC$="B"ORSC$="O"THEN7060 7059 PRINTU$;:GOTO7045 7060 INPUT"SOURCE (MIN/4 MAX/10)";SO$ 7062 IFLEN(SO$)<4ORLEN(SO$)>10THENPRINTU$;:GOTO7060 7065 PRINT"DATE - MONTH-DAY -" 7066 PRINTRT$"EXAMPLE-> 04-29"RO$;:INPUTDA$ 7067 IFLEN(DA$)<>5THENPRINTU$;:GOTO7066 7070 PRINT"RECORD/RECEIPT (MAX 6 LETTERS)" 7071 PRINTRT$"EXAMPLE-> CK#134"RO$;:INPUTRE$ 7072 IFLEN(RE$)<1ORLEN(RE$)>6THENPRINTU$;:GOTO7071 7075 INPUT"AMOUNT (NO $ SYMBOLS)";AM$ 7076 IFLEFT$(AM$,1)CHR$(57)THENPRINTU$;:GOTO7075 7077 IFLEFT$(RIGHT$(AM$,3),1)<>CHR$(46)THENPRINTU$;:GOTO7075 7078 IP$="":GOSUB100:PRINT 7080 INPUT"IS THIS CORRECT (Y/N)";A$ 7081 IFA$<>"Y"THENPRINTCHR$(19):FORX=1TO6:PRINT:NEXTX 7082 IFA$<>"Y"ANDHZ=1THENFORX=1TO5:PRINT:NEXTX 7083 IFA$<>"Y"THEN7040 7084 IFGZ=1THENWF=1:RETURN 7085 PRINT#1,CA$:PRINT#1,SC$:PRINT#1,SO$:PRINT#1,DA$:PRINT#1,RE$:PRINT#1,AM$ 7087 GOSUB16:WF=0 7090 A$="N":GOTO7081 7200 GOSUB20 7205 PRINTRT$"ADD DATA TO ";N$:GOSUB27 7210 GZ=1:GOSUB7035 7215 IFCA$="!"THEN500 7220 N=N+1:CA$(N)=CA$:SC$(N)=SC$:SO$(N)=SO$:DA$(N)=DA$:RE$(N)=RE$:AM$(N)=AM$ 7240 IP$="ADDED ":GOSUB100:PRINTU$:GOSUB16 7250 INPUT"ADD MORE (Y/N)";K$:IP$=" ":GOSUB100:PRINT 7251 IFK$="Y"THENPRINTCHR$(19):FORX=1TO4:PRINT:NEXTX:GOTO7210 7252 GOTO500 7400 GOSUB20:PRINTRT$"DELETE FROM FILE ";N$:GOSUB27 7406 GOSUB50:IFE=1THENWF=0:GOTO500 7410 N=N-1:FORD=CTON 7412 CA$(D)=CA$(D+1):SC$(D)=SC$(D+1):SO$(D)=SO$(D+1):DA$(D)=DA$(D+1) 7414 RE$(D)=RE$(D+1):AM$(D)=AM$(D+1):NEXTD 7418 IP$="RECORD DELETED":GOSUB100:PRINT:WF=1:GOTO500 7600 GOSUB20 7605 PRINTRT$"CHANGE DATA IN ";N$:GOSUB21 7610 GOSUB50:IFE=1THENWF=0:GOTO500 7620 GZ=1:HZ=1 7625 GOSUB7040:WF=1 7630 CA$(C)=CA$:SC$(C)=SC$:SO$(C)=SO$:DA$(C)=DA$:RE$(C)=RE$:AM$(C)=AM$ 7635 IP$="DATA CHANGED":GOSUB100:PRINT:GZ=0:HZ=0:GOTO500 7800 GOSUB20 7810 PRINTRT$" MERGE TWO FILES " 7820 PRINT:INPUT"ENTER FIRST FILE NAME";F1$ 7830 PRINT:PRINT:INPUT"ENTER SECOND FILE NAME";F2$ 7835 GOSUB27 7840 PRINT:PRINT:INPUT"ENTER NEW FILE NAME";F3$ 7850 PRINT:PRINTRT$" IS THIS CORRECT? (Y/N) " 7860 GETA$:IFA$=""THEN7860 7870 IFA$="Y"THEN7890 7875 IFA$="N"THEN7800 7880 IFA$<>"N"THEN7860 7890 GOSUB20:PRINT"" 7895 PRINT#15,"C0:"+F3$+"=0:"+F1$+",0:"+F2$" 7898 [141]26:[153]:IP$[178]" ":[141]100 7900 [153]"IF DISK STATUS IS OKAY - MERGE COMPLETE":[153]:[153] 7910 [141]22:[137]500