ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

264 lines
9.5 KiB

  1. 1 REM BUSBUD
  2. 5 CLEAR 1000
  3. 10 CLS:PRINT TAB(10);"BUSINESS BOOKKEEPING SYSTEM":PRINT
  4. 20 PRINT"THIS BUSINESS BOOKKEEPING AND BUDGET ANALYSIS PROGRAM HAS THE
  5. 25 PRINT"SAME CATEGORIES AS THE DOME SIMPLIFIED WEEKLY BOOKKEEPING
  6. 30 PRINT"RECORD #600. THE PROGRAM CAN HANDLE 1 MONTH'S WORTH OF DATA
  7. 35 PRINT"AT A TIME, BUT NOT TO EXCEED 100 ENTRIES ON A 16K MACHINE.
  8. 40 PRINT"ON MACHINES WITH GREATER MEMORY IT IS ONLY NECESSARY TO CHANGE
  9. 45 PRINT"THE MAXX=100 ON LINE 100 TO MAXX=200 FOR 200 ENTRIES,
  10. 50 PRINT"ETC. TO LEARN THE SYSTEM, USE IT. REMEMBER TO READ A MONTH'S
  11. 55 PRINT"DATA INTO MEMORY BEFORE USE(UNLESS IT'S A NEW MONTH), AND TO
  12. 60 PRINT"SAVE THE DATA AFTER USE. OTHERWISE DRASTIC RESULTS MAY OCCUR.
  13. 65 PRINT"THE BUDGET ANALYSIS WILL COMPARE ACTUAL EXPENDITURES TO
  14. 70 PRINT"USER INPUT BUDGET AMOUNTS FOR EACH CATEGORY.
  15. 80 PRINT:INPUT"PRESS ENTER TO BEGIN";Z9$
  16. 95 CLS
  17. 96 INPUT"ARE DISK DRIVES ATTACHED(Y/N)";ZD$
  18. 98 IF ZD$<>"Y" AND ZD$<>"N" THEN GOSUB 10000:GOTO 95
  19. 100 CLEAR 1000:DEFDBL A,C,Y:MAXX=100:DIM A(100,3),C(43,3),C$(43),Y(43)
  20. 110 DIM AE(3),AT(3),AS(3),AO(3)
  21. 120 GOSUB 10500:GOSUB 14000:GOSUB 11000
  22. 1000 CLS:PRINT" MAIN MENU"
  23. 1005 PRINT
  24. 1010 PRINT"1.READ IN MONTH'S DATA FROM CASSETTE"
  25. 1020 PRINT"2.READ IN MONTH'S DATA FROM DISK
  26. 1030 PRINT"3.WRITE MONTH'S DATA TO CASSETTE
  27. 1040 PRINT"4.WRITE MONTH'S DATA TO DISK
  28. 1050 PRINT"5.ADD TO MONTH'S FILE
  29. 1060 PRINT"6.EDIT MONTH'S FILE
  30. 1070 PRINT"7.CATEGORY REVIEW AND CHANGE
  31. 1080 PRINT"8.BUDGET ANALYSIS
  32. 1085 PRINT"9.NEW MONTH INITIALIZE,BUDGET SAME"
  33. 1090 PRINT"10.END PROGRAM
  34. 1100 PRINT:INPUT"MAKE YOUR CHOICE ";Z5
  35. 1110 IF Z5<>INT(Z5) OR Z5<1 OR Z5>10 THEN GOSUB 10000:GOTO 1000
  36. 1120 ON Z5 GOSUB 2100,2200,2300,2400,2500,2600,2700,2800,2950,2900
  37. 1130 GOTO 1000
  38. 2100 REM DATA INPUT FROM CASSETTE
  39. 2105 CLS:PRINT"CASSETTE INPUT
  40. 2130 PRINT:INPUT"INPUT MONTH ";M1
  41. 2150 INPUT"PREPARE CASSETTE TAPE.PRESS ENTER WHEN READY";Z9
  42. 2160 GOSUB 12000
  43. 2165 IF M<>M1 THEN GOSUB 10200 ' WRONG MONTH
  44. 2170 GOSUB 10100:RETURN
  45. 2200 REM DATA INPUT FROM DISK
  46. 2210 CLS:PRINT"DISK DATA INPUT "
  47. 2220 PRINT:INPUT"ENTER MONTH(1-12)";M1
  48. 2230 IF M1<>INT(M1) OR M1<1 OR M1>12 THEN GOSUB 10000:GOTO 2210
  49. 2240 PRINT"PREPARE DISKETTE IN DISK DRIVE":GOSUB 10100
  50. 2250 GOSUB 13000
  51. 2260 IF M<>M1 THEN GOSUB 10200
  52. 2270 GOSUB 10100:RETURN
  53. 2300 REM DATA OUTPUT TO CASSETTE
  54. 2310 CLS:PRINT"DATA OUTPUT TO CASSETTE"
  55. 2320 INPUT"ENTER MONTH(1-12)";M1:M=M1
  56. 2350 INPUT"PRESS ENTER WHEN CASSETTE READY";Z9
  57. 2360 GOSUB 12200
  58. 2370 RETURN
  59. 2400 REM DATA OUTPUT TO DISK
  60. 2410 CLS:PRINT"DATA OUTPUT TO DISK"
  61. 2415 INPUT"ENTER MONTH NUMBER(1-12)";M1
  62. 2420 M=M1:PRINT"PREPARE DISKETTE IN DRIVE ":GOSUB 10100
  63. 2430 GOSUB 13200
  64. 2450 RETURN
  65. 2500 CLS:PRINT"ADD TO FILE ROUTINE":PRINT
  66. 2505 PRINT"LAST ITEM SO FAR.":PRINT USING F$(3);ZZ$
  67. 2510 N=N1:GOSUB 10700
  68. 2515 GOSUB 15500
  69. 2520 PRINT:INPUT"ANY MORE ADDITIONS TODAY(Y/N)";Z9$
  70. 2530 IF Z9$<>"Y" AND Z9$<>"N" THEN GOSUB 10000:GOTO 2520
  71. 2540 IF Z9$="Y" THEN GOTO 2500 ELSE RETURN
  72. 2600 REM EDIT & REVIEW
  73. 2610 CLS:PRINT USING F$(3);ZZ$
  74. 2620 FOR N=1 TO N1:GOSUB 10700
  75. 2630 IF N/10= INT(N/10) THEN GOSUB 2640:CLS:PRINT USING F$(3);ZZ$
  76. 2635 NEXT N
  77. 2637 X$=" "
  78. 2640 INPUT"INPUT E TO EDIT,ENTER FOR MORE";X$
  79. 2645 IF X$="E" THEN GOSUB 10800
  80. 2650 IF N<>N+1 THEN RETURN
  81. 2660 RETURN
  82. 2700 REM CATEGORY REVIEW OR CHANGE
  83. 2710 CLS:PRINT " MENU"
  84. 2720 PRINT:PRINT"1.REVIEW OF ALL CATEGORIES"
  85. 2730 PRINT"2.CHANGE BUDGET AMOUNTS FOR MONTH"
  86. 2735 PRINT"3.RETURN TO MAIN MENU"
  87. 2740 PRINT:INPUT"MAKE CHOICE";Z9:ON Z9 GOTO 2750,2770,2799
  88. 2745 GOSUB 10100:GOTO 2710
  89. 2750 GOSUB 14200:GOTO 2710
  90. 2770 FOR I=0 TO 42
  91. 2775 PRINT USING F$(4);I,C$(I),C(I,2);:INPUT" CHANGE AMT. ";C(I,2)
  92. 2780 NEXT I :GOTO 2710
  93. 2799 RETURN
  94. 2800 REM BUDGET ANALYSIS
  95. 2810 FOR I=0 TO 42:C(I,1)=0:NEXT I
  96. 2820 FOR I=1 TO N1:C(A(I,1),1)=C(A(I,1),1)+A(I,2):NEXT I
  97. 2830 AI(1)=C(0,1):AI(2)=C(0,2):AI(3)=AI(1)-AI(2)
  98. 2840 AE(1)=0:AE(2)=0:AE(3)=0
  99. 2850 FOR I=1 TO 35:AE(1)=AE(1)+C(I,1):AE(2)=AE(2)+C(I,2):NEXT
  100. 2855 AE(3)=AE(1)-AE(2)
  101. 2865 AT(1)=0:AT(2)=0:AT(3)=0
  102. 2868 FOR I=36 TO 42:AT(1)=AT(1)+C(I,1):AT(2)=AT(2)+C(I,2):NEXT
  103. 2870 AT(3)=AT(1)-AT(2)
  104. 2872 CLS:PRINT USING F$(6);ZZ$
  105. 2875 FOR I=0 TO 42
  106. 2878 IF I/11=INT(I/11) AND I<>0 THEN GOSUB 10100:CLS:PRINT USING F$(6);ZZ$
  107. 2880 PRINT USING F$(5);I,C$(I),C(I,1),C(I,2),C(I,1)-C(I,2)
  108. 2882 NEXT I
  109. 2883 PRINT:INPUT"PRESS ENTER FOR TOTALS";Z9$:CLS
  110. 2884 PRINT USING F$(6);ZZ$
  111. 2885 PRINT USING F$(5);0,"TOTAL INCOME",AI(1),AI(2),AI(3)
  112. 2888 PRINT USING F$(5);0,"DEDUCT.EXP.",AE(1),AE(2),AE(3)
  113. 2890 PRINT USING F$(5);0,"NON DED EXP.",AT(1),AT(2),AT(3)
  114. 2892 AO(1)=AI(1)-AE(1)-AT(1):AO(2)=AI(2)-AE(2)-AT(2):AO(3)=AO(1)-AO(2)
  115. 2895 PRINT USING F$(5);0,"NET CASH FLOW",AO(1),AO(2),AO(3)
  116. 2898 PRINT:GOSUB 10100
  117. 2899 RETURN
  118. 2900 CLS:INPUT"ARE YOU SURE(Y/N)";Z9$
  119. 2910 IF Z9$<>"Y" THEN RETURN
  120. 2920 END
  121. 2950 REM ZERO FOR NEW MONTH.LEAVES BUDGET AMTS ALONE
  122. 2960 GOSUB 11000:RETURN
  123. 10000 REM INPUT ERROR SBR
  124. 10010 PRINT"INPUT ERROR! TRY AGAIN!":FOR J3=1 TO 300:NEXT
  125. 10020 RETURN
  126. 10100 INPUT"PRESS ENTER TO CONTINUE ";Z9:RETURN
  127. 10200 PRINT"MONTHS DO NOT COINCIDE.INPUT IS FOR MONTH ";M:RETURN
  128. 10500 REM FORMATS
  129. 10505 F$(4)="## \ \ ######.##"
  130. 10510 F$(2)="### ## \ \ ######.## ##"
  131. 10520 F$(3)="NO. CL. CL. AMT. DAY !"
  132. 10530 F$(5)="## \ \ ######.## ######.## ######.##"
  133. 10540 F$(6)="CL CL TOTAL BUDGET OV.OR.UND !"
  134. 10590 RETURN
  135. 10700 PRINT USING F$(2);N,A(N,1),C$(A(N,1)),A(N,2),A(N,3)
  136. 10705 RETURN
  137. 10800 REM EDIT ROUTINE
  138. 10805 INPUT"WHICH ITEM NUMBER TO EDIT";E
  139. 10810 IF E<0 OR E>N1 OR E<>INT(E) THEN GOSUB 10000:GOTO 10805
  140. 10815 C(A(E,1),1)=C(A(E,1),1)-A(E,2)
  141. 10820 N2=E:GOSUB 15520
  142. 10830 IF Z8=1 THEN N1=N1-1
  143. 10850 RETURN
  144. 11000 REM SBR ZEROES MONTHLY AMOUNTS
  145. 11010 FOR J3=1 TO MAXX:FOR J4=1 TO 3
  146. 11020 A(J3,J4)=0
  147. 11030 NEXT J4:NEXT J3
  148. 11040 FOR J3=0 TO 42
  149. 11050 C(J3,1)=0:C(J3,3)=0
  150. 11060 NEXT J3
  151. 11070 N1=0
  152. 11090 RETURN
  153. 12000 REM SBR TO READ IN MONTHLY DATA FROM CASSETTE
  154. 12010 GOSUB 11000:REM ZERO ANY OLD AMOUNTS
  155. 12015 ON ERROR GOTO 12020
  156. 12016 ' IF ZD$="Y" THEN CMD"T"
  157. 12020 INPUT #-1,M:REM M IS MONTH NUMBER
  158. 12025 FOR N=0 TO 42
  159. 12030 INPUT #-1,C(N,1),C(N,2),C(N,3):REM BUDGET & SPENT AMTS.
  160. 12040 NEXT N
  161. 12050 INPUT #-1,N1:REM N1 = # RECORDS IN FILE
  162. 12060 IF N1=0 THEN RETURN
  163. 12070 FOR N=1 TO N1
  164. 12080 INPUT #-1,A(N,1),A(N,2),A(N,3)
  165. 12090 NEXT N
  166. 12110 RETURN
  167. 12200 REM PRINT MONTHLY DATA ONTO CASSETTE
  168. 12205 ON ERROR GOTO 12210
  169. 12208 ' IF ZD$="Y" THEN CMD"T"
  170. 12210 WRITE #-1,M :REM MONTH NUMBER
  171. 12220 FOR N=0 TO 42
  172. 12230 WRITE #-1,C(N,1),C(N,2),C(N,3):REM BUDGET & AMTS SPENT
  173. 12235 NEXT N
  174. 12240 WRITE #-1,N1:REM N1=NO. OF RECORDS IN FILE
  175. 12250 IF N1=0 THEN RETURN
  176. 12260 FOR N=1 TO N1
  177. 12270 WRITE #-1,A(N,1),A(N,2),A(N,3)
  178. 12280 NEXT N
  179. 12290 RETURN
  180. 12440 NEXT N
  181. 12450 RETURN
  182. 12600 REM JUST GET FINAL MONTHLY TOTALS FROM CASSETTE
  183. 12610 INPUT #-1,M:REM MONTH NUMBER
  184. 12620 FOR N=0 TO 42
  185. 12630 INPUT #-1,C(N,1),C(N,2),C(N,3)
  186. 12640 NEXT N
  187. 12650 RETURN
  188. 13000 REM READ IN MONTHLY DATA FROM DISK
  189. 13010 GOSUB 11000: REM ZERO ANY OLD AMOUNTS
  190. 13015 FF$=STR$(M1):FF$=RIGHT$(FF$,LEN(FF$)-1)
  191. 13020 F$="MONTH"+FF$:REM M1 IS MONTH IN PROGRAM
  192. 13025 OPEN"I",1,F$
  193. 13030 INPUT #1,M:REM MONTH NUMBER
  194. 13040 FOR N=0 TO 42
  195. 13050 INPUT #1,C(N,1),C(N,2),C(N,3):REM BUDGET AMTS & TOTALS FOR CAT.
  196. 13060 NEXT N
  197. 13070 INPUT #1,N1:REM NUMBER OF ITEMS PRSENTLY IN FILE
  198. 13080 IF N1=0 THEN CLOSE #1:RETURN
  199. 13090 FOR N=1 TO N1
  200. 13100 INPUT #1,A(N,1),A(N,2),A(N,3)
  201. 13110 NEXT N
  202. 13120 CLOSE #1:RETURN
  203. 13200 REM PRINT MONTHLY DATA ONTO DISK
  204. 13205 FF$=STR$(M1):FF$=RIGHT$(FF$,LEN(FF$)-1)
  205. 13210 F$="MONTH"+FF$:REM M1 IS MONTH IN PROGRAM
  206. 13220 OPEN"O",1,F$
  207. 13230 WRITE # 1,M
  208. 13240 FOR N=0 TO 42
  209. 13250 WRITE # 1,C(N,1),C(N,2),C(N,3)
  210. 13260 NEXT N
  211. 13270 WRITE # 1,N1:REM NUMBER OF ITEMS PRESENTLY ON FILE
  212. 13280 IF N1=0 THEN CLOSE #1:RETURN
  213. 13290 FOR N=1 TO N1
  214. 13300 WRITE # 1,A(N,1),A(N,2),A(N,3)
  215. 13310 NEXT N
  216. 13320 CLOSE #1:RETURN
  217. 13600 REM JUST GET FINAL MONTHLY TOTALS FROM DISK
  218. 13610 GOSUB 11000:REM ZERO OLD AMOUNTS
  219. 13620 F$="MONTH"+STR$(M1)
  220. 13630 OPEN"I",1,F$
  221. 13640 INPUT # 1,M
  222. 13650 FOR N=0 TO 42
  223. 13660 INPUT # 1,C(N,1),C(N,2),C(N,3)
  224. 13670 NEXT N
  225. 13680 CLOSE #1:RETURN
  226. 14000 REM ROUTINE LOADING C$() ARRAY
  227. 14010 DATA INCOME,MDSE-MATERIALS,ACCOUNTING,ADVERTISING,AUTO EXP
  228. 14015 DATA CARTONS-ETC.,CONTRIBUTIONS,DELIVERY EXP.,ELECTRICITY
  229. 14020 DATA ENTERTAINMENT,FREIGHT & EXPRESS,HEAT,INSURANCE,INTEREST
  230. 14025 DATA LAUNDRY,LEGAL EXP.,LICENSES,MISC. EXP.,OFFICE EXP.,POSTAGE
  231. 14030 DATA RENT,REPAIRS,SHOP EXP.,TAX-SOC.SEC.,TAX-STATE UNEMP.,TAX-OTHER
  232. 14035 DATA SELLING EXP.,SUPPLIES,TELEPHONE,TRADE DUES-ETC.,TRAVELING EXP.
  233. 14040 DATA WAGES & COMM.,WATER," "," "," "
  234. 14045 DATA NOTES PAYABLE,FED. INC. TAX,LOANS PAYABLE,LOANS RECEIV.
  235. 14050 DATA PERSONAL,FIXED ASSETS," "," "," "," "
  236. 14070 FOR J3=0 TO 42:READ C$(J3):NEXT
  237. 14080 RETURN
  238. 14200 REM REVIEW OF CATEGORIES
  239. 14210 F$(1)="## \ \ ## \ \"
  240. 14220 CLS:FOR I=0 TO 42 STEP 2
  241. 14230 PRINT USING F$(1);I,C$(I),I+1,C$(I+1)
  242. 14235 IF I/22=INT(I/22) AND I<>0 THEN PRINT:GOSUB 10100:CLS
  243. 14240 NEXT I
  244. 14245 PRINT:PRINT"CATEGORIES 1-35 DEDUCTABLES EXPENSES":PRINT"CATEGORIES 36-42 NONDEDUCTABLE EXPENSES":PRINT
  245. 14250 GOSUB 10100
  246. 14260 RETURN
  247. 15000 REM GET MONTHLY TOTALS FROM MONTH'S DATA
  248. 15010 FOR N=1 TO N1
  249. 15020 K=A(N,1):C(K,1)=C(K,1)+A(N,2)
  250. 15030 NEXT N
  251. 15040 RETURN
  252. 15500 REM INPUT ROUTINE
  253. 15510 N2=N1+1:PRINT
  254. 15515 REM
  255. 15520 INPUT"CLASSIFICATION,AMOUNT,DAY";A(N2,1),A(N2,2),A(N2,3)
  256. 15522 A9=A(N2,1):IF A9<>ABS(INT(A9)) OR A9>42 THEN GOSUB 10000:GOTO 15515
  257. 15525 PRINT:PRINT C$(A(N2,1));" $";A(N2,2),A(N2,3)
  258. 15530 INPUT"ENTER 1 IF OK,2 IF IN ERROR,3 TO ABORT";Z8
  259. 15540 IF Z8<>1 AND Z8<>2 AND Z8<>3 THEN GOSUB 10000:GOTO 15530
  260. 15550 IF Z8=2 THEN GOTO 15520
  261. 15555 IF Z8=3 THEN RETURN
  262. 15560 N1=N1+1:C(A(N2,1),1)=C(A(N2,1),1)+A(N2,2)
  263. 15570 RETURN