Listing of file='CHECKS.BAS;01' on disk='vmedia/chip_75-sector.ccvf'
1 REM MODIFIED BY JIM HELMS & FRED PEZOK ON OCT 8 79 100 CLEAR 1024:PLOT 6,6,15,12,10,10 120 DATA JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC 140 PRINT "CHECKBOOK V10.79":PRINT 160 DEF FN A(Y)= INT (Y* 10000+ M* 100+ D) 180 DEF FN B(DT)= INT (DT/ 10000) 200 DEF FN C(DT)= INT ((DT- 10000* Y)/ 100) 220 DEF FN D(DT)= INT ((DT- 10000* Y)- 100* M) 240 DEF FN E(NC)= 4* INT (ABS (NC/ 4+ .8)) 260 DEF FN F(AM)= INT (100* AM+ .5) 280 PRINT "MOUNT DATA DISK (IF DESIRED)":PRINT 300 INPUT "HIT 'RETURN' WHEN READY ";A$ 320 PLOT 12,10,10 340 PRINT "CAUTION: CREATE DATA FILES IN CHRONOLOGICAL ORDER" 360 PRINT :PRINT "WHEN ASKED TO INPUT THE NUMBER OF ANTICIPATED CHECKS," 380 PRINT :PRINT "ENTER A NUMBER GREATER THAN ANTICIPATED." 400 PRINT :PRINT "THIS NUMBER SHOULD INCLUDE BOTH CHECKS & DEPOSITS." 420 PRINT :PRINT "DO NOT JUMP BACK AND FORTH BETWEEN YEARS" 440 PRINT :PRINT "WHEN ENTERING CHECKS OR DEPOSITS. YOU MAY MOVE FORWARD," 460 PRINT :PRINT "EXAMPLE: JAN -> FEB -> MAR OF THE SAME YEAR, OR 77 -> 78 -> 79." 480 PRINT :PRINT "THERE IS NO CHECK FOR DUPLICATE CHECK NUMBERS FILED" 500 PRINT :PRINT "IN DIFFERENT MONTHS." 520 PRINT :PRINT "TO INSURE MONTHLY BALANCES ARE UPDATED, YOU SHOULD" 540 PRINT :PRINT "EXECUTE A COMMAND 6 - THIS WILL THEN UPDATE ALL" 560 PRINT :PRINT "BALANCES FOR CHECKS AND DEPOSITS FOR THAT YEAR." 580 PLOT 3,0,30:INPUT "HIT 'RETURN' TO CONTINUE ";A$ 600 GOSUB 10000:REM DRIVE SELECT 620 INPUT "ENTER DATE OF FIRST NEW ENTRY (Y,M,D) ";CY,CM,CD 640 IF CM< > INT (CM)OR CM< 1OR CM> 12THEN 620 660 IF CD< > INT (CD)OR CD< 1OR CD> 31THEN 620 680 IF CY< > INT (CY)OR CY< 0OR CY> 99THEN 620 700 FM= CM 720 REM OPEN YEARLY DATA FILE 740 FILE "T",820:B1= CY:GOSUB 9360 760 FILE "R",13,F1$,1 780 GOTO 1300 800 REM CREATE BALANCE FILE 820 FILE "E",FL,ER,LN 840 B1= CY:GOSUB 9360 860 IF ER< > 14THEN 11060 880 FILE "N",F1$,13,16,8 900 FILE "R",13,F1$,4 920 REM INITIALIZE YEARLY FILE 940 FOR I= 1TO 13 960 PUT 13,I,1;0,0,0,0 980 NEXT I 1000 REM OPEN PREVIOUS YRS FILE 1020 B1= CY- 1:GOSUB 9360 1040 FILE "T",1120 1060 FILE "R",14,F1$,1 1080 GOTO 1180 1100 REM ENTER BALANCE BROUGHT FORWARD 1120 INPUT "BALANCE FORWARD ";BF:BF= INT (BF* 100+ .5) 1140 GOTO 1220 1160 REM GET PREVIOUS YRS BALANCE 1180 GET 14,13,5;BF 1200 FILE "C",14 1220 PUT 13,13;BF,BF 1240 PUT 13,CM;BF,BF 1260 IF CM< > 1THEN PUT 13,CM;0 1280 FILE "D",13 1300 REM OPEN MONTHLY DATA FILE 1320 FILE "T",1420 1340 RESTORE :FOR I= 1TO CM:READ M$:NEXT I 1360 B2= CY:GOSUB 9400:FILE "R",FM,F$,6 1380 GOTO 1780 1400 REM ENTER NUMBER CHECKS ANTICIPATED NEW FILE 1420 FILE "E",FL,ER,LN 1440 IF ER< > 14THEN 11060 1460 INPUT "NUMBER OF CHECKS ANTICIPATED ";NC 1480 NR= FN E(NC):IF NR< 8THEN NR= 8 1500 B2= CY:GOSUB 9400 1520 FILE "N",F$,NR,32,4 1540 FILE "R",CM,F$,4 1560 REM INITIALIZE MONTHLY FILE 1580 FOR I= 1TO NR 1600 PUT CM,I,1;0,0,0,0," "[16] 1620 NEXT I 1640 PUT 13,CM,13;NR 1660 FM= CM:IF CM> 1THEN 1780 1680 PUT FM,1;(CY- 1)* 10000+ 1231,0,BF,20,"BAL FROM LST YR "[16] 1700 LR= 1:PUT 13,CM,9;LR 1720 FILE "T",1780 1740 FILE "D",13,FM 1760 REM CHECKBOOK MENU 1780 PLOT 27,24,12 1800 PRINT "+-SELECTION ENTER C IF VALID OR I IF INVALID------------+" 1820 PLOT 28 1840 PRINT "n CHECK CATE n" 1860 PLOT 28 1880 PRINT "n DATE NUMBER PAYEE/PAYER----- AMOUNT GORY BALANCE n" 1900 PLOT 3,0,17 1920 PRINT "SELECTIONS: 4) UPDATE DEPOSIT" 1940 PRINT " 1) ENTER CHECK 5) MONTHLY SUMMARY" 1960 PRINT " 2) UPDATE CHECK 6) DISPLAY YEAR BY CATEGORY" 1980 PRINT " 3) ENTER DEPOSIT 7) END PROGRAM" 2000 PRINT "EXPENSE CATEGORIES" 2020 PRINT " 1) AUTO EXPENSES 11) CASH" 2040 PRINT " 2) BANK CHARGES 12) TRAVEL - BUSINESS" 2060 PRINT " 3) CHARITIES 13) VACATION" 2080 PRINT " 4) ALL MEDICAL EXPENSES 14) UTILITIES" 2100 PRINT " 5) ENTERTAINMENT DEPOSIT CATEGORIES" 2120 PRINT " 6) FOOD 15) WAGES, SALARIES, TIPS" 2140 PRINT " 7) HOUSING (RENT & MORTGAGE) 16) DIVIDEND INCOME (STOCKS)" 2160 PRINT " 8) CLOTHING 17) CAPITAL GAINS" 2180 PRINT " 9) HOME IMPROVEMENT 18) INTEREST INCOME" 2200 PRINT "10) OTHER LOAN PAYMENTS 19) OTHER TAXABLE INCOME" 2220 Y1= 3 2240 PLOT 3,0,16,11 2260 PRINT "ENTER ALL DATES AS A CONTINUOUS 6 DIGIT NUMBER (790101)" 2280 Y1= Y1+ 1:IF Y1> 15THEN Y1= 4 2300 IF Y1< 15THEN PLOT 3,0,Y1+ 1,11 2320 PLOT 3,0,Y1,11 2340 POKE 33278,0 2360 SB= PEEK (33278):IF SB= 0THEN 2360 2380 SB= SB- 48:IF SB< 1OR SB> 7THEN 2340 2400 PRINT :ON SBGOTO 2500,5300,3800,6240,7280,7740,2420 2420 REM END & LOAD MENU 2440 FILE "C",13,CM:PLOT 6,6,12,10,10,27,11 2460 INPUT "MOUNT PROGRAM DISK - HIT 'RETURN' ";A$ 2470 GOTO 11080 2480 REM PAY THE CHECK & FILE IT 2500 FILE "T",3120 2520 GET 13,13,5;CB 2540 GET 13,CM,5;MB,LR,NR 2560 PLOT 3,1,Y1:INPUT DT:PLOT 3,1,Y1,32:GOSUB 9440 2580 ON VGOTO 2620,2600 2600 PLOT 3,1,Y1:PRINT SPC( 7)"":GOTO 2560 2620 IF M< > CMTHEN 3120 2640 IF LR= NRTHEN GOSUB 9260:GOTO 2240 2660 PLOT 3,9,Y1:INPUT CN:PLOT 3,9,Y1,32 2680 FOR NC= 1TO LR 2700 GET CM,NC,5;CK 2720 IF CK= CNTHEN PLOT 3,19,Y1:PRINT "ALREADY ON FILE":GOTO 2240 2740 NEXT NC 2760 PLOT 3,18,Y1:INPUT P$:PLOT 3,18,Y1,32 2780 PLOT 3,37,Y1:INPUT AM:AM= FN F(AM):GOSUB 8880:PLOT 3,37,Y1 2800 PRINT SPC( 9)"":PLOT 3,45- LEN (AM$),Y1:PRINT AM$ 2820 PLOT 3,47,Y1:INPUT CT:PLOT 3,47,Y1,32 2840 IF CT< > INT (CT)OR CT< 1OR CT> 14THEN PLOT 3,47,Y1,32,32,32:GOTO 2820 2860 PLOT 3,63,Y1:POKE 33278,0 2880 KB= PEEK (33278):IF KB= 0THEN 2880 2900 IF KB= 73THEN Y1= Y1- 1:GOTO 2240 2920 IF KB< > 67THEN PLOT 3,63,Y1,32:GOTO 2860 2940 LR= LR+ 1:DT= FN A(Y) 2960 PUT CM,LR,1;DT,CN,- AM,CT,P$[16] 2980 MB= MB- AM:PUT 13,CM,5;MB,LR 3000 CB= CB- AM:PUT 13,13,5;CB 3020 GOSUB 8980 3040 AM= CB:GOSUB 8880 3060 PLOT 3,61- LEN (AM$),Y1:PRINT AM$ 3080 GOTO 2240 3100 REM OPEN MONTHLY FILE 3120 GOSUB 8980 3140 IF Y< > CYTHEN 3500 3160 FILE "C",CM:FILE "T",3320 3180 RESTORE 3200 FOR I= 1TO M:READ M$:NEXT I 3220 B2= Y:GOSUB 9400:FILE "R",M,F$,6 3240 CM= M:GET 13,CM,5;MB,LR,NR 3260 FILE "T",3120 3280 GOTO 2640 3300 REM CREATE A NEW MONTHLY FILE 3320 PLOT 3,0,16,11:INPUT "NUMBER OF ANTICIPATED ITEMS ";NC 3340 NR= FN E(NC):IF NR< 8THEN NR= 8 3360 FILE "E",FL,ER,LN 3380 B2= Y:GOSUB 9400 3400 FILE "N",F$,NR,32,4:GOSUB 5160 3420 PUT 13,M;0,CB,0,NR 3440 IF M> 1THEN GET 13,M- 1,5;TB:PUT 13,M;TB 3460 GOTO 3180 3480 REM RECORD NOT ON FILE 3500 FILE "T",3600 3520 FILE "C",13,CM 3540 B1= Y:GOSUB 9360:FILE "R",13,F1$,1 3560 CM= M:CD= D:CY= Y 3580 GOTO 2240 3600 PLOT 3,19,Y1:PRINT "YEAR DESIRED IS NOT ON DISK" 3620 AM= CB:GOSUB 8880:FOR Y1= 16TO 31:PLOT 3,0,Y1,11:NEXT Y1:PLOT 3,0,17 3640 PRINT " CURRENT BALANCE IS ";AM$ 3660 PRINT :PRINT "DO YOU WISH TO CONTINUE?" 3680 INPUT " (YOU MAY WANT TO INSERT ANOTHER DISK) ";A$ 3700 IF ASC (A$)= 78THEN 11080 3720 CM= M:CD= D:CY= Y:FM= M 3740 PLOT 6,7 3760 GOTO 740 3780 REM INPUT DEPOSITS & FILE 3800 PLOT 3,1,Y1:INPUT DT:PLOT 3,1,Y1,32:GOSUB 9440 3820 ON VGOTO 3860,3840 3840 PLOT 3,1,Y1:PRINT SPC( 7)"":GOTO 3800 3860 FILE "T",4320 3880 GET 13,13,5;CB 3900 GET 13,CM,5;MB,LR,NR 3920 IF M< > CMTHEN 4340 3940 IF LR= NRTHEN GOSUB 9260:GOTO 2240 3960 PLOT 3,9,Y1:PRINT "DEPOSIT" 3980 PLOT 3,18,Y1:INPUT P$:PLOT 3,18,Y1,32 4000 PLOT 3,37,Y1:INPUT AM:AM= FN F(AM):PLOT 3,37,Y1:PRINT SPC( 9)"" 4020 GOSUB 8880:PLOT 3,45- LEN (AM$),Y1:PRINT AM$ 4040 PLOT 3,47,Y1:INPUT CT:PLOT 3,47,Y1,32 4060 IF CT< > INT (CT)OR CT< 15OR CT> 19THEN PLOT 3,48,Y1,32,32:GOTO 4040 4080 PLOT 3,63,Y1:POKE 33278,0 4100 KB= PEEK (33278):IF KB= 0THEN 4100 4120 IF KB= 73THEN Y1= Y1- 1:GOTO 2240 4140 IF KB< > 67THEN PLOT 3,63,Y1,32:GOTO 4080 4160 LR= LR+ 1:DT= FN A(Y) 4180 PUT CM,LR;DT,0,AM,CT,P$[16] 4200 MB= MB+ AM:PUT 13,CM,5;MB,LR 4220 CB= CB+ AM:PUT 13,13,5;CB 4240 GOSUB 8980 4260 AM= CB:GOSUB 8880 4280 PLOT 3,61- LEN (AM$),Y1:PRINT AM$ 4300 GOTO 2240 4320 REM OPEN MONTHLY FILE 4340 GOSUB 8980 4360 IF Y< > CYTHEN 4720 4380 FILE "C",CM:FILE "T",4540 4400 RESTORE 4420 FOR I= 1TO M:READ M$:NEXT I 4440 B2= Y:GOSUB 9400:FILE "R",M,F$,6 4460 CM= M:GET 13,CM,5;MB,LR,NR 4480 FILE "T",4340 4500 GOTO 3940 4520 REM CREATE A NEW MONTHLY FILE 4540 PLOT 3,0,16,11:INPUT "NUMBER OF ANTICIPATED ITEMS ";NC 4560 NR= FN E(NC):IF NR< 8THEN NR= 8 4580 FILE "E",FL,ER,LN 4600 B2= Y:GOSUB 9400 4620 FILE "N",F$,NR,32,4:GOSUB 5160 4640 PUT 13,M;0,CB,0,NR 4660 IF M> 1THEN GET 13,M- 1,5;TB:PUT 13,M;TB 4680 GOTO 4400 4700 REM RECORD NOT ON FILE 4720 FILE "T",4820 4740 FILE "C",13,CM 4760 B1= Y:GOSUB 9360:FILE "R",13,F1$,1 4780 CM= M:CD= D:CY= Y 4800 GOTO 2240 4820 PLOT 3,19,Y1:PRINT "YEAR DESIRED IS NOT ON DISK" 4840 AM= CB:GOSUB 8880:FOR Y1= 16TO 31:PLOT 3,0,Y1,11:NEXT Y1:PLOT 3,0,17 4860 PRINT " CURRENT BALANCE IS ";AM$ 4880 PRINT :PRINT "DO YOU WISH TO CONTINUE?" 4900 INPUT " (YOU MAY WANT TO INSERT ANOTHER DISK) ";A$ 4920 IF ASC (A$)= 78THEN 11080 4940 FM= M:CM= M:CD= D:CY= Y 4960 PLOT 6,7 4980 GOTO 740 5000 REM INITIALIZE YEARLY BALANCE 5020 FILE "R",101,F1$,4 5040 FOR I1= 1TO 13 5060 PUT 101,I1,1;0,0,0,0 5080 NEXI1 5100 FILE "C",101 5120 RETURN 5140 REM INITIALIZE MONTHLY 5160 FILE "R",101,F$,4 5180 FOR I1= 1TO NR 5200 PUT 101,I1,1;0,0,0,0," "[16] 5220 NEXT I1 5240 FILE "C",101 5260 RETURN 5280 REM UPDATE/CORRECT CHECK DATA 5300 PLOT 3,1,Y1:INPUT DT:PLOT 3,1,Y1,32:GOSUB 9440 5320 ON VGOTO 5360,5340 5340 PLOT 3,1,Y1:PRINT SPC( 7)"":GOTO 5300 5360 IF CM< > MTHEN 5560 5380 GET 13,13,5;CB 5400 GET 13,CM,5;MB,LR,NR 5420 PLOT 3,9,Y1:INPUT CN:PLOT 3,9,Y1,32,8 5440 FOR NC= 1TO LR 5460 GET CM,NC,5;CK,A1,C2,P2$[16] 5480 IF CK= CNTHEN 5740 5500 NEXT NC 5520 PLOT 3,19,Y1:PRINT "NOT FOUND " 5540 GOTO 2240 5560 FILE "C",CM:RESTORE :FILE "T",7100 5580 FOR I= 1TO M:READ M$:NEXT I 5600 B2= Y:GOSUB 9400:FILE "R",M,F$,6 5620 CM= M 5640 IF CY= YTHEN 5400 5660 FILE "T",4820 5680 B1= Y:GOSUB 9360:FILE "C",13:FILE "R",13,F1$,1 5700 GET 13,13,5;CB 5720 CY= Y:GOTO 5400 5740 PLOT 3,19,Y1:PRINT P2$:AM= ABS (A1):GOSUB 8880:PLOT 3,45- LEN (AM$),Y1 5760 PRINT AM$:PLOT 3,48,Y1:PRINT C2 5780 PLOT 3,63,Y1:POKE 33278,0 5800 KB= PEEK (33278):IF KB= 0THEN 5800 5820 PRINT :IF KB= 67THEN 2240 5840 IF KB< > 73THEN PLOT 3,63,Y1,32:GOTO 5780 5860 Y1= Y1+ 1:IF Y1> 15THEN Y1= 4 5880 PLOT 3,0,Y1,11:PRINT "CHANGE:" 5900 PLOT 3,18,Y1:INPUT P$:PLOT 3,18,Y1,32 5920 PLOT 3,37,Y1:INPUT AM:PLOT 3,37,Y1:PRINT SPC( 9)"":AM= FN F(AM) 5940 GOSUB 8880:PLOT 3,45- LEN (AM$),Y1:PRINT AM$ 5960 PLOT 3,47,Y1:INPUT CT:PLOT 3,47,Y1,32 5980 IF CT< > INT (CT)OR CT< 1OR CT> 14THEN PLOT 3,48,Y1,32,32:GOTO 5960 6000 PLOT 3,63,Y1:POKE 33278,0 6020 KB= PEEK (33278):IF KB= 0THEN 6020 6040 PRINT :IF KB= 73THEN Y1= Y1- 1:GOTO 2240 6060 IF KB< > 67THEN 6000 6080 DT= FN A(Y) 6100 PUT CM,NC,1;DT,CN,- AM,CT,P$[16] 6120 MB= MB+ A1- AM:PUT 13,CM,5;MB 6140 CB= CB+ A1- AM:PUT 13,13,5;CB 6160 AM= CB:GOSUB 8880 6180 PLOT 3,61- LEN (AM$),Y1:PRINT AM$ 6200 GOTO 2240 6220 REM UPDATE/CORRECT DEPOSITS 6240 PLOT 3,1,Y1:INPUT DT:PLOT 3,1,Y1,32:GOSUB 9440 6260 ON VGOTO 6300,6280 6280 PLOT 3,1,Y1:PRINT SPC( 7)"":GOTO 6240 6300 IF M< > CMTHEN 6460 6320 GET 13,13,5;CB 6340 GET 13,CM,5;MB,LR,NR 6360 FOR NC= 1TO LR 6380 GET CM,NC;D1,C1,A1,C2,P2$[16] 6400 IF DT= D1AND C1= 0THEN 6640 6420 NEXT NC 6440 PLOT 3,19,Y1:PRINT "NOT FOUND":GOTO 2240 6460 RESTORE 6480 FOR I= 1TO M:READ M$:NEXT I 6500 FILE "C",CM:FILE "T",7100 6520 B2= Y:GOSUB 9400:FILE "R",M,F$,6 6540 CM= M:IF Y= CYTHEN 6300 6560 FILE "C",13:FILE "T",4820 6580 B1= Y:GOSUB 9360:FILE "R",13,F1$,1 6600 GET 13,13,5;CB 6620 CY= Y:GOTO 6300 6640 PLOT 3,9,Y1:PRINT "DEPOSIT":PLOT 3,19,Y1:PRINT P2$:AM= A1 6660 GOSUB 8880:PLOT 3,45- LEN (AM$),Y1:PRINT AM$:PLOT 3,48,Y1:PRINT C2 6680 PLOT 3,63,Y1:POKE 33278,0 6700 KB= PEEK (33278):IF KB= 0THEN 6700 6720 IF KB= 67THEN 2240 6740 IF KB< > 73THEN PLOT 3,63,Y1,32:GOTO 6680 6760 Y1= Y1+ 1:IF Y1> 15THEN Y1= 4 6780 PLOT 3,0,Y1,11:PRINT "CHANGE:" 6800 PLOT 3,18,Y1:INPUT P$:PLOT 3,18,Y1,32 6820 PLOT 3,37,Y1:INPUT AM:PLOT 3,37,Y1:PRINT SPC( 9)"":AM= FN F(AM) 6840 GOSUB 8880:PLOT 3,45- LEN (AM$),Y1:PRINT AM$ 6860 PLOT 3,47,Y1:INPUT CT:PLOT 3,47,Y1,32 6880 IF CT< > INT (CT)OR CT< 15OR CT> 19THEN PLOT 3,48,Y1,32,32:GOTO 6860 6900 PLOT 3,63,Y1:POKE 33278,0 6920 KB= PEEK (33278):IF KB= 0THEN 6920 6940 PRINT :IF KB= 73THEN Y1= Y1- 1:GOTO 2240 6960 IF KB< > 67THEN PLOT 3,63,Y1,32:GOTO 6900 6980 DT= FN A(Y) 7000 PUT CM,NC;DT,0,AM,CT,P$[16] 7020 MB= MB- A1+ AM:PUT 13,CM,5;MB 7040 CB= CB- A1+ AM:PUT 13,13,5;CB 7060 AM= CB:GOSUB 8880:PLOT 3,61- LEN (AM$),Y1:PRINT AM$ 7080 GOTO 2240 7100 REM NO MONTH FILE TRAP 7120 FILE "E",FL,ER,LN 7140 IF ER= 14THEN 7220 7160 PLOT 3,19,Y1:PRINT "DISK ERROR" 7180 FILE "C",13 7200 GOTO 11080 7220 PLOT 3,19,Y1:PRINT "MONTH IS NOT ON FILE" 7240 GOTO 2240 7260 REM DISPLAY MONTHLY TRANSACTIONS 7280 PLOT 12,27,11,10 7300 GET 13,CM;PB,CB,LR 7320 RESTORE :FOR I= 1TO CM:READ M$:NEXT I 7340 PRINT "MONTH",M$,1900+ CY;"" 7360 PRINT "DATE NUMBER PAYEE/PAYER CAT AMOUNT BALANCE" 7380 PLOT 10,10:MT= PB 7400 AM= PB:GOSUB 8880 7420 PRINT "BALANCE FROM PREVIOUS MONTH "AM$:PRINT 7440 IF LR= 0THEN 7680 7460 FOR I= 1TO LR 7480 GET CM,I;DT,CN,AM,CT,P$[16] 7500 IF CT< > 20THEN MT= MT+ AM 7520 AM= ABS (AM) 7540 GOSUB 8880 7560 DT$= STR$ (DT)+ " " 7580 IF CN> 0THEN CN$= RIGHT$ (" "+ STR$ (CN),8)+ " " 7600 IF CN< 1THEN CN$= "DEPOSIT " 7620 PRINT DT$;CN$;P$;RIGHT$ (" "+ STR$ (CT),3);AM$; 7640 AM= MT:GOSUB 8880:PRINT AM$ 7660 NEXT I 7680 PRINT :INPUT "HIT 'RETURN' TO CONTINUE ";A$ 7700 GOTO 1780 7720 REM DISPLAY CHECKS & DEPOSITS 7740 PLOT 12,27,11 7760 PRINT "CHECKS: CATEGORIES 1 - 14" 7780 PRINT "DEPOSITS: CATEGORIES 15 - 19" 7800 PRINT "TO LIST ALL: A" 7820 FILE "T",7980:FILE "C",CM 7840 PRINT :T= 0 7860 INPUT "CATEGORY NUMBER ";SK$ 7880 CC= 1:IF SK$= "A"THEN CC= 2:GOTO 7960 7900 SK= VAL (SK$):IF SK< 1OR SK> 20THEN PLOT 28,11:GOTO 7860 7920 IF SK> 0AND SK< 15THEN T= - 1 7940 IF SK> 14AND SK< 20THEN T= 1 7960 YT= 0:RESTORE :I= 0 7980 I= I+ 1 8000 GET 13,I;PB,CB,LR 8020 IF I> 12THEN 8720 8040 READ M$ 8060 IF LR< 1THEN 7980 8080 MT= 0 8100 B2= CY:GOSUB 9400:FILE "R",CM,F$,6 8120 PLOT 10 8140 PRINT "MONTH",M$,1900+ CY;"" 8160 PRINT "DATE NUMBER PAYEE/PAYER CAT AMOUNT TOTAL" 8180 PLOT 10,10 8200 FOR J= 1TO LR 8220 GET CM,J;DT,CN,AM,CT,P$[16] 8240 IF CT< > 20THEN PB= PB+ AM 8260 IF T= 1THEN CN= 0 8280 IF CC= 2THEN 8380 8300 IF SGN (AM)< > SGN (T)THEN 8560 8320 IF CT= 20THEN 8380 8340 IF CT< > SKTHEN 8560 8360 GOTO 8400 8380 IF CT< > 20THEN MT= MT+ AM:YT= YT+ AM:GOTO 8420 8400 AM= ABS (AM):MT= MT+ AM:YT= YT+ AM 8420 GOSUB 8880 8440 DT$= STR$ (DT)+ " " 8460 IF CN> 0THEN CN$= RIGHT$ (" "+ STR$ (CN),8)+ " " 8480 IF CN< 1THEN CN$= "DEPOSIT " 8500 PRINT DT$;CN$;P$;RIGHT$ (" "+ STR$ (CT),3);AM$; 8520 AM= MT:GOSUB 8880 8540 PRINT AM$ 8560 NEXT J 8580 PLOT 10,10:AM= PB:GOSUB 8880 8600 PRINT "MONTHLY BALANCE: "AM$"" 8620 PUT 13,I,5;PB:PUT 13,13,5;PB 8640 IF I< 12THEN PUT 13,I+ 1;PB,PB 8660 FILE "C",CM 8680 PLOT 6,5:FOR K= 0TO 31:PRINT "= ";:NEXT K:PRINT 8700 GOTO 7980 8720 AM= CB:GOSUB 8880 8740 PRINT "CLOSING BALANCE "AM$"" 8760 FILE "T",1780 8780 RESTORE :FOR I= 1TO CM:READ M$:NEXT I 8800 B2= CY:GOSUB 9400:FILE "R",CM,F$,6 8820 PRINT :INPUT "HIT 'RETURN' TO CONTINUE ";A$ 8840 GOTO 1780 8860 REM DOLLAR & CENT ROUTINE 8880 SG$= "":IF AM< 0THEN SG$= "-":AM= ABS (AM) 8900 A1$= STR$ (INT (AM/ 100)) 8920 A2$= "."+ RIGHT$ (STR$ (AM+ 100- INT (AM/ 100)* 100),2) 8940 AM$= RIGHT$ (" "+ SG$+ A1$+ A2$,12) 8960 RETURN 8980 REM SORT CHECKS AND DEPOSITS 9000 GET 13,CM,9;LR,NR 9020 F= 0 9040 FOR I= 1TO LR 9060 GET CM,I;DT,CN,AM,CT,P$[16] 9080 GET CM,LR;D1,C1,A1,C2,P2$[16] 9100 IF D1> DTTHEN 9200 9120 IF C1= > CNAND D1= DTTHEN 9200 9140 PUT CM,I;D1,C1,A1,C2,P2$[16] 9160 PUT CM,LR;DT,CN,AM,CT,P$[16] 9180 IF I< LRTHEN F= 1 9200 NEXT I 9220 IF F= 1THEN 9020 9240 RETURN 9260 REM FILE FULL WARNING 9280 PLOT 3,19,Y1 9300 PRINT "RECORD OVERFLOW - FILE IS FULL" 9320 RETURN 9340 REM GENERATE YEARLY FILE NAMES 9360 F1$= "BAL"+ RIGHT$ (STR$ (B1+ 100),2):RETURN 9380 REM GENERATE MONTHLY FILE NAME 9400 F$= M$+ RIGHT$ (STR$ (B2+ 100),2):RETURN 9420 REM CHECK THE DATE 9440 V= 1 9460 Y= FN B(DT):M= FN C(DT):D= FN D(DT) 9480 IF Y< 0OR Y> 99THEN V= 2:RETURN 9500 IF M< 1OR M> 12THEN V= 2:RETURN 9520 IF D< 1OR D> 31THEN V= 2:RETURN 9540 LY= 0:IF Y/ 4= INT (Y/ 4)THEN LY= 1 9560 ON MGOTO 9620,9580,9620,9600,9620,9600,9620,9620,9600,9620,9600,9620 9580 IF D> LY+ 28THEN V= 2 9600 IF D> 30THEN V= 2 9620 RETURN 10000 REM 10020 REM DISK DRIVE SELECT 10040 REM 10060 PLOT 27,24,12,10,10 10080 PRINT "YOU HAVE THE CHOICE OF SELECTING EITHER DRIVE 0" 10100 PRINT "OR DRIVE 1 FOR THE DATA FILE DISK TO RESIDE IN." 10120 PRINT 10140 PRINT "PLEASE MAKE YOUR SELECTION "; 10160 POKE 33278,0 10180 DD= PEEK (33278):IF DD= 0THEN 10180 10200 PRINT 10220 DD= DD- 48:IF DD= 0OR DD= 1THEN 10260 10240 PLOT 3,30,5,32,26:GOTO 10160 10260 IF DD= 0THEN 10340 10280 PLOT 27,4 10300 PRINT "DEV1:" 10320 PLOT 27,11 10340 PLOT 10,10 10360 RETURN 11000 REM 11020 REM END PROGRAM 11040 REM 11060 PRINT "++ DISK ERROR ++" 11080 IF DD= 1THEN PLOT 27,4:PRINT "DEV0:" 11100 PLOT 27,11,10 11120 PLOT 1 11140 END