Advanced Budget Manager

Developer(s): Richard E. Davis, Jr
Date: 1983
Type: Cassette
Platform(s): TS 1000

Related Products

Combines a financial data base with a forecasting program. Choose from the menu to input or review data, analyze income/expense (projected and actual) by month, category or by total; six income and twenty-four expense categories; built-in save feature and print routine; easy to operate with self-explanatory instructions. 16K.

Gallery

Advanced Budget Manager

Source Code

  30 REM ****COPYRIGHT******
  40 REM *ROBERT E DAVIS JR*
  50 REM ******1982*********
  70 CLS 
  80 PRINT AT 6,2;"DO YOU WISH TO:"
  90 PRINT 
 100 PRINT "1 START A NEW RECORD?"
 110 PRINT "2 WORK WITH EXISTING DATA?"
 120 PRINT 
 130 PRINT "  %  PRESS NUMBER 1 OR 2"
 140 IF INKEY$="1" THEN GOTO 0170
 150 IF INKEY$="2" THEN GOTO 0190
 160 GOTO 0140
 170 CLEAR 
 180 GOSUB 3600
 185 SLOW 
 190 CLS 
 200 PRINT AT 6,2;"ENTER STARTING MONTH"
 210 PRINT TAB 4;"(1ST 3 LETTERS)"
 220 INPUT S$
 240 CLS 
 250 PRINT AT 6,5;"ENTER YEAR:"
 260 INPUT SY
 270 FAST 
 275 LET A$="   (MAXIMUM 8 LETTERS)"
 280 CLS 
 290 PRINT " \:  ADVANCED FINANCIAL MANAGER \ :"
 295 PRINT 
 310 PRINT "   ONE YEAR BEGINING ";S$;" ";SY
 320 PRINT AT 4,13;"***"
 330 PRINT AT 6,8;"DO YOU WISH TO:"
 340 PRINT AT 8,2;"1 CHANGE THE STARTING DATE"
 345 PRINT TAB 4;" OR START A NEW RECORD?"
 350 PRINT TAB 2;"2 CREATE INCOME CATEGORIES?"
 360 PRINT TAB 2;"3 CREATE EXPENSE CATEGORIES?"
 370 PRINT TAB 2;"4 INPUT INCOME PROJECTIONS?"
 380 PRINT TAB 2;"5 INPUT EXPENSE PROJECTIONS?"
 390 PRINT TAB 2;"6 REVIEW DATA?"
 400 PRINT TAB 2;"7 MAKE DATA ENTRIES?"
 410 PRINT TAB 2;"8 EXIT PROGRAM?"
 420 PRINT AT 20,4;"%  PRESS NUMBER 1-8"
 430 SLOW 
 440 IF INKEY$="1" THEN GOTO 0070
 450 IF INKEY$="2" THEN GOTO 0520
 455 IF INKEY$="3" THEN GOTO 0860
 460 IF INKEY$="4" THEN GOTO 1222
 470 IF INKEY$="5" THEN GOTO 1230
 480 IF INKEY$="6" THEN GOTO 2180
 490 IF INKEY$="7" THEN GOTO 2810
 500 IF INKEY$="8" THEN GOTO 3440
 510 GOTO 0440
 520 FAST 
 530 CLS 
 535 GOSUB 0540
 537 GOTO 0620
 540 FAST 
 542 CLS 
 545 PRINT AT 14,1;"YOU HAVE ";6-NI;" INCOME"
 550 PRINT " CATEGORIES LEFT"
 560 IF NI>0 THEN PRINT AT 2,1;"CURRENT SELECTIONS ARE:"
 570 PRINT 
 590 FOR B=1 TO NI
 600 PRINT TAB 1;B;" ";I$(B)
 610 NEXT B
 615 RETURN 
 620 PRINT AT 17,1;"%  PRESS NUMBER"
 630 PRINT " 1 RETURN "
 640 PRINT " 2 CHANGE ENTRY TITLES"
 650 IF NI<6 THEN PRINT " 3 ADD NEW CATEGORY"
 660 SLOW 
 670 IF INKEY$="1" THEN GOTO 0270
 680 IF INKEY$="2" THEN GOTO 0720
 690 IF NI<6 AND INKEY$="3" THEN GOTO 0790
 700 GOTO 0670
 720 GOSUB 0540
 730 PRINT AT 17,1;"%  ENTER NBR OF ITEM FOR CHANGE"
 735 SLOW 
 740 INPUT A
 750 IF A<1 OR A>NI THEN GOTO 0740
 760 PRINT AT 17,8;" NEW TITLE FOR ";I$(A)
 765 PRINT A$
 770 INPUT I$(A)
 780 GOTO 0520
 790 LET NI=NI+1
 795 GOSUB 0540
 800 PRINT AT 17,1;"%  ENTER NAME FOR NEW CATEGORY"
 810 PRINT A$
 830 SLOW 
 840 INPUT I$(NI)
 850 GOTO 0520
 860 GOSUB 0870
 865 GOTO 0980
 870 FAST 
 880 CLS 
 890 PRINT AT 15,1;"YOU HAVE ";24-NE;" EXPENSE"
 900 PRINT " CATEGORIES LEFT"
 905 PRINT AT 0,1;"CURRENT SELECTIONS ARE:"
 910 PRINT 
 920 IF NE=0 THEN GOTO 0980
 930 FOR B=1 TO NE STEP 2
 940 PRINT TAB 1;B;" ";E$(B);
 950 IF B+1<=NE THEN PRINT TAB 13;B+1;" ";E$(B+1)
 960 NEXT B
 970 RETURN 
 980 PRINT AT 18,1;"%  PRESS NUMBER"
 990 PRINT " 1 RETURN "
