home *** CD-ROM | disk | FTP | other *** search
/ The CIA World Factbook 1992 / k3bimage.iso / sel / 12 / 0093 / budget.bas (.txt) next >
Encoding:
GW-BASIC  |  1991-12-02  |  14.1 KB  |  214 lines

  1. 0  '****************************************************************************
  2. 1  '****************************************************************************    ****         This is a complete rewrite of my not so famous             ****    ****                Monthly Budget Forecaster                           ****
  3. 2  '****        I will not be held responsible for anything that happens    ****
  4. 5  '****         Please don't try and sell it.(nobody would by it)          ****    ****          Any improvements or comments will be appreciated          ****    ****             Please let me know about them.                         ****
  5. 6  '****                Joseph A. Hansen                                    ****    ****                7200 Stuart Drive                                   ****    ****                Raleigh, N.C. 27609     Voice 919-847-8718          ****
  6. 7  '****************************************************************************
  7. 8  '****************************************************************************
  8. 9  '
  9. 10  '                                    ***** define all variables *****
  10. 11  CLS:KEY OFF:DIM A(30),B(30),C(30):DEFDBL P:KEY 1,"X"+CHR$(13):KEY 2,"Z"+CHR$(13):DIM AMORT(500,2):DR$="A:":ZX$="##,###.##":ON ERROR GOTO 280:DEF SEG=&H40:POKE &H17,PEEK(&H17) OR 32
  11. 12  DAT$=LEFT$(DATE$,2)+"-"+RIGHT$(DATE$,2)
  12. 49  '
  13. 50  '                                    ***** entry display *****
  14. 55  COLOR 0,7:LOCATE 3,26:PRINT" MONTHLY BUDGET FORECASTER ";
  15. 60  COLOR 7,0:LOCATE 4,30:PRINT"Version 2.1 11/82";:LOCATE 6,32:PRINT"     by";
  16. 65  LOCATE 10,31:COLOR 25,0:PRINT "JOSEPH A HANSEN":COLOR 0,7:LOCATE 20,27,0,0,31:PRINT" HIT ANY KEY TO CONTINUE ":COLOR 7,0
  17. 70  LOCATE 23,1:PRINT"No copyright, Soft and Friendly Not Inc.,  Joseph A. Hansen President";:LOCATE 24,1:PRINT"and his great and beautiful wife, Elizabeth L. Hansen, Vice President";:LOCATE 25,1:PRINT"and his daughter, Christine E. Hansen, Assistant";
  18. 71  LOCATE 1,1:COLOR 7,0:PRINT"If date or time is not correct, hit Esc key. DATE=> ";DATE$;"  time=> ";TIME$;
  19. 75  GOSUB 96:GOSUB 90:IF ASC(X$)=27 THEN GOSUB 76 ELSE GOTO 100
  20. 76  LOCATE 20,1:PRINT SPACE$(70);:LOCATE 19,20:GOSUB 96:INPUT"Enter DATE ",DAT$:LOCATE 20,20:GOSUB 96:INPUT"Enter TIME ",TIM$:DATE$=DAT$:TIME$=TIM$:RUN
  21. 88  '
  22. 89  '                                    ***** main keybord input *****
  23. 90  '
  24. 91  X$=INKEY$:IF X$="" THEN GOTO 91 ELSE IF X$="X" THEN GOTO 95 ELSE RETURN
  25. 95  IF ERRO=1 THEN RETURN ELSE ERRO=0:GOTO 100
  26. 96  FOR I=1 TO 3:SOUND 1000*I,1:NEXT:RETURN
  27. 98  '
  28. 99  '                                    ***** main menu *****
  29. 100  LP$=INKEY$:COLOR 7,0:CLS:LOCATE 1,29:PRINT DATE$;"   ";TIME$;:COLOR 0,7:LOCATE 2,28:PRINT " ****** M E N U ******* ":DEF SEG=0:POKE 1050,PEEK(1052):COLOR 7,0
  30. 104  LOCATE 5,20:PRINT"(H) ==== DISPLAY INSTRUCTIONS
  31. 105  LOCATE 6,20:PRINT"(L) ==== LOAD DATA FROM DISK FOR SPECIFIED MONTH"
  32. 106  LOCATE 7,20:PRINT"(S) ==== SAVE DATA ON DISK FOR SPECIFIED MONTH
  33. 107  LOCATE 8,20:PRINT"(A) ==== SUMMARY OF ACCUMULATIVE MONTHS
  34. 108  LOCATE 9,20:PRINT"(B) ==== SEE THIS MONTHS BUDGET FORCAST
  35. 109  LOCATE 10,20:PRINT"(C) ==== LOAN ANILIZATION AND AMORTIZATION
  36. 110  LOCATE 11,20:PRINT"(V) ==== ENTER/EDIT AND SEE BUDGET FORCAST VALUES
  37. 111  LOCATE 12,20:PRINT"(E) ==== EXIT TO BASICA OR DOS
  38. 112  LOCATE 13,20:PRINT"(D) ==== CHANGE DEFALT DRIVE       DRIVE = ";DR$;" "
  39. 113  LOCATE 14,20:PRINT"(F) ==== SEE FILES ON DISK"
  40. 114  LOCATE 15,20:PRINT"(P) ==== TO SEE PERCENTAGES
  41. 120  LOCATE 21,25:COLOR 18,0:PRINT"ENTER THE DESIRED FUNCTION";:GOSUB 96
  42. 125  GOSUB 90
  43. 127  IF X$="A" OR X$="a" THEN GOTO 470 ELSE IF X$="B" OR X$="b" THEN GOTO 560
  44. 129  IF X$="C" OR X$="c" THEN GOTO 2000 ELSE IF X$="D" OR X$="d" THEN GOTO 180
  45. 130  IF X$="E" OR X$="e" THEN GOTO 800 ELSE IF X$="F" OR X$="f" THEN GOTO 1000
  46. 132  IF X$="V" OR X$="v" THEN GOTO 810 ELSE IF X$="H" OR X$="h" THEN GOTO 4000
  47. 134  IF X$="L" OR X$="l" THEN GOTO 200 ELSE IF X$="S" OR X$="s" THEN GOTO 400
  48. 136  IF X$="P" OR X$="p" THEN GOTO 300
  49. 170  SOUND 100,5:GOTO 125
  50. 180  COLOR 7,0: IF DR$="A:" THEN DR$="B:":GOTO 112
  51. 182  DR$="A:":GOTO 112
  52. 200  '
  53. 201  '*********************** Load Data for a specified Month.  ****************
  54. 203  COLOR 7,0:CLS:LOCATE 5,30:COLOR 0,7:PRINT" MONTHLY DATA LOAD ":COLOR 7,0
  55. 205  LOCATE 10,16:PRINT"Enter MONTH and YEAR you want to load. ( MM-YY )"
  56. 207  LOCATE 20,32:COLOR 31,0:PRINT"F1 to ABORT":COLOR 7,0:GOSUB 96
  57. 209  LOCATE 12,56:INPUT;" ",MONTH$:IF MONTH$="X" THEN GOTO 100 ELSE IF LEN(MONTH$) <4 OR LEN(MONTH$) >5 THEN LOCATE 14,25:SOUND 100,5:PRINT"Invalid Date, try again":FOR I=1 TO 700:NEXT:LOCATE 14,24:PRINT SPACE$(30);:GOTO 209
  58. 211  ON ERROR GOTO 282:OPEN DR$+MONTH$ FOR INPUT AS #1
  59. 213  FOR I=0 TO 29:INPUT #1,A(I):NEXT:CLOSE
  60. 215  COLOR 7,0:GOTO 810
  61. 280  '
  62. 281  '******************  ERROR  TRAP   ***********************************
  63. 282  RESTORE:CLOSE:COLOR 7,0:CLS:COLOR 31,7:LOCATE 9,25:PRINT" **** E R R O R **** ":COLOR 7,0:SOUND 100,30
  64. 284  IF ERR=52 OR ERR=53 THEN LOCATE 15,20:PRINT"File not found. Error line is => ";ERL;:GOTO 290
  65. 285  IF ERR=61 THEN LOCATE 15,20:PRINT"Disk Full. Error line is => ";ERL;:GOTO 290
  66. 286  IF ERR=27 THEN LOCATE 15,20:PRINT"Printer not ready. Error line is => ";ERL;:GOTO 290
  67. 287  IF ERR=6 OR ERR=11 THEN LOCATE 15,20:PRINT"Division by zero or Overflow. Error line is =>";ERL;:LOCATE 17,15:PRINT"Make sure data is loaded before using percentage vunction";:GOTO 290
  68. 289  LOCATE 15,20:PRINT" Catastrophic Error":LOCATE 17,20:PRINT"Error line is < ";ERL;"     Error code is = ";ERR
  69. 290  LOCATE 19,20:PRINT"F1 to ABORT and return to menu":LOCATE 20,20:PRINT"F2 to Exit Program":ERRO=1:GOSUB 90:ERRO=0:IF X$="X" THEN RESUME 100 ELSE IF X$="Z" THEN RESUME 800
  70. 291  SOUND 100,5:GOTO 290
  71. 300  '
  72. 302  '**********************************   PERCENTAGES  ************************list 300-350
  73. 305  COLOR 7,0:CLS:PER$="_  ##_ %":LOCATE 24,25:COLOR 0,7:PRINT" Hit any key to continue ";:N=0:COLOR 0,7:LOCATE 1,28:PRINT" **** PERCENTAGES **** ";
  74. 307  LOCATE 3,1:PRINT"CODE";:LOCATE 3,8:PRINT" TYPE ";:LOCATE 3,24:PRINT" % ";:LOCATE 3,40:PRINT"CODE";:LOCATE 3,48:PRINT" TYPE ";:LOCATE 3,63:PRINT" % ";
  75. 309  COLOR 7,0:FOR I=4 TO 22:READ A$:GOSUB 340:LOCATE I,1:PRINT A$;:PRINT USING PER$;PER;:NEXT:FOR I=4 TO 10:READ A$:GOSUB 340:LOCATE I,40:PRINT A$;:PRINT USING PER$;PER;:NEXT
  76. 311  FOR I=0 TO 18:F=A(I)+F:NEXT:FOR I=19 TO 25:NF=NF+A(I):NEXT:F=F/TOTALIN:NF=NF/TOTALIN:F=F*100:NF=NF*100:F=CINT(F):NF=CINT(NF)
  77. 313  LOCATE 15,40:PRINT" FIXED BILLS PERCENTAGE ";:PRINT USING PER$;F;:LOCATE 17,40:PRINT" NON FIXED              ";:PRINT USING PER$;NF;:GOTO 350
  78. 340  PER=A(N)/TOTALIN:N=N+1:PER=PER*100:PER=CINT(PER):RETURN
  79. 350  RESTORE:GOSUB 96:GOSUB 90:GOTO 100
  80. 398  '
  81. 399  '*********************************   save data to disk   ******************
  82. 400  CLS:LOCATE 3,25:COLOR 0,7:PRINT" **** SAVE DATA TO DISK **** ";:LOCATE 2,30:COLOR 7,0:PRINT DATE$;"  ";TIME$:LOCATE 13,25:COLOR 31,0:GOSUB 96:GOSUB 96:PRINT"THIS SECTION WRITES TO DISK.";:COLOR 7,0
  83. 402  LOCATE 15,21:PRINT"!! Are you sure you want to do this ????";:LOCATE 17,26:PRINT"Enter (Y)es continue";
  84. 404  LOCATE 19,32:COLOR 31,0:PRINT"F1 to ABORT";:COLOR 7,0:GOSUB 90:IF X$="y" OR X$="Y" THEN GOTO 405 ELSE SOUND 100,5:GOTO 402
  85. 405  LOCATE 13,19:PRINT SPACE$(4J7NATE 17,21:PRINT SPACE$(25);
  86. 420  COLOR 7,0:LOCATE 15,1:PRINT SPACE$ (75):IF FROM=1 THEN GOTO 430 ELSE LOCATE 15,20:PRINT"Enter MONTH-YEAR you want to save  (  MM-YY )";:LOCATE 14,57:GOSUB 96:INPUT;" ",DAT$:IF DAT$="X" THEN GOTO 100
  87. 425  IF LEN(DAT$) < 4 OR LEN(DAT$) > 5 THEN SOUND 100,5:LOCATE 17,25:PRINT"Invalid date, try again.";:FOR I=1 TO 800:NEXT:LOCATE 17,25:PRINT SPACE$(40);:GOTO 420
  88. 430  FROM=0:COLOR 7,0:LOCATE 14,55:PRINT SPACE$(10);:GOSUB 96:LOCATE 15,10:PRINT"You want to save data for month of ";DAT$;"  is this correct (Y/N)";:LOCATE 12,15:GOSUB 96:GOSUB 90:IF X$="y" OR X$ ="Y" THEN 440 ELSE IF X$="n" OR X$="N" THEN GOTO 405
  89. 432  SOUND 100,5:GOTO 430
  90. 440  ON ERROR GOTO 280:OPEN DR$+DAT$ FOR OUTPUT AS #1
  91. 450  FOR I=0 TO 29:WRITE #1,A(I):NEXT
  92. 460  CLOSE #1:GOTO 100
  93. 468  '
  94. 469  '********************************** summary of months ********************
  95. 470  CLS:LOCATE 3,24:COLOR 0,7:PRINT" **** SUMMARY SHEET **** ";:LOCATE 2,24:COLOR 7,0:PRINT DATE$;"       ";TIME$:LOCATE 16,30:COLOR 31,0:PRINT"F1 to ABORT ";
  96. 473  COLOR 7,0:FOR I=0 TO 29:A(I)=0:B(I)=0:NEXT:LOCATE 10,14 :GOSUB 96:INPUT;"ENTER THE STARTING MONTH AND YEAR  MM-YY ",SM$:IF SM$="X" THEN GOTO 100
  97. 480  LOCATE 12,14:GOSUB 96:INPUT;"ENTER THE  ENDING  MONTH AND YEAR  MM-YY ",EM$:IF EM$="X" THEN GOTO 100
  98. 485  IF LEN(SM$) < 4 OR LEN(EM$) < 4 OR LEN(SM$) > 5 OR LEN(EM$) > 5 THEN LOCATE 14,18:PRINT"Invalid date, try again.";:FOR I=1 TO 800:NEXT:LOCATE 14,15:PRINT SPACE$(40);:GOTO 473
  99. 490  ON ERROR GOTO 280:DAT$=SM$:GOTO 530
  100. 500  OPEN DR$+DAT$ FOR INPUT AS #1:FOR I=0 TO 29:INPUT #1,B(I):NEXT:CLOSE:FOR I= 0 TO 29 :A(I)=A(I)+B(I):NEXT
  101. 510  IF DAT$=EM$ THEN GOTO 550 ELSE IF LEFT$(DAT$,2)="12" THEN Y=VAL(RIGHT$(DAT$,2)):Y=Y+1:DAAT$="1-"+STR$(Y):DAT$=MID$(DAAT$,1,2)+RIGHT$(DAAT$,2):GOTO 530
  102. 520  A=VAL(LEFT$(DAT$,P)):A=A+1:AX$=STR$(A):AX$=MID$(AX$,2):BB$=RIGHT$(DAT$,3):DAT$=AX$+BB$:GOTO 530
  103. 530  LOCATE 5,25:PRINT"READING DATA FOR MONTH OF":LOCATE 7,37:PRINT"     ":LOCATE 7,35:PRINT DAT$:IF LEN(DAT$)=4 THEN P=1 ELSE IF LEN(DAT$)=5 THEN P=2 ELSE GOTO 390
  104. 540  GOTO 500
  105. 550  DAT$=SM$+" TO "+EM$:GOTO 810
  106. 558  '
  107. 559  '********************************** shortcut to this month ***************
  108. 560  CLS
  109. 570  DATTT$=LEFT$(DATE$,2) + "-" + RIGHT$(DATE$,2)
  110. 580  IF LEFT$(DATTT$,1)="0" THEN DATTT$=MID$(DATE$,2,1) + "-" + RIGHT$(DATE$,2)
  111. 590  ON ERROR GOTO 280
  112. 600  OPEN DR$+DATTT$ FOR INPUT AS #1:ON ERROR GOTO 280
  113. 610  FOR I = 0 TO 29:INPUT #1,A(I):NEXT:CLOSE
  114. 620  DAT$=DATTT$:GOTO 810
  115. 628  '
  116. 629  '*********************************** calculator **************************
  117. 630  COLOR 7,0:LOCATE 23,1:PRINT SPACE$(75);:LOCATE 24,1:PRINT SPACE$(75);:LOCATE 23,27:COLOR 0,7:PRINT" Calculator mode, Enter (E)nd or F1-MENU ";:GOSUB 96
  118. 632  LOCATE 24,27:PRINT"       Use *, +, -, =, /,  (C)lear       ";
  119. 635  ON ERROR GOTO 280:NUM=0:NUM$="":NUMB$="":TOTAL1=0:P$="":COLOR 7,0:LOCATE 14,71:COLOR 0,7:PRINT"CALCULATOR";:LOCATE 15,73:PRINT" MODE ";:LOCATE 17,72:COLOR 7,0:PRINT"         ";
  120. 640  NUM$=""
  121. 650  GOSUB 90
  122. 660  IF X$="+" THEN GOTO 690 ELSE IF X$="-" THEN GOTO 710 ELSE IF X$="*" THEN GOTO 720 ELSE IF X$="/" THEN GOTO 750 ELSE IF X$="=" THEN GOTO 730 ELSE IF X$="C" OR X$="c" THEN GOTO 635
  123. 670  IF X$="E"OR X$="e" THEN GOTO 860
  124. 680  NUM$=NUM$+X$:NUMB$=NUM$:GOSUB 700:GOTO 650
  125. 690  TOTAL1=VAL(NUMB$)+TOTAL1:GOTO 640
  126. 700  LOCATE 17,72:PRINT"         ";:LOCATE 17,72:PRINT USING ZX$;VAL(NUM$);:RETURN
  127. 710  M$="":TOTAL1= TOTAL1- VAL(NUMB$):GOTO 640
  128. 720  M$="1":TOTAL1= VAL(NUMB$):GOTO 640
  129. 730  IF M$="1" THEN GOTO 740 ELSE IF M$="2" THEN GOTO 760 ELSE LOCATE 17,72:PRINT"         ";:LOCATE 17,72:PRINT USING ZX$;TOTAL1;:GOTO 640
  130. 740  M$="":TOTAL1=VAL(NUMB$)*TOTAL1:LOCATE 17,72:PRINT"         ";:LOCATE 17,72:PRINT USING ZX$;TOTAL1;:GOTO 640
  131. 750  M$="2":TOTAL1=VAL(NUMB$):GOTO 640
  132. 760  M$="":TOTAL1=TOTAL1/VAL(NUMB$):LOCATE 17,72:PRINT"         ";:LOCATE 17,72:PRINT USING ZX$;TOTAL1;:GOTO 640
  133. 800  '
  134. 801  '****************  Exit Program   *****************************************
  135. 802  LP$=INKEY$:CLS:LOCATE 4,23:COLOR 0,7:PRINT" **** E X I T  P R O G R A M **** ":COLOR 7,0:LOCATE 10,28:PRINT"(B) ==== Exit to BASICA":LOCATE 11,28:PRINT"(D) ==== Exit to DOS":LOCATE 15,28:COLOR 31,0:PRINT"F1 to ABORT EXIT":COLOR 7,0:GOSUB 96
  136. 805  GOSUB 90:IF X$="d" OR X$="D" THEN SOUND 100,30:GOTO 807:ELSE IF X$="b" OR X$="B" THEN KEY 1,"LIST ":KEY 2,"RUN"+CHR$(13):LOCATE ,,,13,13:CLS:KEY ON:ON ERROR GOTO 0:DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 223:END
  137. 806  SOUND 100,5:GOTO 805
  138. 807  LOCATE 10,28:PRINT SPACE$(30):LOCATE 11,25:COLOR 15,0:PRINT"This function puts you into DOS.";:LOCATE 13,21:PRINT"!! ARE YOU SURE YOU WANT TO DO THIS !!";:GOSUB 90:IF X$="y" OR X$="Y" THEN COLOR 7,0:CLS:SYSTEM:DEF SEG=&H40:POKE &H17,PEEK(&H17) AND 22
  139. 808  IF X$="n" OR X$="N" THEN GOTO 100 ELSE SOUND 100,5:GOTO 807
  140. 809  '*****************************    MAIN  FORCAST  DISPLAY     ***************
  141. 810  CLS:COLOR 0,7:LOCATE 1,4:PRINT" FIXED EXPENSES ":LOCATE 1,54:PRINT" NON FIXED ":LOCATE 3,1:PRINT"CODE":LOCATE 3,10:PRINT" TYPE ":LOCATE 3,23:PRINT" AMOUNT ":LOCATE 3,40:PRINT"CODE":LOCATE 3,50:PRINT" TYPE ":LOCATE 3,63:PRINT" AMOUNT ":COLOR 7,0
  142. 820  LOCATE 1,34:COLOR 0,7:PRINT" ";DAT$;" ";
  143. 828  '
  144. 829  '*********                         PRINTS  FIXED EXPENSE       ************
  145. 830  TOTALOUT=0:TOTALIN=0:COLOR 7,0:LOCATE 4,1:FOR I=0 TO 18:READ A$:PRINT A$;:PRINT" ";:PRINT USING "#####.##";A(I):NEXT
  146. 838  '
  147. 839  '*********                         PRINTS  NON FIXED EXPENSE   ************
  148. 840  FOR L=4 TO 10:LOCATE L,40:READ A$:PRINT A$;:PRINT" ";:PRINT USING "#####.##";A(L+15);:NEXT:LOCATE 12,45:COLOR 0,7:PRINT" INCOME ":COLOR 7,0
  149. 848  '
  150. 849  '*********                         PRINTS  INCOME              ************
  151. 850  FOR L= 13 TO 16:LOCATE L,40:READ A$:PRINT A$;:PRINT" ";:PRINT USING "#####.##";A(L+13);:NEXT:RESTORE:GOSUB 910
  152. 855  '
  153. 856  '*********                    INPUT ON MAIN BUDGET DISPLAY     ************
  154. 858  '
  155. 859  '
  156. 860  LOCATE 24,1:PRINT SPACE$(75);:LOCATE 14,71:PRINT SPACE$(10);:LOCATE 15,71:PRINT SPACE$(9);:LOCATE 17,71:PRINT SPACE$(10);
  157. 862  LOCATE 23,13,0:COLOR 0,7:PRINT" ENTER CODE # OF ITEM TO EDIT ( F1-Menu (C)al (S)ave ) ";:LOCATE 24,35,0:COLOR 7,0:PRINT"          ";:LOCATE 24,35,0:GOSUB 96:INPUT;X$:IF X$="X" THEN GOTO 100 ELSE IF X$ = "C" OR X$="c" THEN GOTO 630
  158. 870  IF X$="S" OR X$="s" THEN FROM=1:GOTO 400:ELSE X=VAL(X$)
  159. 880  IF X < 0 OR X > 29 THEN SOUND 100,5:GOTO 860
  160. 883  '
  161. 884  '***********************     after code entry    ************
  162. 885  READ TEMP$:V=VAL(MID$(TEMP$,2,2)):IF V<> X THEN GOTO 885 ELSE LOCATE 24,13:COLOR 15,0:PRINT TEMP$;:RESTORE
  163. 890  LOCATE 23,13,0:COLOR 31,0:PRINT"                ENTER AMOUNT   ";:LOCATE 23,53:PRINT"                         ";:LOCATE 24,34,0:COLOR 15,0:PRINT"         ";:LOCATE 24,35,0:INPUT;" ",Z$
  164. 898  '
  165. 899  '*********************        after amount entry       *******************
  166. 900  IF Z$="X" THEN GOTO 100 ELSE A(X)=VAL(Z$):LOCATE 23,15:PRINT"               Stand By Please                        ";:LOCATE 24,13:PRINT"     Updating amount for ";TEMP$;"  ";:PRINT USING ZX$;VAL(Z$);:PRINT"   ";:GOTO 830
  167. 908  '
  168. 909  '********************           CALCULATE    BUDGET    *******************
  169. 910  COLOR 7,0:FOR I = 0 TO 25:TOTALOUT=TOTALOUT+A(I):NEXT:FOR I=26 TO 29:TOTALIN=A(I)+TOTALIN:NEXT:LOCATE 19,40:PRINT" TOTAL INCOME =====>";:PRINT USING "##,###.##";TOTALIN:LOCATE 20,40:PRINT" TOTAL EXPENSE ====>";:PRINT USING "##,###.##";TOTALOUT
  170. 920  BUDGET=TOTALIN-TOTALOUT
  171. 930  LOCATE 22,40:IF BUDGET > 0 OR BUDGET =0 THEN PRINT" BALANCE ==========>";:PRINT USING "##,###.##";BUDGET:RETURN
  172. 940  COLOR 31,0:LOCATE 22,40:PRINT" NEGATIVE BALANCE==>";:PRINT USING "##,###.##";BUDGET:COLOR 7,0
  173. 950  RETURN
  174. 980  SOUND 100,5:GOTO 970
  175. 999  '
  176. 1000  '********************     SEE FILES ON DISK   ****************************
  177. 1002  COLOR 7,0:CLS:COLOR 0,7:LOCATE 2,26:PRINT" **** DISPLAY FILES **** ";:COLOR 7,0:LOCATE 1,28:PRINT DATE$;"  ";TIME$;
  178. 1004  LOCATE 25,20:PRINT"Enter drive (A) or (B)  or  F1 for MENU";:GOSUB 96:GOSUB 90:LOCATE 4,34:COLOR 0,7:PRINT"Drive ";X$;:COLOR 7,0
  179. 1005  LOCATE 22,25:COLOR 31,0:PRINT"Stand by Please.";:COLOR 7,0:FOR I=6 TO 22:LOCATE I,1:PRINT SPACE$(79);:NEXT
  180. 1006  LOCATE 6,1:IF X$="a" OR X$="A" THEN FILES ELSE IF X$="b" OR X$="B" THEN FILES"b:*.*" ELSE SOUND 100,5:GOTO 1004
  181. 1007  GOTO 1004
  182. 1998  '
  183. 1999  '***************************    loan  program   *************************
  184. 2000  COLOR 7,0:CLS:LOCATE 15,1:PRINT" You will have to insert your own program here. I used the one from the DOS      diskette. I could not send it in this program as that is against the law.
  185. 2010  LOCATE 17,1:PRINT"whatever you use make sure you return to line 100.";
  186. 2020  LOCATE 25,20:COLOR 0,7:PRINT" Hit any key to continue ";:GOSUB 96:GOSUB 90:GOTO 100
  187. 4000  '
  188. 4001  '***********************************     display/print instructions *******
  189. 4005  LINES=0:CLS:LOCATE 25,25:COLOR 0,7:PRINT" **** INSTRUCTIONS **** ";:LOCATE 25,64:COLOR 31,0:PRINT"F1 to ABORT";
  190. 4007  LOCATE 10,12:COLOR 7,0:PRINT"Do you want output to (D)isplay or (P)rinter ";:GOSUB 96:GOSUB 90:IF X$="d" OR X$="D" THEN OUTPUT$="scrn:" ELSE IF X$="p" OR X$="P" THEN OUTPUT$="lpt1:" ELSE SOUND 100,5:GOTO 4007
  191. 4110  LOCATE 10,12:COLOR 7,0:PRINT SPACE$(50);:IF OUTPUT$="lpt1:" THEN LOCATE 8,19:COLOR 7,0:PRINT"As the computer on startrek would say";:COLOR 31,0:LOCATE 15,28:PRINT" **** W O R K I N G **** ";:COLOR 7,0:LOCATE 25,63:PRINT SPACE$(14);
  192. 4113  LOCATE 24,1:ON ERROR GOTO 280
  193. 4115  OPEN DR$+"BUDGET.DOC" FOR INPUT AS #1
  194. 4120  OPEN OUTPUT$ FOR OUTPUT AS #2
  195. 4125  IF EOF(1) GOTO 5000
  196. 4130  INPUT #1,H$
  197. 4135  PRINT #2,H$
  198. 4136  LINES=LINES+1:IF OUTPUT$="lpt1:" THEN GOTO 4125 ELSE IF LINES=16 THEN GOSUB 5010
  199. 4140  GOTO 4125
  200. 5000  CLOSE:LOCATE 25,1:COLOR 31,0:PRINT"End, Enter to continue";:COLOR 7,0:GOSUB 90:GOTO 100
  201. 5010  LINES=0:LOCATE 25,1:COLOR 31,0:PRINT"Hit enter to continue";:COLOR 7,0:GOSUB 90:LOCATE 25,1:PRINT SPACE$(22);:LOCATE 24,1:RETURN
  202. 10000  '******************       DATA  STATMENTS   *****************************
  203. 10005  DATA " 00 MORTGAGE ======>"," 01 VISA ==========>"," 02 FOOD ==========>
  204. 10010  DATA " 03 POWER =========>"," 04 WATER & SEWER =>"," 05 CAR INSURANCE =>
  205. 10015  DATA " 06 CABLE TV ======>"," 07 T.O.M. INS ====>"," 08 TELEPHONE =====>
  206. 10020  DATA " 09 CAR PAYMENT ===>"," 10 H.F.C (VAN) ===>"," 11 GASOLINE ======>
  207. 10030  DATA " 12 RAVENSCHROFT ==>"," 13 NEWSPAPER =====>"," 14 SPECIAL =======>
  208. 10032  DATA " 15 CRAZY MONEY ===>"," 16 ===============>"," 17 ===============>
  209. 10033  DATA " 18 ===============>
  210. 10035  DATA " 19 ===============>"," 20 EASTERN WINGS =>"," 21 HOUSE MISC ====>
  211. 10040  DATA " 22 SPEEDY ========>"," 23 MISC ==========>"," 24 SEARS =========>
  212. 10045  DATA " 25 J/C PENNEYS ===>"," 26 IBM INCOME ====>"," 27 EXTRA IBM IN ==>
  213. 10050  DATA " 28 MISC INCOME ===>"," 29 ===============>
  214.