home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / commodor / bill-pla (.txt) < prev    next >
Commodore BASIC  |  1993-05-20  |  7KB  |  316 lines

  1. 1 REM BILL PLANNER BY TOM COFER
  2. 2 REM FINAL VERSION 8 MAR 88..C=64
  3. 10 GOSUB60000
  4. 20 GOSUB100
  5. 25 END
  6. 100 PRINTCHR$(147)
  7. 110 PRINT SPC(14);"BILL PLANNER"
  8. 120 PRINT SPC(14);"BY TOM COFER"
  9. 130 PRINT:PRINT
  10. 140 PRINT"NUMBER";TAB(16);"FUNCTION"
  11. 150 PRINT:PRINT SPC(2);"1";TAB(14);"ENTER BILLS FOR"
  12. 160 PRINTTAB(15);"A NEW MONTH"
  13. 170 PRINT:PRINT SPC(2);"2";TAB(14);"ADD/DELETE/CHANGE"
  14. 180 PRINT TAB(15);"A BILL ON RECORD"
  15. 190 PRINT:PRINT SPC(2);"3";TAB(14);"DISPLAY BILLS"
  16. 200 PRINT TAB(15);"TO SCREEN"
  17. 210 PRINT SPC(2);"4";TAB(14);"PRINT BILLS TO"
  18. 220 PRINT TAB(15);"PRINTER"
  19. 230 PRINT:PRINT SPC(2);"5";TAB(14);"QUIT"
  20. 240 PRINT:PRINT:PRINT "ENTER NO. OF YOUR CHOICE"
  21. 250 INPUT R
  22. 260 ON R GOTO320,330,340,350,360
  23. 270 PRINT CHR$(147)
  24. 280 PRINT"[158]";R;" IS AN INVALID ENTRY[146][154]"
  25. 290 PRINT:PRINT
  26. 300 INPUT"PRESS RETURN TO CONTINUE";L$
  27. 310 GOTO 100
  28. 320 IFR=1 THEN GOSUB 500
  29. 330 IFR=2 THEN GOSUB 1000
  30. 340 IFR=3 THEN GOSUB 3000
  31. 350 IFR=4 THEN GOSUB 4000
  32. 360 IFR=5 THEN RETURN
  33. 370 GOTO 100
  34. 500 REM ENTRY SUB
  35. 510 PRINT CHR$(147)
  36. 520 PRINT SPC(15);"BILL ENTRY"
  37. 530 PRINT SPC(18);"MENU"
  38. 540 PRINT:PRINT
  39. 550 PRINT"NUMBER"; TAB(16);"FUNCTION"
  40. 560 PRINT:PRINT SPC(2)"1";TAB(14);"ENTER BILLS FOR"
  41. 570 PRINT TAB(15);"A NEW MONTH"
  42. 580 PRINT:PRINT
  43. 590 PRINT SPC(2);"2";TAB(14);"RETURN TO MAIN"
  44. 600 PRINT TAB(15);"MENU"
  45. 610 PRINT"ENTER NUMBER OF YOUR CHOICE"
  46. 620 INPUT K
  47. 630 IF K<1 OR K>2 THEN GOTO 660
  48. 640 IFK=1 THEN GOSUB 690
  49. 650 RETURN
  50. 660 PRINT CHR$(147):PRINT"";K;" IS NOT VALID !"
  51. 665 PRINT "** RETURNING TO MENU**"
  52. 670 PRINT:PRINT
  53. 680 INPUT"PRESS RETURN TO CONTINUE";L$
  54. 690 PRINTCHR$(147)
  55. 700 DIM N$(25)
  56. 705 DIM A(25)
  57. 710 E=0:B=0:S=0
  58. 720 INPUT"ENTER MONTH (DAY/MONTH/YR):";M$
  59. 730 INPUT"ENTER PAYCHECK AMOUNT: ";P
  60. 740 FORZ=1TO25
  61. 750 PRINT CHR$(147)
  62. 760 INPUT"ENTER BILL NAME:";B$
  63. 765 PRINT
  64. 770 INPUT"ENTER BILL AMOUNT: ";C
  65. 780 PRINT CHR$(147):PRINT"      ";B$;SPC(2);"$";C
  66. 790 PRINT"[146]"
  67. 800 INPUT"IS DATA CORRECT (Y/N)";L$
  68. 810 IFL$="N" THEN GOTO750
  69. 820 N$(Z)=B$
  70. 830 A(Z)=C
  71. 850 INPUT"** ANY MORE (Y/N)";L$
  72. 860 IFL$="N" THEN Z=25
  73. 870 E=E+1
  74. 880 B=B+C
  75. 890 NEXTZ
  76. 910 PRINTCHR$(147)
  77. 920 RETURN
  78. 1000 REM MODIFICATIONS SUB
  79. 1010 PRINTCHR$(147)
  80. 1020 PRINTTAB(10);"*MODIFICATIONS MENU*"
  81. 1030 PRINT"NUMBER";TAB(16);"FUNCTION"
  82. 1040 PRINT SPC(2);"1";TAB(14);"ADD NEW BILLS"
  83. 1050 PRINTTAB(15);"TO PROGRAM"
  84. 1060 PRINTSPC(2);"2";TAB(14);"REMOVE A BILL FROM"
  85. 1070 PRINTTAB(15);"THE PROGRAM"
  86. 1080 PRINT SPC(2);"3";TAB(14);"CHANGE AN ITEM"
  87. 1090 PRINT TAB(15);"IN THE PROGRAM"
  88. 1100 PRINT SPC(2);"4";TAB(14);"RETURN TO MAIN MENU"
  89. 1110 PRINT"ENTER NUMBER OF YOUR CHOICE[154]"
  90. 1120 INPUTK
  91. 1130 ON K GOTO 1190,1200,1210,1220
  92. 1140 PRINTCHR$(147)
  93. 1150 PRINT"[158]  ";K;" IS AN INVALID ENTRY[146][154]"
  94. 1160 PRINT:PRINT
  95. 1170 INPUT"PRESS RETURN TO CONTINUE";L$
  96. 1180 GOTO 1010
  97. 1190 IFK=1THEN GOSUB1300
  98. 1200 IFK=2THEN GOSUB1600
  99. 1210 IFK=3THEN GOSUB1900
  100. 1220 IFK=4THEN RETURN
  101. 1230 GOTO1010
  102. 1300 REM ADD. SUB
  103. 1310 PRINTCHR$(147)
  104. 1320 PRINT"THERE IS ROOM FOR ";25-E;"MORE ENTRIES"
  105. 1330 IF25-E>0THEN GOTO 1370
  106. 1340 PRINT:PRINT
  107. 1350 INPUT"PRESS RETURN TO CONTINUE";L$
  108. 1360 PRINTCHR(147):RETURN
  109. 1370 PRINTCHR$(147)
  110. 1380 INPUT"ENTER BILL NAME ";B$
  111. 1390 INPUT"ENTER BILL AMOUNT ";C
  112. 1400 PRINT"";B$;SPC(2);C
  113. 1410 PRINT"*IS THIS CORRECT(Y/N)?"
  114. 1420 INPUTL$
  115. 1430 IFL$="N" THEN GOTO 1310
  116. 1440 E=E+1
  117. 1450 N$(E)=B$
  118. 1460 A(E)=C:B=B+C
  119. 1470 INPUT"ANY MORE(Y/N)";L$
  120. 1480 IFL$="N"THEN GOTO1500
  121. 1490 GOTO1310
  122. 1500 PRINTCHR$(147)
  123. 1510 RETURN
  124. 1600 REM DELETIONS SUB
  125. 1610 PRINTCHR$(147)
  126. 1620 PRINT"ENTER NAME OF BILL TO BE REMOVED"
  127. 1630 INPUTB$
  128. 1640 V=1
  129. 1650 IFN$(V)=B$ THEN GOTO 1720
  130. 1660 V=V+1
  131. 1670 IFV<=E THEN GOTO 1650
  132. 1680 PRINTCHR$(147)
  133. 1690 PRINT"[158]";B$;" IS NOT ON RECORD[154]"
  134. 1700 PRINT:INPUT"PRESS RETURN TO CONTINUE";L$
  135. 1710 GOTO1790
  136. 1720 PRINT"";N$(V);SPC(2);A(V)
  137. 1730 INPUT"REMOVE THIS RECORD(Y/N)???";L$
  138. 1740 IFL$="N" THEN GOTO 1790
  139. 1750 B=B-A(V)
  140. 1770 N$(V)=""
  141. 1780 A(V)=0
  142. 1790 PRINTCHR$(147):INPUT"ANY MORE DELETIONS(Y/N)";L$
  143. 1800 IFL$="Y" THEN GOTO 1610
  144. 1810 PRINTCHR$(147)
  145. 1820 RETURN
  146. 1900 REM CHANGE SUB
  147. 1910 PRINTCHR$(147)
  148. 1920 PRINTTAB(16);"CHANGES"
  149. 1930 PRINT:PRINT"NUMBER";TAB(16);"FUNCTION"
  150. 1940 PRINT"1";TAB(14);"CHANGE MONTH"
  151. 1950 PRINT"2";TAB(14);"CHANGE PAYCHECK"
  152. 1960 PRINTTAB(15);"AMOUNT"
  153. 1970 PRINT"3";TAB(14);"CHANGE BILL"
  154. 1980 PRINT"4";TAB(14);"RETURN TO MENU"
  155. 1990 PRINT"ENTER NUMBER OF YOUR CHOICE"
  156. 2000 INPUTO
  157. 2010 ON O GOTO 2050,2060,2070,2080
  158. 2020 PRINTCHR$(147)
  159. 2030 PRINT"[158]";O;" IS AN INVALID ENTRY[146][154]"
  160. 2040 GOTO1910
  161. 2050 IFO=1 THEN GOSUB2100
  162. 2060 IFO=2 THEN GOSUB2200
  163. 2070 IFO=3 THEN GOSUB2300
  164. 2080 IFO=4 THEN RETURN
  165. 2090 GOTO1910
  166. 2100 PRINTCHR$(147)
  167. 2110 PRINT"MONTH ON RECORD IS ";M$
  168. 2120 INPUT"ENTER NEW MONTH";M$
  169. 2130 PRINT"MONTH ON RECORD IS NOW: ";M$
  170. 2140 PRINT:PRINT:INPUT"PRESS RETURN TO CONTINUE";L$:RETURN
  171. 2200 PRINTCHR$(147)
  172. 2210 PRINT"PAYCHECK AMOUNT ON RECORD IS:"
  173. 2220 PRINTTAB(20);P
  174. 2230 PRINT:INPUT"ENTER NEW AMOUNT";P
  175. 2240 PRINT:PRINT"PAYCHECK AMOUNT ON RECORD IS NOW:"
  176. 2250 PRINTTAB(20);P
  177. 2260 S=P-B:S=S*1000:S1=INT(S):SV$=STR$(S1)
  178. 2262 IF RIGHT$(SV$,1)>"4"THENS1=S1+10
  179. 2264 S1=INT(S1/10):S=S1/100
  180. 2270 INPUT"PRESS RETURN TO CONTINUE";L$
  181. 2280 RETURN
  182. 2300 PRINTCHR$(147):INPUT"ENTER BILL TO CHANGE";B$
  183. 2310 V=1
  184. 2320 IFN$(V)=B$ THEN GOTO 2390
  185. 2330 V=V+1
  186. 2340 IFV<=E THEN GOTO2320
  187. 2350 PRINTCHR$(147)
  188. 2360 PRINT"[158]";B$;" IS NOT ON RECORD[154]"
  189. 2370 PRINT:INPUT"PRESS RETURN TO CONTINUE";L$
  190. 2380 GOTO2530
  191. 2390 PRINT:PRINTTAB(12)"OLD RECORD:"
  192. 2400 PRINTN$(V);SPC(2);A(V)
  193. 2410 PRINT:INPUT"CHANGE BILL NAME(Y/N)";L$
  194. 2420 IFL$="N" THEN GOTO 2450
  195. 2430 INPUT"ENTER NEW NAME";B$
  196. 2440 N$(V)=B$
  197. 2450 PRINT:INPUT"CHANGE BILL AMOUNT(Y/N)";L$
  198. 2460 IFL$="N" THEN GOTO2530
  199. 2470 B=B-A(V)
  200. 2480 INPUT"ENTER NEW AMOUNT";C
  201. 2490 B=B+C
  202. 2510 A(V)=C
  203. 2520 PRINT
  204. 2530 INPUT"ANY MORE RECORDS TO CHANGE(Y/N)";L$
  205. 2540 PRINTCHR$(147)
  206. 2550 IFL$="Y" THEN GOTO 2300
  207. 2560 RETURN
  208. 3000 REM SCREEN DISPLAY SUB
  209. 3010 PRINTCHR$(147)
  210. 3012 S=P-B:S=S*1000:S1=INT(S):SV$=STR$(S1)
  211. 3016 IFRIGHT$(SV$,1)>"4"THENS1=S1+10
  212. 3018 S1=INT(S1/10):S=S1/100
  213. 3020 FORD=1TO5
  214. 3030 PRINTTAB(12);"*B[150]I[144]LL[158] P[129]L[159]A[149]N[151]N[152]E[153]R[156]*[154]"
  215. 3050 FORQ=1TO300:NEXTQ
  216. 3060 NEXTD
  217. 3070 PRINTCHR$(147)
  218. 3075 PRINTTAB(5);"BILLS FOR:";M$
  219. 3080 FORV=1 TO E
  220. 3085 IFN$(V)=""THEN GOTO 3120
  221. 3090 PRINTN$(V);TAB(30);"$";A(V)
  222. 3100 FORD=1TO1000
  223. 3110 NEXTD
  224. 3120 NEXTV
  225. 3230 PRINT"****************************************"
  226. 3235 PRINT""
  227. 3240 PRINT"PAYCHECK AMOUNT:";TAB(30);"$";P
  228. 3250 PRINT"TOTAL AMOUNT OF BILLS:";TAB(30);"$";B
  229. 3260 IFB>P THEN GOTO3290
  230. 3270 PRINT"TOTAL AMOUNT LEFT:";TAB(30);"$";S
  231. 3280 GOTO3310
  232. 3290 PRINT"[158]BILLS TOTAL MORE THAN"
  233. 3300 PRINT"PAYCHECK:[146][154]";TAB(28);"--$";S
  234. 3310 PRINT:PRINT
  235. 3320 INPUT"DISPLAY AGAIN(Y/N)";L$
  236. 3330 IFL$="Y"THEN GOTO 3070
  237. 3340 RETURN
  238. 4000 PRINT CHR$(147)
  239. 4010 PRINT TAB(13);"PRINTOUT MENU"
  240. 4020 PRINT"NUMBER";TAB(16);"FUNCTION"
  241. 4030 PRINT"1";TAB(14);"PRINT A HARDCOPY"
  242. 4040 PRINT TAB(15);"TO PRINTER"
  243. 4060 PRINT"2";TAB(14);"RETURN TO MAIN MENU"
  244. 4070 PRINT"ENTER NUMBER OF YOUR CHOICE"
  245. 4080 INPUT K
  246. 4090 ON K GOTO 4140,4150
  247. 4100 PRINT CHR$(147)
  248. 4110 PRINT"[158]";K;" IS AN INVALID ENTRY[154]"
  249. 4120 PRINT:INPUT"PRESS RETURN";L$
  250. 4130 GOTO4000
  251. 4140 IF K=1 THEN GOSUB4180
  252. 4150 IF K=2 THEN RETURN
  253. 4170 GOTO4000
  254. 4180 REM PRINTER SUB
  255. 4190 PRINTCHR$(147)
  256. 4192 S=P-B:S=S*1000:S1=INT(S):SV$=STR$(S1)
  257. 4196 IFRIGHT$(SV$,1)>"4"THENS1=S1+10
  258. 4198 S1=INT(S1/10):S=S1/100
  259. 4200 PRINT"*TURN ON & PREPARE PRINTER*"
  260. 4210 PRINT:INPUT"PRESS RETURN WHEN READY";L$
  261. 4220 A$="BILLS FOR: "
  262. 4230 C$="PAYCHECK AMOUNT:"
  263. 4240 D$="TOTAL AMOUNT OF BILLS:"
  264. 4250 G$="TOTAL AMOUNT LEFT:"
  265. 4260 H$="$"
  266. 4270 OPEN4,4
  267. 4275 PRINT#4,SPC(20);A$;M$
  268. 4280 FORV=1 TO E
  269. 4290 IFN$(V)="" THEN GOTO 4320
  270. 4291 XV$=N$(V)
  271. 4292 IF LEN(XV$)>=15 THEN GOTO 4310
  272. 4293 X2=LEN(XV$)
  273. 4294 X3=(15-X2)+5
  274. 4295 PRINT#4
  275. 4296 PRINT#4,N$(V);SPC(X3);H$;A(V)
  276. 4297 GOTO4320
  277. 4310 PRINT#4
  278. 4315 PRINT#4,N$(V);SPC(5);H$;A(V)
  279. 4320 NEXTV
  280. 4330 PRINT#4,"- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"
  281. 4335 PRINT#4
  282. 4340 PRINT#4,C$, ,H$;P
  283. 4350 PRINT#4
  284. 4360 PRINT#4,D$,"    ";H$;B
  285. 4370 PRINT#4
  286. 4380 PRINT#4,G$,"        $";S
  287. 4390 PRINT#4
  288. 4400 CLOSE4
  289. 4410 RETURN
  290. 60000 REM 64/128 TITLE ANIMATOR - JOE CHARNETSKI
  291. 60010 FD=8:DIMFL$(FD)
  292. 60020 FL$(1)="BILL PLANNER"
  293. 60030 FL$(4)="FOR MONTHLY BUDGETTING"
  294. 60040 FL$(6)=" BY TOM COFER
  295. 60060 FC$(1)[178]"OPEN":FC$(2)[178]"CLR":FC$(3)[178]""
  296. 60070 [129]I[178]1[164]FD:FS[178][195](FL$(I)):[139]FH[179]FS[167]FH[178]FS
  297. 60080 [130]:FH[178]FH[170]4:FV[178][181]((25[171]FD[171]2)[173]2)
  298. 60090 [129]I[178]1[164](40[171]FH)[173]2:FX$[178]FX$[170]"":[130]
  299. 60100 [139]FV[177]2[167][129]I[178]1[164]FV[171]1:FY$[178]FY$[170]"":[130]
  300. 60110 [129]I[178]1[164]3:[135]F1,F2,F3,F4
  301. 60120 [129]J[178]1[164]FH:F5$(I)[178]F5$(I)[170][199](F1)
  302. 60130 F7$(I)[178]F7$(I)[170][199](F3)[170]"CMDCMD":[130]
  303. 60140 [129]J[178]1[164]FD[170]2:F6$(I)[178]F6$(I)[170]"CMD"[170][199](F2)
  304. 60150 F8$(I)[178]F8$(I)[170]"ON"[170][199](F4)[170]"CMD":[130]:[130]
  305. 60160 [129]I[178]1[164]3:FA$(I)[178]""[170]FY$[170]FX$[170]FC$(I)[170]F5$(I)[170]F6$(I)
  306. 60170 FB$(I)[178]"CMD"[170]F7$(I)[170]""[170]F8$(I):[130]
  307. 60180 :
  308. 60190 [151]53280,2:[151]53281,0
  309. 60200 [153]"LOADLIST"FY$
  310. 60210 [129]I[178]1[164]FD:[153][163]20[171][195](FL$(I))[173]2)FL$(I):[130]
  311. 60220 [129]I[178]1[164]3:[153]FA$(I)FB$(I)
  312. 60230 [129]FZ[178]1[164]25:[130]:[130]
  313. 60240 [161]A$:[139]A$[178]""[137]60220
  314. 60250 [153]"LOADCONT":[151]53280,14:[151]53281,6:[151]646,14:[142]
  315. 60260 [131]164,167,163,165,175,170,183,181,185,182,184,161
  316.