1000 PRINT " 2 CHANGE ENTRY TITLE"
1010 IF NE<24 THEN PRINT " 3 ADD NEW CATEGORY"
1020 SLOW 
1030 IF INKEY$="1" THEN GOTO 0270
1040 IF INKEY$="2" THEN GOTO 1070
1050 IF NE<24 AND INKEY$="3" THEN GOTO 1160
1060 GOTO 1030
1070 CLS 
1080 GOSUB 0870
1090 PRINT AT 18,1;"%  ENTER NBR OF ITEM FOR CHANGE"
1100 SLOW 
1110 INPUT A
1120 IF A<1 OR A>NE THEN GOTO 1110
1130 PRINT AT 18,8;" NEW TITLE FOR ";E$(A)
1135 PRINT A$
1140 INPUT E$(A)
1150 GOTO 0860
1160 LET NE=NE+1
1165 GOSUB 0870
1170 PRINT AT 18,1;"%  ENTER NAME FOR NEW CATEGORY"
1180 PRINT A$
1200 SLOW 
1210 INPUT E$(NE)
1220 GOTO 0860
1222 LET D=1
1226 GOTO 1240
1230 LET D=2
1234 GOTO 1240
1240 FAST 
1250 CLS 
1255 PRINT AT 3,0;""
1260 IF D=1 THEN GOSUB 0590
1265 IF D=2 THEN GOSUB 0930
1270 PRINT 
1280 PRINT " \.  ENTER NBR 0 TO RETURN OR "
1290 PRINT " \.  ENTER NBR FOR ITEM TO PROJECT"
1300 SLOW 
1310 INPUT A
1315 IF A<0 THEN GOTO 1310
1320 IF (D=1 AND A>NI) OR (D=2 AND A>NE) THEN GOTO 1310
1330 IF A=0 THEN GOTO 0270
1340 FAST 
1350 CLS 
1360 PRINT AT 8,0;" FOR ";
1362 IF D=1 THEN PRINT I$(A)
1364 IF D=2 THEN PRINT E$(A)
1370 PRINT AT 10,1;"DO YOU WANT PROJCTIONS TO BE:"
1375 PRINT AT 12,1;"1 THE SAME FOR ALL MONTHS?"
1380 PRINT " 2 INDIVIDUAL BY MONTH?"
1390 PRINT AT 15,2;"%  PRESS NUMBER 1 OR 2"
1400 SLOW 
1410 IF INKEY$="1" THEN GOTO 1440
1420 IF INKEY$="2" THEN GOTO 1520
1430 GOTO 1410
1440 CLS 
1450 PRINT AT 8,0;"%  ADD TO PROJ. FOR ";
1455 IF D=1 THEN PRINT I$(A)
1456 IF D=1 THEN PRINT TAB 2;"(CURRENTLY ";J(1,A);")"
1457 IF D=2 THEN PRINT E$(A)
1458 IF D=2 THEN PRINT TAB 2;"(CURRENTLY ";F(1,A);")"
1460 INPUT C
1470 FAST 
1480 IF D=2 THEN GOTO 1499
1490 FOR B=1 TO 12
1491 LET J(B,A)=J(B,A)+C
1492 LET M(B)=M(B)+C
1493 LET P(B)=P(B)+C
1494 NEXT B
1495 LET J(13,A)=J(13,A)+(C*12)
1496 LET M(13)=M(13)+(C*12)
1497 LET P(13)=P(13)+(C*12)
1498 GOTO 1510
1499 FOR B=1 TO 12
1500 LET F(B,A)=F(B,A)+C
1501 LET N(B)=N(B)+C
1502 LET P(B)=P(B)-C
1503 NEXT B
1504 LET F(13,A)=F(13,A)+(C*12)
1505 LET N(13)=N(13)+(C*12)
1506 LET P(13)=P(13)-(C*12)
1510 GOTO 1240
1520 FAST 
1522 CLS 
1530 PRINT AT 8,0;"%  ADD TO PROJ. FOR ";
1535 IF D=1 THEN PRINT I$(A)
1537 IF D=2 THEN PRINT E$(A)
1538 PRINT 
1540 PRINT "   FOR MONTH NBR"
1550 PRINT "  CURRENTLY="
1552 IF D=2 THEN GOTO 1584
1554 FOR B=1 TO 12
1556 PRINT AT 10,16;B
1558 PRINT AT 11,13;J(B,A)
1560 SLOW 
1562 INPUT C
1564 FAST 
1566 IF C=0 THEN NEXT B
1568 LET J(B,A)=J(B,A)+C
1570 LET J(13,A)=J(13,A)+C
1572 LET M(B)=M(B)+C
1574 LET M(13)=M(13)+C
1576 LET P(B)=P(B)+C
1578 LET P(13)=P(13)+C
1580 NEXT B
1582 GOTO 1615
1584 FOR B=1 TO 12
1586 PRINT AT 10,16;B
1588 PRINT AT 11,13;F(B,A)
1590 SLOW 
1592 INPUT C
1595 FAST 
1596 IF C=0 THEN NEXT B
1598 LET F(B,A)=F(B,A)+C
1600 LET F(13,A)=F(13,A)+C
1602 LET N(B)=N(B)+C
1604 LET N(13)=N(13)+C
1606 LET P(B)=P(B)-C
1608 LET P(13)=P(13)-C
1610 NEXT B
1615 GOTO 1240
1620 LET H=0
1622 LET Q=-11
1623 GOSUB 1625
1624 GOTO 1630
1625 CLS 
1626 PRINT AT 8,3;"%  ENTER MONTH BY NUMBER"
1627 INPUT G
1628 IF G<1 OR G>12 THEN GOTO 1625
1629 RETURN 
1630 GOSUB 1650
1640 GOTO 1690
1650 FAST 
1655 CLS 
1660 PRINT "TITLE    MO. TOTAL  YR. TOTAL"
1670 PRINT TAB 9;">MO. PROJ. >YR. PROJ."
1680 PRINT "MONTH ";G
1685 RETURN 
1690 IF H>0 THEN GOTO 1800
1695 GOSUB 1700
1697 GOTO 1890
1700 PRINT 
1710 PRINT "INCOME   ";K(G);TAB 20;K(13)
1715 PRINT TAB 9;">";M(G);TAB 20;">";M(13)
1720 PRINT 
1730 PRINT "EXPENSE  ";L(G);TAB 20;L(13)
1740 PRINT TAB 9;">";N(G);TAB 20;">";N(13)
1750 PRINT 
1760 PRINT "NET";TAB 9;O(G);TAB 20;O(13)
1770 PRINT TAB 9;">";P(G);TAB 20;">";P(13)
1780 PRINT 
1790 RETURN 
1800 IF H=1 THEN FOR B=1 TO NI
1810 IF H>1 AND NE>=Q+5 THEN FOR B=Q TO Q+5
1820 IF H>1 AND NE<Q+5 THEN FOR B=Q TO NE
1830 IF H=1 THEN PRINT I$(B);TAB 9;I(G,B);TAB 20;I(13,B)
1840 IF H=1 THEN PRINT TAB 9;">";J(G,B);TAB 20;">";J(13,B)
1850 IF H>1 THEN PRINT E$(B);TAB 9;E(G,B);TAB 20;E(13,B)
1860 IF H>1 THEN PRINT TAB 9;">";F(G,B);TAB 20;">";F(13,B)
1870 PRINT 
1880 NEXT B
1890 PRINT "%  PRESS <1>CONT <2>PRINT"
1895 SLOW 
1900 IF INKEY$="1" THEN GOTO 1940
1910 IF INKEY$="2" THEN GOTO 1980
1930 GOTO 1900
1940 FAST 
1945 LET H=H+1
1950 LET Q=Q+6
1960 IF Q>NE THEN GOTO 2180
1970 GOTO 1630
1980 LPRINT TAB 4;"RECORD STARTING ";S$;" ";SY
1982 LPRINT TAB 10;"MONTH NBR ";G
1984 LPRINT 
1986 LPRINT "TITLE     MO. TOTAL  YR. TOTAL"
1990 LPRINT TAB 9;">MO. PROJ.  >YR. PROJ."
2000 LPRINT 
2004 LPRINT TAB 13;"INCOME"
2006 LPRINT 
2010 FOR B=1 TO NI
2020 LPRINT I$(B);TAB 9;I(G,B);TAB 20;I(13,B)
2030 LPRINT TAB 9;">";J(G,B);TAB 20;">";J(13,B)
2040 LPRINT 
2050 NEXT B
2060 LPRINT TAB 12;"EXPENSES"
2070 LPRINT 
2080 FOR B=1 TO NE
2090 LPRINT E$(B);TAB 9;E(G,B);TAB 20;E(13,B)
2100 LPRINT TAB 9;">";F(G,B);TAB 20;">";F(13,B)
2110 LPRINT 
2120 NEXT B
2140 LPRINT TAB 14;"NET"
2150 LPRINT TAB 9;O(G);TAB 20;O(13)
2160 LPRINT TAB 9;">";P(G);TAB 20;">";P(13)
2180 FAST 
2200 CLS 
2210 PRINT AT 6,0;"%  PRESS NUMBER OF YOUR CHOICE"
2220 PRINT 
2230 PRINT "1 TOTAL DATA FOR ANY ONE MONTH"
2240 PRINT "2 INCOME BY CATEGORY"
2250 PRINT "3 EXPENSES BY CATEGORY"
2260 PRINT "4 MONTHLY TOTALS AND NET"
2265 PRINT "5 RETURN "
2270 SLOW 
2280 IF INKEY$="1" THEN GOTO 1620
2290 IF INKEY$="2" THEN GOTO 2330
2300 IF INKEY$="3" THEN GOTO 2334
2310 IF INKEY$="4" THEN GOTO 2570
2315 IF INKEY$="5" THEN GOTO 0270
2320 GOTO 2280
2330 LET D=1
2332 GOTO 2340
2334 LET D=2
2340 FAST 
2345 CLS 
2350 PRINT AT 3,0;""
2360 IF D=1 THEN GOSUB 0590
2365 IF D=2 THEN GOSUB 0930
2370 PRINT 
2380 PRINT "%  ENTER CHOICE"
2390 SLOW 
2400 INPUT A
2402 FAST 
2404 CLS 
2405 IF D=1 THEN PRINT AT 3,0;I$(A)
2407 IF D=2 THEN PRINT AT 3,0;E$(A)
2408 PRINT 
2410 FOR B=1 TO 12
2420 IF D=1 THEN PRINT B;" ";I(B,A)
2430 IF D=2 THEN PRINT B;" ";E(B,A)
2440 NEXT B
2450 PRINT 
2460 PRINT TAB 3;"TOTAL    ";
2465 IF D=1 THEN PRINT I(13,A)
2470 IF D=2 THEN PRINT E(13,A)
2480 PRINT 
2490 PRINT AT 21,2;"%  PRESS  <1> RETURN  <2> COPY "
2500 SLOW 
2510 IF INKEY$="1" THEN GOTO 2180
2520 IF INKEY$="2" THEN GOTO 2532
2530 GOTO 2510
2532 GOSUB 2540
2533 GOTO 0270
2540 PRINT AT 21,2;"                             "
2550 COPY 
2560 RETURN 
2570 LET A=1
2575 FAST 
2580 CLS 
2590 PRINT " 1ST LINE ACTUAL  2ND LINE PROJ."
2595 PRINT 
2600 PRINT "MO. INCOME   EXPENSE   NET"
2610 PRINT 
2620 FOR B=A TO A+5
2630 PRINT B;TAB 3;K(B);TAB 13;L(B);TAB 23;O(B)
2640 PRINT TAB 3;M(B);TAB 13;N(B);TAB 23;P(B)
2650 NEXT B
2670 PRINT 
2680 PRINT TAB 3;"FULL YEAR TOTALS"
2690 PRINT TAB 3;K(13);TAB 13;L(13);TAB 23;O(13)
2700 PRINT TAB 3;M(13);TAB 13;N(13);TAB 23;P(13)
2710 PRINT AT 21,2;"%  PRESS  <1> CONT  <2> COPY "
2715 SLOW 
2720 IF INKEY$="1" THEN GOTO 2790
2730 IF INKEY$="2" THEN GOTO 2770
2740 GOTO 2720
2770 GOSUB 2540
2790 IF A=7 THEN GOTO 2180
2795 LET A=7
2800 GOTO 2575
2810 FAST 
2820 CLS 
2830 PRINT AT 8,0;"1 INCOME ENTRY"
2840 PRINT "2 EXPENSE ENTRY"
2850 PRINT "3 RETURN "
2860 PRINT 
2870 PRINT "%  PRESS NUMBER 1-3"
2875 SLOW 
2880 IF INKEY$="1" THEN GOTO 3000
2890 IF INKEY$="2" THEN GOTO 3020
2900 IF INKEY$="3" THEN GOTO 0270
2910 GOTO 2880
3000 LET D=1
3010 GOTO 3025
3020 LET D=2
3025 GOSUB 1625
3026 FAST 
3027 CLS 
3040 IF D=1 THEN GOSUB 0590
3050 IF D=2 THEN GOSUB 0930
3060 PRINT 
3070 PRINT "%  ENTER NUMBER 1-";
3080 IF D=1 THEN PRINT NI
3090 IF D=2 THEN PRINT NE
3100 SLOW 
3110 INPUT A
3120 IF (D=1 AND A>NI) OR (D=2 AND A>NE) THEN GOTO 3110
3130 FAST 
3140 CLS 
3145 GOSUB 1650
3150 IF D=2 THEN GOTO 3190
3160 PRINT AT 6,0;I$(A);TAB 9;I(G,A);TAB 20;I(13,A)
3170 PRINT TAB 9;">";J(G,A);TAB 20;">";J(13,A)
3180 GOTO 3210
3190 PRINT AT 6,0;E$(A);TAB 9;E(G,A);TAB 20;E(13,A)
3200 PRINT TAB 9;">";F(G,A);TAB 20;">";F(13,A)
3210 PRINT 
3220 PRINT "%  ENTER AMOUNT YOU WISH TO ADD"
3230 PRINT TAB 2;"(USE NEG. ENTRY TO SUBRACT)"
3232 PRINT 
3235 PRINT "%  ENTER 0 TO RETURN "
3240 SLOW 
3250 INPUT R
3255 IF R=0 THEN GOTO 2810
3260 FAST 
3270 IF D=2 THEN GOTO 3360
3280 LET I(G,A)=I(G,A)+R
3290 LET I(13,A)=I(13,A)+R
3300 LET K(G)=K(G)+R
3310 LET K(13)=K(13)+R
3320 LET O(G)=O(G)+R
3330 LET O(13)=O(13)+R
3340 FAST 
3350 GOTO 3160
3360 LET E(G,A)=E(G,A)+R
3370 LET E(13,A)=E(13,A)+R
3380 LET L(G)=L(G)+R
3390 LET L(13)=L(13)+R
3400 LET O(G)=O(G)-R
3410 LET O(13)=O(13)-R
3420 FAST 
3430 GOTO 3190
3440 FAST 
3450 CLS 
3460 PRINT AT 6,0;"\. PRESS <S> TO SAVE DATA ON TAPE."
3462 PRINT "(FIRST LOAD AND START RECORDER.)"
3480 PRINT 
3485 PRINT "\. PRESS <C> TO CLEAR PROGRAM FROM"
3490 PRINT " MEMORY."
3500 PRINT 
3510 PRINT "\. PRESS <P> TO RUN PROGRAM WITH-"
3515 PRINT " OUT LOSING DATA."
3517 SLOW 
3520 IF INKEY$="S" THEN GOTO 3560
3530 IF INKEY$="C" THEN NEW 
3540 IF INKEY$="P" THEN GOTO 0270
3550 GOTO 3520
3560 SAVE "ADMA%N"
3570 GOTO 0270
3600 FAST 
3605 DIM I$(6,8)
3610 DIM E$(24,8)
3620 DIM I(13,6)
3630 DIM E(13,24)
3640 DIM J(13,6)
3650 DIM F(13,24)
3660 DIM K(13)
3670 DIM L(13)
3680 DIM M(13)
3690 DIM N(13)
3700 DIM O(13)
3710 DIM P(13)
3715 LET NI=1
3717 LET NE=1
3718 LET E$(1)="EXP"
3719 LET I$(1)="INC"
3720 RETURN 
Scroll to Top