Listing of file='BUDGET.BAS;01' on disk='vmedia/chip_110-sector.ccvf'
100 REM **********PERSONAL BUDGET PROGRAM********** 110 REM **********D.A. VAN PUTTE,1-716-889-4994 120 CLEAR 1000 130 PLOT 12,27,4:PRINT "LOAD BLABEL.DSP":PLOT 27,27 140 FOR I= 1 TO 1000:NEXT I:FO= 0:FB= 0:FE= 0 150 DIM MO$(13),DESCRIP$(28),AMT(24),PB$(24),CAT(28),ME(12,32),SE(12),ET(12),SIT(12),TB(12),TB$(12) 160 PLOT 6,2,12,14,3,20,2:PRINT "----------MENU----------" 170 F= 0 180 PLOT 3,15,6:PRINT "1. CREATE BUDGET AND EXPENSE FILES" 190 PLOT 3,15,8:PRINT "2. ESTABLISH OR CHANGE BUDGET" 200 PLOT 3,15,10:PRINT "3. INPUT MONTHLY INCOME & EXPENSES 210 PLOT 3,15,12:PRINT "4. PRINT PERFORMANCE SUMMARY" 220 PLOT 3,15,14:PRINT "5. PLOT TREND LINES" 230 PLOT 3,15,16:PRINT "6. END OF SESSION, STORE DATA" 240 PLOT 3,15,20:INPUT "SELECTION? ";S 250 IF S= 1 OR S= 6 OR FO= 1 THEN 290 260 PLOT 3,15,24:INPUT "NAME OF BUDGET DATA FILE ";B$ 270 PLOT 3,15,28:INPUT "NAME OF EXPENSE DATA FILE ";E$ 280 FILE "T",160:FILE "R",2,E$,1:FILE "R",1,B$,1:FO= 1:B= 1 290 ON SGOSUB 1510,310,540,800,1280,1500 300 S= 0:GOTO 160 310 Z= 68:GOSUB 1260:PLOT 12:PRINT TAB( 10)"MODULE NO. 2 - ESTABLISH OR CHANGE BUDGET" 320 Z= 192:GOSUB 1260:INPUT "DO YOU WISH TO INITIALIZE BUDGET FROM A PREVIOUS FILE (Y OR N) ";Z$ 330 IF Z$< > "Y"THEN 370 340 Z= 328:GOSUB 1260:PRINT "ENTER NAME OF PREVIOUS BUDGET FILE....." 350 Z= 367:GOSUB 1260:INPUT "n m";C$ 360 FILE "T",340:FILE "R",3,C$,1:B= 3:FB= 0:GOSUB 450:GOSUB 510:B= 1 370 PLOT 12:PRINT TAB( 15)"YEARLY BUDGET AMOUNTS BY CATEGORY" 380 GOSUB 450:GOSUB 470:GOSUB 500 390 X= 0:Z= 860:GOSUB 1260:INPUT "ENTER CATEGORY # TO BE CHANGED ";X 400 IF X= 0THEN GOSUB 510:RETURN 410 PRINT "REENTER CATEGORY & BUDGET AMOUNT W/ (CR) AFTER EACH ENTRY" 420 Z= (X- 1)* 32+ 64:GOSUB 1260 430 PRINT ""CAT(X)" "; 440 Z= Z+ 5:GOSUB 1260:INPUT "";DESCRIP$(X):Z= Z+ 14:GOSUB 1260:INPUT "";AMT(X):GOSUB 500:GOTO 390 450 IF FB= 1THEN RETURN 460 FB= 1:SUM= 0:FOR X= 1TO 24:GET B,X;D$[12],AMT(X):CAT(X)= X:DESCRIP$(X)= D$:SUM= SUM+ AMT(X):NEXT X:RETURN 470 FOR X= 1TO 24:Z= (X- 1)* 32+ 64:GOSUB 1260 480 PRINT "";CAT(X):Z= Z+ 5:GOSUB 1260:PRINT "";DESCRIP$(X):Z= Z+ 13:GOSUB 1260:H= AMT(X):T= 10:PRINT "";:GOSUB 1640 490 NEXT X:RETURN 500 SUM= 0:FOR X= 1TO 24:SUM= SUM+ AMT(X):NEXT X:Z= 832:GOSUB 1260:PRINT "TOTAL BUDGETED EXP.=";SUM;"- ";:RETURN 510 PLOT 12:PRINT TAB( 15)"BUDGET FILE UDDATE IN PROGRESS..." 520 FOR X= 1TO 24:D$= DESCRIP$(X):PUT 1,X;D$[12],AMT(X) 530 NEXT X:RETURN 540 PLOT 12:Z= 134:GOSUB 1260:PRINT "MODULE NO. 3 - INPUT EXPENSES, CHECKING BALANCES," 550 Z= Z+ 128:GOSUB 1260:PRINT "SAVINGS & CASH BALANCES, AND ALL INCOME SOURCES.." 560 GOSUB 570:GOTO 600 570 IF FE= 1 THEN RETURN 580 FE= 1:FOR Y= 1TO 12:SE(Y)= 0:FOR X= 1TO 32:RC= 1+ (X- 1)* 4:GET 2,Y,RC;ME(Y,X):NEXT X:NEXT Y:FOR I= 1TO MO:FOR J= 1TO 24 590 SE(I)= SE(I)+ ME(I,J):NEXT J:SIT(I)= SIT(I- 1)+ ME(I,27)+ ME(I,28):ET(I)= ET(I- 1)+ SE(I):NEXT I:GOSUB 450:RETURN 600 Z= 518:GOSUB 1260:PRINT "1. MONTHLY REPORT UPDATE" 610 Z= 646:GOSUB 1260:PRINT "2. RETURN TO MAIN PROGRAM":Z= 612:GOSUB 1260:PRINT "SELECTION ";:INPUT S:IF S< 0OR S> 2THEN 610 620 ON S GOTO 640,630 630 GOSUB 680:GOTO 160 640 Z= 774:GOSUB 1260:INPUT "ENTER MONTH FOR REPORT ";MO 650 PLOT 12:GOTO 700 660 Z= 1:GOSUB 1260:PRINT "ENTER MONTHLY EXPENSES BY CATEGORY" 670 FOR X= 1TO 24:ME(MO,X)= INT (AMT(X)/ 12):NEXT X:GOSUB 750:RETURN 680 PLOT 12:PRINT TAB( 10)"EXPENSE/INCOME FILE UPDATE IN PROGRESS..." 690 FOR Y= 1TO 12:FOR X= 1TO 32:RC= 1+ (X- 1)* 4:PUT 2,Y,RC;ME(Y,X):NEXT X:NEXT Y:RETURN 700 GOSUB 750:PRINT :INPUT "DOES MONTH REQUIRE INITIALIZING (Y OR N) ";A$:IF A$= "Y"THEN PLOT 12:GOSUB 660 710 Z= 1984:GOSUB 1260:X= 0:INPUT "CATEGORY NUMBER TO BE CHANGED? ";X 720 IF X< = 0 OR X> 28THEN PLOT 12,14:GOTO 600 730 Z= (X+ 1)* 32+ 20:GOSUB 1260:INPUT " ";ME(MO,X) 740 ME(MO,X)= INT (ME(MO,X)+ .5):GOTO 710 750 CAT(25)= 25:CAT(26)= 26:DESCRIP$(25)= "CHECKING BAL":DESCRIP$(26)= "SAVINGS/CASH" 760 CAT(27)= 27:CAT(28)= 28:DESCRIP$(27)= "INCOME/SAL ":DESCRIP$(28)= "INCOME/OTHER" 770 SM= 0:PLOT 12,15:FOR X= 1TO 28:Z= (X+ 1)* 32:GOSUB 1260:PRINT ""CAT(X);:Z= Z+ 5:GOSUB 1260:PRINT ""DESCRIP$(X); 780 Z= Z+ 13:GOSUB 1260:H= ME(MO,X):T= 10:PRINT "";:GOSUB 1640 790 SM= SM+ ME(MO,X):NEXT X:RETURN 800 PLOT 14,12:Z= 134:GOSUB 1260:PRINT "MODULE NO. 4 - BUDGET SUMMARY REPORTS......" 810 Z= 258:GOSUB 1260:PRINT "1. PRINT TOTAL EXPENSES/TOTAL BUDGET TO DATE BY CATEGORY" 820 Z= 386:GOSUB 1260:PRINT "2. PRINT MONTHLY BUDGET & EXPENSES FOR 6 MONTH PERIOD" 830 Z= 514:GOSUB 1260:PRINT "3. SEND REPORT TO PRINTER" 835 Z= 642:GOSUB 1260:PRINT "4. RETURN TO PROGRAM MENU" 840 Z= 776:GOSUB 1260:INPUT "NUMBER OF OPTION DESIRED? ";N1:IF N1< 1 OR N1> 4 THEN 840 850 MO$(1)= "JAN":MO$(2)= "FEB":MO$(3)= "MAR":MO$(4)= "APR":MO$(5)= "MAY":MO$(6)= "JUN":MO$(7)= "JUL" 860 MO$(8)= "AUG":MO$(9)= "SEP":MO$(10)= "OCT":MO$(11)= "NOV":MO$(12)= "DEC":GOSUB 570 870 ON N1 GOTO 880,1060,1252,160 880 Z= 904:GOSUB 1260:INPUT "THRU WHAT MONTH IS SUMMARY DESIRED? ";MO 885 IF P1= 1THEN P1= 0:PLOT 27,13 890 PLOT 12,15:PRINT TAB( 15)"BUDGET SUMMARY THRU ";MO$(MO);" 1980" 900 PRINT :PRINT "BUDGET ITEM ";" TOT. EXP. ";" TOT. BUD. ";" % TOT. BUD. ";" % BUD.-DATE" 910 BT= 0:GT= 0:FOR X= 1TO 24:SR= 0:FOR Y= 1TO MO:SR= SR+ ME(Y,X):NEXT Y:GT= GT+ SR:BT= BT+ AMT(X):SR$= STR$ (SR):AM$= STR$ (AMT(X)) 920 IF AMT(X)= 0 THEN PC$= "0":PT$= "0":GOTO 940 930 PC$= STR$ (INT (SR/ AMT(X)* 100)):PT$= STR$ (INT (100* SR* 12/ (AMT(X)* MO))) 940 PRINT ""DESCRIP$(X);TAB( 13);"";SPC( 7- LEN (SR$));SR$;TAB( 24);"";SPC( 7- LEN (AM$));AM$;TAB( 35); 950 PRINT "";SPC( 7- LEN (PC$));PC$;TAB( 48);"";SPC( 7- LEN (PT$));PT$ 960 NEXT X:GT$= STR$ (GT):BT$= STR$ (BT) 970 IF BT= 0THEN PC$= "0":PT$= "0":GOTO 990 980 PC$= STR$ (INT (100* GT/ BT)):PT$= STR$ (INT (100* GT* 12/ (BT+ MO))) 990 PRINT "TOTALS";TAB( 13);SPC( 7- LEN (GT$));GT$;TAB( 24);SPC( 7- LEN (BT$));BT$; 1000 PRINT TAB( 35);SPC( 7- LEN (PC$));PC$;TAB( 48);SPC( 7- LEN (PT$));PT$ 1010 PRINT "COMBINED TOTAL OF CHECKING & SAVINGS ACCNT. BALANCES: $";ME(MO,25)+ ME(MO,26)- ME(12,32);"" 1020 CI= 0:FOR Y= 1 TO MO:CI= CI+ ME(Y,27)+ ME(Y,28):NEXT Y 1030 V= CI- GT 1040 PRINT "COMBINED TOTAL OF INCOME SOURCES: $";CI;"";" VARIANCE: $";V;"" 1050 GOTO 1250 1060 Z= 904:GOSUB 1260:INPUT "ENTER STARTING MO. FOR 6 MO. REPORT ";MO:IF MO> 7THEN MO= 7 1065 IF P1= 1 THEN P1= 0:PLOT 27,13 1070 PLOT 12,15:PRINT TAB( 13)"EXPENSES BY MONTH FROM ";MO$(MO);" TO ";MO$(MO+ 5) 1080 PRINT :PRINT "BUDGET ITEM ";TAB( 14);"BUDGET ";TAB( 24);MO$(MO);TAB( 31);MO$(MO+ 1);TAB( 38);MO$(MO+ 2);TAB( 45);MO$(MO+ 3); 1090 PRINT TAB( 52);MO$(MO+ 4);TAB( 59);MO$(MO+ 5) 1100 TB= O:FOR I= 0TO 5:TM(I)= 0:NEXT I 1110 Z= 192:PRINT :FOR X= 1TO 24:T= 20:AM$= STR$ (INT (AMT(X)/ 12)):PRINT ""DESCRIP$(X);TAB( 13);"";SPC( 7- LEN (AM$));AM$; 1120 M0$= STR$ (ME(MO,X)):M1$= STR$ (ME(MO+ 1,X)):M2$= STR$ (ME(MO+ 2,X)):M3$= STR$ (ME(MO+ 3,X)):M4$= STR$ (ME(MO+ 4,X)) 1130 M5$= STR$ (ME(MO+ 5,X)) 1140 PRINT TAB( 20);"";SPC( 7- LEN (M0$));M0$;TAB( 27);SPC( 7- LEN (M1$));M1$;TAB( 34);SPC( 7- LEN (M2$));M2$; 1150 PRINT TAB( 41);SPC( 7- LEN (M3$));M3$;TAB( 48);SPC( 7- LEN (M4$));M4$;TAB( 55);SPC( 7- LEN (M5$));M5$ 1160 FOR Y= 0 TO 5:TM(Y)= TM(Y)+ ME(MO+ Y,X):NEXT Y:TB= TB+ INT (AMT(X)/ 12):NEXT X 1170 TB$= STR$ (TB):FOR I= 0 TO 5:TM$(I)= STR$ (TM(I)):NEXT I 1180 PRINT "TOTALS";TAB( 13);SPC( 7- LEN (TB$));TB$;TAB( 20);SPC( 7- LEN (TM$(0)));TM$(0);TAB( 27);SPC( 7- LEN (TM$(1)));TM$(1); 1190 PRINT TAB( 34);SPC( 7- LEN (TM$(2)));TM$(2);TAB( 41);SPC( 7- LEN (TM$(3)));TM$(3);TAB( 48);SPC( 7- LEN (TM$(4)));TM$(4); 1200 PRINT TAB( 55);SPC( 7- LEN (TM$(5)));TM$(5) 1210 I0$= STR$ (ME(MO,27)+ ME(MO,28)):I1$= STR$ (ME(MO+ 1,27)+ ME(MO+ 1,28)):I2$= STR$ (ME(MO+ 2,27)+ ME(MO+ 2,28)) 1220 I3$= STR$ (ME(MO+ 3,27)+ ME(MO+ 3,28)):I4$= STR$ (ME(MO+ 4,27)+ ME(MO+ 4,28)):I5$= STR$ (ME(MO+ 5,27)+ ME(MO+ 5,28)) 1230 PRINT "INCOME";TAB( 20);SPC( 7- LEN (I0$));I0$;TAB( 27);SPC( 7- LEN (I1$));I1$;TAB( 34);SPC( 7- LEN (I2$));I2$; 1240 PRINT TAB( 41);SPC( 7- LEN (I3$));I3$;TAB( 48);SPC( 7- LEN (I4$));I4$;TAB( 55);SPC( 7- LEN (I5$));I5$ 1250 POKE 33265,0:INPUT "HIT RETURN TO CONTINUE";ZZ:GOTO 800 1252 Z= 904:GOSUB 1260:INPUT "ENTER BAUD RATE (1-7)? ";BR:PLOT 27,18,BR:P1= 1:GOTO 800 1260 N= Z/ 64:N1= INT (N):X1= 64* (N- N1):Y1= 2* N1:PLOT 3,X1,Y1:RETURN 1270 N= Z/ 64:N1= INT (N):X1= 64* (N- N1):Y1= 1* N1:PLOT 3,X1,Y1:RETURN 1280 PLOT 12:Z= 142:GOSUB 1260:PRINT "MODULE NO. 5 - BUDGET/EXPENSE TREND PLOT" 1290 Z= 270:GOSUB 1260:PRINT "ENTER MONTH DESIRED FOR TREND PLOT ";:INPUT MO:GOSUB 570 1300 FOR Y= 1TO 12:SE(Y)= 0:NEXT Y:FOR I= 1TO MO:FOR J= 1TO 24 1310 SE(I)= SE(I)+ ME(I,J):NEXT J:SIT(I)= SIT(I- 1)+ ME(I,27)+ ME(I,28):ET(I)= ET(I- 1)+ SE(I):NEXT I 1320 X0= 15:DX= 8:Y0= 6:DY= 4:PLOT 12 1330 B(0)= 0:B(1)= 30000:B(2)= 60000:B(3)= 75000:B(4)= 120000:B(5)= 150000:B(6)= 300000:B(7)= 600000 1340 D(1)= 1000:D(2)= 2000:D(3)= 2500:D(4)= 4000:D(5)= 5000:D(6)= 10000:D(7)= 20000:Z1= 1923:DZ= 54 1350 IZ(1)= 320:IZ(2)= 320:IZ(3)= 256:IZ(4)= 320:IZ(5)= 320:IZ(6)= 320:IZ(7)= 320 1360 L1(1)= 5:L1(2)= 10:L1(3)= 10:L1(4)= 20:L1(5)= 25:L1(6)= 50:L1(7)= 100 1370 FOR I= 1 TO 7:IF SUM> B(I- 1)AND SUM< = B(I)THEN GOTO 1390 1380 GOTO 1400 1390 DV= D(I):IZ= IZ(I):L1= L1(I):PLOT 27,4:PRINT "LOAD TRDPLT.DSP":PLOT 27,27:GOTO 1410 1400 NEXT :PRINT "NO PLOT CAN BE MADE-YOUR BUDGET IS EITHER = 0 OR >600000":PRINT "HIT RETURN FOR MENU ";:INPUT ZZ:GOTO 160 1410 PLOT 15:PRINT "";:L= 0:FOR Z= Z1 TO 0 STEP - IZ:GOSUB 1270:PRINT L;:L= L+ L1:NEXT :Z= Z1/ 2:GOSUB 1270:PRINT "$" 1420 Z= Z- 128:GOSUB 1270:PRINT "K" 1430 PLOT 15:PRINT "";:L= 0:FOR Z= Z1+ DZ TO DZ STEP - IZ:GOSUB 1270:PRINT L;:L= L+ L1:NEXT :Z= Z1/ 2+ 61:GOSUB 1270:PRINT "$" 1440 Z= Z- 128:GOSUB 1270:PRINT "K" 1450 PLOT 6,1,2,X0,Y0,242,X0+ 96,INT (Y0+ DY* SUM/ DV),255 1460 FOR J= 0TO MO:X= (X0+ J* 8):PLOT 6,7,2,X,INT (Y0+ ET(J)* DY/ DV),255:PLOT 6,2,2,X,INT (Y0+ SIT(J)* DY/ DV),255:NEXT J 1470 YTR= ET(MO)+ (12- MO)* (ET(MO)- ET(MO- 1)) 1480 PLOT 6,4,2,(X0+ 12* DX- 1),INT (Y0+ YTR* DY/ DV),255 1490 PLOT 3,60,60,6,0:INPUT ZZ:GOTO 160 1500 PLOT 6,2,12:FILE "C",1,2:END 1510 PLOT 12,3,8,2:PRINT "MODULE NO. 1 - CREATE BUDGET AND EXPENSE FILES" 1520 Z= 264:GOSUB 1260:PRINT "ENTER NAME OF BUDGET FILE....." 1530 Z= 388:GOSUB 1260:PRINT "SUGGEST BDGTXX , WHERE XX=CURRENT YEAR" 1540 Z= 294:GOSUB 1260:INPUT "n m";B$ 1550 Z= 520:GOSUB 1260:PRINT "ENTER NAME OF EXPENSE FILE...." 1560 Z= 644:GOSUB 1260:PRINT "SUGGEST EXPSXX , WHERE XX=CURRENT YEAR" 1570 Z= 550:GOSUB 1260:INPUT "n m";E$ 1580 FILE "N",B$,24,16,8:FILE "N",E$,12,128,4 1590 FILE "T",1520:FILE "R",1,B$,1:FILE "R",2,E$,1 1600 A$= "NOT DETER'MD":B= 0:FOR I= 1TO 24:PUT 1,I;A$[12],B:NEXT I 1610 FOR I= 1TO 12:FOR J= 1TO 32:Z= 1+ (J- 1)* 4:ME(I,J)= 0:PUT 2,I,Z;ME(I,J):NEXT J:NEXT I 1620 Z= 768:GOSUB 1260:INPUT "COMBINED TOTAL OF SAVINGS & CHECKING ACC'NTS AT YR. END ";CS 1630 PUT 2,12,125;CS:FILE "C",1,2:GOTO 160 1640 N$= STR$ (INT (H)):PRINT SPC( T- LEN (N$)) N$:RETURN