Advanced Budget Manager

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

Content

Appears On

Related Products

Combines a financial data base with a forecasting program. Choose from the menu to input or review data, analyze income/expense...

Related Articles

Related Content

Image 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 "
\n1000 PRINT " 2 CHANGE ENTRY TITLE"
\n1010 IF NE<24 THEN PRINT " 3 ADD NEW CATEGORY"
\n1020 SLOW 
\n1030 IF INKEY$="1" THEN GOTO 0270
\n1040 IF INKEY$="2" THEN GOTO 1070
\n1050 IF NE<24 AND INKEY$="3" THEN GOTO 1160
\n1060 GOTO 1030
\n1070 CLS 
\n1080 GOSUB 0870
\n1090 PRINT AT 18,1;"%  ENTER NBR OF ITEM FOR CHANGE"
\n1100 SLOW 
\n1110 INPUT A
\n1120 IF A<1 OR A>NE THEN GOTO 1110
\n1130 PRINT AT 18,8;" NEW TITLE FOR ";E$(A)
\n1135 PRINT A$
\n1140 INPUT E$(A)
\n1150 GOTO 0860
\n1160 LET NE=NE+1
\n1165 GOSUB 0870
\n1170 PRINT AT 18,1;"%  ENTER NAME FOR NEW CATEGORY"
\n1180 PRINT A$
\n1200 SLOW 
\n1210 INPUT E$(NE)
\n1220 GOTO 0860
\n1222 LET D=1
\n1226 GOTO 1240
\n1230 LET D=2
\n1234 GOTO 1240
\n1240 FAST 
\n1250 CLS 
\n1255 PRINT AT 3,0;""
\n1260 IF D=1 THEN GOSUB 0590
\n1265 IF D=2 THEN GOSUB 0930
\n1270 PRINT 
\n1280 PRINT " \.  ENTER NBR 0 TO RETURN OR "
\n1290 PRINT " \.  ENTER NBR FOR ITEM TO PROJECT"
\n1300 SLOW 
\n1310 INPUT A
\n1315 IF A<0 THEN GOTO 1310
\n1320 IF (D=1 AND A>NI) OR (D=2 AND A>NE) THEN GOTO 1310
\n1330 IF A=0 THEN GOTO 0270
\n1340 FAST 
\n1350 CLS 
\n1360 PRINT AT 8,0;" FOR ";
\n1362 IF D=1 THEN PRINT I$(A)
\n1364 IF D=2 THEN PRINT E$(A)
\n1370 PRINT AT 10,1;"DO YOU WANT PROJCTIONS TO BE:"
\n1375 PRINT AT 12,1;"1 THE SAME FOR ALL MONTHS?"
\n1380 PRINT " 2 INDIVIDUAL BY MONTH?"
\n1390 PRINT AT 15,2;"%  PRESS NUMBER 1 OR 2"
\n1400 SLOW 
\n1410 IF INKEY$="1" THEN GOTO 1440
\n1420 IF INKEY$="2" THEN GOTO 1520
\n1430 GOTO 1410
\n1440 CLS 
\n1450 PRINT AT 8,0;"%  ADD TO PROJ. FOR ";
\n1455 IF D=1 THEN PRINT I$(A)
\n1456 IF D=1 THEN PRINT TAB 2;"(CURRENTLY ";J(1,A);")"
\n1457 IF D=2 THEN PRINT E$(A)
\n1458 IF D=2 THEN PRINT TAB 2;"(CURRENTLY ";F(1,A);")"
\n1460 INPUT C
\n1470 FAST 
\n1480 IF D=2 THEN GOTO 1499
\n1490 FOR B=1 TO 12
\n1491 LET J(B,A)=J(B,A)+C
\n1492 LET M(B)=M(B)+C
\n1493 LET P(B)=P(B)+C
\n1494 NEXT B
\n1495 LET J(13,A)=J(13,A)+(C*12)
\n1496 LET M(13)=M(13)+(C*12)
\n1497 LET P(13)=P(13)+(C*12)
\n1498 GOTO 1510
\n1499 FOR B=1 TO 12
\n1500 LET F(B,A)=F(B,A)+C
\n1501 LET N(B)=N(B)+C
\n1502 LET P(B)=P(B)-C
\n1503 NEXT B
\n1504 LET F(13,A)=F(13,A)+(C*12)
\n1505 LET N(13)=N(13)+(C*12)
\n1506 LET P(13)=P(13)-(C*12)
\n1510 GOTO 1240
\n1520 FAST 
\n1522 CLS 
\n1530 PRINT AT 8,0;"%  ADD TO PROJ. FOR ";
\n1535 IF D=1 THEN PRINT I$(A)
\n1537 IF D=2 THEN PRINT E$(A)
\n1538 PRINT 
\n1540 PRINT "   FOR MONTH NBR"
\n1550 PRINT "  CURRENTLY="
\n1552 IF D=2 THEN GOTO 1584
\n1554 FOR B=1 TO 12
\n1556 PRINT AT 10,16;B
\n1558 PRINT AT 11,13;J(B,A)
\n1560 SLOW 
\n1562 INPUT C
\n1564 FAST 
\n1566 IF C=0 THEN NEXT B
\n1568 LET J(B,A)=J(B,A)+C
\n1570 LET J(13,A)=J(13,A)+C
\n1572 LET M(B)=M(B)+C
\n1574 LET M(13)=M(13)+C
\n1576 LET P(B)=P(B)+C
\n1578 LET P(13)=P(13)+C
\n1580 NEXT B
\n1582 GOTO 1615
\n1584 FOR B=1 TO 12
\n1586 PRINT AT 10,16;B
\n1588 PRINT AT 11,13;F(B,A)
\n1590 SLOW 
\n1592 INPUT C
\n1595 FAST 
\n1596 IF C=0 THEN NEXT B
\n1598 LET F(B,A)=F(B,A)+C
\n1600 LET F(13,A)=F(13,A)+C
\n1602 LET N(B)=N(B)+C
\n1604 LET N(13)=N(13)+C
\n1606 LET P(B)=P(B)-C
\n1608 LET P(13)=P(13)-C
\n1610 NEXT B
\n1615 GOTO 1240
\n1620 LET H=0
\n1622 LET Q=-11
\n1623 GOSUB 1625
\n1624 GOTO 1630
\n1625 CLS 
\n1626 PRINT AT 8,3;"%  ENTER MONTH BY NUMBER"
\n1627 INPUT G
\n1628 IF G<1 OR G>12 THEN GOTO 1625
\n1629 RETURN 
\n1630 GOSUB 1650
\n1640 GOTO 1690
\n1650 FAST 
\n1655 CLS 
\n1660 PRINT "TITLE    MO. TOTAL  YR. TOTAL"
\n1670 PRINT TAB 9;">MO. PROJ. >YR. PROJ."
\n1680 PRINT "MONTH ";G
\n1685 RETURN 
\n1690 IF H>0 THEN GOTO 1800
\n1695 GOSUB 1700
\n1697 GOTO 1890
\n1700 PRINT 
\n1710 PRINT "INCOME   ";K(G);TAB 20;K(13)
\n1715 PRINT TAB 9;">";M(G);TAB 20;">";M(13)
\n1720 PRINT 
\n1730 PRINT "EXPENSE  ";L(G);TAB 20;L(13)
\n1740 PRINT TAB 9;">";N(G);TAB 20;">";N(13)
\n1750 PRINT 
\n1760 PRINT "NET";TAB 9;O(G);TAB 20;O(13)
\n1770 PRINT TAB 9;">";P(G);TAB 20;">";P(13)
\n1780 PRINT 
\n1790 RETURN 
\n1800 IF H=1 THEN FOR B=1 TO NI
\n1810 IF H>1 AND NE>=Q+5 THEN FOR B=Q TO Q+5
\n1820 IF H>1 AND NE<Q+5 THEN FOR B=Q TO NE
\n1830 IF H=1 THEN PRINT I$(B);TAB 9;I(G,B);TAB 20;I(13,B)
\n1840 IF H=1 THEN PRINT TAB 9;">";J(G,B);TAB 20;">";J(13,B)
\n1850 IF H>1 THEN PRINT E$(B);TAB 9;E(G,B);TAB 20;E(13,B)
\n1860 IF H>1 THEN PRINT TAB 9;">";F(G,B);TAB 20;">";F(13,B)
\n1870 PRINT 
\n1880 NEXT B
\n1890 PRINT "%  PRESS <1>CONT <2>PRINT"
\n1895 SLOW 
\n1900 IF INKEY$="1" THEN GOTO 1940
\n1910 IF INKEY$="2" THEN GOTO 1980
\n1930 GOTO 1900
\n1940 FAST 
\n1945 LET H=H+1
\n1950 LET Q=Q+6
\n1960 IF Q>NE THEN GOTO 2180
\n1970 GOTO 1630
\n1980 LPRINT TAB 4;"RECORD STARTING ";S$;" ";SY
\n1982 LPRINT TAB 10;"MONTH NBR ";G
\n1984 LPRINT 
\n1986 LPRINT "TITLE     MO. TOTAL  YR. TOTAL"
\n1990 LPRINT TAB 9;">MO. PROJ.  >YR. PROJ."
\n2000 LPRINT 
\n2004 LPRINT TAB 13;"INCOME"
\n2006 LPRINT 
\n2010 FOR B=1 TO NI
\n2020 LPRINT I$(B);TAB 9;I(G,B);TAB 20;I(13,B)
\n2030 LPRINT TAB 9;">";J(G,B);TAB 20;">";J(13,B)
\n2040 LPRINT 
\n2050 NEXT B
\n2060 LPRINT TAB 12;"EXPENSES"
\n2070 LPRINT 
\n2080 FOR B=1 TO NE
\n2090 LPRINT E$(B);TAB 9;E(G,B);TAB 20;E(13,B)
\n2100 LPRINT TAB 9;">";F(G,B);TAB 20;">";F(13,B)
\n2110 LPRINT 
\n2120 NEXT B
\n2140 LPRINT TAB 14;"NET"
\n2150 LPRINT TAB 9;O(G);TAB 20;O(13)
\n2160 LPRINT TAB 9;">";P(G);TAB 20;">";P(13)
\n2180 FAST 
\n2200 CLS 
\n2210 PRINT AT 6,0;"%  PRESS NUMBER OF YOUR CHOICE"
\n2220 PRINT 
\n2230 PRINT "1 TOTAL DATA FOR ANY ONE MONTH"
\n2240 PRINT "2 INCOME BY CATEGORY"
\n2250 PRINT "3 EXPENSES BY CATEGORY"
\n2260 PRINT "4 MONTHLY TOTALS AND NET"
\n2265 PRINT "5 RETURN "
\n2270 SLOW 
\n2280 IF INKEY$="1" THEN GOTO 1620
\n2290 IF INKEY$="2" THEN GOTO 2330
\n2300 IF INKEY$="3" THEN GOTO 2334
\n2310 IF INKEY$="4" THEN GOTO 2570
\n2315 IF INKEY$="5" THEN GOTO 0270
\n2320 GOTO 2280
\n2330 LET D=1
\n2332 GOTO 2340
\n2334 LET D=2
\n2340 FAST 
\n2345 CLS 
\n2350 PRINT AT 3,0;""
\n2360 IF D=1 THEN GOSUB 0590
\n2365 IF D=2 THEN GOSUB 0930
\n2370 PRINT 
\n2380 PRINT "%  ENTER CHOICE"
\n2390 SLOW 
\n2400 INPUT A
\n2402 FAST 
\n2404 CLS 
\n2405 IF D=1 THEN PRINT AT 3,0;I$(A)
\n2407 IF D=2 THEN PRINT AT 3,0;E$(A)
\n2408 PRINT 
\n2410 FOR B=1 TO 12
\n2420 IF D=1 THEN PRINT B;" ";I(B,A)
\n2430 IF D=2 THEN PRINT B;" ";E(B,A)
\n2440 NEXT B
\n2450 PRINT 
\n2460 PRINT TAB 3;"TOTAL    ";
\n2465 IF D=1 THEN PRINT I(13,A)
\n2470 IF D=2 THEN PRINT E(13,A)
\n2480 PRINT 
\n2490 PRINT AT 21,2;"%  PRESS  <1> RETURN  <2> COPY "
\n2500 SLOW 
\n2510 IF INKEY$="1" THEN GOTO 2180
\n2520 IF INKEY$="2" THEN GOTO 2532
\n2530 GOTO 2510
\n2532 GOSUB 2540
\n2533 GOTO 0270
\n2540 PRINT AT 21,2;"                             "
\n2550 COPY 
\n2560 RETURN 
\n2570 LET A=1
\n2575 FAST 
\n2580 CLS 
\n2590 PRINT " 1ST LINE ACTUAL  2ND LINE PROJ."
\n2595 PRINT 
\n2600 PRINT "MO. INCOME   EXPENSE   NET"
\n2610 PRINT 
\n2620 FOR B=A TO A+5
\n2630 PRINT B;TAB 3;K(B);TAB 13;L(B);TAB 23;O(B)
\n2640 PRINT TAB 3;M(B);TAB 13;N(B);TAB 23;P(B)
\n2650 NEXT B
\n2670 PRINT 
\n2680 PRINT TAB 3;"FULL YEAR TOTALS"
\n2690 PRINT TAB 3;K(13);TAB 13;L(13);TAB 23;O(13)
\n2700 PRINT TAB 3;M(13);TAB 13;N(13);TAB 23;P(13)
\n2710 PRINT AT 21,2;"%  PRESS  <1> CONT  <2> COPY "
\n2715 SLOW 
\n2720 IF INKEY$="1" THEN GOTO 2790
\n2730 IF INKEY$="2" THEN GOTO 2770
\n2740 GOTO 2720
\n2770 GOSUB 2540
\n2790 IF A=7 THEN GOTO 2180
\n2795 LET A=7
\n2800 GOTO 2575
\n2810 FAST 
\n2820 CLS 
\n2830 PRINT AT 8,0;"1 INCOME ENTRY"
\n2840 PRINT "2 EXPENSE ENTRY"
\n2850 PRINT "3 RETURN "
\n2860 PRINT 
\n2870 PRINT "%  PRESS NUMBER 1-3"
\n2875 SLOW 
\n2880 IF INKEY$="1" THEN GOTO 3000
\n2890 IF INKEY$="2" THEN GOTO 3020
\n2900 IF INKEY$="3" THEN GOTO 0270
\n2910 GOTO 2880
\n3000 LET D=1
\n3010 GOTO 3025
\n3020 LET D=2
\n3025 GOSUB 1625
\n3026 FAST 
\n3027 CLS 
\n3040 IF D=1 THEN GOSUB 0590
\n3050 IF D=2 THEN GOSUB 0930
\n3060 PRINT 
\n3070 PRINT "%  ENTER NUMBER 1-";
\n3080 IF D=1 THEN PRINT NI
\n3090 IF D=2 THEN PRINT NE
\n3100 SLOW 
\n3110 INPUT A
\n3120 IF (D=1 AND A>NI) OR (D=2 AND A>NE) THEN GOTO 3110
\n3130 FAST 
\n3140 CLS 
\n3145 GOSUB 1650
\n3150 IF D=2 THEN GOTO 3190
\n3160 PRINT AT 6,0;I$(A);TAB 9;I(G,A);TAB 20;I(13,A)
\n3170 PRINT TAB 9;">";J(G,A);TAB 20;">";J(13,A)
\n3180 GOTO 3210
\n3190 PRINT AT 6,0;E$(A);TAB 9;E(G,A);TAB 20;E(13,A)
\n3200 PRINT TAB 9;">";F(G,A);TAB 20;">";F(13,A)
\n3210 PRINT 
\n3220 PRINT "%  ENTER AMOUNT YOU WISH TO ADD"
\n3230 PRINT TAB 2;"(USE NEG. ENTRY TO SUBRACT)"
\n3232 PRINT 
\n3235 PRINT "%  ENTER 0 TO RETURN "
\n3240 SLOW 
\n3250 INPUT R
\n3255 IF R=0 THEN GOTO 2810
\n3260 FAST 
\n3270 IF D=2 THEN GOTO 3360
\n3280 LET I(G,A)=I(G,A)+R
\n3290 LET I(13,A)=I(13,A)+R
\n3300 LET K(G)=K(G)+R
\n3310 LET K(13)=K(13)+R
\n3320 LET O(G)=O(G)+R
\n3330 LET O(13)=O(13)+R
\n3340 FAST 
\n3350 GOTO 3160
\n3360 LET E(G,A)=E(G,A)+R
\n3370 LET E(13,A)=E(13,A)+R
\n3380 LET L(G)=L(G)+R
\n3390 LET L(13)=L(13)+R
\n3400 LET O(G)=O(G)-R
\n3410 LET O(13)=O(13)-R
\n3420 FAST 
\n3430 GOTO 3190
\n3440 FAST 
\n3450 CLS 
\n3460 PRINT AT 6,0;"\. PRESS <S> TO SAVE DATA ON TAPE."
\n3462 PRINT "(FIRST LOAD AND START RECORDER.)"
\n3480 PRINT 
\n3485 PRINT "\. PRESS <C> TO CLEAR PROGRAM FROM"
\n3490 PRINT " MEMORY."
\n3500 PRINT 
\n3510 PRINT "\. PRESS <P> TO RUN PROGRAM WITH-"
\n3515 PRINT " OUT LOSING DATA."
\n3517 SLOW 
\n3520 IF INKEY$="S" THEN GOTO 3560
\n3530 IF INKEY$="C" THEN NEW 
\n3540 IF INKEY$="P" THEN GOTO 0270
\n3550 GOTO 3520
\n3560 SAVE "ADMA%N"
\n3570 GOTO 0270
\n3600 FAST 
\n3605 DIM I$(6,8)
\n3610 DIM E$(24,8)
\n3620 DIM I(13,6)
\n3630 DIM E(13,24)
\n3640 DIM J(13,6)
\n3650 DIM F(13,24)
\n3660 DIM K(13)
\n3670 DIM L(13)
\n3680 DIM M(13)
\n3690 DIM N(13)
\n3700 DIM O(13)
\n3710 DIM P(13)
\n3715 LET NI=1
\n3717 LET NE=1
\n3718 LET E$(1)="EXP"
\n3719 LET I$(1)="INC"
\n3720 RETURN 
Scroll to Top