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

  1. 4 DEFINT A-W,Y-Z
  2. 5 DIM F$(17),FLDN$(17,30),FTY(17,30),FL(17,30),IOPT(30)
  3. 13 DIM L(17),NREC(17)
  4. 14 DIM SN$(30),SFN(30),DTOPT(10) 
  5. 21 DIM TX(10,10)
  6. 22 DIM D(10),TFN(10),FLDTCT(10,50,1),KTSUM(10),SUMFN(10)
  7. 23 DIM SUMF(10,30),KTSUMAF(30),SAFFN(30),SAFADD(10,30),SAFACCTO(10,30)
  8. 24 DIM SAFFLDN(10,30)
  9. 25 DIM S#(30)
  10. 26 DIM MAX(5,30),Z%(10),SU#(30),D#(30),EFN(10,30)
  11. 35 DIM K$(80)
  12. 42 DIM SUM(30),MAXK(10),SUMRN(10,30),SUMFLDN(10,30),MAXSAF(5)
  13. 44 DIM SUMAFOPT(30),SUMOPT(30),RNTNBOPT(10),DY(30),FLDTC(10,50,1)
  14. 46 DIM SUMFLD(10,30)
  15. 50 D = 1
  16. 70 CH = 29
  17. 75 PRINT "MEMORY FREE",FRE(0)
  18. 80 GOSUB 52000
  19. 100 GOSUB 50000
  20. 200 GOTO 20000
  21. 500 REM ******* CLS
  22. 510 CLS 
  23. 520 RETURN
  24. 20000 REM  **********  TRANSFER PROGRAM  *********
  25. 20010 GOSUB 500
  26. 20100 GOSUB 24620
  27. 20120 GOSUB 500
  28. 20130 HLD = 0
  29. 20140 PRINT "************  DATA TRANSFER DESCRIPTION MENU  **************"
  30. 20160 PRINT ""
  31. 20180 PRINT "    0 - EXIT  "
  32. 20190 PRINT ""
  33. 20200 PRINT "    1 - ENTER A TRANSFER DESCRIPTION"
  34. 20210 PRINT ""
  35. 20220 PRINT "    2 - READ A SINGLE TRANSFER DESCRIPTION"
  36. 20230 PRINT ""
  37. 20240 PRINT "    3 - PRINT ON PAPER ONE TRANSFER DESCRIPTION "
  38. 20260 PRINT ""
  39. 20280 PRINT "**********  ENTER THE NUMBER THEN PRESS RETURN  ************"
  40. 20300 GOSUB 60000
  41. 20302 IF DT# <0 OR DT#> 3 GOTO 20300
  42. 20310 T = DT#
  43. 20315 IF T = 0 GOTO 51000
  44. 20320 ON T GOTO 20340,20420,20640           
  45. 20340 REM ***  ENTER A TRANSFER DESCRIPTION  ***
  46. 20360 GOSUB 20820
  47. 20380 GOSUB 24020
  48. 20400 GOTO 20120
  49. 20420 REM ***  READ A SINGE TRANSFER DESCRIPTION  ***
  50. 20440 GOSUB 500
  51. 20460 PRINT "*******  WHICH TRANSFER DESCRIPTION DO YOU WANT TO SEE  *******"
  52. 20480 FOR T = 1 TO MAXS
  53. 20500 PRINT T;"- ";SN$(T)
  54. 20520 NEXT T
  55. 20540 PRINT "************  ENTER THE NUMBER THEN PRESS RETURN  *************"  
  56. 20560 GOSUB 60000
  57. 20562 IF DT# <1 OR DT#> MAXS GOTO 20560
  58. 20570 S = DT#
  59. 20580 GOSUB 25220
  60. 20600 PRINT "*******  PRESS ANY KEY TO CONTINUE  *******"
  61. 20610 IF INKEY$ = "" THEN GOTO 20610
  62. 20620 GOTO 20120
  63. 20640 REM ***  PRINT ON PAPER ONE TRANSFER DESCRIPTION  ***
  64. 20660 PRINT "*****  WHAT TRANSFER DESCRIPTION DO YOU WANT PRINTED  *****"
  65. 20680 FOR T = 1 TO MAXS
  66. 20700 PRINT T;"- ";SN$(T)
  67. 20720 NEXT T
  68. 20740 PRINT "**********  ENTER THE NUMBER THEN PRESS RETURN  ***********"
  69. 20760 GOSUB 60000
  70. 20762 IF DT# <1 OR DT#> MAXS GOTO 20760
  71. 20770 S = DT#
  72. 20780 GOSUB 26500
  73. 20800 GOTO 20120
  74. 20820 REM ************  NEW TRANSFER ENTRY  *************
  75. 20840 GOSUB 500
  76. 20860 PRINT "****************  NEW TRANSFER DATA ENTRY  ****************"  
  77. 20880 PRINT ""
  78. 20900 PRINT "*****  WHAT NUMBER IS THIS DATA TRANSFER OPTION  *****"
  79. 20920 FOR T = 1 TO MAXS
  80. 20940 PRINT T;"-";SN$(T)
  81. 20960 NEXT T
  82. 20980 PRINT " ------ ENTER A NUMBER FROM 1 TO ";MAXS+1;" ------"
  83. 21000 PRINT "*********  ENTER ZERO TO RETURN TO FIRST MENU  ********"
  84. 21020 GOSUB 60000
  85. 21022 IF DT# <0 OR DT#> MAXS +1 GOTO 21020
  86. 21026 IF DT# = 0 GOTO 20000
  87. 21030 S = DT#
  88. 21040 IF S > MAXS +1 THEN GOTO 20840
  89. 21060 IF S > MAXS THEN MAXS = S
  90. 21080 PRINT "****  WHAT NAME DO YOU WANT TO GIVE THIS TRANSFER  ****"
  91. 21090 MAX = 40
  92. 21100 GOSUB 62030
  93. 21110 SN$(S) = A$
  94. 21120 GOSUB 500
  95. 21130 PRINT "*************  WHICH FILE IS THE SOURCE FILE  *************"
  96. 21140 FOR T = 1 TO MAXF
  97. 21160 PRINT T;"-";F$(T)
  98. 21180 NEXT T
  99. 21200 PRINT "*****  ENTER THE SOURCE FILE NUMBER THEN PRESS RETURN  *****"
  100. 21210 GOSUB 60000
  101. 21212 IF DT# <1 OR DT#> MAXF GOTO 21210
  102. 21215 SFN(S) = DT#
  103. 21220 SFN = SFN(S)
  104. 21230 DY(SFN) = NREC(SFN)
  105. 21240 PRINT "*********  DIRECT DATA TRANSFER OPTION  **********"
  106. 21260 PRINT "             1 - TRANSFER"
  107. 21280 PRINT "             2 - NO TRNASFER"
  108. 21290 PRINT "******  ENTER THE NUMBER THEN PRESS RETURN  ******"
  109. 21300 GOSUB 60000
  110. 21302 IF DT# <1 OR DT#> 2  GOTO 21300
  111. 21310 DTOPT(S) = DT#
  112. 21320 IF DTOPT(S) = 2 GOTO 22040
  113. 21340 GOSUB 500
  114. 21350 PRINT "***************  WHICH FILE IS THE TARGET FILE  *************"
  115. 21360 FOR T = 1 TO MAXF
  116. 21380 PRINT T;"-";F$(T)
  117. 21400 NEXT T
  118. 21410 PRINT "******  ENTER THE TARGET FILE NUMBER THEN PRESS RETURN  ******"
  119. 21420 GOSUB 60000
  120. 21422 IF DT# <1 OR DT#> MAXF GOTO 21420
  121. 21430 TFN(S) = DT#
  122. 21440 TFN = TFN(S)
  123. 21460 GOSUB 500
  124. 21480 PRINT "************  RECORD NUMBERING FOR TARGET OPTION  ************"
  125. 21500 PRINT "    0 - EQUALS SOURCE FILE NUMBER "
  126. 21510 PRINT "    Record Number of target is = to the value of source field :"
  127. 21520 FOR T = 1 TO NREC(SFN)
  128. 21540 PRINT "   ";T;"-";FLDN$(SFN,T)
  129. 21560 NEXT T
  130. 21580 PRINT "***************  ENTER NUMBER THEN PRESS RETURN  **************"
  131. 21590 GOSUB 60000
  132. 21592 IF DT# <0 OR DT#> NREC(SFN) GOTO 21590
  133. 21594 IF FTY(SFN,DT#) = 1 GOTO 21590
  134. 21600 RNTNBOPT(S) = DT#
  135. 21620 D = 1
  136. 21640 FOR N = 1 TO NREC(TFN)
  137. 21660 GOSUB 500
  138. 21680 PRINT "FIELD #";N;" ";FLDN$(TFN,N)
  139. 21700 PRINT "*************  FIELD TARGET CHANGE  *************"
  140. 21720 PRINT "     1 -DO NOT CHANGE "
  141. 21730 PRINT "     Change with source field :"
  142. 21740 FOR T = 1 TO NREC(SFN)
  143. 21760 PRINT "    ";T+1;"-";FLDN$(SFN,T)
  144. 21780 NEXT T
  145. 21800 PRINT "*****  ENTER THE NUMBER THEN PRESS RETURN  ******" 
  146. 21810 T4 = NREC(SFN) + 1
  147. 21820 GOSUB 60000
  148. 21822 IF DT# <1 OR DT#> T4  GOTO 21820
  149. 21823 IF DT# = 1 GOTO 21830
  150. 21824 T2 = DT#
  151. 21827 IF FTY(SFN,T2-1) >< FTY(TFN,N) GOTO 21820
  152. 21830 FLDTC(S,N,D) = DT#
  153. 21840 IF FLDTC(S,N,D) = 1 GOTO 21980
  154. 21860 PRINT "******************  TYPE OF CHANGE  *****************"
  155. 21880 PRINT "      1 - ADD       -source field and target field"
  156. 21900 PRINT "      2 - REPLACE   -target field equals source field"
  157. 21920 PRINT "      3 - SUBTRACT  -target field minus source field"
  158. 21940 PRINT "*******  ENTER THE NUMBER THEN PRESS RETURN  ********"
  159. 21950 GOSUB 60000
  160. 21952 IF DT# <1 OR DT#> 3 GOTO 21950
  161. 21954 IF FTY(TFN,N) = 1 AND DT# >< 2 GOTO 21950
  162. 21960 FLDTCT(S,N,D) = DT#
  163. 21980 NEXT N
  164. 22000 IF D = 2 GOTO 22040
  165. 22020 GOSUB 500
  166. 22040 REM ******** SUM OPTION *******
  167. 22080 PRINT "**********  SUM ACCORDING TO FIELD OPTION  ***********"
  168. 22100 PRINT "                 1 - SUM"
  169. 22120 PRINT "                 2 - DO NOT SUM"
  170. 22130 PRINT "********  ENTER THE NUMBER THEN PRESS RETURN  ********"
  171. 22140 GOSUB 60000
  172. 22142 IF DT# <1 OR DT#> 2 GOTO 22140
  173. 22150 SUMOPT(S) = DT#
  174. 22160 IF SUMOPT(S) = 2 GOTO 22720
  175. 22180 GOSUB 500
  176. 22200 A = SFN(S)
  177. 22220 GOSUB 23400
  178. 22240 PRINT "*****  HOW MANY FIELDS DO YOU WANT SUMMED  *****"   
  179. 22260 PRINT "*****  ENTER THE NUMBER THEN PRESS RETURN  *****"
  180. 22280 GOSUB 60000
  181. 22282 IF DT# <1 OR DT#> NREC(SFN) GOTO 22280
  182. 22290 KTSUM(S) = DT#
  183. 22300 FOR K = 1 TO KTSUM(S)
  184. 22320 GOSUB 500
  185. 22340 GOSUB 23400
  186. 22360 PRINT "WHICH FIELD IS THE ";K;"th FIELD YOU WANT SUMED"
  187. 22380 GOSUB 60000
  188. 22382 IF DT# <1 OR DT#> NREC(SFN) GOTO 22280
  189. 22384 IF FTY(SFN,DT#) = 1 GOTO 22280
  190. 22390 SUMF(S,K) = DT#
  191. 22400 GOSUB 500
  192. 22410 PRINT "*******  WHICH FILE DO YOU WANT THIS SUM SENT TO  *******"
  193. 22415 PRINT "The file must be the same for all sums."
  194. 22420 PRINT ""
  195. 22440 FOR N = 1 TO MAXF
  196. 22460 PRINT "FILE NUMBER ";N;" FILE NAME ";F$(N)
  197. 22480 NEXT N
  198. 22500 PRINT ""
  199. 22520 PRINT "*******  WHICH FILE DO YOU WANT THIS SUM SENT TO  *******"
  200. 22540 GOSUB 60000
  201. 22542 IF DT# <1 OR DT#> MAXF GOTO 22540
  202. 22545 IF (HLD > 0) AND (DT# <> HLD) GOTO 22540
  203. 22547 HLD = DT#
  204. 22550 SUMFN(S) = DT#
  205. 22560 PRINT "***  WHICH RECORD NUMBER DO YOU WANT THE SUM SENT TO  ***"
  206. 22565 GOSUB 60000
  207. 22567 IF DT# <1 GOTO 22565
  208. 22570 SUMRN(S,K) = DT#
  209. 22580 GOSUB 500
  210. 22590 PRINT "*******  WHICH FIELD DO YOU WANT THIS SUM SENT TO  ********"
  211. 22600 SFN = SFN(S)
  212. 22620 FOR P = 1 TO NREC(HLD)
  213. 22640 PRINT "FIELD #";P;FLDN$(HLD,P)
  214. 22660 NEXT P
  215. 22680 PRINT "*****  WHICH FIELD NUMBER DO YOU WANT THE SUM SENT TO  *****"
  216. 22685 GOSUB 60000
  217. 22687 IF DT# <1 OR DT#> NREC(HLD) GOTO 22685
  218. 22688 IF FTY(HLD,DT#) = 1 GOTO 22685
  219. 22690 SUMFLDN(S,K) = DT#
  220. 22700 NEXT K
  221. 22720 REM *********  SUM ACCORDING TO ANOTHER FIELD OPTION  **********
  222. 22740 GOSUB 500
  223. 22760 PRINT "*******  SUM WITH SUBTOTALS BY ANOTHER FIELD  ******"
  224. 22780 PRINT "              1 - SUM"
  225. 22800 PRINT "              2 - DO NOT SUM"
  226. 22810 PRINT "********  ENTER THE NUMBER THEN PRESS RETURN  ******"
  227. 22815 GOSUB 60000
  228. 22816 IF DT# <1 OR DT#> 2  GOTO 22815
  229. 22820 SUMAFOPT(S) = DT#
  230. 22840 IF SUMAFOPT(S) = 2 THEN GOTO 23380
  231. 22860 FOR T = 1 TO NREC(SFN)
  232. 22880 PRINT T;"-";FLDN$(SFN,T)
  233. 22900 NEXT T
  234. 22910 PRINT "******  NUMBER OF FIELDS YOU WANT ADDED  ******"
  235. 22920 GOSUB 60000
  236. 22922 IF DT# <1 OR DT#> NREC(SFN) GOTO 22920
  237. 22930 KTSUMAF(S) = DT#
  238. 22940 FOR K = 1 TO KTSUMAF(S)
  239. 22960 GOSUB 500
  240. 22980 SFN = SFN(S)
  241. 23000 PRINT ""
  242. 23020 FOR N = 1 TO NREC(SFN)
  243. 23040 PRINT "FIELD # ";N;" ";FLDN$(SFN,N)
  244. 23060 NEXT N
  245. 23080 PRINT ""
  246. 23100 PRINT "**************  WHAT FIELD DO YOU WANT SUMMED  ****************"
  247. 23105 GOSUB 60000
  248. 23107 IF DT# <1 OR DT#> NREC(SFN) GOTO 23105
  249. 23108 IF FTY(SFN,DT#) = 1 GOTO 23105
  250. 23110 SAFADD(S,K) = DT#
  251. 23120 PRINT "****  WHAT FIELD DO YOU WANT THE SUBTOTALS GROUPED BY  ******"
  252. 23125 GOSUB 60000
  253. 23127 IF DT#< 1 OR DT# >NREC(SFN) GOTO 23125
  254. 23128 IF FTY(SFN,DT#) >< 2 GOTO 23125
  255. 23130 SAFACCTO(S,K) = DT#
  256. 23140 GOSUB 500
  257. 23160 PRINT ""
  258. 23180 FOR A = 1 TO MAXF
  259. 23200 PRINT "FILE # ";A;" ";F$(A)
  260. 23220 NEXT A
  261. 23240 PRINT ""
  262. 23260 PRINT "***********  WHAT FILE DO YOU WANT THE SUM IN  *********"
  263. 23265 GOSUB 60000
  264. 23267 IF DT#< 1 OR DT# >MAXF  GOTO 23265
  265. 23268 IF HLD > 0 AND DT# >< HLD GOTO 23265
  266. 23269 HLD = DT#
  267. 23270 SAFFN(S) = DT#
  268. 23280 A = SAFFN(S)
  269. 23300 GOSUB 23400
  270. 23320 PRINT "***********  WHAT FIELD DO YOU WANT THE SUM IN  *********"
  271. 23325 GOSUB 60000
  272. 23327 IF DT#< 1 OR DT# >NREC(A) GOTO 23325
  273. 23328 IF FTY(A,DT#) = 1 GOTO 23325
  274. 23330 SAFFLDN(S,K) = DT#
  275. 23360 NEXT K
  276. 23380 RETURN
  277. 23400 PRINT "-------------------------------------------------------------------------------"
  278. 23420 PRINT "FILE NUMBER : ";A
  279. 23440 PRINT "FILE NAME : "; F$(A)
  280. 23460 PRINT "NUMBER OF FIELDS : ";NREC(A)
  281. 23480 PRINT "RECORD LENGTH : ";L(A)
  282. 23500 FOR N = 1 TO NREC(A)
  283. 23520 PRINT  N ;TAB(5);FLDN$(A,N);
  284. 23540 ON FTY(A,N) GOTO 23560,23600,23640,23680,23690
  285. 23560 PRINT "  STRING WITH MAXIMUM LENGTH ";FL(A,N)
  286. 23580 GOTO 23700
  287. 23600 PRINT "  INTEGER "
  288. 23620 GOTO 23700
  289. 23640 PRINT "  SINGLE PRECISION "
  290. 23660 GOTO 23700
  291. 23680 PRINT "  DOUBLE PRECISION "
  292. 23685 GOTO 23700
  293. 23690 PRINT "  DOLLAR AND CENTS AMOUNT "
  294. 23700 REM ***
  295. 23720 NEXT N
  296. 23740 PRINT "-------------------------------------------------------------------------------"
  297. 23760 RETURN
  298. 23780 REM *************  READ SUBROUTINE  *************
  299. 23800 OPEN "I",#1,"FFILE"
  300. 23820 INPUT #1,MAXF
  301. 23840 FOR A = 1 TO MAXF
  302. 23860 INPUT #1,A,F$(A),NREC(A),L(A)
  303. 23880 FOR N = 1 TO NREC(A)
  304. 23900 INPUT #1,FLDN$(A,N),FTY(A,N),FL(A,N)
  305. 23920 IF FTY(A,N) = 2 THEN INPUT #1,D,D
  306. 23940 NEXT N
  307. 23960 NEXT A
  308. 23980 CLOSE #1
  309. 24000 RETURN
  310. 24020 REM ************  OPEN FOR OUTPUT  **************
  311. 24040 OPEN "O",#2,"TFER"
  312. 24060 WRITE #2,MAXS
  313. 24080 FOR S = 1 TO MAXS
  314. 24100 D = 1
  315. 24120 WRITE #2,DTOPT(S),SUMOPT(S),SUMAFOPT(S),SN$(S),SFN(S)
  316. 24140 IF DTOPT(S) = 2 GOTO 24360
  317. 24160 WRITE #2,RNTNBOPT(S),D(S),TFN(S),NREC(TFN)
  318. 24180 TFN = TFN(S)
  319. 24200 FOR N = 1 TO NREC(TFN)
  320. 24220 WRITE #2,FLDTC(S,N,D)
  321. 24240 IF FLDTC(S,N,D) = 1 GOTO 24280
  322. 24260 WRITE #2,FLDTCT(S,N,D)
  323. 24280 NEXT N
  324. 24300 IF D = 2 GOTO 24360
  325. 24320 IF D(S) = 2 THEN D = 2
  326. 24340 IF D(S) = 2 GOTO 24200
  327. 24360 IF SUMOPT(S) = 2 GOTO 24460
  328. 24380 WRITE #2,KTSUM(S),SUMFN(S)
  329. 24400 FOR K = 1 TO KTSUM(S)
  330. 24420 WRITE #2,SUMF(S,K),SUMRN(S,K),SUMFLDN(S,K)
  331. 24440 NEXT K
  332. 24460 IF SUMAFOPT(S) = 2 GOTO 24560
  333. 24480 WRITE #2, KTSUMAF(S),SAFFN(S)
  334. 24500 FOR K = 1 TO KTSUMAF(S)
  335. 24520 WRITE #2,SAFADD(S,K),SAFACCTO(S,K),SAFFLDN(S,K),MAX(S,K)
  336. 24540 NEXT K
  337. 24560 NEXT S
  338. 24580 CLOSE #2
  339. 24600 RETURN
  340. 24620 REM ************  OPEN FOR INPUT  **************
  341. 24640 OPEN "I",#2,"TFER"
  342. 24660 INPUT #2,MAXS
  343. 24680 FOR S = 1 TO MAXS 
  344. 24700 D = 1
  345. 24720 INPUT #2,DTOPT(S),SUMOPT(S),SUMAFOPT(S),SN$(S),SFN(S)
  346. 24740 IF DTOPT(S) = 2 GOTO 24960
  347. 24760 INPUT #2,RNTNBOPT(S),D(S),TFN(S),DY(S)
  348. 24780 TFN = TFN(S)
  349. 24800 FOR N = 1 TO DY(S)
  350. 24820 INPUT #2,FLDTC(S,N,D)
  351. 24840 IF FLDTC(S,N,D) = 1 GOTO 24880
  352. 24860 INPUT #2,FLDTCT(S,N,D)
  353. 24880 NEXT N
  354. 24900 IF D = 2 GOTO 24960
  355. 24920 IF D(S) = 2 THEN D = 2
  356. 24940 IF D(S) = 2 GOTO 24800
  357. 24960 IF SUMOPT(S) = 2 GOTO 25060
  358. 24980 INPUT #2,KTSUM(S),SUMFN(S)
  359. 25000 FOR K = 1 TO KTSUM(S)
  360. 25020 INPUT #2,SUMF(S,K),SUMRN(S,K),SUMFLDN(S,K)
  361. 25040 NEXT K
  362. 25060 IF SUMAFOPT(S) = 2 GOTO 25160
  363. 25080 INPUT #2, KTSUMAF(S),SAFFN(S)
  364. 25100 FOR K = 1 TO KTSUMAF(S)
  365. 25120 INPUT #2,SAFADD(S,K),SAFACCTO(S,K),SAFFLDN(S,K),MAX(S,K)
  366. 25140 NEXT K
  367. 25160 NEXT S
  368. 25180 CLOSE #2
  369. 25200 RETURN
  370. 25220 REM ************ PRINT OUT INF0 **************
  371. 25240 PRINT "NUMBER OF DIFFERENT TRANSFER: ";MAXS
  372. 25260 PRINT "TRANSFER NUMBER: ";S                                    
  373. 25280 PRINT "TRANSFER NAME : ";SN$(S)
  374. 25300 PRINT "SOURCE FILE NUMBER :";SFN(S);"   ";F$(SFN(S))                    
  375. 25320 PRINT "THIS TRANSFER CONTAINS :"
  376. 25340 IF DTOPT(S) = 1 THEN PRINT "--DIRECT TRANSFER "
  377. 25360 IF DTOPT(S) = 2 THEN PRINT "--NO DIRECT TRANSFER "
  378. 25380 IF SUMOPT(S) = 1 THEN PRINT "--SUM FIELDS"
  379. 25400 IF SUMOPT(S) = 2 THEN PRINT "--DO NOT SUM FIELDS"
  380. 25420 IF SUMAFOPT(S) = 1 THEN PRINT "--SUM ACCORDING TO ANOTHER FIELD "
  381. 25440 IF SUMAFOPT(S) = 2 THEN PRINT "--DO NOT SUM ACCORDING TO ANOTHER FIELD "
  382. 25460 IF DTOPT(S) = 2 GOTO 25900
  383. 25480 SFN = SFN(S)
  384. 25500 PRINT "******  DIRECT TRANSFER  ******"
  385. 25520 PRINT "TARGET RECORD NUMBER ";
  386. 25540 IF RNTNBOPT(S) = 0 THEN GOTO 25620
  387. 25560 T1 = RNTNBOPT(S) 
  388. 25580 PRINT "= SOURCE FILE FIELD ";RNTNBOPT(S);"- ";FLDN$(SFN,T1)
  389. 25600 GOTO 25640
  390. 25620 PRINT "AUTOMATICALLY INCREMENTS "
  391. 25640 PRINT "TARGET FILE NUMBER :";TFN(S);"  ";F$(TFN(S))
  392. 25660 TFN = TFN(S)
  393. 25680 FOR N = 1 TO DY(S)    
  394. 25700 PRINT "FIELD ";N;"-";
  395. 25720 IF FLDTC(S,N,1) = 1 THEN PRINT "- NO CHANGE"
  396. 25740 IF FLDTC(S,N,1) = 1 GOTO 25880
  397. 25760 T1 = FLDTC(S,N,1)-1
  398. 25780 IF FLDTC(S,N,1) = 1 GOTO 25880
  399. 25800 PRINT "- CHANGED BY SOURCE FIELD ";T1;"- ";FLDN$(SFN,T1);
  400. 25820 IF FLDTCT(S,N,1) = 1 THEN PRINT " - ADDED TO "
  401. 25840 IF FLDTCT(S,N,1) = 2 THEN PRINT " - REPLACED BY"
  402. 25860 IF FLDTCT(S,N,1) = 3 THEN PRINT " - SUBTRACT FROM "
  403. 25880 NEXT N
  404. 25900 IF SUMOPT(S) = 2 GOTO 26140
  405. 25920 PRINT "*******  SUM FIELDS  *******"
  406. 25940 PRINT "NUMBER OF SUMS ";KTSUM(S) 
  407. 25960 PRINT "ALL SUMS GO TO THIS FILE ";SUMFN(S);" ";F$(SUMFN(S))
  408. 25980 TFN = SUMFN(S)
  409. 26000 FOR K = 1 TO KTSUM(S)
  410. 26020 PRINT "******  SUM NUMBER ";K;" *******"
  411. 26040 PRINT " FIELD SUMMED = ";SUMF(S,K);FLDN$(SFN,T1)
  412. 26060 PRINT " RECORD WHERE SUM GOES ";SUMRN(S,K)  
  413. 26080 T1 = SUMFLDN(S,K)
  414. 26100 PRINT " FIELD WHERE SUM GOES ";SUMFLDN(S,K);" ";FLDN$(TFN,T1)
  415. 26120 NEXT K
  416. 26140 IF SUMAFOPT(S) = 2 GOTO 26460
  417. 26160 PRINT "*******  SUM FIELDS ACCORDING TO ANOTHER FIELD  *******"
  418. 26180 PRINT "NUMBER OF SUMS BY ANOTHER FIELD  ";KTSUMAF(S)
  419. 26200 T1 = SAFFN(S)
  420. 26220 PRINT "ALL SUMS GO TO THIS FILE ";SAFFN(S);F$(T1)
  421. 26240 TFN = SAFFN(S)
  422. 26260 FOR K = 1 TO KTSUMAF(S)
  423. 26280 PRINT "******  SUMS NUMBER ";K;" *******"
  424. 26300 T1 = SAFADD(S,K)
  425. 26320 PRINT "SUM THIS FIELD ";SAFADD(S,K);" ";FLDN$(SFN,T1)
  426. 26340 T1 = SAFACCTO(S,K)
  427. 26360 PRINT "BY THIS FIELD  ";SAFACCTO(S,K);" ";FLDN$(SFN,T1)
  428. 26380 T1 = SAFFLDN(S,K)
  429. 26400 PRINT "SUM GOES TO THIS FIELD ";SAFFLDN(S,K);" ";FLDN$(TFN,T1)
  430. 26440 NEXT K
  431. 26460 REM ***
  432. 26480 RETURN
  433. 26500 REM ************ PRINT OUT INF0 **************
  434. 26520 LPRINT "NUMBER OF DIFFERENT TRANSFER: ";MAXS
  435. 26540 LPRINT "TRANSFER NUMBER: ";S                                    
  436. 26560 LPRINT "TRANSFER NAME : ";SN$(S)
  437. 26580 LPRINT "SOURCE FILE NUMBER :";SFN(S);"   ";F$(SFN(S))                    
  438. 26600 LPRINT "THIS TRANSFER CONTAINS :"
  439. 26620 IF DTOPT(S) = 1 THEN LPRINT "--DIRECT TRANSFER "
  440. 26640 IF DTOPT(S) = 2 THEN LPRINT "--NO DIRECT TRANSFER "
  441. 26660 IF SUMOPT(S) = 1 THEN LPRINT "--SUM FIELDS"
  442. 26680 IF SUMOPT(S) = 2 THEN LPRINT "--DO NOT SUM FIELDS"
  443. 26700 IF SUMAFOPT(S) = 1 THEN LPRINT "--SUM ACCORDING TO ANOTHER FIELD "
  444. 26720 IF SUMAFOPT(S) = 2 THEN LPRINT "--DO NOT SUM ACCORDING TO ANOTHER FIELD "
  445. 26740 IF DTOPT(S) = 2 GOTO 27180
  446. 26760 SFN = SFN(S)
  447. 26780 LPRINT "******  DIRECT TRANSFER  ******"
  448. 26800 LPRINT "TARGET RECORD NUMBER ";
  449. 26820 IF RNTNBOPT(S) = 0 THEN GOTO 26900
  450. 26840 T1 = RNTNBOPT(S) 
  451. 26860 LPRINT "= SOURCE FILE FIELD ";RNTNBOPT(S);"- ";FLDN$(SFN,T1)
  452. 26880 GOTO 26920
  453. 26900 LPRINT "AUTOMATICALLY INCREMENTS "
  454. 26920 LPRINT "TARGET FILE NUMBER :";TFN(S);"  ";F$(TFN(S))
  455. 26940 TFN = TFN(S)
  456. 26960 FOR N = 1 TO DY(S)
  457. 26980 LPRINT "FIELD ";N;"-";
  458. 27000 IF FLDTC(S,N,1) = 1 THEN LPRINT "- NO CHANGE"
  459. 27020 IF FLDTC(S,N,1) = 1 GOTO 27160
  460. 27040 T1 = FLDTC(S,N,1)-1
  461. 27060 IF FLDTC(S,N,1) = 1 GOTO 27160
  462. 27080 LPRINT "- CHANGED BY SOURCE FIELD ";T1;"- ";FLDN$(SFN,T1);
  463. 27100 IF FLDTCT(S,N,1) = 1 THEN LPRINT " - ADDED TO "
  464. 27120 IF FLDTCT(S,N,1) = 2 THEN LPRINT " - REPLACED BY"
  465. 27140 IF FLDTCT(S,N,1) = 3 THEN LPRINT " - SUBTRACT FROM "
  466. 27160 NEXT N
  467. 27180 IF SUMOPT(S) = 2 GOTO 27420
  468. 27200 LPRINT "*******  SUM FIELDS  *******"
  469. 27220 LPRINT "NUMBER OF SUMS ";KTSUM(S) 
  470. 27240 LPRINT "ALL SUMS GO TO THIS FILE ";SUMFN(S);" ";F$(SUMFN(S))
  471. 27260 TFN = SUMFN(S)
  472. 27280 FOR K = 1 TO KTSUM(S)
  473. 27300 LPRINT "******  SUM NUMBER ";K;" *******"
  474. 27320 LPRINT " FIELD SUMMED = ";SUMF(S,K);FLDN$(SFN,T1)
  475. 27340 LPRINT " RECORD WHERE SUM GOES ";SUMRN(S,K)  
  476. 27360 T1 = SUMFLDN(S,K)
  477. 27380 LPRINT " FIELD WHERE SUM GOES ";SUMFLDN(S,K);" ";FLDN$(TFN,T1)
  478. 27400 NEXT K
  479. 27420 IF SUMAFOPT(S) = 2 GOTO 27740
  480. 27440 LPRINT "*******  SUM FIELDS ACCORDING TO ANOTHER FIELD  *******"
  481. 27460 LPRINT "NUMBER OF SUMS BY ANOTHER FIELD  ";KTSUMAF(S)
  482. 27480 T1 = SAFFN(S)
  483. 27500 LPRINT "ALL SUMS GO TO THIS FILE ";SAFFN(S);F$(T1)
  484. 27520 TFN = SAFFN(S)
  485. 27540 FOR K = 1 TO KTSUMAF(S)
  486. 27560 LPRINT "******  SUMS NUMBER ";K;" *******"
  487. 27580 T1 = SAFADD(S,K)
  488. 27600 LPRINT "SUM THIS FIELD ";SAFADD(S,K);" ";FLDN$(SFN,T1)
  489. 27620 T1 = SAFACCTO(S,K)
  490. 27640 LPRINT "BY THIS FIELD  ";SAFACCTO(S,K);" ";FLDN$(SFN,T1)
  491. 27660 T1 = SAFFLDN(S,K)
  492. 27680 LPRINT "SUM GOES TO THIS FIELD ";SAFFLDN(S,K);" ";FLDN$(TFN,T1)
  493. 27720 NEXT K
  494. 27740 REM ***
  495. 27760 RETURN
  496. 50000 REM **********  INTRO
  497. 50010 GOSUB 500
  498. 50100 PRINT "  T R A N S F E R    D E S C R I P T I O N     P R O G R A M    3.0   "
  499. 50105 PRINT ""
  500. 50110 PRINT "        Copyright 1984 by Potomac Pacific Engineering Inc."
  501. 50120 PRINT ""
  502. 50130 PRINT "This program is licensed FREE to all users with some restrictions :"
  503. 50165 PRINT "        See the manual for more information on the license."
  504. 50167 PRINT ""
  505. 50920 GOSUB 23780
  506. 50950 PRINT "******************  PRESS ANY KEY TO CONTINUE  *******************";
  507. 50960 IF INKEY$ = "" GOTO 50960
  508. 50970 RETURN
  509. 51000 REM ***** EXIT TO SYSTEM
  510. 51100 GOSUB 500
  511. 51110 CLOSE
  512. 51120 PRINT " -BYE, Have a nice day"
  513. 51130 END
  514. 52000 REM ***** INTRO 1
  515. 52010 GOSUB 500
  516. 52100 PRINT "           Put the DATA DISK in the default disk drive  "
  517. 52110 PRINT ""
  518. 52120 PRINT "          *****  THEN PRESS ANY KEY TO CONTINUE  *****"
  519. 52130 PRINT ""
  520. 52140 PRINT "      The  CUSTOM  programS only use the PROGRAM DATA DISK"
  521. 52150 PRINT "Keep it in the default disk drive at all times during this program."
  522. 52200 IF INKEY$ = "" GOTO 52200
  523. 52210 RETURN
  524. 60000 REM *******  INTEGER LESS THEN 100 CHECK  ********
  525. 60010 MAX = 2
  526. 60020 ACT$ = "1234567890=<>^"
  527. 60030 IF NE = 0 THEN ACT$ = "1234567890"
  528. 60040 PRINT ">__<";
  529. 60050 GOTO 60240
  530. 60060 REM *******  INTEGER *******                        
  531. 60070 MAX = 8
  532. 60080 ACT$ = "1234567890-+,=<>^"
  533. 60090 IF NE = 0 THEN ACT$ = "1234567890-+,"
  534. 60100 PRINT ">________<";
  535. 60110 GOTO 60240
  536. 60120 REM *******  SINGLE PRECISION  *******                        
  537. 60130 MAX = 10
  538. 60140 ACT$ = "1234567890-+,.%$=<>^"
  539. 60150 IF NE = 0 THEN ACT$ = "1234567890+-,.%$"
  540. 60160 PRINT ">__________<";
  541. 60170 GOTO 60240
  542. 60180 REM *******  DOUBLE PRECISION  *******                        
  543. 60190 MAX = 20
  544. 60200 ACT$ = "1234567890-+,.%$=<>^"
  545. 60210 IF NE = 0 THEN ACT$ = "1234567890+-,.%$"
  546. 60220 PRINT ">____________________<";
  547. 60230 GOTO 60240
  548. 60240 REM ********** NUMBER CHECK **********
  549. 60250 A$ = ""
  550. 60260 K$(20) = " "
  551. 60270 KTMAX = 0
  552. 60280 FOR T9 = 1 TO MAX
  553. 60290 K$(T9) = " "
  554. 60300 NEXT T9
  555. 60310 DIG$ = "1234567890."
  556. 60320 DOTFLG = 0
  557. 60330 T2 = MAX + 1
  558. 60340 FOR T6 = 1 TO T2
  559. 60350 PRINT CHR$(CH);
  560. 60360 NEXT T6
  561. 60370 IF INKEY$ = "" GOTO 60380 ELSE GOTO 60370
  562. 60380 KT = 0
  563. 60390 REM ***********  CHECK ALFANUMERIC INPUT FOR LENGTH  ***********
  564. 60400 KT = KT + 1
  565. 60410 REM     
  566. 60420 W$ = INKEY$
  567. 60430 IF W$ = "" GOTO 60420
  568. 60440 C = ASC(W$)
  569. 60450 IF C = 0 THEN GOSUB 61900
  570. 60460 IF C = 13 GOTO 60580
  571. 60470 IF C = 17 OR C = 8 GOTO 61150
  572. 60480 IF C = 19 GOTO 60670
  573. 60490 IF C = 4 GOTO 60720
  574. 60500 IF C = 6 GOTO 60780
  575. 60510 IF C = 1 GOTO 60960
  576. 60520 IF KT > MAX GOTO 60410
  577. 60530 IF INSTR(ACT$,W$) = 0 GOTO 61230
  578. 60540 K$(KT) = W$
  579. 60550 PRINT K$(KT);
  580. 60560 IF KT > KTMAX THEN KTMAX = KT
  581. 60570 GOTO 60400
  582. 60580 REM **********  RETURN  **********
  583. 60590 FOR T9 = 1 TO KTMAX
  584. 60600 A$ = A$ + K$(T9)
  585. 60610 NEXT T9
  586. 60620 IF KTMAX = 0 THEN PRINT "1"
  587. 60630 IF KTMAX = 0 THEN DT# = 1
  588. 60640 IF KTMAX = 0 THEN RETURN
  589. 60650 PRINT ""
  590. 60660 GOTO 61260
  591. 60670 REM ********* MOVE CURSE BACK ********
  592. 60680 IF KT = 1 GOTO 60410
  593. 60690 KT = KT - 1
  594. 60700 PRINT CHR$(CH);
  595. 60710 GOTO 60410
  596. 60720 REM ********* MOVE CURSER FORWARD *********
  597. 60730 IF KT >= MAX GOTO 60410
  598. 60740 IF KT > (KTMAX + 1) GOTO 60410
  599. 60750 PRINT K$(KT);
  600. 60760 KT = KT + 1
  601. 60770 GOTO 60410
  602. 60780 REM ********** INSERT ***********
  603. 60790 IF KT > KTMAX GOTO 60410
  604. 60800 X9 = MAX
  605. 60810 WHILE X9 > KT
  606. 60820 X9 = X9 - 1
  607. 60830 K$(X9 + 1) = K$(X9)
  608. 60840 WEND 
  609. 60850 K$(KT) = " "
  610. 60860 KTMAX = KTMAX + 1
  611. 60870 IF KTMAX > MAX THEN KTMAX = MAX
  612. 60880 FOR T9 = KT TO KTMAX
  613. 60890 PRINT K$(T9);
  614. 60900 NEXT T9
  615. 60910 T6 = (KTMAX - KT) + 1
  616. 60920 FOR T7 = 1 TO T6
  617. 60930 PRINT CHR$(CH);
  618. 60940 NEXT T7
  619. 60950 GOTO 60410
  620. 60960 REM ********** DELETE ***********
  621. 60970 IF KT > KTMAX GOTO 60410
  622. 60980 IF KTMAX = 1 GOTO 60410
  623. 60990 K$(MAX + 1) = ""
  624. 61000 X9 = KT 
  625. 61010 WHILE X9 <= MAX
  626. 61020 K$(X9) = K$(X9 + 1)
  627. 61030 X9 = X9 + 1
  628. 61040 WEND 
  629. 61050 KTMAX = KTMAX - 1
  630. 61060 FOR T9 = KT TO KTMAX
  631. 61070 PRINT K$(T9);
  632. 61080 NEXT T9
  633. 61090 PRINT "_";
  634. 61100 T7 = (KTMAX - KT) + 2
  635. 61110 FOR T8 = 1 TO T7
  636. 61120 PRINT CHR$(CH);
  637. 61130 NEXT T8
  638. 61140 GOTO 60410
  639. 61150 REM ********* BACKSPACE ********
  640. 61160 IF KT = 1 GOTO 60410
  641. 61170 KT = KT - 1
  642. 61180 PRINT CHR$(CH);
  643. 61190 K$(KT) = " " 
  644. 61200 PRINT "_";
  645. 61210 PRINT CHR$(CH);
  646. 61220 GOTO 60410
  647. 61230 REM *******  INPUT NOT ACCEPTABLE  ********
  648. 61240 PRINT CHR$(7);
  649. 61250 GOTO 60420
  650. 61260 REM ********* CLEAR STRINGS ********
  651. 61270 MAX = LEN(A$)
  652. 61280 D2$ = ""
  653. 61290 D1$ = ""
  654. 61300 DFLG = 0
  655. 61310 FOR Q93 = 1 TO MAX
  656. 61320 R$ = MID$(A$,Q93,1)
  657. 61330 IF INSTR(DIG$,R$) = 0 GOTO 61400
  658. 61340 IF R$ = "." OR DFLG = 1 GOTO 61380
  659. 61350 IF DFLG = 1 GOTO 61380
  660. 61360 D2$ = D2$ + R$
  661. 61370 GOTO 61400
  662. 61380 D1$ = D1$ + R$
  663. 61390 DFLG = 1
  664. 61400 NEXT Q93
  665. 61410 DA# = VAL(D2$)
  666. 61420 D1# = VAL(D1$)
  667. 61430 DT# = DA# + D1#
  668. 61440 IF K$(1) = "-" THEN DT# =  -DT#   
  669. 61450 RETURN
  670. 61900 REM ****** CHECK FOR ASC0
  671. 61910 S4$ = INKEY$
  672. 61920 C2 =  ASC(S4$)
  673. 61930 IF C2 = 83 THEN C = 1
  674. 61940 IF C2 = 82 THEN C = 6
  675. 61950 IF C2 = 75 THEN C = 19
  676. 61960 IF C2 = 77 THEN C = 4 
  677. 61970 RETURN
  678. 62000 REM **********  ALPHANUMERIC CHECK  **************
  679. 62010 MAX = FL(A,Q)
  680. 62020 GOTO 62040
  681. 62030 REM ********  MAX SET IN PROGRAM  ********
  682. 62040 A$ = ""
  683. 62050 PRINT ">"; 
  684. 62060 FOR N9 = 1 TO MAX
  685. 62070 K$(N9) = ""
  686. 62080 PRINT "_";
  687. 62090 NEXT N9
  688. 62100 PRINT "<";
  689. 62110 T2 = MAX + 1
  690. 62120 FOR T4 = 1 TO T2
  691. 62130 PRINT CHR$(CH);
  692. 62140 NEXT T4
  693. 62150 KT = 0
  694. 62160 KTMAX = 1
  695. 62170 REM ***********  CHECK ALFANUMERIC INPUT FOR LENGTH  ***********
  696. 62180 KT = KT + 1
  697. 62190 PRINT TAB(KT+1)"";
  698. 62200 K$ = INKEY$
  699. 62210 IF K$ = "" GOTO 62200
  700. 62220 C = ASC(K$)
  701. 62230 IF C = 0 THEN GOSUB 61900
  702. 62240 IF C = 13 GOTO 62350
  703. 62250 IF C = 17 OR C = 8 GOTO 62920
  704. 62260 IF C = 19 GOTO 62450
  705. 62270 IF C = 4  GOTO 62500
  706. 62280 IF C = 6 GOTO 62560
  707. 62290 IF C = 1 GOTO 62730
  708. 62300 IF KT > MAX GOTO 62190
  709. 62310 K$(KT) = K$
  710. 62320 PRINT K$(KT);
  711. 62330 IF KT > KTMAX THEN KTMAX = KT
  712. 62340 GOTO 62180
  713. 62350 REM **********  RETURN  **********
  714. 62360 FOR T9 = 1 TO MAX
  715. 62370 A$ = A$ + K$(T9)
  716. 62420 NEXT T9
  717. 62430 PRINT "" 
  718. 62440 RETURN  
  719. 62450 REM ********* MOVE CURSE BACK ********
  720. 62460 IF KT = 1 GOTO 62190
  721. 62470 KT = KT - 1
  722. 62480 PRINT CHR$(CH);
  723. 62490 GOTO 62190
  724. 62500 REM ********* MOVE CURSER FORWARD *********
  725. 62510 IF KT >= MAX GOTO 62190
  726. 62520 IF KT >  KTMAX  GOTO 62190
  727. 62530 PRINT K$(KT);
  728. 62540 KT = KT + 1
  729. 62550 GOTO 62190
  730. 62560 REM ********** INSERT ***********
  731. 62570 X9 = MAX
  732. 62580 WHILE X9 > KT
  733. 62590 X9 = X9 - 1
  734. 62600 K$(X9 + 1) = K$(X9)
  735. 62610 WEND 
  736. 62620 K$(KT) = " "
  737. 62630 KTMAX = KTMAX + 1
  738. 62640 IF KTMAX > MAX THEN KTMAX = MAX
  739. 62650 FOR T9 = KT TO KTMAX
  740. 62660 PRINT K$(T9);
  741. 62670 NEXT T9
  742. 62680 T6 = (KTMAX - KT) +1
  743. 62690 FOR T7 = 1 TO T6
  744. 62700 PRINT CHR$(CH);
  745. 62710 NEXT T7
  746. 62720 GOTO 62190
  747. 62730 REM ********** DELETE ***********
  748. 62740 IF KT > KTMAX GOTO 62200
  749. 62750 IF KTMAX = 1 GOTO 62190
  750. 62760 K$(MAX + 1) = ""
  751. 62770 X9 = KT 
  752. 62780 WHILE X9 <= KTMAX
  753. 62790 K$(X9) = K$(X9 + 1)
  754. 62800 X9 = X9 + 1
  755. 62810 WEND 
  756. 62820 KTMAX = KTMAX - 1
  757. 62830 FOR T9 = KT TO KTMAX
  758. 62840 PRINT K$(T9);
  759. 62850 NEXT T9
  760. 62860 PRINT "_";
  761. 62870 T7 = (KTMAX - KT) + 2
  762. 62880 FOR T6 = 1 TO T7
  763. 62890 PRINT CHR$(CH);
  764. 62900 NEXT T6
  765. 62910 GOTO 62190
  766. 62920 REM ********* BACKSPACE ********
  767. 62930 IF KT = 1 GOTO 62190
  768. 62940 K$(KT) = " "
  769. 62950 KT = KT - 1
  770. 62960 K$(KT) = " "
  771. 62970 PRINT CHR$(CH);
  772. 62980 PRINT "_";
  773. 62990 PRINT CHR$(CH);
  774. 63000 GOTO 62190
  775.  " "
  776. 62950 KT = KT - 1
  777. 62960 K$(KT) = " "
  778. 62970 PRINT CHR$(CH);
  779. 62980 PRINT "_";
  780. 62990 PRINT CHR$(CH);
  781. 63000 G