home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / steel14.zip / CHANGE.BAS < prev    next >
BASIC Source File  |  1983-03-10  |  30KB  |  1,003 lines

  1. 3 DEFDBL X         
  2. 4 DEFINT A-W,Y-Z
  3. 5 DIM F$(15),FLDN$(15,30),FTY(15,30),FL(15,30)
  4. 10 DIM X$(30),Y$(30)
  5. 13 DIM L(15),NREC(15),Z$(30),EGL(30),KT(30),I#(30,5),I$(30,5),ORN(30)
  6. 14 DIM X(30),CK$(30),SN$(30),SFN(30)
  7. 16 DIM KY(15,30),KEYLIST(15,30),L$(10,100),LEND(30),CL(30)
  8. 17 DIM ORNFLG(30),FTA(30),ATF(30),BTF(30),IMAX(30)
  9. 18 DIM SU%(40),S!(30),SUM#(40)
  10. 20 DIM XL(40),TC(30)
  11. 22 DIM ORFLG(30),D(30),TFN(30),KTSUM(10),SUMFN(10)
  12. 25 DIM S#(30)
  13. 26 DIM MAX(10),Z%(10),SU#(30),D#(10),EFN(10,30)
  14. 35 DIM K$(80)
  15. 40 DIM CNST#(30),CNST$(30),FFLD(30)
  16. 42 DIM MAXK(10),MAXSAF(3)
  17. 61 CH = 29: PRINT FRE(0)      
  18. 70 NE = 0
  19. 75 GOSUB 50000
  20. 77 GOSUB 60000
  21. 80 GOSUB 10000
  22. 90 GOSUB 11000
  23. 400 GOSUB 13000
  24. 402 IF KD < 5 THEN GOSUB 11000
  25. 404 GOSUB 13000
  26. 410 PRINT "**********  CHANGE PROGRAM  --  WHAT FILE DO YOU WANT:  **********"
  27. 420 PRINT ""
  28. 425 PRINT " 0  - *** EXIT THE PROGRAM ***"
  29. 430 FOR I = 1 TO MAXF
  30. 440 PRINT I;" - ";F$(I)
  31. 450 NEXT I
  32. 460 PRINT ""
  33. 470 PRINT "***** ENTER THE NUMBER OF THE FILE YOU WANT THEN PRESS RETURN *****"
  34. 475 GOSUB 14000
  35. 477 IF DT# < 0 OR DT#>MAXF  GOTO 475
  36. 480 A = DT#
  37. 482 IF A = 0 GOTO 51000
  38. 483 GOSUB 13000
  39. 484 PRINT "FILE : "; F$(A)
  40. 485 GOSUB 2300
  41. 490 GOSUB 2500
  42. 500 GOTO 6000
  43. 2300 REM **************  DISK  SELECTION  ***************
  44. 2302 IF HDISK = 2 THEN GOSUB 13000
  45. 2303 IF HDISK = 2 THEN GOTO 2360
  46. 2304 PRINT ""
  47. 2305 PRINT "************  WHICH DISK DRIVE IS THE FILE ON  **************"
  48. 2310 PRINT ""
  49. 2315 PRINT "                 1 - DISK DRIVE A"
  50. 2320 PRINT "                 2 - DISK DRIVE B"
  51. 2325 PRINT "                 3 - DISK DRIVE C"
  52. 2330 PRINT "                 4 - DISK DRIVE D"
  53. 2335 PRINT ""
  54. 2340 PRINT "***********  ENTER THE NUMBER THEN PRESS RETURN  ************"
  55. 2345 GOSUB 14000
  56. 2347 IF DT# < 0 OR DT#>4 GOTO 2345
  57. 2350 T = DT#
  58. 2355 ON T GOTO 2360,2370,2380,2390
  59. 2360 T$ = F$(A)
  60. 2365 GOTO 2490
  61. 2370 T$ = "B:"+F$(A)
  62. 2375 GOTO 2490
  63. 2380 T$ = "C:"+F$(A)
  64. 2385 GOTO 2490
  65. 2390 T$ = "D:"+F$(A)
  66. 2490 RETURN
  67. 2500 REM *******  OPEN FILE SUBROUTINE  *******
  68. 2503 CLOSE #1
  69. 2505 OPEN "R",#1,T$,L(A)
  70. 2507 D = 0
  71. 2510 FOR T = 1 TO NREC(A)
  72. 2520 FIELD #1,D AS DY$,FL(A,T) AS X$(T)
  73. 2530 D = D + FL(A,T)
  74. 2540 NEXT T
  75. 2543 GOSUB 7800
  76. 2545 RETURN
  77. 2550 REM *******   OPEN SECOND FILE  *******
  78. 2553 CLOSE #2
  79. 2555 OPEN "R",#2,T$,L(A)
  80. 2565 FIELD #2,L AS Y$
  81. 2578 RETURN
  82. 2580 REM *******   OPEN THIRD FILE  *******
  83. 2582 PRINT C,F$(C),L(C)
  84. 2584 OPEN "R",#2,F$(C),L(C)
  85. 2586 D = 0
  86. 2588 FOR T = 1 TO NREC(C)
  87. 2590 FIELD #2,D AS DY$,FL(C,T) AS Z$(T)
  88. 2592 D = D + FL(C,T)
  89. 2594 NEXT T
  90. 2596 RETURN
  91. 3010 GOTO 400
  92. 6000  REM  **********  LOOP THROUGH FIELDS  ************
  93. 6001 EFLG = 0:GOSUB 10700
  94. 6002 GOSUB 10200
  95. 6003 FOR Q = 1 TO NREC(A)
  96. 6006 GOSUB 6045
  97. 6009 NEXT Q
  98. 6010 REM *********  ADD OPTIONS  *******
  99. 6011 GOSUB 20000
  100. 6012 REM  **********  GET STARTING RECORD  **********
  101. 6015 GOSUB 6375
  102. 6018 REM  **********  GET RECORDS  ***********
  103. 6021 RN = RN - 1
  104. 6024 RN = RN + 1
  105. 6027 GOSUB 6090
  106. 6029 IF MATCH = 0 THEN PRINT "RECORD NUMBER ";RN ;" CONDITIONS NOT MET"
  107. 6030 IF MATCH = 0 GOTO 6024
  108. 6036 REM ********  PRINT ON PAPER  ********
  109. 6039 GOSUB 30000 
  110. 6040 IF PRTOPT = 1 THEN GOSUB 12200
  111. 6041 IF PRTOPT <> 1 THEN GOSUB 12000
  112. 6042 GOTO 6024
  113. 6045 REM  ***********  LOOP THROUGH FIELDS  ************
  114. 6048 GOSUB 6129
  115. 6050 IF EGL(Q) = 1 THEN RETURN
  116. 6051 IF FTY(A,Q) = 1 THEN GOTO 6069
  117. 6057 REM ******  NUMBERS  ********
  118. 6060 ON EGL(Q) GOSUB 6045,6201,6234,6234,6201
  119. 6063 GOTO 6075
  120. 6066 REM ******  STRINGS  *******
  121. 6069 ON EGL(Q) GOSUB 6366,6246,6279,6279,6246
  122. 6072 REM **********  OR ROUTINE  ******
  123. 6075 GOSUB 6288
  124. 6078 IF DT# = 2 THEN GOSUB 6324
  125. 6087 RETURN
  126. 6090  REM  **************  GET RECORDS  *****************
  127. 6093  GOSUB 6396
  128. 6096 FOR Q = 1 TO NREC(A)
  129. 6099 REM ***********  CONVERT STRINGS TO DECIMALS  *********
  130. 6102 GOSUB 6435
  131. 6105 IF TEST = 1 THEN GOTO 6123
  132. 6108 IF TEST = 0 THEN GOSUB 6561
  133. 6111 REM *******  OR CHECK RESULTS  *********
  134. 6114 IF TEST = 1 THEN GOTO 6123
  135. 6117 MATCH = 0
  136. 6120 RETURN
  137. 6123 NEXT Q
  138. 6124 MATCH = 1
  139. 6126 RETURN 
  140. 6129 GOSUB 13000
  141. 6138 PRINT "FIELD NUMBER: ";Q;"FIELD NAME: ";FLDN$(A,Q)
  142. 6141 K = 0
  143. 6147 PRINT "******************  CHOSE A RELATIONSHIP  *******************"
  144. 6153 PRINT " 0 - RETURN TO FILE OPTIONS  "
  145. 6156 PRINT " 1 - ANY VALUE IS ACCEPTABLE"
  146. 6159 PRINT " 2 - ";FLDN$(A,Q);" EQUAL TO  X"
  147. 6162 PRINT " 3 - ";FLDN$(A,Q);" GREATER THEN  X"
  148. 6165 PRINT " 4 - ";FLDN$(A,Q);" LESS THEN  X"
  149. 6166 PRINT " 5 - ";FLDN$(A,Q);" BETWEEN X AND Y"
  150. 6171 PRINT "***********  ENTER THE NUMBER THEN PRESS RETURN   ***********"
  151. 6177 REM ******* EGL MEANS EQUAL GREATER OR LESS THEN *****
  152. 6180 GOSUB 14000
  153. 6181 IF DT# < 0 OR DT#>5 GOTO 6180
  154. 6183 EGL(Q) = DT#
  155. 6189 IF EGL(Q) = 0 GOTO 3010
  156. 6192 RETURN
  157. 6195 IF FTY(A,Q)=1 THEN GOTO 6243
  158. 6198 ON EGL(Q) GOTO 6366,6201,6234,6234,6201
  159. 6201 PRINT "**********  ENTER THE VALUE OF X THEN PRESS RETURN  **********"
  160. 6204 K = K + 1 
  161. 6207 KT(Q)=K
  162. 6209 GOSUB 14300
  163. 6210 I#(Q,K) = DT#
  164. 6211 IF EGL(Q) = 5 AND K = 2 THEN RETURN
  165. 6212 IF EGL(Q) = 5 THEN PRINT "**********  ENTER THE VALUE OF Y THEN PRESS RETURN  **********"
  166. 6213 IF EGL(Q) = 5 GOTO 6204
  167. 6215 PRINT "***************  MUTIPLE VALUES OF X ?  *****************"
  168. 6216 PRINT " 1 - MORE VALUES OF X "        
  169. 6219 PRINT " 2 - NO MORE VALUES OF X "      
  170. 6222 PRINT "*********  ENTER THE NUMBER THEN PRESS RETURN  **********"     
  171. 6225 GOSUB 14000
  172. 6226 IF DT# <1 OR DT# > 2  GOTO 6225
  173. 6228 IF DT# = 1 GOTO 6201
  174. 6231 RETURN
  175. 6234 PRINT "*******  ENTER THE VALUE OF X THEN PRESS RETURN  ********"     
  176. 6235 GOSUB 14300
  177. 6237 I#(Q,1) = DT#
  178. 6240 RETURN
  179. 6243 ON EGL(Q) GOTO 6366,6246,6279,6279
  180. 6246 PRINT "*******  ENTER THE VALUE OF X THEN PRESS RETURN  *******"
  181. 6249 K = K + 1 
  182. 6252 KT(Q)=K
  183. 6253 MAX = 30
  184. 6254 GOSUB 15030
  185. 6255 I$(Q,K) = A$
  186. 6256 IF EGL(Q) = 5 AND K = 2 THEN RETURN
  187. 6257 IF EGL(Q) = 5 THEN PRINT "*******  ENTER THE VALUE OF Y THEN PRESS RETURN  *******"
  188. 6258 IF EGL(Q) = 5 THEN GOTO 6249
  189. 6260 PRINT "***************  MUTIPLE VALUES OF X ?  *****************"
  190. 6261 PRINT " 1 - MORE VALUES OF X "        
  191. 6264 PRINT " 2 - NO MORE VALUES OF X "      
  192. 6267 PRINT "*********  ENTER THE NUMBER THEN PRESS RETURN  **********"     
  193. 6270 GOSUB 14000
  194. 6271 IF DT# <1 OR DT# >2  GOTO 6270
  195. 6273 IF DT# = 1  GOTO 6246
  196. 6276 RETURN
  197. 6279 PRINT "*******  ENTER THE VALUE OF X THEN PRESS RETURN  *******"
  198. 6280 MAX = 30
  199. 6281 GOSUB 15030
  200. 6282 I$(Q,1) = A$
  201. 6285 RETURN
  202. 6288 REM ************** OR / AND ROUTINE **************
  203. 6290 IF Q = NREC(A) THEN RETURN
  204. 6291 PRINT ""
  205. 6294 PRINT "*****  DO YOU WANT THIS CONDITON ORed WITH ANOTHER CONDITION  ****"
  206. 6297 PRINT "  1 -  NO, THIS CONDITION MUST BE MEET   "
  207. 6300 PRINT "  2 -  YES, CHECK ANOTHER FIELD TO SEE IF IT MEETS IT'S CONDITION"
  208. 6303 PRINT "     - Use only on the lower number field of the 2 you want to or"
  209. 6306 PRINT "*************  ENTER THE NUMBER THEN PRESS RETURN  ***************"
  210. 6309 GOSUB 14000
  211. 6310 IF DT# <1 OR DT# >2  GOTO 6309
  212. 6315 ORN(Q) = 0
  213. 6318 RETURN
  214. 6321 IF A$ ="1" GOTO 6366
  215. 6324 GOSUB 13000
  216. 6327 PRINT "--------------------  OR OPTION  --------------------------"
  217. 6333 PRINT "**************  WHAT FIELD DO YOU WANT ?  ******************"
  218. 6336 PRINT "FIELD NUMBER: ";Q;"FIELD NAME: ";FLDN$(A,Q)
  219. 6339 PRINT "********************  ORed WITH  ***************************"
  220. 6345 FOR N = (Q+1) TO NREC(A)
  221. 6348 PRINT "FIELD NUMBER: ";N;"FIELD NAME: ";FLDN$(A,N)
  222. 6351 NEXT N
  223. 6357 PRINT "***********  ENTER THE NUMBER THEN PRESS RETURN  ***********"
  224. 6360 GOSUB 14000
  225. 6361 IF DT# <(Q+1) OR DT# > NREC(A) GOTO 6360
  226. 6363 ORN(Q) = DT#
  227. 6366 RETURN
  228. 6372 F4 = 23
  229. 6375 GOSUB 13000
  230. 6378 PRINT "********  WHAT RECORD DO YOU WANT TO START AT  *********"
  231. 6381 PRINT ""
  232. 6384 PRINT "********  ENTER THE NUMBER THEN PRESS RETURN  *********"
  233. 6387 GOSUB 14100
  234. 6388 IF DT# <1 OR DT# > 20000  GOTO 6387
  235. 6390 RN = DT#
  236. 6393 RETURN
  237. 6396 REM GET RECORD
  238. 6399 IF INKEY$ <> "" THEN GOSUB 6576
  239. 6402 IF RN > MRN THEN GOSUB 26500
  240. 6403 IF EFLG = 1 GOTO 400 
  241. 6405 GET #1,RN
  242. 6417 FOR J = 1 TO NREC(A)
  243. 6420 ORFLG(J) = 0
  244. 6423 NEXT J
  245. 6426 RETURN
  246. 6429 Q = Q + 1
  247. 6432 REM
  248. 6435 ON FTY(A,Q) GOTO 6507,6441,6453,6465,6465
  249. 6438 REM ************** CONVERT STRINGS TO DECIMALS ****************
  250. 6441 I%=CVI(X$(Q))
  251. 6444 I# = I%
  252. 6447 S#(Q) = I#
  253. 6450 GOTO 6471
  254. 6453 I!=CVS(X$(Q))
  255. 6456 I# = I!
  256. 6459 S#(Q) = I#
  257. 6462 GOTO 6471
  258. 6465 I#=CVD(X$(Q))
  259. 6468 S#(Q) = I#
  260. 6471 IF ORFLG(Q) = 1 GOTO 6546
  261. 6474 REM ************** CHECK NUMBERS FOR RELATIONS ***************
  262. 6477 ON EGL(Q) GOTO 6546,6480,6492,6498,6502
  263. 6480 FOR K = 1 TO KT(Q)
  264. 6483 IF I#=I#(Q,K) GOTO 6546
  265. 6486 NEXT K 
  266. 6489 GOTO 6561
  267. 6492 IF I#>I#(Q,1) GOTO 6546
  268. 6495 GOTO 6561 
  269. 6498 IF I# < I#(Q,1) GOTO 6546
  270. 6501 GOTO 6561
  271. 6502 IF I# > I#(Q,1) AND I# < I#(Q,2) GOTO 6546
  272. 6503 GOTO 6561
  273. 6504 REM **************CHECK STRINGS FOR RELATIONS **************
  274. 6507 ON EGL(Q) GOTO 6546,6510,6534,6540,6544
  275. 6510 FOR K = 1 TO KT(Q)
  276. 6513 Y$ = I$(Q,K)
  277. 6516 Y = LEN(Y$)
  278. 6519 X$ = X$(Q)
  279. 6522 X$ = LEFT$(X$,Y)
  280. 6525 IF X$=I$(Q,K) GOTO 6546
  281. 6528 NEXT K 
  282. 6531 GOTO 6561
  283. 6534 IF X$(Q) > I$(Q,1) GOTO 6546
  284. 6537 GOTO 6561
  285. 6540 IF X$(Q) < I$(Q,1) GOTO 6546
  286. 6543 GOTO 6561
  287. 6544 IF X$(Q) > I$(Q,1) AND X$(Q) < I$(Q,2) GOTO 6546
  288. 6545 GOTO 6561
  289. 6546 P = ORN(Q)
  290. 6549 IF P = 0 GOTO 6555
  291. 6552 ORFLG(P) = 1
  292. 6555 TEST = 1
  293. 6558 RETURN
  294. 6561 TEST = 0
  295. 6567 IF ORN(Q) <> O THEN TEST = 1 ELSE TEST = 2
  296. 6573 RETURN
  297. 6576 REM ******** PAUSE SUBROUTINE ********
  298. 6579 PRINT "******************  PAUSE SUBROUTINE  **********************"
  299. 6582 PRINT " 1 - CONTINUE SCANNING"
  300. 6585 PRINT " 0 - STOP SCANNING "
  301. 6588 PRINT "***********  ENTER THE NUMBER THEN PRESS RETURN  ***********"    
  302. 6591 GOSUB 14000
  303. 6593 IF DT# <0 OR DT# >1  GOTO 6588
  304. 6597 IF DT# = 0 THEN GOTO 400 
  305. 6600 RETURN
  306. 7800 MRN = LOF(1)/ L(A)
  307. 7805 REM MRN = INT(MRN)
  308. 7810 RETURN
  309. 7900 REM ***** LOF
  310. 7910 MRN2 = LOF(3)/82
  311. 7920 RETURN
  312. 7950 REM ******* LOF
  313. 7960 MRNS = LOF(B)/L(B)
  314. 7970 RETURN
  315. 9070 ON FTY(A,N) GOTO 9100,9150,9200,9250,9250
  316. 9100 REM
  317. 9110 LSET X$(N) = I$
  318. 9120 GOTO 9290
  319. 9150 REM
  320. 9160 LSET X$(N) = MKI$(I#)
  321. 9170 GOTO 9290
  322. 9200 REM
  323. 9210 LSET X$(N) = MKS$(I#)
  324. 9220 GOTO 9290
  325. 9250 REM  
  326. 9260 LSET X$(N) = MKD$(I#)
  327. 9290 RETURN
  328. 10000 REM *************  READ SUBROUTINE  *************
  329. 10004 GOSUB 10900
  330. 10010 OPEN "I",#1,"FFILE"
  331. 10020 INPUT #1,MAXF
  332. 10030 FOR A = 1 TO MAXF
  333. 10040 INPUT #1,A,F$(A),NREC(A),L(A)
  334. 10050 FOR N = 1 TO NREC(A)
  335. 10060 INPUT #1,FLDN$(A,N),FTY(A,N),FL(A,N)
  336. 10070 IF FTY(A,N) = 2 THEN INPUT #1,KY(A,N),KEYLIST(A,N)
  337. 10080 NEXT N
  338. 10090 NEXT A
  339. 10100 CLOSE #1
  340. 10110 RETURN
  341. 10200 REM  *******  SELECTIVE SCAN CONTINUED  ********
  342. 10210 GOSUB 13000
  343. 10220 PRINT "*****************  CHANGE        PROGRAM  *****************"
  344. 10230 PRINT ""
  345. 10240 PRINT "********  WHAT DO YOU WANT DONE WITH THE RESULTS  *********"
  346. 10250 PRINT ""
  347. 10260 PRINT "           1 - SHOWN ON THE MONITOR (TV) ONLY "
  348. 10370 PRINT "           2 - PRINT ON PAPER AND SHOWN ON THE MONITOR "
  349. 10400 PRINT ""
  350. 10500 PRINT "***********  ENTER THE NUMBER THEN PRESS RETURN  ***********"
  351. 10510 GOSUB 14000
  352. 10512 IF DT# <1 OR DT# >2 GOTO 10510
  353. 10520 IF DT# = 2 THEN PRTOPT = 1 ELSE PRTOPT = 0
  354. 10530 RETURN
  355. 10700 REM ******  SELECTIVE SCAN INTRO 
  356. 10705 GOSUB 13000
  357. 10710 RETURN
  358. 10900 REM  *************  PUT DISK IN DRIVE SUB
  359. 10905 IF HDISK = 2 THEN RETURN
  360. 10910 GOSUB 13000
  361. 10920 PRINT "    ********  PUT PROGRAM DATA DISK IN THE DEFAULT DISK DRIVE  *********"
  362. 10930 PRINT ""
  363. 10940 PRINT "                     THEN PRESS ANY KEY TO CONTINUE "
  364. 10950 PRINT ""
  365. 10960 PRINT "    If the program data disk is already in the default disk drive then"
  366. 10965 PRINT "                   just press any key to continue."
  367. 10970 PRINT ""
  368. 10990 IF INKEY$ = "" GOTO 10990
  369. 10995 RETURN
  370. 11000 REM  ********  LOAD KEYLIST  *********
  371. 11010 GOSUB 13000
  372. 11100 A = 10
  373. 11105 PRINT "FILE : KEYLIST "
  374. 11110 GOSUB 2300
  375. 11120 GOSUB 2500
  376. 11130 FOR T = 1 TO 10000
  377. 11140 IF T > MRN GOTO 11900
  378. 11150 GET #1,T
  379. 11160 T1 = CVI(X$(1))
  380. 11170 T2 = CVI(X$(2))
  381. 11180 L$(T1,T2) = X$(3)
  382. 11185 IF T2 > MAXK(T1) THEN MAXK(T1) = T2
  383. 11190 NEXT T
  384. 11900 KD = 5
  385. 11935 CLOSE #1
  386. 11940 RETURN
  387. 12000 REM ******  PRINT SUBROUTINE  *****
  388. 12010 PRINT "*************  FILE : ";F$(A);"- ";"RECORD NUMBER: ";RN;" *************"
  389. 12020 FOR Q = 1 TO NREC(A)
  390. 12025 REM  IF Q MOD 20 = 0 THEN GOSUB 12170
  391. 12030 PRINT Q; TAB(5) FLDN$(A,Q);     
  392. 12040 ON FTY(A,Q) GOTO 12050,12070,12100,12130,12142
  393. 12050 PRINT TAB(26) X$(Q)
  394. 12060 GOTO 12150
  395. 12070 I%=CVI(X$(Q))
  396. 12075 PRINT TAB(25) I%;
  397. 12080 IF KY(A,Q) <> 2 THEN PRINT ""
  398. 12082 IF KY(A,Q) <> 2 THEN GOTO 12150
  399. 12084 T1 = KEYLIST(A,Q)
  400. 12085 IF I% < 0 THEN I% = 0
  401. 12086 W$ = L$(T1,I%)
  402. 12090 PRINT TAB(30) "key: ";W$
  403. 12095 GOTO 12150
  404. 12100 I!=CVS(X$(Q))
  405. 12110 PRINT TAB(25) I!
  406. 12120 GOTO 12150
  407. 12130 I#=CVD(X$(Q))
  408. 12140 PRINT TAB(25)  I#
  409. 12141 GOTO 12150
  410. 12142 I#=CVD(X$(Q))
  411. 12144 PRINT TAB(26);
  412. 12146 PRINT USING "**$########.##";I#
  413. 12150 NEXT Q
  414. 12152 IF Q < 20 THEN RETURN
  415. 12153 PRINT""
  416. 12154 PRINT ""
  417. 12155 PRINT ""
  418. 12156 PRINT ""
  419. 12157 PRINT ""
  420. 12160 RETURN
  421. 12170 PRINT "***  MORE FIELDS, PRESS ANY KEY TO CONTINUE  ***"
  422. 12180 IF INKEY$ = "" GOTO 12180
  423. 12190 RETURN
  424. 12200 PRINT ""
  425. 12210 LPRINT ""
  426. 12220 PRINT "RECORD NUMBER: ";RN
  427. 12230 LPRINT "RECORD NUMBER: ";RN
  428. 12240 FOR Q = 1 TO NREC(A)
  429. 12250 PRINT  Q;TAB(5) FLDN$(A,Q);     
  430. 12260 LPRINT Q;TAB(5) FLDN$(A,Q);     
  431. 12270 ON FTY(A,Q) GOTO 12280,12310,12350,12390,12425
  432. 12280 PRINT TAB(26) X$(Q)
  433. 12290 LPRINT TAB(26) X$(Q)
  434. 12300 GOTO 12480
  435. 12310 I%=CVI(X$(Q))
  436. 12312 PRINT TAB(25) I%;
  437. 12314 LPRINT TAB(25) I%;
  438. 12316 IF KY(A,Q) <> 2 THEN PRINT ""
  439. 12318 IF KY(A,Q) <> 2 THEN LPRINT ""
  440. 12320 IF KY(A,Q) <> 2 THEN GOTO 12480
  441. 12322 T1 = KEYLIST(A,Q)
  442. 12324 W$ = L$(T1,I%)
  443. 12326 PRINT TAB(30) "key: ";W$
  444. 12328 LPRINT TAB(30) "key: ";W$
  445. 12330 GOTO 12480
  446. 12340 GOTO 12480
  447. 12350 I!=CVS(X$(Q))
  448. 12360 PRINT TAB(25) I!
  449. 12370 LPRINT TAB(25) I!
  450. 12380 GOTO 12480
  451. 12390 I#=CVD(X$(Q))
  452. 12400 PRINT TAB(25)  I#
  453. 12410 LPRINT TAB(25)  I#
  454. 12420 GOTO 12480
  455. 12425 I#=CVD(X$(Q))
  456. 12430 PRINT TAB(26);
  457. 12440 PRINT USING "**$########.##";I#
  458. 12450 LPRINT TAB(26);
  459. 12460 LPRINT USING "**$########.##";I#
  460. 12480 NEXT Q
  461. 12490 RETURN
  462. 12500 PRINT ""
  463. 12510 LPRINT ""
  464. 12520 PRINT "RECORD # ";RN;" "; 
  465. 12530 LPRINT "RECORD # ";RN;" ";
  466. 12540 FOR Q = 1 TO NREC(A)
  467. 12545 IF LEND(Q)= 5 THEN PRINT ""
  468. 12547 IF LEND(Q)= 5 THEN LPRINT ""
  469. 12548 T2 = CL(Q) + 6
  470. 12550 PRINT TAB(CL(Q))"<";Q;">";
  471. 12560 LPRINT TAB(CL(Q))"<";Q;">";
  472. 12570 ON FTY(A,Q) GOTO 12580,12610,12730,12770,12810
  473. 12580 PRINT TAB(T2) X$(Q);
  474. 12590 LPRINT TAB(T2) X$(Q);
  475. 12600 GOTO 12860
  476. 12610 I%=CVI(X$(Q))
  477. 12620 PRINT TAB(T2)I%;
  478. 12630 LPRINT TAB(T2)I%;
  479. 12660 IF KY(A,Q) <> 2 THEN GOTO 12860
  480. 12670 T1 = KEYLIST(A,Q)
  481. 12680 W$ = L$(T1,I%)
  482. 12685 T1 = CL(Q) + 11
  483. 12690 PRINT TAB(T1)"key: ";W$;
  484. 12700 LPRINT TAB(T1)"key: ";W$;
  485. 12720 GOTO 12860
  486. 12730 I!=CVS(X$(Q))
  487. 12740 PRINT TAB(T2)I!;
  488. 12750 LPRINT TAB(T2)I!;
  489. 12760 GOTO 12860
  490. 12770 I#=CVD(X$(Q))
  491. 12780 PRINT TAB(T2)I#;
  492. 12790 LPRINT TAB(T2)I#;
  493. 12800 GOTO 12860
  494. 12810 I#=CVD(X$(Q))
  495. 12820 PRINT TAB(T2) "";
  496. 12830 PRINT USING "**$########,.##";I#;
  497. 12840 LPRINT TAB(T2) "";
  498. 12850 LPRINT USING "**$########,.##";I#;
  499. 12860 NEXT Q
  500. 12870 RETURN
  501. 12880 PRINT " HOW MANY COLUMNS ARE THERE ON YOUR PRINTER "
  502. 12890 GOSUB 14100
  503. 12892 COLM = DT#
  504. 12895 RETURN
  505. 12900 REM ******* TAB CONTROL *******
  506. 12901 C = 15
  507. 12902 FOR T = 1 TO NREC(A)
  508. 12903 LEND(T) = 0
  509. 12905 CL(T)= C 
  510. 12906 GOSUB 12910:PRINT T;CL(T); " RETURNED FROM 12910 "
  511. 12907 IF C > COLM THEN GOSUB 12970
  512. 12908 PRINT T;CL(T): NEXT T
  513. 12909 RETURN
  514. 12910 ON FTY(A,T) GOTO 12920,12930,12940,12950,12950
  515. 12920 C = C + FL(A,T) + 5
  516. 12925 RETURN     
  517. 12930 C = C + 11
  518. 12933 IF KY(A,T) = 2 THEN C = C + 30
  519. 12935 RETURN
  520. 12940 C = C + 13
  521. 12945 RETURN    
  522. 12950 C = C + 18
  523. 12952 RETURN
  524. 12970 CL(T)= 1
  525. 12972 C =1
  526. 12974 LEND(T) = 5
  527. 12975 GOSUB 12910
  528. 12980 RETURN
  529. 13000 REM *********  CLEAR SCREEN
  530. 13010 CLS
  531. 13020 RETURN
  532. 13100 REM *********  LOCATE  
  533. 13110 LOCATE LI,1
  534. 13120 RETURN
  535. 13200 FOR T% = 1 TO 80
  536. 13210 PRINT CHR$(8);
  537. 13220 NEXT T%
  538. 13222 FOR T% = 1 TO 24
  539. 13223 PRINT CHR$(11);
  540. 13224 NEXT T%
  541. 13225 LI = LI - 1
  542. 13230 FOR T% = 1 TO LI
  543. 13240 PRINT CHR$(0)
  544. 13250 NEXT T%
  545. 13590 RETURN
  546. 13600 REM ****** CHECK FOR ASC0
  547. 13610 S4$ = INKEY$
  548. 13620 C2 =  ASC(S4$)
  549. 13630 IF C2 = 83 THEN C = 1
  550. 13640 IF C2 = 82 THEN C = 6
  551. 13650 IF C2 = 75 THEN C = 19
  552. 13660 IF C2 = 77 THEN C = 4 
  553. 13670 RETURN
  554. 14000 REM *******  INTEGER LESS THEN 100 CHECK  ********
  555. 14010 MAX = 2
  556. 14020 ACT$ = "1234567890=<>^"
  557. 14023 IF NE = 0 THEN ACT$ = "1234567890"
  558. 14025 PRINT ">__<";
  559. 14030 GOTO 14500
  560. 14100 REM *******  INTEGER *******                        
  561. 14110 MAX = 8
  562. 14120 ACT$ = "1234567890-+,=<>^"
  563. 14123 IF NE = 0 THEN ACT$ = "1234567890-+,"
  564. 14125 PRINT ">________<";
  565. 14130 GOTO 14500
  566. 14200 REM *******  SINGLE PRECISION  *******                        
  567. 14210 MAX = 10
  568. 14220 ACT$ = "1234567890-+,.%$=<>^"
  569. 14223 IF NE = 0 THEN ACT$ = "1234567890+-,.%$"
  570. 14225 PRINT ">__________<";
  571. 14230 GOTO 14500
  572. 14300 REM *******  DOUBLE PRECISION  *******                        
  573. 14310 MAX = 20
  574. 14320 ACT$ = "1234567890-+,.%$=<>^"
  575. 14323 IF NE = 0 THEN ACT$ = "1234567890+-,.%$"
  576. 14325 PRINT ">____________________<";
  577. 14330 GOTO 14500
  578. 14500 REM ********** NUMBER CHECK **********
  579. 14505 A$ = ""
  580. 14510 K$(20) = " "
  581. 14515 KTMAX = 0
  582. 14520 FOR T9 = 1 TO MAX
  583. 14525 K$(T9) = " "
  584. 14530 NEXT T9
  585. 14535 DIG$ = "1234567890."
  586. 14540 DOTFLG = 0
  587. 14541 T2 = MAX + 1
  588. 14542 FOR T6 = 1 TO T2
  589. 14544 PRINT CHR$(CH);
  590. 14546 NEXT T6
  591. 14550 IF INKEY$ = "" GOTO 14560 ELSE GOTO 14550
  592. 14560 KT = 0
  593. 14565 REM ***********  CHECK ALFANUMERIC INPUT FOR LENGTH  ***********
  594. 14570 KT = KT + 1
  595. 14575 REM     
  596. 14580 W$ = INKEY$
  597. 14585 IF W$ = "" GOTO 14580
  598. 14590 C = ASC(W$)
  599. 14593 IF C = 0 THEN GOSUB 13600
  600. 14595 IF C = 13 GOTO 14660
  601. 14600 IF C = 17 OR C = 8 GOTO 14860
  602. 14605 IF C = 19 GOTO 14690
  603. 14610 IF C = 4 GOTO 14710
  604. 14615 IF C = 6 GOTO 14730
  605. 14620 IF C = 1 GOTO 14790
  606. 14625 IF KT > MAX GOTO 14575
  607. 14630 IF INSTR(ACT$,W$) = 0 GOTO 14890
  608. 14635 K$(KT) = W$
  609. 14645 PRINT K$(KT);
  610. 14650 IF KT > KTMAX THEN KTMAX = KT
  611. 14655 GOTO 14570
  612. 14660 REM **********  RETURN  **********
  613. 14670 FOR T9 = 1 TO KTMAX
  614. 14675 A$ = A$ + K$(T9)
  615. 14676 IF K$(T9) = "^" GOTO 15830
  616. 14677 IF K$(T9) = ">" GOTO 15950
  617. 14678 IF K$(T9) = "=" GOTO 15800
  618. 14679 IF K$(T9) = "<" GOTO 15900
  619. 14680 NEXT T9
  620. 14681 IF KTMAX = 0 THEN PRINT "1"
  621. 14682 IF KTMAX = 0 THEN DT# = 1
  622. 14683 IF KTMAX = 0 THEN RETURN
  623. 14684 PRINT ""
  624. 14685 GOTO 14905
  625. 14690 REM ********* MOVE CURSE BACK ********
  626. 14695 IF KT = 1 GOTO 14575
  627. 14700 KT = KT - 1
  628. 14703 PRINT CHR$(CH);
  629. 14705 GOTO 14575
  630. 14710 REM ********* MOVE CURSER FORWARD *********
  631. 14715 IF KT >= MAX GOTO 14575
  632. 14716 IF KT > (KTMAX + 1) GOTO 14575
  633. 14718 PRINT K$(KT);
  634. 14720 KT = KT + 1
  635. 14725 GOTO 14575
  636. 14730 REM ********** INSERT ***********
  637. 14733 IF KT > KTMAX GOTO 14575
  638. 14735 X9 = MAX
  639. 14740 WHILE X9 > KT
  640. 14745 X9 = X9 - 1
  641. 14750 K$(X9 + 1) = K$(X9)
  642. 14755 WEND 
  643. 14760 K$(KT) = " "
  644. 14767 KTMAX = KTMAX + 1
  645. 14769 IF KTMAX > MAX THEN KTMAX = MAX
  646. 14770 FOR T9 = KT TO KTMAX
  647. 14775 PRINT K$(T9);
  648. 14780 NEXT T9
  649. 14781 T6 = (KTMAX - KT) + 1
  650. 14782 FOR T7 = 1 TO T6
  651. 14783 PRINT CHR$(CH);
  652. 14784 NEXT T7
  653. 14785 GOTO 14575
  654. 14790 REM ********** DELETE ***********
  655. 14793 IF KT > KTMAX GOTO 14575
  656. 14794 IF KTMAX = 1 GOTO 14575
  657. 14795 K$(MAX + 1) = ""
  658. 14800 X9 = KT 
  659. 14805 WHILE X9 <= MAX
  660. 14810 K$(X9) = K$(X9 + 1)
  661. 14815 X9 = X9 + 1
  662. 14820 WEND 
  663. 14830 KTMAX = KTMAX - 1
  664. 14835 FOR T9 = KT TO KTMAX
  665. 14840 PRINT K$(T9);
  666. 14845 NEXT T9
  667. 14850 PRINT "_";
  668. 14851 T7 = (KTMAX - KT) + 2
  669. 14852 FOR T8 = 1 TO T7
  670. 14853 PRINT CHR$(CH);
  671. 14854 NEXT T8
  672. 14855 GOTO 14575
  673. 14860 REM ********* BACKSPACE ********
  674. 14865 IF KT = 1 GOTO 14575
  675. 14870 KT = KT - 1
  676. 14875 PRINT CHR$(CH);
  677. 14877 K$(KT) = " " 
  678. 14880 PRINT "_";
  679. 14883 PRINT CHR$(CH);
  680. 14885 GOTO 14575
  681. 14890 REM *******  INPUT NOT ACCEPTABLE  ********
  682. 14895 PRINT CHR$(7);
  683. 14900 GOTO 14580
  684. 14905 REM ********* CLEAR STRINGS ********
  685. 14910 MAX = LEN(A$)
  686. 14915 D2$ = ""
  687. 14920 D1$ = ""
  688. 14925 DFLG = 0
  689. 14930 FOR Q93 = 1 TO MAX
  690. 14935 R$ = MID$(A$,Q93,1)
  691. 14940 IF INSTR(DIG$,R$) = 0 GOTO 14975
  692. 14945 IF R$ = "." OR DFLG = 1 GOTO 14965
  693. 14950 IF DFLG = 1 GOTO 14965
  694. 14955 D2$ = D2$ + R$
  695. 14960 GOTO 14975
  696. 14965 D1$ = D1$ + R$
  697. 14970 DFLG = 1
  698. 14975 NEXT Q93
  699. 14980 DA# = VAL(D2$)
  700. 14985 D1# = VAL(D1$)
  701. 14990 DT# = DA# + D1#
  702. 14995 IF K$(1) = "-" THEN DT# =  -DT#   
  703. 14997 RETURN
  704. 15000 REM **********  ALPHANUMERIC CHECK  **************
  705. 15010 MAX = FL(A,Q)
  706. 15020 GOTO 15040
  707. 15030 REM ********  MAX SET IN PROGRAM  ********
  708. 15040 A$ = ""
  709. 15050 PRINT ">"; 
  710. 15060 FOR N9 = 1 TO MAX
  711. 15065 K$(N9) = ""
  712. 15070 PRINT "_";
  713. 15080 NEXT N9
  714. 15090 PRINT "<";
  715. 15100 T2 = MAX + 1
  716. 15110 FOR T4 = 1 TO T2
  717. 15120 PRINT CHR$(CH);
  718. 15125 NEXT T4
  719. 15130 KT = 0
  720. 15135 KTMAX = 1
  721. 15140 REM ***********  CHECK ALFANUMERIC INPUT FOR LENGTH  ***********
  722. 15150 KT = KT + 1
  723. 15160 PRINT TAB(KT+1)"";
  724. 15170 K$ = INKEY$
  725. 15180 IF K$ = "" GOTO 15170
  726. 15190 C = ASC(K$)
  727. 15195 IF C = 0 THEN GOSUB 13600
  728. 15200 IF C = 13 GOTO 15310
  729. 15210 IF C = 17 OR C = 8 GOTO 15710
  730. 15220 IF C = 19 GOTO 15370
  731. 15230 IF C = 4  GOTO 15410
  732. 15240 IF C = 6 GOTO 15450
  733. 15250 IF C = 1 GOTO 15570
  734. 15260 IF KT > MAX GOTO 15160
  735. 15270 K$(KT) = K$
  736. 15290 PRINT K$(KT);
  737. 15295 IF KT > KTMAX THEN KTMAX = KT
  738. 15300 GOTO 15150
  739. 15310 REM **********  RETURN  **********
  740. 15320 FOR T9 = 1 TO MAX
  741. 15330 A$ = A$ + K$(T9)
  742. 15332 IF K$(T9) = "^" GOTO 15830
  743. 15333 IF K$(T9) = ">" GOTO 15950
  744. 15335 IF K$(T9) = "=" GOTO 15850
  745. 15338 IF K$(T9) = "<" GOTO 15900
  746. 15340 NEXT T9
  747. 15350 PRINT "" 
  748. 15360 RETURN  
  749. 15370 REM ********* MOVE CURSE BACK ********
  750. 15380 IF KT = 1 GOTO 15160
  751. 15385 KT = KT - 1
  752. 15390 PRINT CHR$(CH);
  753. 15400 GOTO 15160
  754. 15410 REM ********* MOVE CURSER FORWARD *********
  755. 15420 IF KT >= MAX GOTO 15160
  756. 15425 IF KT >  KTMAX  GOTO 15160
  757. 15427 PRINT K$(KT);
  758. 15430 KT = KT + 1
  759. 15440 GOTO 15160
  760. 15450 REM ********** INSERT ***********
  761. 15460 X9 = MAX
  762. 15470 WHILE X9 > KT
  763. 15480 X9 = X9 - 1
  764. 15490 K$(X9 + 1) = K$(X9)
  765. 15500 WEND 
  766. 15510 K$(KT) = " "
  767. 15520 KTMAX = KTMAX + 1
  768. 15525 IF KTMAX > MAX THEN KTMAX = MAX
  769. 15530 FOR T9 = KT TO KTMAX
  770. 15540 PRINT K$(T9);
  771. 15550 NEXT T9
  772. 15552 T6 = (KTMAX - KT) +1
  773. 15554 FOR T7 = 1 TO T6
  774. 15556 PRINT CHR$(CH);
  775. 15558 NEXT T7
  776. 15560 GOTO 15160
  777. 15570 REM ********** DELETE ***********
  778. 15575 IF KT > KTMAX GOTO 15170
  779. 15578 IF KTMAX = 1 GOTO 15160
  780. 15580 K$(MAX + 1) = ""
  781. 15590 X9 = KT 
  782. 15600 WHILE X9 <= KTMAX
  783. 15610 K$(X9) = K$(X9 + 1)
  784. 15620 X9 = X9 + 1
  785. 15630 WEND 
  786. 15650 KTMAX = KTMAX - 1
  787. 15660 FOR T9 = KT TO KTMAX
  788. 15670 PRINT K$(T9);
  789. 15680 NEXT T9
  790. 15690 PRINT "_";
  791. 15692 T7 = (KTMAX - KT) + 2
  792. 15694 FOR T6 = 1 TO T7
  793. 15696 PRINT CHR$(CH);
  794. 15698 NEXT T6
  795. 15700 GOTO 15160
  796. 15710 REM ********* BACKSPACE ********
  797. 15720 IF KT = 1 GOTO 15160
  798. 15725 K$(KT) = " "
  799. 15730 KT = KT - 1
  800. 15735 K$(KT) = " "
  801. 15740 PRINT CHR$(CH);
  802. 15750 PRINT "_";
  803. 15755 PRINT CHR$(CH);
  804. 15760 GOTO 15160
  805. 15800 REM "*********  SAME ENTRY AS LAST RECORD  ************"
  806. 15810 DT# = X(N)
  807. 15820 RETURN
  808. 15830 REM ********  SAME ENTRY AS LAST RECORD   OVER ONE COLUMN  *****
  809. 15835 DT# = X(N + 1)
  810. 15840 RETURN
  811. 15850 REM "*********  SAME ENTRY AS LAST RECORD ALFANUMERIC  **********"
  812. 15860 A$ = CK$(N)
  813. 15870 RETURN
  814. 15900 REM  ******  RESTART DATA ENTRY  **********
  815. 15910 REFLG = 1
  816. 15915 IF NE = 0 GOTO 15340
  817. 15920 RETURN
  818. 15950 REM  *********  ABORT NEW DATA ENTRY  **********
  819. 15960 IF NE = 0 GOTO 15340
  820. 15970 ABORTFLG = 1
  821. 15980 RETURN
  822. 16000 GOSUB 13000
  823. 16010 PRINT "***********  MAKE SURE YOUR PRINTER IS ON  **************"
  824. 16020 PRINT ""
  825. 16030 PRINT "********************  WITH PAPER  ***********************"
  826. 16040 PRINT ""
  827. 16050 PRINT "**********  PRESS ANY KEY TO START PRINTING  ************"
  828. 16055 PRINT ""
  829. 16057 PRINT "     *******  PRESS THE LETTER A TO ABORT  *******"
  830. 16070 T$ = INKEY$
  831. 16073 IF T$ = "" GOTO 16070
  832. 16075 PRINT T$
  833. 16085 IF T$ = "A" THEN GOTO 3010
  834. 16090 RETURN
  835. 16200 REM *********  PRINT OUT FIELDS
  836. 16205 T2 = 1
  837. 16210 FOR T = 1 TO NREC(A)
  838. 16220 PRINT TAB(T2) T;"-";FLDN$(A,T);
  839. 16230 IF T MOD 3 = 0 THEN PRINT ""
  840. 16235 IF T MOD 3 = 0 THEN T2 = -25
  841. 16237 T2 = T2 + 26
  842. 16340 NEXT T
  843. 16350 RETURN
  844. 20000 REM **** TYPE OF CHANGE *******
  845. 20050 GOSUB 40000
  846. 20100 FOR N = 1 TO NREC(A)
  847. 20200 GOSUB 13000
  848. 20205 PRINT "FIELD NUMBER :";N;"  FIELD NAME :";FLDN$(A,N)
  849. 20210 PRINT "********   WHAT TYPE OF CHANGE DO YOU WANT  ********"
  850. 20220 PRINT "       1 - NO CHANGE "
  851. 20230 PRINT "       2 - REPLACE "
  852. 20240 PRINT "       3 - ADD A CONSTANT TO THIS FIELDS VALUE"
  853. 20250 PRINT "       4 - MULTIPLY THE CURRENT VALUE BY A CONSTANT"
  854. 20260 PRINT "       5 - ADD A CONSTANT TO A DIFFERENT NUMBER FIELD"
  855. 20270 PRINT "       6 - MULTIPLY A DIFFERENT FIELD BY A CONSTANT"
  856. 20280 PRINT "********  ENTER THE VALUE THEN PRESS RETURN  ********"
  857. 20300 GOSUB 14000
  858. 20310 IF DT# < 1 OR DT# >6 GOTO 20300
  859. 20320 TC(N) = DT#
  860. 20400 ON TC(N) GOSUB 21000,21500,22000,22500,23000,23500
  861. 20410 NEXT N
  862. 21000 REM ****** NO CHANGE
  863. 21010 RETURN
  864. 21500 REM REPLACE ******
  865. 21505 PRINT " ENTER THE VALUE YOU WANT THE FIELD TO HAVE "
  866. 21510 IF FTY(A,N) = 1 GOTO 21700
  867. 21520 GOSUB 14200
  868. 21530 CNST#(N) = DT#
  869. 21540 RETURN
  870. 21700 REM ***** STRING
  871. 21710 INPUT CNST$(N)
  872. 21720 RETURN
  873. 22000 REM ******* ADD A CONSTANT 
  874. 22100 PRINT " ENTER THE NUMBER YOU WANT TO ADD TO THE CURRENT VALUE "
  875. 22110 GOSUB 14200
  876. 22120 CNST#(N) = DT#
  877. 22130 RETURN
  878. 22500 REM ******* MULTIPLY A CONSTAT BY A CONSTANT
  879. 22600 PRINT " ENTER THE NUMBER YOU WANT TO MULTIPLY THE CURRENT VALUE BY"
  880. 22610 GOSUB 14200
  881. 22620 CNST#(N) = DT#
  882. 22630 RETURN
  883. 23000 REM ******* ADD A CONSTANT TO A DIFFERENT FIELD
  884. 23100 PRINT "WHICH FIELD DO YOU WANT TO ADD THE CONSTANT TO "
  885. 23110 FOR T = 1 TO NREC(A)
  886. 23120 PRINT T;"-";FLDN$(A,T)
  887. 23130 NEXT T
  888. 23200 GOSUB 14000
  889. 23210 FFLD(N) = DT#
  890. 23300 PRINT "ENTER THE VALUE YOU WANT TO ADD TO THIS FIELD "
  891. 23310 GOSUB 14200
  892. 23320 CNST#(N) = DT#
  893. 23400 RETURN
  894. 23500 REM ******* MULTIPLY A DIFFERENT FIELD BY A CONSTANT
  895. 23600 PRINT "WHICH FIELD DO YOU WANT TO MULTIPLY THE CONSTANT BY"
  896. 23610 FOR T = 1 TO NREC(A)
  897. 23620 PRINT T;"-";FLDN$(A,T)
  898. 23630 NEXT T
  899. 23700 GOSUB 14000
  900. 23710 FFLD(N) = DT#
  901. 23800 PRINT "ENTER THE VALUE YOU WANT TO MULTIPLY THIS FIELD BY"
  902. 23810 GOSUB 14200
  903. 23820 CNST#(N) = DT#
  904. 23900 RETURN
  905. 26000 REM ******* ON ERROR ROUTINE ************
  906. 26100 EFLG = 1
  907. 26200 PRINT "**********  END OF FILE  ***********"
  908. 26202 PRINT "**** PRESS ANY KEY TO CONTINUE ****"
  909. 26204 IF INKEY$ = "" GOTO 26204
  910. 26210 GOTO  3010
  911. 26500 REM *********  ON ERROR SUBROUTINE ***********
  912. 26600 PRINT "**********  END OF FILE  ***********"
  913. 26610 PRINT "**** PRESS ANY KEY TO CONTINUE ****"
  914. 26620 IF INKEY$ = "" GOTO 26620
  915. 26635 EFLG = 1
  916. 26640 RETURN        
  917. 26800 REM **********  ON ERROR GOTO  **************
  918. 26900 PRINT "************  RECORD NOT FOUND  *************"
  919. 30000 REM CHANGE FIELDS ********
  920. 30100 FOR N = 1 TO NREC(A)
  921. 30200 ON TC(N) GOSUB 30900,31000,32000,33000,34000,35000
  922. 30300 IF TC(N) = 1 GOTO 30800
  923. 30400 GOSUB 9070
  924. 30800 NEXT N
  925. 30810 PUT #1,RN
  926. 30815 IF SECF = 2 THEN GOSUB 41000
  927. 30820 RETURN
  928. 30900 REM ****** NO CHANGE
  929. 30910 RETURN
  930. 31000 REM ****** REPLACE 
  931. 31100 IF FTY(A,N) = 1 GOTO 31700
  932. 31200 I# = CNST#(N) 
  933. 31300 RETURN
  934. 31700 I$ = CNST$(N)
  935. 31710 RETURN
  936. 32000 REM ****** ADD A CONSTAT TO THIS FIELDS VALUE
  937. 32100 I# = CNST#(N) + S#(N)
  938. 32110 RETURN
  939. 33000 REM ****** MULTIPLY A CONSTANT TO THIS FIELD 
  940. 33200 I# = CNST#(N) * S#(N)
  941. 33300 RETURN
  942. 34000 REM ****** ADD A CONSTANT TO DIFFERENT FIELD
  943. 34100 T = FFLD(N) 
  944. 34200 I# = CNST#(N) + S#(T)
  945. 34300 RETURN
  946. 35000 REM ****** MULTIPLY A CONSTANT TO A DIFFERENT NUMBER FIELD
  947. 35100 T = FFLD(N) 
  948. 35200 I# = CNST#(N) * S#(T)
  949. 35300 RETURN
  950. 40000 REM *****  CREATE SECOND FILE
  951. 40100 GOSUB 13000
  952. 40110 PRINT "****  DO YOU WANT TO CREATE A SECOND FILE  WITH THE SECECTED RECORDS  ****"
  953. 40120 PRINT "                      1 - NO"
  954. 40130 PRINT "                      2 - YES"
  955. 40140 PRINT "**********************  ENTER THE NUMBER THEN PRESS RETURN  **************"
  956. 40150 GOSUB 14000
  957. 40160 IF DT#<1 OR DT#>2 THEN 40150
  958. 40170 SECF = DT#
  959. 40175 IF SECF = 2 THEN GOSUB 40200
  960. 40180 RETURN
  961. 40200 REM  ******  OPEN SECOND FILE
  962. 40210 FIELD #1,L(A) AS X1$
  963. 40220 PRINT "FILE TO TRANSFER DATA TO"
  964. 40230 PRINT "THE DISK DRIVE MUST BE DIFFERENT FROM THE SOURCE DRIVE "
  965. 40240 GOSUB 2300
  966. 40250 GOSUB 2550
  967. 40255 RN2 = 1
  968. 40260 RETURN
  969. 41000 REM ***** WRITE SECOND FILE
  970. 41100 LSET Y$ = XT$
  971. 41200 PUT #2,RN2
  972. 41300 RN2 = RN2 + 1
  973. 41400 RETURN
  974. 50000 REM **********  INTRO
  975. 50010 GOSUB 13000
  976. 50100 PRINT "                 C H A N G E    P R O G R A M    3.0   "
  977. 50105 PRINT ""
  978. 50110 PRINT "         Copyright 1984 by Potomac Pacific Engineering Inc."
  979. 50120 PRINT ""
  980. 50130 PRINT "This program is licensed FREE to all users with several restrictions   "
  981. 50150 PRINT "    - See the manual for more information on the license  "
  982. 50160 PRINT ""
  983. 50950 PRINT "*******************  PRESS ANY KEY TO CONTINUE  ********************";
  984. 50960 IF INKEY$ = "" GOTO 50960
  985. 50970 RETURN
  986. 51000 REM *******  DONE
  987. 51100 CLOSE
  988. 51105 GOSUB 13000
  989. 51110 PRINT " -BYE, Have a nice day
  990. 51120 END
  991. 60000 REM INTRO 2
  992. 61000 GOSUB 13000
  993. 61100 PRINT " This program will change the value of all the records in you file"
  994. 61110 PRINT "              that meet the conditions you specify.  "
  995. 61120 PRINT ""
  996. 61130 PRINT "****  ALWAYS MAKE A BACK UP COPY BEFORE YOU USE THIS PROGRAM  ****"
  997. 61800 PRINT ""
  998. 61805 PRINT "                   Press any key to continue"
  999. 61810 IF INKEY$ = "" THEN 61810
  1000. 61820 RETURN
  1001. *"
  1002. 61800 PRINT ""
  1003. 61805 PRINT "                   Press any key to conti