Balance your checkbook.
Content
Source Code
7 SAVE "CHEC%K"
10 FAST
20 GOSUB 2300
30 CLS
40 PRINT D$;AT A,K-C;"TODAYS ";F$,"ENTER IN THIS ORDER.","YEAR MONTH DAY",,"USE ONLY SIX DIGITS TOTAL"
50 INPUT DA
60 CLS
70 PRINT "% % % %P%R%O%G%R%A%M% %B%Y% %D%A%L%E% %F% %L%I%P%I%N%S%K%I% % % ";"% % \: CHECK BOOK\ :% \: DATE\ :% \: ";DA;TAB L+L+K;"\ :% % ";M$;"BALANCE $ ";BA/100;TAB A;"LAST ";G$;LC,M$
80 PRINT "NOTE: IF AT ANY TIME YOU LOSE","\''\''\''\'' CONTROL AND GET THE PROGRAM";TAB G;"PRESS %G%O%T%O 60 %E%N%T%E%R.",M$;,,,,C$,,"1= INPUT ENTRY",,"2= SEARCH",,"3= RECONCILE",,"6= ";N$,,E$
95 LET HI=C
100 INPUT R$
120 IF R$="0" THEN GOTO 2730
130 IF R$="1" THEN GOTO 170
140 IF R$="2" THEN GOSUB 1590
150 IF R$="3" THEN GOSUB 1030
155 IF R$="6" THEN GOSUB 1590
160 GOTO 60
170 REM
180 CLS
181 IF R$<>"6" THEN GOTO 190
182 IF (INT (A(W,C)/R))=C THEN LET BA=BA-A(W,E)
183 LET A(W,D)=A
184 IF (INT (A(W,C)/R))>=D THEN LET BA=BA+A(W,E)
185 LET A(W,E)=A
186 LET A(W,C)=A
187 CLS
188 PRINT TAB I;N$,O$
190 PRINT C$,,"1= CHECK ENTRY",,"5= ";A$(C),,,E$
210 INPUT Z$
225 IF R$="6" AND Z$="0" THEN CLS
226 IF R$="6" AND Z$="0" THEN PRINT "YOU MUST ENTER VALUES TO AN EDIT"
227 IF R$="6" AND Z$="0" THEN GOTO 190
230 IF Z$="0" THEN GOTO 60
240 IF Z$="1" THEN GOSUB 330
250 IF Z$="5" THEN GOSUB 270
260 GOTO 170
270 REM
280 CLS
290 LET Y$=A$(C)
300 LET Y=A
310 GOSUB 490
320 RETURN
330 REM
340 CLS
350 PRINT D$;H$;"NAME?",,,C$,,M$
370 INPUT Y$
385 IF CODE Y$=A THEN GOTO 340
386 IF R$="6" AND Y$="0" THEN GOTO 340
390 IF Y$="0" THEN RETURN
400 CLS
410 PRINT G$;LC+C;,,,,TAB A;J$,M$
430 INPUT Z$
450 IF CODE Z$=A THEN LET Y=LC+C
460 IF CODE Z$=A THEN GOTO 500
470 IF CODE Z$<=O OR CODE Z$>=P THEN GOTO 400
480 IF CODE Z$<>A THEN LET Y=VAL Z$
490 REM
500 CLS
510 IF Y$=A$(C) THEN PRINT A$(C)
520 PRINT F$;DA,,,,J$,C$,,M$
540 INPUT Z$
560 IF CODE Z$=A THEN LET Z=DA
570 IF CODE Z$=A THEN GOTO 610
580 IF Z$="0" THEN RETURN
590 IF CODE Z$<=O OR CODE Z$>=P THEN GOTO 500
600 IF CODE Z$<>A THEN LET Z=VAL Z$
610 CLS
620 PRINT D$;"AMOUNT?",M$
640 INPUT Z$
660 IF CODE Z$<=O OR CODE Z$>=P THEN GOTO 610
670 LET X=(VAL Z$)*100
680 CLS
690 PRINT Y$;TAB A;F$;Z,,G$;Y,,"$ ";X/100;TAB A,,,,K$,M$
700 IF Y$<>A$(C) AND BA-X<A THEN PRINT "%O%V%E%R%D%R%A%F%T",,M$
720 INPUT Z$
740 IF Y$<>A$(C) AND BA-X<A THEN RETURN
742 IF N>=B THEN GOTO 752
744 IF Q-C>=M THEN GOTO 752
750 IF CODE Z$=A THEN GOTO 780
752 CLS
755 PRINT "INFO %N%O%T ENTERED ",,,
756 IF Q-C>=M THEN GOTO 2705
757 IF N>=B THEN GOTO 2710
760 IF Y$=A$(C) THEN GOTO 510
770 GOTO 350
782 IF R$="6" THEN LET NN=N
784 IF R$="6" THEN LET N=W
790 IF Y$<>A$(C) THEN GOTO 840
800 LET AA=R
810 LET BA=BA+X
820 LET W=C
830 GOTO 920
840 LET BA=BA-X
850 IF Y>LC THEN LET LC=Y
860 LET A$(Q)=Y$
870 FOR W=D TO Q-C
880 IF A$(Q)=A$(W) THEN GOTO 902
890 NEXT W
900 LET Q=Q+C
910 LET AA=R*W
920 LET A(N,C)=AA+Y
930 LET A(N,D)=R+Z
940 LET A(N,E)=X
942 IF R$="6" THEN LET N=NN-C
950 LET N=N+C
955 PRINT AT G,L;"INFO ENTERED",M$;L$
956 IF R$="6" THEN PRINT AT G+C,E;N$;" CORRECTION",M$
957 PRINT ,,"BALANCE = $";BA/100
970 INPUT Z$
980 IF Z$="1" THEN COPY
990 IF N-C>=B OR Q-C>=M THEN GOTO 2705
992 IF R$="6" THEN LET R$="0"
994 IF R$="0" THEN RETURN
\n1000 IF CODE Z$=A AND Y$=A$(C) THEN GOTO 500
\n1010 IF CODE Z$=A OR Z$="1" THEN GOTO 340
\n1020 RETURN
\n1030 REM
\n1040 CLS
\n1050 PRINT "ENTER ";G$;"TO BE RECONCILED";,,C$,,M$;E$
\n1070 INPUT Y$
\n1077 IF CODE Y$<=O OR CODE Y$>=P THEN GOTO 1040
\n1080 IF Y$="0" THEN GOTO 1180
\n1090 LET Z=VAL Y$
\n1092 FOR W=D TO N
\n1094 CLS
\n1095 IF A(W,C)-(INT (A(W,C)/R)*R)=Z THEN GOSUB 2190
\n1100 IF A(W,C)-(INT (A(W,C)/R)*R)=Z THEN PRINT AT G,A;M$;K$
\n1105 IF A(W,C)-(INT (A(W,C)/R)*R)<>Z THEN NEXT W
\n1115 IF W>=N THEN PRINT "NOT FOUND"
\n1116 IF W>=N THEN GOTO 1050
\n1120 INPUT Z$
\n1130 IF Z$="0" THEN NEXT W
\n1160 GOSUB 1560
\n1170 GOTO 1040
\n1180 CLS
\n1190 PRINT AT A,A;"ENTER ";A$(C);AT A,G+K;"TO BE RECONCILED. ENTER BY DATE",,,,C$,,M$;E$
\n1210 INPUT Y$
\n1218 IF CODE Y$<=O OR CODE Y$>=P THEN GOTO 1180
\n1220 IF Y$="0" THEN GOTO 1320
\n1230 LET Z=VAL Y$
\n1235 FOR W=D TO N
\n1240 CLS
\n1242 IF INT (A(W,C)/R)<>C THEN NEXT W
\n1245 IF INT (A(W,C)/R)=C AND A(W,D)-(INT (A(W,D)/R)*R)=Z THEN GOSUB 2190
\n1250 IF INT (A(W,C)/R)=C AND A(W,D)-(INT (A(W,D)/R)*R)=Z THEN PRINT AT G,A;M$;K$
\n1255 IF A(W,D)-(INT (A(W,D)/R)*R)<>Z THEN NEXT W
\n1265 IF W>=N THEN PRINT AT L,G;"NOT FOUND"
\n1270 IF W>=N THEN GOTO 1190
\n1275 INPUT Z$
\n1290 IF Z$="0" THEN NEXT W
\n1300 GOSUB 1560
\n1310 GOTO 1180
\n1320 LET Z=S
\n1330 FOR W=D TO N
\n1340 CLS
\n1345 IF (INT (A(W,D)/R)*R)<>Z THEN GOSUB 2190
\n1350 IF (INT (A(W,D)/R)*R)<>Z THEN PRINT AT G,A;"OUTSTANDING ITEMS ",M$;C$;" ","5= SKIP OUTSTANDING ITEMS LIST",L$(O+P TO ),M$;E$
\n1355 IF (INT (A(W,D)/R)*R)=Z THEN NEXT W
\n1357 IF W>=N THEN GOTO 1440
\n1370 INPUT Z$
\n1390 IF Z$="0" THEN RETURN
\n1400 IF Z$="5" OR W=N-D THEN GOTO 1440
\n1410 NEXT W
\n1440 LET BAL=A
\n1450 FOR X=C TO N-C
\n1460 IF (INT (A(X,D)/R)*R)<>S AND (INT (A(X,C)/R))=C THEN LET BAL=BAL+A(X,E)
\n1470 IF (INT (A(X,D)/R)*R)<>S AND (INT (A(X,C)/R))<>C THEN LET BAL=BAL-A(X,E)
\n1480 NEXT X
\n1490 CLS
\n1500 PRINT "BANK STATEMENT IS $ ";(BA-BAL)/100;TAB A;M$;L$
\n1520 INPUT Z$
\n1530 IF Z$="1" THEN COPY
\n1550 RETURN
\n1560 REM
\n1570 LET A(W,D)=(A(W,D)-(INT (A(W,D)/R)*R))+S
\n1580 RETURN
\n1590 REM
\n1600 CLS
\n1610 IF R$="6" THEN PRINT AT A,K;N$
\n1615 PRINT AT C,L;"SEARCH",M$;C$,,"1= BY ";F$,,"2= BY ";G$,"3= BY ";H$,,"4= BY OUTSTANDING ITEM",E$
\n1617 IF R$="6" THEN PRINT AT I,A;E$,"BE SURE TO COPY ALL INFO THAT ISCHANGED"
\n1630 INPUT Z$
\n1650 IF CODE Z$<=O OR CODE Z$>=P THEN GOTO 1600
\n1660 IF Z$="0" THEN RETURN
\n1662 IF Z$="4" AND R$="6" THEN GOTO 1600
\n1663 IF R$="6" THEN GOTO 1730
\n1665 IF Z$="4" THEN GOTO 2080
\n1670 PRINT ,,"0= SPECIFIC ITEM","%E%N%T%E%R= ALL ITEMS",E$
\n1690 INPUT Y$
\n1720 IF CODE Y$=A THEN GOTO 2150
\n1730 PRINT ,,D$;"ITEM?"
\n1750 INPUT Y$
\n1765 IF Z$="3" THEN GOTO 1970
\n1770 IF CODE Y$<=O OR CODE Y$>=P THEN GOTO 1600
\n1780 IF Z$="1" THEN GOTO 1820
\n1790 IF Z$="2" THEN GOTO 1900
\n1810 GOTO 1600
\n1820 REM
\n1830 LET Z=VAL Y$
\n1840 FOR W=C TO N-D
\n1850 REM
\n1860 IF A(W,D)-(INT (A(W,D)/R)*R)=Z THEN GOSUB 2190
\n1865 IF HI=A AND R$="6" THEN GOTO 182
\n1870 NEXT W
\n1885 CLS
\n1887 PRINT AT C,E+E;"END"
\n1890 GOTO 1610
\n1900 REM
\n1910 LET Z=VAL Y$
\n1920 FOR W=D TO N-C
\n1930 IF A(W,C)-(INT (A(W,C)/R)*R)=Z THEN GOSUB 2190
\n1935 IF HI=A AND R$="6" THEN GOTO 182
\n1940 NEXT W
\n1955 CLS
\n1957 PRINT "END"
\n1960 GOTO 1610
\n1970 LET A$(Q)=Y$
\n1980 FOR X=C TO N-C
\n1990 IF A$(Q)=A$(X) THEN GOTO 2020
\n1995 IF HI=A AND R$="6" THEN GOTO 182
\n2000 NEXT X
\n2005 CLS
\n2007 PRINT "END"
\n2010 GOTO 1610
\n2020 LET Z=X*R
\n2030 FOR W=D TO N-C
\n2040 IF (INT (A(W,C)/R)*R)=Z THEN GOSUB 2190
\n2050 NEXT W
\n2055 CLS
\n2057 PRINT "END"
\n2060 GOTO 1610
\n2070 REM
\n2080 LET Z=S
\n2090 FOR W=D TO N-C
\n2100 REM
\n2110 IF (INT (A(W,D)/R)*R)<>Z THEN GOSUB 2190
\n2120 IF R$="3" THEN RETURN
\n2125 IF Z$="0" THEN GOTO 1600
\n2130 NEXT W
\n2135 CLS
\n2137 PRINT "END"
\n2140 GOTO 1610
\n2150 FOR W=D TO N-C
\n2160 GOSUB 2190
\n2165 IF HI=D THEN GOTO 2175
\n2170 NEXT W
\n2175 CLS
\n2177 PRINT AT C,E+E;"END"
\n2180 GOTO 1610
\n2190 REM
\n2200 CLS
\n2210 LET T=INT (A(W,D)/R)
\n2220 IF T=C THEN LET T=A
\n2230 PRINT F$;A(W,D)-(INT (A(W,D)/R)*R);TAB O;W,G$;A(W,C)-(INT (A(W,C)/R)*R),,H$;A$(INT (A(W,C)/R));TAB A;"$ ";(A(W,E)/100);TAB A,,"% DENOTES RECONCILED ITEM",L$
\n2235 IF INT (A(W,D)/R)*R=S THEN PRINT AT A,O-D;"% "
\n2240 IF R$="3" THEN RETURN
\n2245 IF R$="6" THEN PRINT AT G+C,A;"PRESS 0 %E%N%T%E%R IF NOT CORRECT";AT I+D,A;M$;N$,"DELETION"
\n2260 INPUT Z$
\n2265 LET HI=A
\n2270 IF Z$="1" THEN COPY
\n2275 IF Z$="0" THEN LET HI=D
\n2285 IF HI=A AND R$="6" THEN GOTO 182
\n2290 RETURN
\n2300 REM
\n2310 LET B=207
\n2320 LET A=B-B
\n2330 LET C=B/B
\n2340 LET D=C+C
\n2350 LET E=D+C
\n2360 LET G=E+D
\n2370 LET I=G+D
\n2380 LET K=I+D
\n2390 LET L=K+C
\n2400 LET M=207
\n2410 LET N=D
\n2420 LET O=L+L+I
\n2430 LET P=O+L+C
\n2440 LET Q=D
\n2450 LET R=1E6
\n2460 LET S=(L*L+O+C)*R
\n2470 DIM A(B,E)
\n2480 DIM A$(M,22)
\n2490 LET C$="0= NO ENTRY "
\n2500 LET D$="WHAT IS THE "
\n2510 LET E$="% %E%N%T%E%R% %A%N%S%W%E%R% %N%U%M%B%E%R% "
\n2520 LET F$="DATE "
\n2530 LET G$="CHECK NO. "
\n2540 LET H$="ACCOUNT "
\n2550 LET I$="PRESS %E%N%T%E%R IF THIS IS CORRECT "
\n2560 LET J$=I$+"IF NOT ENTER NUMBER"
\n2570 LET K$=I$+"PRESS 0 %E%N%T%E%R IF NOT CORRECT"
\n2580 LET L$="PRESS 0 %E%N%T%E%R TO RETURN PRESS 1 %E%N%T%E%R TO COPY PRESS %E%N%T%E%R TO CONTINUE"
\n2590 LET M$="\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''"
\n2592 LET N$="EDIT MODE"
\n2594 LET O$="INFO DELETED--ENTER CORRECT INFO"+M$
\n2595 IF USR 32736=40059 THEN PRINT "?% % % "
\n2600 PRINT D$;"FIRST ";G$,"TO BE USED IN THIS PROGRAM?"
\n2620 INPUT LC
\n2630 LET LC=LC-C
\n2640 PRINT ,,"WHAT IS THE BEGINNG BALANCE?"
\n2650 INPUT BA
\n2655 LET BA=BA*100
\n2660 LET A(C,C)=R
\n2670 LET A(C,D)=S
\n2680 LET A$(C)="DEPOSIT"
\n2690 RETURN
\n2700 CLS
\n2705 IF Q>=M-C THEN PRINT "NO ROOM FOR ";H$;"NAME"
\n2710 IF N>=B-C OR Q>=M-C THEN PRINT "CHECK BOOK IS FULL",M$
\n2720 GOTO 2740
\n2730 CLS
\n2740 PRINT "ARE YOU FINISHED?",M$;"0= YES",,"1= NO",,E$
\n2760 INPUT Z$
\n2780 IF Z$<>"0" THEN GOTO 60
\n2800 PRINT ,,M$;"PLUG TAPE RECORDER IN.","START RECORDING.","PRESS %E%N%T%E%R",,M$
\n2810 INPUT Z$
\n2830 IF CODE Z$<>A THEN GOTO 60
\n2840 SAVE "CHEC%K"
\n2850 GOTO 30
\n2860 PRINT PEEK 16386-PEEK 16412+256*(PEEK 16387-PEEK 16413)-50