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

  1. 1 REM**********************************
  2. 2 REM CONVERTED TO WORK WITH DISK DRIVE       BY :
  3. 3 REM SEAN ROONEY.  MISSISSAUGA, ONT.              CANADA. DEC27,1983.
  4. 4 REM**********************************
  5. 5 REM  QUIT OPTION ON MAIN MENU ADDED:
  6. 6 REM  JANUARY1,1984.  BY SEAN ROONEY
  7. 8 POKE53280,0:POKE53281,0
  8. 9 DIMV(15,60),X$(50),V$(15,60):CR$="[147]":CT$="[159] ******* CALCULATING *******[154]"
  9. 10 PRINT"[142][147][159]**D I S K A L C-64** ":C%=1:R%=1
  10. 20 PRINT"[154]    V[154]IEW COLUMNS
  11. 30 [153]"    ECONTNTER DATA
  12. 40 PRINT"    D[154]O CALCULATIONS
  13. 50 [153]"    ZCONTERO MATRIX
  14. 60 PRINT"    G[154]ET DATA FROM DISK
  15. 70 [153]"    SCONTAVE DATA ON DISK
  16. 80 PRINT"    M[154]EMORY CHECK
  17. 85 [153]"    PCONTRINT DATA ON PRINTER"
  18. 90 [153]"    QCONTUIT THE PROGRAM"
  19. 95 [153]"OPENWHAT IS YOUR CHOICE ?":Y[178]0
  20. 96 [161]AN$:[139]AN$[178]""[167]96
  21. 97 [129]X[178]1[164]9:[139]AN$[178][202]("VEDZGSMPQ",X,1)[167]Y[178]X
  22. 98 [130]:[145]Y[141]230,1000,2020,120,702,802,940,12010,12239:[137]10
  23. 120 [153]CR$:[129]X[178]1[164]15
  24. 130 [129]Y[178]1[164]50
  25. 140 V(X,Y)[178]0
  26. 150 [130]Y
  27. 160 [130]X
  28. 165 [142]
  29. 190 [133]"LOADENTER COLUMN (1 TO 13):";C%
  30. 200 [139]C%[179]1[176]C%[177]13[167][153]"LOAD";:[137]190
  31. 210 [153]:[133]"ENTER ROW (1 TO 31):";R%
  32. 220 [139]R%[179]1[176]R%[177]31[167]210
  33. 230 [153]"LOAD";:[141]500
  34. 240 [153]"";
  35. 250 [129]Y[178]R%[164]R%[170]19
  36. 260 [153][163]9);
  37. 270 [129]X[178]C%[164]C%[170]2
  38. 280 X$[178][196](V(X,Y))
  39. 290 [153][166]10[171][195](X$));X$;
  40. 300 [130]
  41. 310 [153][199](13);
  42. 320 [130]
  43. 325 [153]"                                         ";
  44. 330 [153]"UCONTP   DCONTOWN   LCONTEFT   RCONTIGHT   JCONTUMP   MCONTENU";
  45. 340 [161]C$:[139]C$[178]""[167]340
  46. 360 [139]C$[178]"U"[167]R%[178]R%[171]10:[153][199](13);"";:[137]220
  47. 380 [139]C$[178]"D"[167]R%[178]R%[170]10:[153][199](13);"";:[137]220
  48. 400 [139]C$[178]"L"[167]C%[178]C%[171]2:[137]470
  49. 420 [139]C$[178]"R"[167]C%[178]C%[170]2:[137]470
  50. 440 [139]C$[178]"J"[167]190
  51. 450 [139]C$[178]"M"[167]10
  52. 460 [137]340
  53. 470 [139]C%[179]1[176]C%[177]13[167][153][199](13);:[137]190
  54. 480 [137]230
  55. 500 [153][163]9);
  56. 510 [129]I[178]1[164]3
  57. 520 [153]"CONT    COLUMNWAIT";
  58. 530 [130]
  59. 540 [153][199](13);[163]9);
  60. 550 [129]I[178]C%[164]C%[170]2
  61. 560 S%[178]7:[139]I[179]10[167]S%[178]8
  62. 570 [153][166]S%);"";[196](I);"WAIT";
  63. 580 [130]
  64. 590 [153][199](13);
  65. 600 [129]I[178]R%[164]R%[170]19
  66. 610 S$[178]"":[139]I[179]10[167]S$[178]" "
  67. 620 [153][163]2);"CONTROW"S$[196](I);"WAITOPEN"
  68. 630 [130]
  69. 640 [142]
  70. 702 [133]"LOADWHAT IS NAME OF FILE YOU WANT";FL$
  71. 710 [153]"LOADLOOKING FOR ";FL$
  72. 720 [159]1,8,0,(FL$)
  73. 725 [153]"FOUND ";FL$;" .....LOADING"
  74. 730 [129]X[178]1[164]12
  75. 740 [129]Y[178]1[164]49
  76. 750 [132]1,V(X,Y)
  77. 760 [130]Y
  78. 770 [130]X
  79. 780 [206]#1:[153]"OK.....GOT DATA"
  80. 790 [129]I[178]1[164]1000:[130]I
  81. 795 [142]
  82. 802 [133]"LOADWHAT NAME FOR THIS FILE";FL$
  83. 840 [159]1,8,1,(FL$)
  84. 850 [129]X[178]1[164]12
  85. 860 [129]Y[178]1[164]49
  86. 870 [152]1,V(X,Y)
  87. 880 [130]Y
  88. 890 [130]X
  89. 900 [130]#1:[153]"OK.....DATA ON DISK"
  90. 910 [129]I[178]1[164]1000:[130]I
  91. 920 [142]
  92. 940 [153]"  "[184](A)"BYTES FREE
  93. 950 FORI=1TO1000:NEXTI
  94. 960 RETURN
  95. 1000 PRINT"[147]":PRINT
  96. 1010 INPUT"WHICH COLUMN (1-12)";K$
  97. 1020 CL=VAL(K$):IFCL<1ORCL>12THEN1000
  98. 1030 IFCL=13ORCL=14ORCL=15THENPRINT"RESERVED FOR TOTALS":GOTO1010
  99. 1040 INPUT"HOW MANY ROWS (1-50)";K$
  100. 1050 K=VAL(K$):IFK>50ORK<1THEN1040
  101. 1060 PRINT:PRINT"ROW","CURRENT","COLUMN";CL
  102. 1070 FORY=1TOK
  103. 1080 PRINT:PRINTY,V(CL,Y),:INPUT"[157][157][157][157][157][157][157][157][157][157][157]";V:V(CL,Y)=V
  104. 1090 NEXTY
  105. 1100 PRINT"C[154] FOR ANOTHER COLUMN        M[154] FOR MENU
  106. 1110 [161]D$:[139]D$[178]""[167]1110
  107. 1120 [139]D$[178]"C"[167]1000
  108. 1130 [142]
  109. 2020 [153]"LOADOPENYOU MAY CHOOSE ANY OF THE FOLLOWING"
  110. 2030 [153]"  1CONT SUM DOWN COLUMNS
  111. 2040 PRINT"  2[154] SUM ACROSS ROWS
  112. 2050 [153]"  3CONT REPRODUCE ANY COLUMN
  113. 2060 PRINT"  4[154] ADD-MULT-DIV-SUB AT ANY POINT
  114. 2070 [153]"  5CONT AVERAGE ACROSS ROWS (DO 2WAIT FIRST)
  115. 2080 PRINT"  6[154] MAKE ROW % OF BASE ROW
  116. 2090 [153]"  7CONT MAKE COLUMN % OF BASE COLUMN
  117. 2100 PRINT"  8[154] SUM INDIVIDUAL COLUMNS
  118. 2110 [153]"  9CONT SERIES OF CALCULATIONS
  119. 2120 PRINT"  M[154] RETURN TO MENU
  120. 2121 [153]"OPEN    TAB(TAB(TAB(TAB(TAB(TAB( TAB(TAB( TAB(TAB(TAB(TAB(
  121. 3500 PRINT"WHICH ONE ?";
  122. 3510 WAIT198,7:GETAN$:IFAN$=""THEN3510
  123. 3515 IFAN$="M"THENRETURN
  124. 3520 ONVAL(AN$)GOSUB4001,5010,6010,7010,8010,9010,10010,11010,11510
  125. 3530 GOTO2020
  126. 4001 PRINT"[147]DO YOU WISH TO DESIGNATE THE ROWS         TO BE SUMMED?"
  127. 4002 GETA$:IFA$=""THEN4002
  128. 4003 IFA$="N"THENS1=1:S2=49:GOTO4005
  129. 4004 INPUT"FIRST ROW";S1:INPUT"LAST ROW";S2:IFS1>S2ORS1<0ORS2>49THEN4001
  130. 4005 PRINTCR$;CT$:PRINT"SUM WILL BE STORED IN ROW"S2+1
  131. 4010 FORX=1TO14
  132. 4020 V(X,S2+1)=0
  133. 4030 NEXTX
  134. 4040 FORX=1TO14
  135. 4050 FORY=S1TOS2
  136. 4060 V(X,S2+1)=V(X,S2+1)+V(X,Y)
  137. 4070 NEXTY
  138. 4080 NEXTX
  139. 4090 RETURN
  140. 5010 PRINTCR$;CT$:PRINT"SUM WILL BE STORED IN COLUMN 13
  141. 5020 [129]Y[178]1[164]48
  142. 5030 V(13,Y)[178]0
  143. 5040 [130]Y
  144. 5050 [129]Y[178]1[164]48
  145. 5060 [129]X[178]1[164]12
  146. 5070 V(13,Y)[178]V(13,Y)[170]V(X,Y)
  147. 5080 [130]X
  148. 5090 [130]Y
  149. 5100 [142]
  150. 6010 [133]"LOADDUPLICATE WHICH COLUMN";CX
  151. 6015 [133]"PUT IT IN WHICH COLUMN";X
  152. 6030 [129]Y[178]1[164]50
  153. 6040 V(X,Y)[178]V(CX,Y)
  154. 6050 [130]Y
  155. 6060 [142]
  156. 7010 Y[178]0
  157. 7020 [153]"LOADAWAITDD    MWAITULTIPLY    SWAITUBTRACT    DWAITIVIDE
  158. 7030 GETA$:IFA$=""THEN7030
  159. 7040 FORX=1TO4:IFA$=MID$("AMSD",X,1)THENY=X
  160. 7050 NEXT:ONYGOTO7070,7130,7190,7250:GOTO7030
  161. 7070 INPUT"[147]AMOUNT TO ADD";AD
  162. 7080 INPUT"WHAT COL #";X
  163. 7090 INPUT"WHAT ROW #";Y
  164. 7100 V(X,Y)=V(X,Y)+AD
  165. 7110 GOTO7999
  166. 7130 INPUT"[147]AMOUNT TO MULTIPLY BY";ML
  167. 7140 INPUT"WHAT COL #";X
  168. 7150 INPUT"WHAT ROW #";Y
  169. 7160 V(X,Y)=V(X,Y)*ML
  170. 7170 GOTO7999
  171. 7190 INPUT"[147]AMOUNT TO SUBTRACT";SB
  172. 7200 INPUT"WHAT COL #";X
  173. 7210 INPUT"WHAT ROW #";Y
  174. 7220 V(X,Y)=V(X,Y)-SB
  175. 7230 GOTO7999
  176. 7250 INPUT"[147]AMOUNT TO DIVIDE BY";DV
  177. 7260 INPUT"WHAT COL #";X
  178. 7270 INPUT"WHAT ROW #";Y
  179. 7280 V(X,Y)=V(X,Y)/DV
  180. 7290 V(X,Y)=INT(V(X,Y)*1000+.5)/1000
  181. 7300 GOTO7999
  182. 7999 RETURN
  183. 8010 INPUT"[147]HOW MANY ITEMS IN EACH ROW";AVE
  184. 8020 PRINTCR$;CT$:PRINT"AVERAGE WILL BE STORED IN COLUMN 14
  185. 8030 [129]Y[178]1[164]50
  186. 8035 [139]V(13,Y)[178]0[167]8050
  187. 8040 V(14,Y)[178]V(13,Y)[173]AVE:V(14,Y)[178][181](V(14,Y)[172]1000[170].5)[173]1000
  188. 8050 [130]Y
  189. 8060 [142]
  190. 9010 [133]"LOADWHICH IS BASE ROW";BR
  191. 9020 [133]"WHICH IS ROW FOR PERCENTAGES";Y:[139]BR[178]Y[167][142]
  192. 9030 [129]X[178]1[164]13
  193. 9055 [139]V(X,BR)[178]0[167]9075
  194. 9060 V(X,Y)[178]V(X,Y)[173]V(X,BR):V(X,Y)[178][181](V(X,Y)[172]10000[170].5)[173]100
  195. 9075 [130]X
  196. 9080 [142]
  197. 10010 [133]"LOADWHICH IS BASE COLUMN";CX
  198. 10020 [133]"WHICH IS COLUMN FOR PERCENTAGES";X:[139]X[178]CX[167][142]
  199. 10030 [129]Y[178]1[164]50
  200. 10055 [139]V(CX,Y)[178]0[167]10075
  201. 10060 V(X,Y)[178]V(X,Y)[173]V(CX,Y):V(X,Y)[178][181](V(X,Y)[172]10000[170].5)[173]100
  202. 10075 [130]Y
  203. 10080 [142]
  204. 11010 [153]"LOADWHICH COLUMN DO YOU WANT TO SUM";
  205. 11020 [133]CA:[139]CA[179]1[176]CA[177]15[167]11020
  206. 11030 [153]"WWAITHOLE COLUMN OR PWAITART OF COLUMN?"
  207. 11040 [161]YN$:[139]YN$[179][177]"P"[175]YN$[179][177]"W"[167]11040
  208. 11050 [139]YN$[178]"P"[167][141]11210:[137]11065
  209. 11060 S1[178]1:S2[178]49
  210. 11065 V(CA,S2[170]1)[178]0
  211. 11070 [129]Y[178]S1[164]S2
  212. 11080 V(CA,S2[170]1)[178]V(CA,S2[170]1)[170]V(CA,Y)
  213. 11090 [130]Y
  214. 11100 [142]
  215. 11210 [133]"ROW OF FIRST ITEM IN THE SUM";S1
  216. 11215 [133]"ROW OF LAST ITEM IN THE SUM";S2:[139]S1[177]S2[176]S1[179]0[176]S2[177]49[167]11210
  217. 11220 [142]
  218. 11510 [153]:[153]"ONONONONONONHOW MANY CALCULATIONS (1-8)?"
  219. 11515 [129]I[178]1[164]5:[153]"                  ":[130]
  220. 11520 [161]NM$:[139]NM$[178]""[167]11520
  221. 11525 [139][197](NM$)[179]0[176][197](NM$)[177]8[167]11520
  222. 11530 NM[178][197](NM$):[139]NM[178]0[167][142]
  223. 11540 [153]"ONONONONONONENTER OPERATIONS IN THE ORDER YOU WANT  THEM TO BE PERFORMED."
  224. 11550 [129]I[178]1[164]NM
  225. 11560 [153]"ENTER OPERATION #"I"CMD           CMDCMDCMDCMDCMDCMDCMDCMD";
  226. 11570 [161]A$:OP(I)[178][197](A$):[139]OP(I)[179]1[176]OP(I)[177]8[167]11570
  227. 11575 [153]OP(I)
  228. 11580 [130]I
  229. 11590 [129]I[178]1[164]NM
  230. 11600 [145]OP(I)[141]4001,5010,6010,7010,8010,9010,10010,11010
  231. 11610 [130]I
  232. 11620 [142]
  233. 12010 [153]"LOADMAKE SURE PRINTER IS ON.":[153]"...HIT ANY KEY WHEN READY."
  234. 12020 [161]A$:[139]A$[178]""[167]12020
  235. 12030 [153]"DO YOU WANT TO DESIGNATE THE ROWS TO BE PRINTED?"
  236. 12040 [161]A$:[139]A$[178]""[167]12040
  237. 12050 [139]A$[178]"N"[167]S1[178]1:S2[178]50:[137]12070
  238. 12060 [133]"FIRST ROW TO BE PRINTED";S1:[133]"LAST ROW TO BE PRINTED";S2
  239. 12070 SP$[178]"                   "
  240. 12080 [159]4,4
  241. 12100 [152]4,"          COLUMNS    ";:[129]I[178]1[164]5:[152]4,I;"           ";:[130]
  242. 12110 [152]4
  243. 12120 [129]Y[178]S1[164]S2
  244. 12130 [152]4,[200]("ROW"[170][196](Y)[170]SP$,10);
  245. 12135 [129]I[178]1[164]5:[152]4,[201](SP$[170][196](V(I,Y)),14);:[130]I:[152]4
  246. 12140 [130]Y:[152]4:[152]4
  247. 12150 [152]4,"          COLUMNS    ";:[129]I[178]6[164]10:[152]4,I;"           ";:[130]
  248. 12155 [152]4
  249. 12160 [129]Y[178]S1[164]S2
  250. 12170 [152]4,[200]("ROW"[170][196](Y)[170]SP$,10);
  251. 12175 [129]I[178]6[164]10:[152]4,[201](SP$[170][196](V(I,Y)),14);:[130]I:[152]4
  252. 12180 [130]Y:[152]4:[152]4
  253. 12190 [152]4,"          COLUMNS    ";:[129]I[178]11[164]15:[152]4,I;"          ";:[130]
  254. 12195 [152]4
  255. 12200 [129]Y[178]S1[164]S2
  256. 12210 [152]4,[200]("ROW"[170][196](Y)[170]SP$,10);
  257. 12215 [129]I[178]11[164]15:[152]4,[201](SP$[170][196](V(I,Y)),14);:[130]I:[152]4
  258. 12220 [130]Y
  259. 12230 [152]4:[142]
  260. 12239 [158]58692
  261. 12240 [133]"ARE YOU SURE?  Y/NWAIT";ZA$
  262. 12245 [139]ZA$[178]"N"[167] [137]10
  263. 12246 [139]ZA$[178]"Y"[167] [137]12250[178]
  264. 12250 [133]" NOW YOU'RE COMPLETELY SURE?  Y/NWAIT";ZB$
  265. 12255 [139] ZB$[178]"Y"[167] [137]13000
  266. 12260 [139] ZB$[178]"N"[167] [137]10
  267. 13000 [153]"WELL GOOD-BY THEN,":[158]64738
  268.