home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / fos.arc / FOS.BAS (.txt) next >
Encoding:
GW-BASIC  |  1984-12-27  |  24.0 KB  |  699 lines

  1. 10  ' Financial Operating System
  2. 15  '
  3. 20  ' Daune J. Brummel
  4. 30  ' Rt. 2   Brooklyn, Wis. 52521.   Rev. 01/13/82   VER. 1.2
  5. 31  '
  6. 32  ' Enter the disk drive designation on Line 65 to specify on which drive
  7. 33  '  you want FOS and its data files to reside on.  You must also change
  8. 34  '  line 25 of FOS2 program.  Both programs set up for drive A initially.
  9. 35  '
  10. 40  DEF SEG=0:A=PEEK(&H417):POKE &H417,(A AND &H9F) OR &H60:DEF SEG
  11. 50  KEY OFF:WIDTH 80:SCREEN 0,0,0
  12. 60  CLEAR
  13. 64  '
  14. 65  DRIVE$="A"
  15. 66  '
  16. 70  ON KEY(1) GOSUB 5400:KEY(1) ON:ON KEY(9) GOSUB 5440:ON KEY(10) GOSUB 5450
  17. 80  ON KEY(2) GOSUB 5410:KEY(2) ON:ON ERROR GOTO 5370
  18. 90  COLOR 7,0:K1%=0:GOSUB 6570
  19. 100  PRINT CHR$(201)+STRING$(78,205)+CHR$(187);:PRINT CHR$(186);:PRINT TAB(14);
  20. 110  PRINT"F I N A N C I A L    O P E R A T I N G    S Y S T E M";
  21. 120  PRINT TAB(80) CHR$(186);:PRINT CHR$(200)+STRING$(78,205)+CHR$(188);
  22. 130  PRINT:PRINT
  23. 140  PRINT"     1 - Display totals for all accounts.":PRINT
  24. 150  PRINT"     2 - Checking Account # 1. (1983)
  25. 160  PRINT"     3 - Checking Account # 2. (Bank of Mad. Partnership Acct.)
  26. 170  PRINT"     4 - Checking Account # 3. (1982)":PRINT
  27. 180  PRINT"     5 - Savings Account # 1.
  28. 190  PRINT"     6 - Savings Account # 2.":PRINT
  29. 200  PRINT"     7 - Special Accounts.":PRINT
  30. 210  PRINT"     8 - Cash Expenditures.":PRINT
  31. 220  PRINT"     9 - File Maintenance and Data Analysis."
  32. 230  PRINT
  33. 240  COLOR 18:PRINT TAB(25)"   Enter function desired:  ",:COLOR 7:SOUND 800,0.5
  34. 250  KB$=INKEY$:IF KB$="" THEN 250
  35. 260  IF K1%=1 THEN 5410
  36. 270  IF KB$="1" THEN 4890
  37. 280  IF KB$="2" THEN A%=1:GOSUB 5980:GOSUB 6530:GOTO 1020
  38. 290  IF KB$="3" THEN A%=2:GOSUB 5990:GOSUB 6540:GOTO 1020
  39. 300  IF KB$="4" THEN A%=3:GOSUB 6000:GOSUB 6550:GOTO 1020
  40. 310  IF KB$="5" THEN A%=1:GOSUB 5710:GOTO 380
  41. 320  IF KB$="6" THEN A%=2:GOSUB 5720:GOTO 380
  42. 330  IF KB$="7" THEN GOSUB 5610:GOTO 3270
  43. 340  IF KB$="8" THEN GOSUB 5970:GOTO 4030
  44. 350  IF KB$="9" THEN CLS:LOCATE 10,20:GOTO 370
  45. 360  BEEP : GOTO 60
  46. 370  PRINT"Loading FOS Program section 2...":CHAIN DRIVE$+":FOS2"
  47. 380  GET#1,1:IF A$="E" OR A$="B" OR A$="A" THEN 410 ELSE CLS:BEEP
  48. 390  PRINT:PRINT"This Savings account must be INITIALIZED before it can be used.
  49. 400  CLOSE:GOSUB 6630:GOTO 60
  50. 410  GOSUB 6570:K1%=0:IF A%=1 THEN GOSUB 5810
  51. 420  IF A%=2 THEN GOSUB 5830
  52. 430  PRINT:PRINT
  53. 440  PRINT"     1 - Display transactions and balance."
  54. 450  PRINT:PRINT"     2 - Enter a Deposit or Withdrawal."
  55. 460  PRINT:PRINT"     3 - Delete the last entry.
  56. 470  PRINT:PRINT"     4 - Add an interest payment to the account."
  57. 480  PRINT:PRINT:PRINT
  58. 490  COLOR 18:PRINT TAB(28)"Enter function desired:   ",:COLOR 7
  59. 500  SOUND 1200,0.5
  60. 510  KB$=INKEY$:IF KB$="" THEN 510
  61. 520  IF K1%=1 THEN CLOSE:GOTO 60
  62. 530  IF KB$="1" THEN 780
  63. 540  IF KB$="2" THEN 580
  64. 550  IF KB$="3" THEN 830
  65. 560  IF KB$="4" THEN 950
  66. 570  BEEP:GOTO 510
  67. 580  A#=0:CLS:GOSUB 5460:PRINT:IF K1%=1 THEN 410
  68. 590  PRINT"  Is this a Deposit (D), or a Withdrawal (W)  ";
  69. 600  INPUT KB$:IF K1%=1 THEN 410
  70. 610  IF KB$="W" OR KB$="w" THEN B%=1:GOTO 640
  71. 620  IF KB$="D" OR KB$="d" THEN B%=2:GOTO 640
  72. 630  BEEP:GOTO 590
  73. 640  PRINT:INPUT"  Enter amount:  ",KB#
  74. 650  IF K1%=1 THEN 410
  75. 660  PRINT:PRINT"  Enter up to 36 characters for a description."
  76. 670  PRINT "  ------------------------------------"
  77. 680  INPUT"  ",KB$:IF K1%=1 THEN 410
  78. 690  IF LEN(KB$)<37 THEN 710
  79. 700  BEEP:GOTO 680
  80. 710  GOSUB 5740
  81. 720  LSET A$="B":LSET B$=FDATE$:LSET C$=MKD$(KB#):LSET G$=KB$
  82. 730  IF B%=2 THEN 750
  83. 740  LSET D$="W":A#=A#-KB#:LSET E$=MKD$(A#):GOTO 760
  84. 750  LSET D$="D":A#=A#+KB#:LSET E$=MKD$(A#)
  85. 760  PUT #1,R%
  86. 770  GOTO 410
  87. 780  GOSUB 6570:IF A%=1 THEN GOSUB 5850 ELSE GOSUB 5860
  88. 790  GOSUB 5670:R%=0
  89. 800  R%=R%+1:GET#1,R%
  90. 810  IF A$="A" THEN GOSUB 6630:GOTO 410
  91. 820  GOSUB 5870:GOTO 800
  92. 830  GOSUB 6570
  93. 840  PRINT"To DELETE the last entry ... enter the word 'PROCEED' :";
  94. 850  INPUT"",KB$:IF KB$="PROCEED" OR KB$="proceed" THEN 880
  95. 860  IF K1%=1 THEN 410
  96. 870  BEEP:GOTO 830
  97. 880  R%=1:GET#1,20:IF A$="A" THEN 900
  98. 890  R%=20:GOTO 940
  99. 900  IF R%=20 THEN 930
  100. 910  GET#1,R%:IF A$="A" THEN 930
  101. 920  R%=R%+1:GOTO 900
  102. 930  IF R%=1 THEN 410 ELSE R%=R%-1
  103. 940  LSET A$="A":LSET E$=MKD$(0):PUT#1,R%:GOTO 410
  104. 950  GOSUB 6570:K1%=0
  105. 960  PRINT"  Enter amount of interest to be credited to this SAVINGS ACCOUNT: ";
  106. 970  INPUT"",KB#:IF K1%=1 THEN 410
  107. 980  GOSUB 5460:IF K1%=1 THEN 410
  108. 990  GOSUB 5740:LSET A$="B":LSET B$=FDATE$:LSET D$="D":LSET C$=MKD$(KB#)
  109. 1000  A#=A#+KB#:LSET E$=MKD$(A#):LSET G$="Interest transaction only."
  110. 1010  PUT#1,R%:GOTO 410
  111. 1020  GET#1,1:IF A$="E" OR A$="B" OR A$="A" THEN 1050 ELSE CLS:BEEP
  112. 1030  PRINT"This Checking account must be INITIALIZED before it can be used.
  113. 1040  CLOSE:GOSUB 6630:GOTO 60
  114. 1050  GOSUB 6570:K1%=0:IF A%=1 THEN GOSUB 5910:GOTO 1080
  115. 1060  IF A%=2 THEN GOSUB 5930:GOTO 1080
  116. 1070  GOSUB 5950
  117. 1080  PRINT:PRINT
  118. 1090  PRINT:PRINT"  1 - Display outstanding checks and checkbook balance.":PRINT
  119. 1100  PRINT"  2 - Print outstanding checks and checkbook balance on printer.
  120. 1110  PRINT:PRINT"  3 - Credit entries.
  121. 1120  PRINT:PRINT"  4 - Debit entries.
  122. 1130  PRINT:PRINT"  5 - Balance checkbook.
  123. 1140  PRINT:PRINT"  6 - Delete an entry (outstanding check file).
  124. 1150  PRINT:PRINT"  7 - Display canceled checks.
  125. 1160  PRINT:PRINT"  8 - Print canceled check file on printer.":PRINT
  126. 1170  COLOR 18:PRINT TAB(25)"Enter function desired:  ";:COLOR 7:SOUND 1200,0.5
  127. 1180  KB$=INKEY$:IF KB$="" THEN 1180
  128. 1190  IF K1%=1 THEN CLOSE:GOTO 60
  129. 1200  IF KB$="1" THEN 1770
  130. 1210  IF KB$="2" THEN 1580
  131. 1220  IF KB$="8" THEN 1290
  132. 1230  IF KB$="3" THEN 1930
  133. 1240  IF KB$="4" THEN R%=1:GOTO 2050
  134. 1250  IF KB$="5" THEN 2840
  135. 1260  IF KB$="6" THEN 2410
  136. 1270  IF KB$="7" THEN 2590
  137. 1280  BEEP:GOTO 1180
  138. 1290  GET#2,1:IF H$="E" OR H$="B" OR H$="A" THEN 1300 ELSE 2850
  139. 1300  IF A%=1 THEN KB1$="Checking Account #1, Canceled Cks.":GOTO 1330
  140. 1310  IF A%=2 THEN KB1$="Checking Account #2, Canceled Cks.":GOTO 1330
  141. 1320  KB1$="Checking Account #3, Canceled Cks."
  142. 1330  KEY(9) ON:KEY(10) ON:R%=0
  143. 1340  GOSUB 6570:GOSUB 6670:IF K1%=1 THEN 1050
  144. 1350  GOSUB 6780:IF K1%=1 THEN 1050
  145. 1360  B%=0:E%=1:PRINT:PRINT"  Insure that the printer is ready."
  146. 1370  SOUND 500,1:GOSUB 6630:IF K1%=1 THEN 1050
  147. 1380  CLS:PRINT:PRINT"  To temporarily stop the printer, press the F9 key.
  148. 1390  PRINT:PRINT"  To STOP the printer and return to MENU, press the 'F1' key.
  149. 1400  GOSUB 6600
  150. 1410  R%=R%+1:GET#2,R%:IF H$="E" THEN 1540
  151. 1420  IF H$="A" THEN 1410
  152. 1430  IF K1%=1 THEN 1050
  153. 1440  IF K9%=1 THEN LOCATE 24,5:PRINT"Printer stopped by F9 key, to continue press F10 key.";:GOTO 1430
  154. 1450  Y3$=RIGHT$(I$,2):D3$=LEFT$(I$,2)+MID$(I$,4,2)
  155. 1460  IF Y1$=Y2$ THEN 1500
  156. 1470  IF Y3$=Y1$ THEN 1560
  157. 1480  IF Y3$=Y2$ THEN 1570
  158. 1490  IF Y3$>Y1$ AND Y3$<Y2$ THEN 1520 ELSE 1410
  159. 1500  IF Y3$<>Y2$ THEN 1410
  160. 1510  IF D3$<D1$ OR D3$>D2$ THEN 1410
  161. 1520  GOSUB 6210:B%=B%+1:IF B%< 58 THEN 1410
  162. 1530  B%=0:E%=E%+1:LPRINT CHR$(140):GOTO 1400
  163. 1540  KEY(9) OFF:KEY(10) OFF:LPRINT"* * END OF CANCELED CHECK FILE * *"
  164. 1550  LPRINT CHR$(140):GOTO 1050
  165. 1560  IF D3$=>D1$ THEN 1520 ELSE 1410
  166. 1570  IF D3$>D2$ THEN 1410 ELSE 1520
  167. 1580  IF A%=1 THEN KB1$="Checking Account #1, Outstanding Cks.":GOTO 1610
  168. 1590  IF A%=2 THEN KB1$="Checking Account #2, Outstanding Cks.":GOTO 1610
  169. 1600  KB1$="Checking Account #3, Outstanding Cks."
  170. 1610  KEY(9) ON:KEY(10) ON:R%=1
  171. 1620  K1%=0:GOSUB 6570:B%=0:E%=1:PRINT"  Insure that the printer is ready.
  172. 1630  SOUND 500,1:GOSUB 6630:IF K1%=1 THEN 1050
  173. 1640  CLS:PRINT:PRINT"  To temporarily stop the printer, press the F9 key.
  174. 1650  PRINT:PRINT"  To stop the printer and return to MENU, press the F1 key.
  175. 1660  GOSUB 6580:GET#1,R%:GOSUB 6150:B#=A#
  176. 1670  R%=R%+1:GET#1,R%:IF A$="A" THEN 1670
  177. 1680  IF A$="E" THEN 1740
  178. 1690  IF K1%=1 THEN 1050
  179. 1700  IF K9%=1 THEN LOCATE 24,5:PRINT"Printer stopped by F9 key... To continue, press F10 key.";:GOTO 1690
  180. 1710  GOSUB 6150:B%=B%+1:IF C%=2 THEN B#=B#+A# ELSE B#=B#-A#
  181. 1720  IF B%<57 THEN 1670
  182. 1730  B%=0:E%=E%+1:LPRINT CHR$(140):GOTO 1660
  183. 1740  KEY(9) OFF:KEY(10) OFF
  184. 1750  LPRINT "  Current Checking Account Balance is: ";
  185. 1760  LPRINT USING"$$#######,.##";B#:LPRINT CHR$(140):GOTO 1050
  186. 1770  GOSUB 6570:IF A%=1 THEN GOSUB 6290:GOTO 1800
  187. 1780  IF A%=2 THEN GOSUB 6300:GOTO 1800
  188. 1790  GOSUB 6310
  189. 1800  GOSUB 6040:R%=1:B%=0:B#=0
  190. 1810  GET#1,1:GOSUB 6120:B#=CVD(C$)
  191. 1820  R%=R%+1:GET#1,R%
  192. 1830  IF A$="E" THEN 1910
  193. 1840  IF A$="A" THEN 1820
  194. 1850  GOSUB 6120:IF C%=2 THEN B#=B#+A# ELSE B#=B#-A#
  195. 1860  B%=B%+1:IF B%<19 THEN 1820
  196. 1870  GOSUB 6630:IF K1%=1 THEN 1050
  197. 1880  B%=0:GOSUB 6570:IF A%=1 THEN GOSUB 6290:GOTO 1900
  198. 1890  IF A%=2 THEN GOSUB 6300 ELSE GOSUB 6310
  199. 1900  GOSUB 6040:GOTO 1820
  200. 1910  PRINT:PRINT"  Current Checking account balance is: ";
  201. 1920  PRINT USING"$$#######,.##";B#:GOSUB 6630:CLS:GOTO 1050
  202. 1930  GOSUB 6570:PRINT"  This function is for making a ";:COLOR 26
  203. 1940  PRINT"DEPOSIT";:COLOR 7:PRINT" into a checking account.
  204. 1950  PRINT:IF K1%=1 THEN 1050
  205. 1960  R%=1:GOSUB 5460:IF K1%=1 THEN 1050
  206. 1970  PRINT:INPUT"  Enter amount of deposit:  ",KB#:IF K1%=1 THEN 1050
  207. 1980  R%=R%+1:GET#1,R%:IF A$="E" THEN 2040
  208. 1990  IF A$<>"A" THEN 1980
  209. 2000  PRINT:PRINT"  This deposit has been assigned ITEM #:";R%:PRINT
  210. 2010  LSET A$="B":LSET B$=FDATE$:LSET C$=MKD$(KB#):LSET D$=MKI$(R%)
  211. 2020  LSET E$=MKI$(2):LSET F$="N":LSET G$="Deposit":PUT#1,R%
  212. 2030  PRINT:GOSUB 6630:GOTO 1050
  213. 2040  BEEP:PRINT:COLOR 30:PRINT"Checking account file is full.  This deposit has NOT been added to the file.":COLOR 7:GOTO 2030
  214. 2050  GOSUB 6570:GOSUB 6330:PRINT
  215. 2060  R%=R%+1:GET#1,R%:IF A$="E" THEN 2390
  216. 2070  IF A$<>"A" THEN 2060 ELSE SOUND 1500,0.1
  217. 2080  IF MC1%=0 THEN 2150 ELSE SOUND 700,1
  218. 2090  PRINT"Continuation of check #"KB2%"           Amount entered so far:";
  219. 2100  PRINT USING"$$######,.##";KB2#
  220. 2110  PRINT"  Continue entering multible expenses against this check ? (Y or N) ";
  221. 2120  KB$=INKEY$:IF KB$="" THEN 2120
  222. 2130  IF KB$="n" OR KB$="N" THEN K1%=0:MC1%=0:GOTO 2050
  223. 2140  IF KB$="Y" OR KB$="y" THEN 2210 ELSE BEEP:GOTO 2110
  224. 2150  PRINT"Enter ITEM No.[+], or just ENTER to have me assign an item No.: ";
  225. 2160  X%=POS(0):Y%=CSRLIN:INPUT"",KB$:IF K1%=1 THEN 1050
  226. 2170  IF LEN(KB$)=0 THEN LSET D$=MKI$(R%):LOCATE Y%,X%:PRINT R%:GOTO 2220
  227. 2180  IF VAL(KB$)<200 OR VAL(KB$)>32767 THEN BEEP:GOTO 2150
  228. 2190  KB2%=VAL(KB$)
  229. 2200  IF RIGHT$(KB$,1)="+" THEN MC1%=1:KB2#=0
  230. 2210  LSET D$=MKI$(KB2%)
  231. 2220  IF MC1%=1 THEN LSET A$="M" ELSE LSET A$="B"
  232. 2230  GOSUB 5470:IF K1%=1 THEN 1050
  233. 2240  LSET B$=FDATE$:PRINT TAB(41)"_____________________________________"
  234. 2250  INPUT"  Enter up to 37 Char. for description: ",KB$:IF K1%=1 THEN 1050
  235. 2260  IF LEN(KB$)<38 THEN 2280
  236. 2270  BEEP:GOTO 2250
  237. 2280  LSET G$=KB$:INPUT"  Enter AMOUNT: ",KB#:KB2#=KB2#+KB#:IF K1%=1 THEN 1050
  238. 2290  LSET C$=MKD$(KB#):INPUT"  Enter EXPENSE CODE: ",KB%:IF K1%=1 THEN 1050
  239. 2300  IF KB%>9 AND KB%<46 THEN 2320
  240. 2310  BEEP:GOTO 2290
  241. 2320  LSET E$=MKI$(KB%):PRINT"  Enter a 'Y' if this item could be a tax ";
  242. 2330  INPUT" deduction: ",KB$:IF K1%=1 THEN 1050
  243. 2340  IF MC1%=1 THEN 2370
  244. 2350  IF KB$="y" OR KB$="Y" THEN LSET F$="Y" ELSE LSET F$="N"
  245. 2360  PUT#1,R%:GOTO 2050
  246. 2370  IF KB$="y" OR KB$="Y" THEN LSET F$="y" ELSE LSET F$="n"
  247. 2380  GOTO 2360
  248. 2390  BEEP:PRINT:COLOR 30:PRINT"This checking account file is full.
  249. 2400  COLOR 7:PRINT:GOSUB 6630: GOTO 1050
  250. 2410  GOSUB 6570:PRINT:PRINT:F1%=0:F2%=0
  251. 2420  INPUT"  Enter ITEM No. of the item to be DELETED from the file: ",KB%
  252. 2430  IF K1%=1 THEN 1050
  253. 2440  IF KB%<2 THEN BEEP:GOTO 2420
  254. 2450  PRINT:INPUT"  To delete this item, enter the word 'PROCEED': ",KB$
  255. 2460  IF K1%=1 THEN 1050
  256. 2470  IF KB$="proceed" OR KB$="PROCEED" THEN 2480 ELSE BEEP:GOTO 2450
  257. 2480  R%=1:IF KB%>199 THEN 2510
  258. 2490  GET#1,KB%:IF A$="B" AND CVI(D$)=KB% THEN 2500 ELSE 2570
  259. 2500  LSET A$="A":PUT#1,KB%:GOTO 1050
  260. 2510  R%=R%+1:GET#1,R%:IF A$="E" THEN 2560
  261. 2520  IF A$="A" THEN 2510
  262. 2530  IF CVI(D$)<>KB% THEN 2510
  263. 2540  IF A$="M" THEN F1%=1
  264. 2550  LSET A$="A":PUT#1,R%:F2%=1:IF F1%=1 THEN 2510 ESLE 1040
  265. 2560  IF F2%=1 THEN 1050
  266. 2570  BEEP:PRINT:COLOR 30:PRINT"  ITEM NOT ON FILE...":COLOR 7:PRINT:GOSUB 6630
  267. 2580  GOTO 1050
  268. 2590  GET#2,1:IF H$="E" OR H$="B" OR H$="A" THEN 2600 ELSE 2850
  269. 2600  GOSUB 6570:GOSUB 6670:IF K1%=1 THEN 1050
  270. 2610  GOSUB 6780:IF K1%=1 THEN 1050 ELSE GOSUB 6570
  271. 2620  R%=0:B%=0:IF A%=1 THEN GOSUB 6240:GOTO 2650
  272. 2630  IF A%=2 THEN GOSUB 6250:GOTO 2650
  273. 2640  GOSUB 6260
  274. 2650  GOSUB 6040
  275. 2660  R%=R%+1:GET#2,R%:IF H$="E" THEN 2810
  276. 2670  IF H$="A" THEN 2660
  277. 2680  IF K1%=1 THEN 1050
  278. 2690  Y3$=RIGHT$(I$,2):D3$=LEFT$(I$,2)+MID$(I$,4,2)
  279. 2700  IF Y1$=Y2$ THEN 2740
  280. 2710  IF Y3$=Y1$ THEN 2820
  281. 2720  IF Y3$=Y2$ THEN 2830
  282. 2730  IF Y3$>Y1$ AND Y3$<Y2$ THEN 2760 ELSE 2660
  283. 2740  IF Y3$<>Y2$ THEN 2660
  284. 2750  IF D3$<D1$ OR D3$>D2$ THEN 2660
  285. 2760  GOSUB 6180
  286. 2770  B%=B%+1:IF B%<20 THEN 2660
  287. 2780  B%=0:GOSUB 6630:IF K1%=1 THEN 1050
  288. 2790  GOSUB 6570:IF A%=1 THEN GOSUB 6240:GOTO 2650
  289. 2800  IF A%=2 THEN GOSUB 6250:GOTO 2650
  290. 2805  IF A%=3 THEN GOSUB 6260:GOTO 2650
  291. 2810  PRINT"* * END OF CANCELED CHECK FILE * *":GOSUB 6630:GOTO 1050
  292. 2820  IF D3$=>D1$ THEN 2760 ELSE 2660
  293. 2830  IF D3$>D2$ THEN 2660 ELSE 2760
  294. 2840  GET#2,1:IF H$="E" OR H$="B" OR H$="A" THEN 2870
  295. 2850  CLS:BEEP:PRINT"Canceled checks file must be INITIALIZED before it can be used.
  296. 2860  GOSUB 6630:GOTO 1050
  297. 2870  CLS:R%=0:PRINT"Reading cancelled check file... please stand by.
  298. 2880  R%=R%+1:GET#2,R%:IF H$="E" THEN 3170
  299. 2890  IF H$<>"A" THEN 2880
  300. 2900  GOSUB 6570:GET#1,1:A#=CVD(C$)
  301. 2910  MC1%=0:SOUND 300,0.5:INPUT"  Enter ITEM No... or a 'zero' if last item: ",KB%
  302. 2920  IF K1%=1 THEN 3120
  303. 2930  IF KB%=1 THEN BEEP:GOTO 2910
  304. 2940  IF KB%=0 THEN 3120
  305. 2950  IF KB%>199 THEN 3210
  306. 2960  GET#1,KB%:IF A$="B" AND CVI(D$)=KB% THEN 2970 ELSE 3200
  307. 2970  LSET A$="A":PUT#1,KB%
  308. 2980  IF CVI(E$)=2 THEN A#=A#+CVD(C$):GOTO 2910
  309. 2990  LSET H$="B":LSET I$=B$:LSET J$=C$:LSET K$=D$
  310. 3000  LSET L$=E$:LSET M$=F$:LSET N$=G$:PUT#2,R%
  311. 3010  A#=A#-CVD(C$)
  312. 3020  R%=R%+1:GET#2,R%:IF H$="E" THEN 3040
  313. 3030  IF MC1%=1 THEN 3220 ELSE 2910
  314. 3040  IF MC1%=1 THEN 3070
  315. 3050  PRINT:COLOR 30:PRINT"Cancelled check file is now full.":COLOR 7
  316. 3060  BEEP:BEEP:PRINT:GOTO 3120
  317. 3070  PRINT:COLOR 30:PRINT"Canceled check file is now full...
  318. 3080  PRINT"Some entries for item#"KB%"may not have been processed.
  319. 3090  PRINT"Check current check files to be sure all entries have been moved
  320. 3100  PRINT"to the canceled check file.  If not, re-enter the item after
  321. 3110  PRINT"enlarging the canceled check file.":COLOR 7:GOTO 3060
  322. 3120  PRINT:PRINT"  If balance shown on bank statement is ";
  323. 3130  PRINT USING"$$######,.##";A#;:PRINT"    then checkbook balanced OK.
  324. 3140  LSET A$="B":GOSUB 6320:LSET B$=FDATE$:LSET C$=MKD$(A#):LSET D$=MKI$(1)
  325. 3150  LSET E$=MKI$(1):LSET F$="N":LSET G$="Previous balance.":PUT#1,1
  326. 3160  PRINT:GOSUB 6630:GOTO 1050
  327. 3170  PRINT:COLOR 30:PRINT"Cancelled check file is now full.":COLOR 7
  328. 3180  BEEP:BEEP:PRINT:GOSUB 6630:GOTO 1050
  329. 3190  IF MC1%=1 THEN 2910
  330. 3200  BEEP:COLOR 26:PRINT"ITEM NOT ON FILE.":COLOR 7:GOTO 2910
  331. 3210  B%=1
  332. 3220  B%=B%+1:GET#1,B%:IF A$="E" THEN 3190
  333. 3230  IF A$="A" THEN 3220
  334. 3240  IF CVI(D$)<>KB% THEN 3220
  335. 3250  IF A$="M" THEN MC1%=1
  336. 3260  LSET A$="A":PUT#1,B%:GOTO 2990
  337. 3270  GET#1,1:IF A$="E" OR A$="B" OR A$="A" THEN 3300 ELSE CLS:BEEP
  338. 3280  PRINT"This Special account must be INITIALIZED before it can be used.
  339. 3290  CLOSE:GOSUB 6630:GOTO 60
  340. 3300  K1%=0:GOSUB 6570:PRINT:PRINT:PRINT TAB(18);:COLOR 1
  341. 3310  PRINT"        S P E C I A L       A C C O U N T S       ":COLOR 7
  342. 3320  PRINT:PRINT:PRINT:PRINT
  343. 3330  PRINT"     1 - Display items."
  344. 3340  PRINT:PRINT"     2 - Change an existing item."
  345. 3350  PRINT:PRINT"     3 - Enter a new item."
  346. 3360  PRINT:PRINT"     4 - Delete an item."
  347. 3370  PRINT:PRINT:PRINT
  348. 3380  PRINT TAB(25)"Enter function desired:  ";:SOUND 1200,0.5
  349. 3390  KB$=INKEY$:IF KB$="" THEN 3390
  350. 3400  IF K1%=1 THEN CLOSE:GOTO 60
  351. 3410  GOSUB 6570:IF KB$="1" THEN 3460
  352. 3420  IF KB$="3" THEN 3570
  353. 3430  IF KB$="4" THEN 3840
  354. 3440  IF KB$="2" THEN 3960
  355. 3450  BEEP:GOTO 3300
  356. 3460  COLOR 18:PRINT"Special accounts.":COLOR 7:GOSUB 5570:R%=0:LCNT%=0:A#=0
  357. 3470  R%=R%+1:GET#1,R%
  358. 3480  IF A$="E" THEN 3550
  359. 3490  IF A$="A" THEN 3470
  360. 3500  GOSUB 5630:IF D$="A" THEN A#=A#+CVD(C$):GOTO 3520
  361. 3510  IF D$="L" THEN A#=A#-CVD(C$)
  362. 3520  LCNT%=LCNT%+1:IF LCNT%<19 THEN 3470
  363. 3530  LCNT%=0:GOSUB 6630:IF K1%=1 THEN 3300
  364. 3540  GOSUB 6570:GOSUB 5570:GOTO 3470
  365. 3550  PRINT:PRINT"  SPECIAL ACCOUNTS  TOTAL VALUE...  ";
  366. 3560  PRINT USING"$$#######,.##";A#:PRINT:GOSUB 6630:GOTO 3300
  367. 3570  K1%=0:PRINT:PRINT"  Reading file...  Please stand-by!":R%=0
  368. 3580  R%=R%+1:GET#1,R%
  369. 3590  IF A$="E" THEN 3820
  370. 3600  IF A$<>"A" THEN 3580
  371. 3610  GOSUB 6570
  372. 3620  GOSUB 5460
  373. 3630  PRINT:IF K1%=1 THEN 3300
  374. 3640  INPUT"  Is item an asset (A), or a liability (L) ?  ",KB$
  375. 3650  IF KB$="A" OR KB$="L" THEN 3710
  376. 3660  IF KB$="a" THEN 3690
  377. 3670  IF KB$="l" THEN 3700
  378. 3680  BEEP:GOTO 3630
  379. 3690  KB$="A":GOTO 3710
  380. 3700  KB$="L"
  381. 3710  LSET D$=KB$
  382. 3720  PRINT:IF K1%=1 THEN 3300
  383. 3730  INPUT"  Dollar value of item:  ",KB#
  384. 3740  LSET C$=MKD$(KB#):PRINT:IF K1%=1 THEN 3300
  385. 3750  INPUT"  Interest rate:         ",KB:LSET E$=MKS$(KB)
  386. 3760  PRINT:PRINT "  Enter up to 40 characters for a description of this item:"
  387. 3770  PRINT:PRINT "  ----------------------------------------"
  388. 3780  IF K1%=1 THEN 3300
  389. 3790  INPUT"  ",KB$:IF LEN(KB$)<41 THEN 3810
  390. 3800  BEEP:GOTO 3760
  391. 3810  LSET A$="B":LSET B$=FDATE$:LSET G$=KB$:PUT#1,R%:GOTO 3300
  392. 3820  PRINT:PRINT:COLOR 30:PRINT"SPECIAL ACCOUNTS FILE IS FULL..."
  393. 3830  COLOR 7:BEEP:GOSUB 6630:GOTO 3300
  394. 3840  PRINT"  This function will delete an item from the SPECIAL ACCOUNTS FILE."
  395. 3850  K1%=0:PRINT:PRINT
  396. 3860  PRINT "  Enter item number to be deleted:  ",:INPUT"",R%
  397. 3870  IF K1%=1 THEN 3300
  398. 3880  IF R%=0 THEN BEEP:GOTO 3860
  399. 3890  PRINT:INPUT"  To delete this item, enter the word 'PROCEED': ",KB$
  400. 3900  IF K1%=1 THEN 3300
  401. 3910  IF KB$="proceed" OR KB$="PROCEED" THEN 3920 ELSE BEEP:GOTO 3890
  402. 3920  GET#1,R%:IF A$<>"B" THEN 3940
  403. 3930  LSET A$="A":PUT#1,R%:GOTO 3300
  404. 3940  PRINT:COLOR 15:PRINT"Item not on file...":COLOR 7:BEEP
  405. 3950  GOSUB 6630:GOTO 3300
  406. 3960  K1%=0:PRINT:PRINT"  Enter the number of the item to be modified:  ";
  407. 3970  INPUT"",R%:IF K1%=1 THEN 3300
  408. 3980  IF R%>0 THEN 4000
  409. 3990  BEEP:GOTO 3960
  410. 4000  GET#1,R%:IF A$<>"B" THEN 3940
  411. 4010  PRINT:GOSUB 5570:GOSUB 5630:PRINT
  412. 4020  PRINT"  Enter new data . . .":PRINT:GOTO 3620
  413. 4030  GET#1,1:IF A$="E" OR A$="B" OR A$="A" THEN 4060 ELSE CLS:BEEP
  414. 4040  PRINT"Cash Expenditures account must be INITIALIZED before it can be used.
  415. 4050  CLOSE:GOSUB 6630:GOTO 60
  416. 4060  K1%=0:GOSUB 6570:PRINT:GOSUB 6020:PRINT:PRINT
  417. 4070  PRINT:PRINT"     1 - Display items.
  418. 4080  PRINT:PRINT"     2 - Print items on the printer.
  419. 4090  PRINT:PRINT"     3 - Enter a new item.
  420. 4100  PRINT:PRINT"     4 - Delete the last entry in the file.
  421. 4110  PRINT:PRINT:COLOR 18
  422. 4120  PRINT TAB(28)"Enter function desired: ";:COLOR 7:SOUND 1300,0.5
  423. 4130  KB$=INKEY$:IF KB$="" THEN 4130
  424. 4140  IF K1%=1 THEN CLOSE:GOTO 60
  425. 4150  IF KB$="1" THEN R%=0:GOTO 4400
  426. 4160  IF KB$="2" THEN 4660
  427. 4170  IF KB$="3" THEN 4200
  428. 4180  IF KB$="4" THEN 4580
  429. 4190  BEEP:GOTO 4130
  430. 4200  R%=0
  431. 4210  GOSUB 6570:GOSUB 6330
  432. 4220  R%=R%+1:GET#1,R%:IF A$="E" THEN 4380
  433. 4230  IF A$<>"A" THEN 4220
  434. 4240  LSET D$=MKI$(R%)
  435. 4250  SOUND 1300,0.5:LSET A$="B":GOSUB 5460:IF K1%=1 THEN 4060
  436. 4260  LSET B$=FDATE$:PRINT TAB(41)"_____________________________________"
  437. 4270  INPUT"  Enter up to 37 Char. for description: ",KB$:IF K1%=1 THEN 4200
  438. 4280  IF LEN(KB$)<38 THEN 4300
  439. 4290  BEEP:GOTO 4270
  440. 4300  LSET G$=KB$:INPUT"  Enter AMOUNT: ",KB#:IF K1%=1 THEN 4200
  441. 4310  LSET C$=MKD$(KB#):INPUT"  Enter EXPENSE CODE: ",KB%:IF K1%=1 THEN 4200
  442. 4320  IF KB%>9 AND KB%<46 THEN 4340
  443. 4330  BEEP:GOTO 4310
  444. 4340  LSET E$=MKI$(KB%):PRINT"  Enter a 'Y' if this item could be a tax ";
  445. 4350  INPUT" deduction: ",KB$:IF K1%=1 THEN 4200
  446. 4360  IF KB$="y" OR KB$="Y" THEN LSET F$="Y" ELSE LSET F$="N"
  447. 4370  PUT#1,R%:GOTO 4210
  448. 4380  BEEP:PRINT:COLOR 30:PRINT"Cash expenditures file is full.
  449. 4390  COLOR 7:PRINT:GOSUB 6630: GOTO 4060
  450. 4400  GOSUB 6570:GOSUB 6670:IF K1%=1 THEN 4060
  451. 4410  GOSUB 6780:IF K1%=1 THEN 4060
  452. 4420  GOSUB 6570:GOSUB 6270:GOSUB 6040:B%=0
  453. 4430  R%=R%+1:GET#1,R%:IF A$="E" THEN 4550
  454. 4440  IF A$="A" THEN 4550
  455. 4450  IF K1%=1 THEN 4060
  456. 4460  Y3$=RIGHT$(B$,2):D3$=LEFT$(B$,2)+MID$(B$,4,2)
  457. 4470  IF Y1$=Y2$ THEN 4510
  458. 4480  IF Y3$=Y1$ THEN 4560
  459. 4490  IF Y3$=Y2$ THEN 4570
  460. 4500  IF Y3$>Y1$ AND Y3$<Y2$ THEN 4530 ELSE 4430
  461. 4510  IF Y3$<>Y2$ THEN 4430
  462. 4520  IF D3$<D1$ OR D3$>D2$ THEN 4430
  463. 4530  GOSUB 6120:B%=B%+1:IF B%<20 THEN 4430
  464. 4540  B%=0:GOSUB 6630:IF K1%=1 THEN 4060 ELSE 4420
  465. 4550  PRINT"   End of file.":GOSUB 6630:GOTO 4060
  466. 4560  IF D3$=>D1$ THEN 4530 ELSE 4430
  467. 4570  IF D3$>D2$ THEN 4430 ELSE 4530
  468. 4580  GOSUB 6570:R%=0
  469. 4590  PRINT"To DELETE the last entry ... enter the word 'PROCEED' :";
  470. 4600  INPUT"  ",KB$:IF K1%=1 THEN 4060
  471. 4610  IF KB$="PROCEED" OR KB$="proceed" THEN 4630
  472. 4620  BEEP:GOTO 4590
  473. 4630  R%=R%+1:GET#1,R%:IF A$="B" THEN 4630
  474. 4640  IF R%=1 THEN 4060
  475. 4650  LSET A$="A":PUT#1,R%-1:GOTO 4060
  476. 4660  KEY(9) ON:KEY(10) ON:R%=0:GOSUB 6570:GOSUB 6670:IF K1%=1 THEN 4860
  477. 4670  GOSUB 6780:IF K1%=1 THEN 4860
  478. 4680  GOSUB 6570:B%=0:E%=1:PRINT"  Insure that the printer is ready."
  479. 4690  SOUND 500,1:GOSUB 6630:IF K1%=1 THEN 4860
  480. 4700  CLS:PRINT:PRINT"  To temporarily stop the printer, press the F9 key.
  481. 4710  PRINT:PRINT"  To STOP the printer and return to MENU, press the 'F1' key.
  482. 4720  KB1$="Cash Expenditures.":GOSUB 6600
  483. 4730  R%=R%+1:GET#1,R%:IF A$<>"B" THEN 4850
  484. 4740  IF K1%=1 THEN 4860
  485. 4750  IF K9%=1 THEN LOCATE 24,5:PRINT"Printer stopped by F9 key, to continue press F10 key.";:GOTO 4740
  486. 4760  Y3$=RIGHT$(B$,2):D3$=LEFT$(B$,2)+MID$(B$,4,2)
  487. 4770  IF Y1$=Y2$ THEN 4810
  488. 4780  IF Y3$=Y1$ THEN 4870
  489. 4790  IF Y3$=Y2$ THEN 4880
  490. 4800  IF Y3$>Y1$ AND Y3$<Y2$ THEN 4830 ELSE 4730
  491. 4810  IF Y3$<>Y2$ THEN 4730
  492. 4820  IF D3$<D1$ OR D3$>D2$ THEN 4730
  493. 4830  GOSUB 6150:B%=B%+1:IF B%< 58 THEN 4730
  494. 4840  B%=0:E%=E%+1:LPRINT CHR$(140):GOTO 4720
  495. 4850  LPRINT"* * END OF FILE * *";:LPRINT CHR$(140)
  496. 4860  KEY(9) OFF:KEY(10) OFF:GOTO 4060
  497. 4870  IF D3$=>D1$ THEN 4830 ELSE 4730
  498. 4880  IF D3$>D2$ THEN 4730 ELSE 4830
  499. 4890  GOSUB 6570:LOCATE 20,20:PRINT"Reading files.... Please stand by..."
  500. 4900  LOCATE 1,1
  501. 4910  B#=0:GOSUB 5980:R%=1:GET#1,R%:IF A$="B" THEN 4920 ELSE 4990
  502. 4920  A#=CVD(C$)
  503. 4930  R%=R%+1:GET#1,R%:IF A$="E" THEN 4970
  504. 4940  IF A$<>"B" AND A$<>"M" THEN 4930
  505. 4950  IF CVI(E$)=2 THEN A#=A#+CVD(C$) ELSE A#=A#-CVD(C$)
  506. 4960  GOTO 4930
  507. 4970  PRINT"  Checking Account #1 . . . . . . . . ";
  508. 4980  PRINT USING"$$######,.##";A#:PRINT:B#=A#
  509. 4990  CLOSE:GOSUB 5990:R%=1:GET#1,R%:IF A$="B" THEN 5000 ELSE 5070
  510. 5000  A#=CVD(C$)
  511. 5010  R%=R%+1:GET#1,R%:IF A$="E" THEN 5050
  512. 5020  IF A$<>"B" AND A$<>"M" THEN 5010
  513. 5030  IF CVI(E$)=2 THEN A#=A#+CVD(C$) ELSE A#=A#-CVD(C$)
  514. 5040  GOTO 5010
  515. 5050  PRINT"  Checking Account #2 . . . . . . . . ";
  516. 5060  PRINT USING"$$######,.##";A#:PRINT:B#=B#+A#
  517. 5070  CLOSE:GOSUB 6000:R%=1:GET#1,R%:IF A$="B" THEN 5080 ELSE 5150
  518. 5080  A#=CVD(C$)
  519. 5090  R%=R%+1:GET#1,R%:IF A$="E" THEN 5130
  520. 5100  IF A$<>"B" AND A$<>"M" THEN 5090
  521. 5110  IF CVI(E$)=2 THEN A#=A#+CVD(C$) ELSE A#=A#-CVD(C$)
  522. 5120  GOTO 5090
  523. 5130  PRINT"  Checking Account #3 . . . . . . . . ";
  524. 5140  PRINT USING"$$######,.##";A#:PRINT:B#=B#+A#
  525. 5150  CLOSE:GOSUB 5710:R%=1:GET#1,R%:IF A$="B" THEN 5160 ELSE 5200
  526. 5160  A#=CVD(E$)
  527. 5170  R%=R%+1:GET#1,R%:IF A$="E" OR A$="A" THEN 5180 ELSE 5160
  528. 5180  PRINT"  Savings Account #1. . . . . . . . . ";
  529. 5190  PRINT USING"$$######,.##";A#:PRINT:B#=B#+A#
  530. 5200  CLOSE:GOSUB 5720:R%=1:GET#1,R%:IF A$="B" THEN 5210 ELSE 5250
  531. 5210  A#=CVD(E$)
  532. 5220  R%=R%+1:GET#1,R%:IF A$="E" OR A$="A" THEN 5230 ELSE 5210
  533. 5230  PRINT"  Savings Account #2. . . . . . . . . ";
  534. 5240  PRINT USING"$$######,.##";A#:PRINT:B#=B#+A#
  535. 5250  CLOSE:A#=0:GOSUB 5610:R%=1:GET#1,R%:IF A$<>"A" AND A$<>"B" THEN 5330
  536. 5260  IF A$="B" THEN 5290
  537. 5270  R%=R%+1:GET#1,R%:IF A$="E" THEN 5310
  538. 5280  IF A$<>"B" THEN 5270
  539. 5290  IF D$="A" THEN A#=A#+CVD(C$) ELSE A#=A#-CVD(C$)
  540. 5300  GOTO 5270
  541. 5310  PRINT"  Special Accounts. . . . . . . . . . ";
  542. 5320  PRINT USING"$$######,.##";A#:PRINT:B#=B#+A#
  543. 5330  PRINT TAB(38) STRING$(16,196)
  544. 5340  PRINT:PRINT:PRINT"  Total in all accounts . . . . . . .";
  545. 5350  PRINT USING"$$#######,.##";B#:LOCATE 20,20
  546. 5360  PRINT TAB(56)"":CLOSE:GOSUB 6630:GOTO 60
  547. 5370  IF ERR=24 THEN RESUME
  548. 5380  IF ERR=6 THEN PRINT"Number too large.. re-enter.":RESUME
  549. 5390  ON ERROR GOTO 0:RESUME
  550. 5400  K1%=1:RETURN
  551. 5410  COLOR 7,0
  552. 5420  CLOSE:CLS:PRINT"Your session with the Financial Operating System has ended.
  553. 5430  PRINT:PRINT"Welcome to BASIC.":END
  554. 5440  K9%=1:RETURN
  555. 5450  K9%=0:LOCATE 24,1:PRINT TAB(65);:RETURN
  556. 5460  PRINT
  557. 5470  PRINT"  Enter date (0,4, or 6 digits in MMDDYY format):  ";
  558. 5480  X%=POS(0):Y%=CSRLIN:INPUT"",KB$
  559. 5490  IF LEN(KB$)=6 THEN 5550
  560. 5500  IF LEN(KB$)=4 THEN 5540
  561. 5510  IF LEN(KB$)=0 THEN 5530
  562. 5520  BEEP:GOTO 5470
  563. 5530  FDATE$=LEFT$(DATE$,2)+"-"+MID$(DATE$,4,2)+"-"+RIGHT$(DATE$,2):GOTO 5560
  564. 5540  FDATE$=LEFT$(KB$,2)+"-"+MID$(KB$,3,2)+"-"+RIGHT$(DATE$,2):GOTO 5560
  565. 5550  FDATE$=LEFT$(KB$,2)+"-"+MID$(KB$,3,2)+"-"+RIGHT$(KB$,2):GOTO 5560
  566. 5560  LOCATE Y%,X%:PRINT FDATE$:RETURN
  567. 5570  PRINT"ITEM#   DATE   TYPE   AMOUNT    RATE%";
  568. 5580  PRINT "        D E S C R I P T I O N"
  569. 5590  PRINT " "+STRING$(3,45)+"  "+STRING$(8,45)+"  "+CHR$(45)+"  ";
  570. 5600  PRINT STRING$(11,45)+"  "+STRING$(4,45)+"  "+STRING$(41,45):RETURN
  571. 5610  OPEN DRIVE$+":SPECIAL.FOS" AS 1 LEN=62
  572. 5620  FIELD#1,1 AS A$,8 AS B$,8 AS C$,1 AS D$,4 AS E$,40 AS G$:RETURN
  573. 5630  PRINT R% TAB(7) B$ TAB(17) D$;
  574. 5640  PRINT TAB(20) USING"$$#####,.##";CVD(C$);
  575. 5650  PRINT TAB(33) USING"##.#";CVS(E$);
  576. 5660  PRINT TAB(39) G$:RETURN
  577. 5670  PRINT"ITEM#  DATE  TYPE  THIS ENTRY    BALANCE";
  578. 5680  PRINT"            D E S C R I P T I O N"
  579. 5690  PRINT" "+STRING$(2,45)+"  "+STRING$(8,45)+"  "+CHR$(45)+"  ";
  580. 5700  PRINT STRING$(11,45)+"  "+STRING$(11,45)+"  "+STRING$(36,45);:RETURN
  581. 5710  OPEN DRIVE$+":SAVINGS1.FOS" AS 1 LEN=62:GOTO 5730
  582. 5720  OPEN DRIVE$+":SAVINGS2.FOS" AS 1 LEN=62
  583. 5730  FIELD#1,1 AS A$,8 AS B$,8 AS C$,1 AS D$,8 AS E$,36 AS G$:RETURN
  584. 5740  PRINT:PRINT"  MOVING RECORDS IN SAVINGS FILE...":PRINT:R%=1
  585. 5750  GET#1,20:IF A$="A" THEN 5780
  586. 5760  A#=CVD(E$):IF R%=20 THEN RETURN
  587. 5770  GET#1,R%+1:PUT#1,R%:R%=R%+1:GOTO 5760
  588. 5780  IF R%=20 THEN RETURN
  589. 5790  GET#1,R%:IF A$="A" THEN RETURN
  590. 5800  R%=R%+1:A#=CVD(E$):GOTO 5780
  591. 5810  PRINT TAB(19);:COLOR 1
  592. 5820  PRINT"       S A V I N G S     A C C O U N T   1       ":COLOR 7:RETURN
  593. 5830  PRINT TAB(19);:COLOR 1
  594. 5840  PRINT"       S A V I N G S     A C C O U N T   2       ":COLOR 7:RETURN
  595. 5850  COLOR 18:PRINT"Savings account 1.":COLOR 7:RETURN
  596. 5860  COLOR 18:PRINT"Savings account 2.":COLOR 7:RETURN
  597. 5870  PRINT R% TAB(6) B$ TAB(16) D$;
  598. 5880  PRINT TAB(19) USING"$$#####,.##";CVD(C$);
  599. 5890  PRINT TAB(32) USING"$$#####,.##";CVD(E$);
  600. 5900  PRINT TAB(45) G$;:RETURN
  601. 5910  PRINT TAB(18);:COLOR 1
  602. 5920  PRINT"       C H E C K I N G   A C C O U N T   1       ":COLOR 7:RETURN
  603. 5930  PRINT TAB(18);:COLOR 1
  604. 5940  PRINT"       C H E C K I N G   A C C O U N T   2       ":COLOR 7:RETURN
  605. 5950  PRINT TAB(18);:COLOR 1
  606. 5960  PRINT"       C H E C K I N G   A C C O U N T   3       ":COLOR 7:RETURN
  607. 5970  OPEN DRIVE$+":CASHEXP.FOS" AS 1 LEN=59:GOTO 6010
  608. 5980  OPEN DRIVE$+":CHKCUR1.FOS" AS 1 LEN=59:GOTO 6010
  609. 5990  OPEN DRIVE$+":CHKCUR2.FOS" AS 1 LEN=59:GOTO 6010
  610. 6000  OPEN DRIVE$+":CHKCUR3.FOS" AS 1 LEN=59
  611. 6010  FIELD#1,1 AS A$,8 AS B$,8 AS C$,2 AS D$,2 AS E$,1 AS F$,37 AS G$:RETURN
  612. 6020  PRINT TAB(18);:COLOR 1
  613. 6030  PRINT"       C A S H    E X P E N D I T U R E S       ":COLOR 7:RETURN
  614. 6040  PRINT" ITEM#     DATE        AMOUNT    CODE TAX";
  615. 6050  PRINT"        D E S C R I P T I O N"
  616. 6060  PRINT" "+STRING$(5,45)+"   "+STRING$(8,45)+"   "+STRING$(11,45);
  617. 6070  PRINT"   "+STRING$(2,45)+"   "+CHR$(45)+"   "+STRING$(37,45);:RETURN
  618. 6080  LPRINT" ITEM#     DATE        AMOUNT    CODE TAX";
  619. 6090  LPRINT"        D E S C R I P T I O N"
  620. 6100  LPRINT" "+STRING$(5,45)+"   "+STRING$(8,45)+"   "+STRING$(11,45);
  621. 6110  LPRINT"   "+STRING$(2,45)+"   "+CHR$(45)+"   "+STRING$(37,45);:RETURN
  622. 6120  D%=CVI(D$):C%=CVI(E$):A#=CVD(C$):PRINT D% TAB(10) B$ TAB(20);
  623. 6130  PRINT USING"$$######,.##";A#;:PRINT TAB(34) C% TAB(40) F$ TAB(44) G$;
  624. 6140  RETURN
  625. 6150  D%=CVI(D$):C%=CVI(E$):A#=CVD(C$):LPRINT D% TAB(10) B$ TAB(20);
  626. 6160  LPRINT USING"$$######,.##";A#;:LPRINT TAB(34) C% TAB(40) F$;
  627. 6170  LPRINT TAB(44) G$;:RETURN
  628. 6180  PRINT CVI(K$) TAB(10) I$ TAB(20);
  629. 6190  PRINT USING"$$######,.##";CVD(J$);:PRINT TAB(34) CVI(L$);
  630. 6200  PRINT TAB(40) M$ TAB(44) N$;:RETURN
  631. 6210  LPRINT CVI(K$) TAB(10) I$ TAB(20);
  632. 6220  LPRINT USING"$$######,.##";CVD(J$);:LPRINT TAB(34) CVI(L$);
  633. 6230  LPRINT TAB(40) M$ TAB(44) LEFT$(N$,36):RETURN
  634. 6240  COLOR 18:PRINT"Checking account 1.";:COLOR 7:GOTO 6280
  635. 6250  COLOR 18:PRINT"Checking account 2.";:COLOR 7:GOTO 6280
  636. 6260  COLOR 18:PRINT"Checking account 3.";:COLOR 7:GOTO 6280
  637. 6270  COLOR 18:PRINT"Cash expenditures.";:COLOR 7
  638. 6280  PRINT TAB(44)"From:  " FD1$ "     Thru:  " FD2$:RETURN
  639. 6290  COLOR 18:PRINT"Checking account 1.":COLOR 7:RETURN
  640. 6300  COLOR 18:PRINT"Checking account 2.":COLOR 7:RETURN
  641. 6310  COLOR 18:PRINT"Checking account 3.":COLOR 7:RETURN
  642. 6320  FDATE$=LEFT$(DATE$,2)+"-"+MID$(DATE$,4,2)+"-"+RIGHT$(DATE$,2):RETURN
  643. 6330  COLOR 18
  644. 6340  PRINT TAB(19)"* * * *   E X P E N S E   C O D E S   * * * *":COLOR 7
  645. 6350  PRINT"10 - Appliances"TAB(29)"22 - Entertainment";
  646. 6360  PRINT TAB(57)"34 - Miscellaneous":PRINT"11 - Automobile";
  647. 6370  PRINT TAB(29)"23 - Food"TAB(57)"35 - Mortgage
  648. 6380  PRINT"12 - Capital Inv. (Auto)"TAB(29)"24 - Furniture";
  649. 6390  PRINT TAB(57)"36 - Paper/Magazines":PRINT"13 - Capital Inv. (Bldg)";
  650. 6400  PRINT TAB(29)"25 - Gasoline/Oil (auto)"TAB(57)"37 - Supplies
  651. 6410  PRINT"14 - Capital Inv. (Other)"TAB(29)"26 - Gas/Oil (Heating)";
  652. 6420  PRINT TAB(57)"38 - Taxes":PRINT"15 - Cash";
  653. 6430  PRINT TAB(29)"27 - Hobbies"TAB(57)"39 - Telephone
  654. 6440  PRINT"16 - Clothing"TAB(29)"28 - Insurance";
  655. 6450  PRINT TAB(57)"40 - Tools":PRINT"17 - Dental";
  656. 6460  PRINT TAB(29)"29 - Interest"TAB(57)"41 - Tractor/Mower
  657. 6470  PRINT"18 - Donations (Church)"TAB(29)"30 - Lawn/Garden";
  658. 6480  PRINT TAB(57)"42 - Transfer to Invest.";:PRINT"19 - Donations (Other)";
  659. 6490  PRINT TAB(29)"31 - Maint. (Bldg)"TAB(57)"43 - Transfer to Savings";
  660. 6500  PRINT"20 - Education"TAB(29)"32 - Maint. (Other)";
  661. 6510  PRINT TAB(57)"44 - Vacation";:PRINT"21 - Electricity";
  662. 6520  PRINT TAB(29)"33 - Medical"TAB(57)"45 - Water/sewer":RETURN
  663. 6530  OPEN DRIVE$+":CHKCAN1.FOS" AS 2 LEN=59:GOTO 6560
  664. 6540  OPEN DRIVE$+":CHKCAN2.FOS" AS 2 LEN=59:GOTO 6560
  665. 6550  OPEN DRIVE$+":CHKCAN3.FOS" AS 2 LEN=59
  666. 6560  FIELD#2,1 AS H$,8 AS I$,8 AS J$,2 AS K$,2 AS L$,1 AS M$,37 AS N$:RETURN
  667. 6570  CLS:LOCATE 25,72:GOSUB 6320:PRINT FDATE$:LOCATE 1,1:RETURN
  668. 6580  LPRINT KB1$ TAB(48)"DATE: " FDATE$ TAB(70)"PAGE: "E%
  669. 6590  LPRINT:GOSUB 6080:RETURN
  670. 6600  LPRINT KB1$;
  671. 6610  LPRINT TAB(41) FD1$ "  THRU  " FD2$ TAB(70)"PAGE: " E%
  672. 6620  LPRINT:GOSUB 6080:RETURN
  673. 6630  LOCATE 25,30:COLOR 18:PRINT"Press any key to continue...";:COLOR 7
  674. 6640  KB$=INKEY$:IF KB$="" THEN 6640 ELSE RETURN
  675. 6650  LOCATE 25,30:PRINT SPC(30);:RETURN
  676. 6660  PRINT USING"$$######,.##";CVD(J$);:PRINT TAB(34) CVI(L$);
  677. 6670  PRINT
  678. 6680  PRINT"  Enter starting date (0,4,or 6 digits in MMDDYY format):  ";
  679. 6690  X%=POS(0):Y%=CSRLIN:INPUT"",KB$
  680. 6700  IF LEN(KB$)=6 THEN 6760
  681. 6710  IF LEN(KB$)=4 THEN 6750
  682. 6720  IF LEN(KB$)=0 THEN 6740
  683. 6730  BEEP:GOTO 6680
  684. 6740  FD1$=LEFT$(DATE$,2)+"-"+MID$(DATE$,4,2)+"-"+RIGHT$(DATE$,2):Y1$=RIGHT$(FD1$,2):D1$=LEFT$(FD1$,2)+MID$(FD1$,4,2):GOTO 6770
  685. 6750  FD1$=LEFT$(KB$,2)+"-"+MID$(KB$,3,2)+"-"+RIGHT$(DATE$,2):Y1$=RIGHT$(FD1$,2):D1$=(KB$):GOTO 6770
  686. 6760  FD1$=LEFT$(KB$,2)+"-"+MID$(KB$,3,2)+"-"+RIGHT$(KB$,2):Y1$=RIGHT$(KB$,2):D1$=LEFT$(KB$,4)
  687. 6770  LOCATE Y%,X%:PRINT FD1$:RETURN
  688. 6780  PRINT
  689. 6790  PRINT"  Enter ending date (0,4,or 6 digits in MMDDYY format):  ";
  690. 6800  X%=POS(0):Y%=CSRLIN:INPUT"",KB$
  691. 6810  IF LEN(KB$)=6 THEN 6870
  692. 6820  IF LEN(KB$)=4 THEN 6860
  693. 6830  IF LEN(KB$)=0 THEN 6850
  694. 6840  BEEP:GOTO 6790
  695. 6850  FD2$=LEFT$(DATE$,2)+"-"+MID$(DATE$,4,2)+"-"+RIGHT$(DATE$,2):Y2$=RIGHT$(FD2$,2):D2$=LEFT$(FD2$,2)+MID$(FD2$,4,2):GOTO 6880
  696. 6860  FD2$=LEFT$(KB$,2)+"-"+MID$(KB$,3,2)+"-"+RIGHT$(DATE$,2):Y2$=RIGHT$(FD2$,2):D2$=(KB$):GOTO 6880
  697. 6870  FD2$=LEFT$(KB$,2)+"-"+MID$(KB$,3,2)+"-"+RIGHT$(KB$,2):Y2$=RIGHT$(KB$,2):D2$=LEFT$(KB$,4)
  698. 6880  LOCATE Y%,X%:PRINT FD2$:RETURN
  699.