home *** CD-ROM | disk | FTP | other *** search
/ The Glitch Apple Disk Collection / 2014.glitch.apple.collection.zip / indexed / DF1.DSK / S.bas < prev    next >
BASIC Source File  |  2014-09-09  |  14KB  |  192 lines

  1. 10 TE$ = "": POKE 216,0: TEXT :D$ =  CHR$(4): PRINT D$"NOMON I,O,C": POKE 37902,4
  2. 24  POKE 1013,76: POKE 1014,176: POKE 1015,3: GOTO 100
  3. 40  PRINT D$"OPEN"N$".P,D"D1: PRINT D$"READ"N$".P": INPUT CO,F1,LI,F2,F1$,F3,F3$,F6$,F8$,F8,MO,CT$,N,TF$,LF$: PRINT D$"CLOSE": IF P1$ = "Y"  THEN  PRINT D$"OPEN DATE": PRINT D$"READ DATE": CALL 783:DA$ =  MID$ (TE$,1): PRINT D$"CLOSE"
  4. 50  RETURN 
  5. 80  PRINT  TAB( 3)"* UNIV. DATA MANAGEMENT SYSTEM 4.0 *": PRINT  TAB( 6)"COPYRIGHT 1980 BY W.L.PASSAUER": RETURN 
  6. 100 D1 =  PEEK(864):P$ =  CHR$( PEEK(865)):P1$ =  CHR$( PEEK(866)):S$ =  STR$( PEEK(867)):I =  PEEK(868): FOR X = 869 TO I +868:N$ = N$ + CHR$( PEEK(X)): NEXT 
  7. 120 RF$ = D$ +"READ" +N$ +",R":OF$ = D$ +"OPEN" +N$ +",L":W1$ = D$ +"WRITE TEMP,R":O1$ = D$ +"OPEN TEMP,L":OT$ = D$ +"OPEN VAR TEMP":WT$ = D$ +"WRITE VAR TEMP":CL$ = D$ +"CLOSE": IF D1 = 1  THEN  HOME : PRINT  CHR$(7): VTAB 12: HTAB 4: PRINT "LOAD ";: INVERSE : PRINT "DATA DISK";: NORMAL : PRINT " THEN PRESS 'RTN'";: GET Z$
  8. 140  PRINT : PRINT D$"OPEN"N$".V,D"D1: PRINT D$"READ"N$".V": INPUT NC,RC,RR: DIM CL(NC): FOR X = 1 TO NC: INPUT CL(X): NEXT 
  9. 180 LL = (CL(NC) +NC): PRINT D$"OPEN"N$",L"LL",D"D1: DIM BB(RC),A$(40,NC),B$(20),FR(20),TR(20),C(20),Z$(20),S$(RC),H$(NC),CL%(NC),PC(NC +5)
  10. 190  FOR X = 1 TO NC:B1 = CL(X -1): PRINT D$"READ"N$",R"0",B"B1: CALL 783:H$(X) =  MID$ (TE$,1): NEXT : PRINT D$"CLOSE": FOR X = 1 TO NC:CL%(X) = CL(X) -CL(X -1) -1: NEXT : GOSUB 40
  11. 220  PRINT  CHR$(7);: GOTO 2000
  12. 230 CV =  PEEK(37): POKE 37,(CV -2): CALL  -958: RETURN 
  13. 240  FOR X = 1 TO NC: PRINT  TAB( 4)X;"- ("CL%(X)") ";: HTAB 14: PRINT H$(X): NEXT : RETURN 
  14. 250  FOR X = 1 TO 40: PRINT "-";: NEXT : RETURN 
  15. 310  TEXT : HOME : INVERSE : PRINT "SORT#";: HTAB 8: PRINT "FROM#";: HTAB 15: PRINT "TO#";: HTAB 21: PRINT "FIELD#";: HTAB 29: PRINT "TYPE";: HTAB 35: PRINT "A/D": RETURN 
  16. 2000  REM 
  17. 2010  HOME :A1 = 0:S = 0:I = 0:M1 = 0:X4 = 0:Z1$ = "":Z3$ = "": PRINT  TAB( 13)"* SORT ROUTINE *": GOSUB 250: POKE 34,3
  18. 2020  IF A1 = 1  THEN  VTAB 3: HTAB 6: PRINT "ENTER <CTRL-Q> WHEN FINISHED": GOSUB 250: POKE 34,4
  19. 2030 A1 = A1 +1: IF A1 = 21  THEN X5 = A1 -1: GOTO 2280
  20. 2040  IF A1 >1  THEN  HTAB 10: PRINT "SORT "A1" OF 20 ALLOWED": GOSUB 250: GOTO 2080
  21. 2050  IF A1 >1  THEN 2080
  22. 2055  IF D1 = 1  THEN  HOME : GOTO 2078
  23. 2060  VTAB 4: INPUT "WRITE SORTED FILE TO DRIVE# 1 (Y/N) ? ";Z1$: IF Z1$ < >""  THEN  IF  ASC(Z1$) = 17  THEN  TEXT : GOTO 3055
  24. 2070  IF Z1$ < >"Y"  AND Z1$ < >"N"  THEN  PRINT  CHR$(7);: GOSUB 230: GOTO 2060
  25. 2072  IF Z1$ = "N"  THEN  POKE 76,0: POKE 77,150: CALL 688:SEC =  PEEK(781) + PEEK(782) *256:BY = ( INT(SEC/4) +1) *1024: IF (LL *RC) >BY  THEN  HOME : VTAB 12: PRINT "<CTRL-G>INSUFFICIENT DISK SPACE ON DATA DISK": PRINT "PRESS 'RTN'";: GET Z$: HOME : GOTO 2060
  26. 2074  IF Z1$ = "N"  THEN 2080
  27. 2076  PRINT  CHR$(7): HOME : VTAB 4: PRINT "INSERT A <COPY TO> DISKETTE INTO DRIVE#1AND PRESS 'RTN' ";: GET Z2$: HOME : GOTO 2080
  28. 2078  VTAB 9: HTAB 12: PRINT "IS <COPY TO> DISKETTE:": PRINT : HTAB 10: PRINT "1- ORIGINAL DATA DISKETTE": HTAB 10: PRINT "2- ANOTHER DATA DISKETTE": PRINT : HTAB 17: INPUT "WHICH: ";Z3$: HOME : IF Z3$ < >""  THEN  IF  ASC(Z3$) = 17  THEN  TEXT : GOTO 3055
  29. 2079  IF Z3$ <"1"  OR Z3$ >"2"  THEN  PRINT  CHR$(7): TEXT : GOTO 2000
  30. 2080  VTAB 8: PRINT "SORT FROM RECORD #: 1";: HTAB 21: INPUT "";FR$: IF FR$ = ""  THEN FR(A1) = 1: HTAB 21: VTAB 8: PRINT 1: GOTO 2130
  31. 2090  IF  ASC(FR$) = 17  AND A1 = 1  THEN  TEXT : GOTO 3050
  32. 2100  IF  ASC(FR$) = 17  THEN X5 = A1 -1: GOTO 2280
  33. 2110 FR(A1) =  VAL(FR$)
  34. 2120  IF FR(A1) <1  OR FR(A1) >RC  THEN  PRINT  CHR$(7);: GOSUB 230: GOTO 2080
  35. 2130  VTAB 10: PRINT "TO RECORD #: "RC;: HTAB 14: INPUT "";TR$: IF TR$ = ""  THEN TR$ =  STR$(RC)
  36. 2140 TR(A1) =  VAL(TR$): IF TR(A1) <FR(A1)  OR TR(A1) >RC  THEN  PRINT  CHR$(7);: GOSUB 230: GOTO 2130
  37. 2150  IF A1 >1  THEN 2210
  38. 2210  HOME : GOSUB 240: PRINT : PRINT "SORT WHICH FIELD (1-";NC;") ";: INPUT C$
  39. 2220 C(A1) =  VAL(C$): IF C(A1) <1  OR C(A1) >NC  THEN  PRINT  CHR$(7);: GOTO 2210
  40. 2230  HOME : PRINT :B$(A1) = "": HTAB 12: PRINT "* SORTING OPTIONS *": PRINT : HTAB 15: PRINT "W- WORD": HTAB 15: PRINT "N- NUMBER": HTAB 15: PRINT "D- DATE": PRINT : HTAB 16: INPUT "WHICH: ";B$(A1): PRINT : IF B$(A1) < >"W"  AND B$(A1) < >"N"  AND B$(A1) < >"D"  THEN  PRINT  CHR$(7): HOME : GOTO 2230
  41. 2240  INPUT "ASCENDING OR DESCENDING ORDER (A/D) ? ";Z$(A1): IF Z$(A1) < >"A"  AND Z$(A1) < >"D"  THEN  PRINT  CHR$(7);: GOSUB 230: GOTO 2240
  42. 2250  IF FR(A1) = 1  AND TR(A1) = RC  THEN 2290
  43. 2260  IF X4 >0  THEN 2280
  44. 2270  HOME : GOTO 2020
  45. 2280  GOSUB 310: FOR X3 = 1 TO X5: HTAB 2: INVERSE : PRINT X3;: NORMAL : HTAB 8: PRINT FR(X3);: HTAB 15: PRINT TR(X3);: HTAB 23: PRINT C(X3);
  46. 2285  HTAB 30: PRINT B$(X3);: HTAB 36: PRINT Z$(X3): NEXT : PRINT : HTAB 10: PRINT "ALL CORRECT (0)": HTAB 10: PRINT "NOT CORRECT (1-"X5"):";: INPUT "";X4
  47. 2290  IF X4 >X5  THEN  PRINT  CHR$(7): GOTO 2280
  48. 2300  IF X4 = 0  THEN 2320
  49. 2305  GOSUB 310: HTAB 2: INVERSE : PRINT X4;: NORMAL : HTAB 8: PRINT FR(X4);: HTAB 15: PRINT TR(X4);: HTAB 23: PRINT C(X4);: HTAB 30: PRINT B$(X4);: HTAB 36: PRINT Z$(X4): POKE 34,2
  50. 2310 A1 = X4: HOME : GOTO 2080
  51. 2320  HOME : VTAB 12: HTAB 14: FLASH : PRINT "< WORKING >": NORMAL : FOR X3 = 1 TO RC:BB(X3) = X3: NEXT 
  52. 2330  FOR X3 = 1 TO X5:E = FR(X3) -1:N1 = 0
  53. 2335  ONERR  GOTO 4000
  54. 2340  TEXT : HOME : VTAB 12: HTAB 11: PRINT "< RECALLING DATA >": PRINT OF$LL",D"D1: FOR I = FR(X3) TO TR(X3):B1 = (CL(C(X3) -1))
  55. 2350  PRINT RF$I",B"B1:E = E +1: CALL 783:S$(E) =  MID$ (TE$,1):BB(E) = I: IF S$(E) < >""  THEN  IF S$(E) = "@"  THEN E = E -1:RC = RC -1:S = S +1
  56. 2360  NEXT : PRINT : PRINT CL$: POKE 216,0: HOME : IF X3 = 1  THEN N1 = S
  57. 2370  IF X5 >1  THEN  VTAB 8: HTAB 8: PRINT "SORT > "X3" < OF > "X5" SORTS"
  58. 2380  VTAB 10: HTAB 10: PRINT "SORTING "(TR(X3) -FR(X3)) +1 -N1" RECORDS": VTAB 12: HTAB 12: PRINT "NO. OF MOVES":M = (TR(X3) -N1) -FR(X3) +1:NN = TR(X3) -N1
  59. 2390 M =  INT(M/2): VTAB 14: HTAB 10: PRINT "SORT OVER WHEN '0'-> "M"   ": IF M = 0  THEN  PRINT  CHR$(7);: GOTO 2620
  60. 2400 J = FR(X3):P = NN -M
  61. 2410 I = J
  62. 2420 B = I +M: IF B$(X3) = "N"  THEN 2570
  63. 2430  IF B$(X3) = "D"  THEN  CALL 37896: GOTO 2520
  64. 2440  IF Z$(X3) = "A"  THEN 2470
  65. 2450  IF S$(I) > = S$(B)  THEN 2500
  66. 2460  GOTO 2480
  67. 2470  IF S$(I) < = S$(B)  THEN 2500
  68. 2480  & S$(I),S$(B):G = BB(I):BB(I) = BB(B):BB(B) = G:S = S +1: VTAB 12: HTAB 25: PRINT S:I = I -M: IF I <FR(X3)  THEN 2500
  69. 2490  GOTO 2420
  70. 2500 J = J +1: IF J >P  THEN 2390
  71. 2510  GOTO 2410
  72. 2520  IF Z$(X3) = "A"  THEN 2550
  73. 2530  IF  RIGHT$(S$(I),2) + LEFT$(S$(I),2) + MID$ (S$(I),4,2) > =  RIGHT$(S$(B),2) + LEFT$(S$(B),2) + MID$ (S$(B),4,2)  THEN 2500
  74. 2540  GOTO 2480
  75. 2550  IF  RIGHT$(S$(I),2) + LEFT$(S$(I),2) + MID$ (S$(I),4,2) < =  RIGHT$(S$(B),2) + LEFT$(S$(B),2) + MID$ (S$(B),4,2)  THEN 2500
  76. 2560  GOTO 2480
  77. 2570  IF Z$(X3) = "D"  THEN 2600
  78. 2580  IF  VAL(S$(I)) < =  VAL(S$(B))  THEN 2500
  79. 2590  GOTO 2480
  80. 2600  IF  VAL(S$(I)) > =  VAL(S$(B))  THEN 2500
  81. 2610  GOTO 2480
  82. 2620  HOME : NEXT X3: IF S = 0  THEN 3040
  83. 2630  HOME : PRINT  TAB( 7)"> REORGANIZING DISC DATA <": GOSUB 250: VTAB 4: HTAB 6: PRINT "WE WILL BE MOVING "RC" RECORDS"
  84. 2640 R8 =  INT(23000/LL): IF R8 >40  THEN R8 = 40
  85. 2650  IF D1 = 1  OR Z1$ = "N"  THEN 3060
  86. 2660  PRINT : PRINT D$"OPEN"N$".P,D1": PRINT D$"WRITE"N$".P"
  87. 2670  PRINT CO: PRINT F1: PRINT LI: PRINT F2: PRINT F1$: PRINT F3: PRINT F3$: PRINT F6$: PRINT F8$: PRINT F8: PRINT MO: PRINT CT$: PRINT N: PRINT TF$: PRINT LF$: PRINT CL$: PRINT D$"OPEN DATE": PRINT D$"WRITE DATE": PRINT DA$: PRINT CL$
  88. 2680  PRINT : PRINT D$"OPEN"N$".V,D1": PRINT D$"WRITE"N$".V"
  89. 2690  PRINT NC: PRINT RC: PRINT RR
  90. 2700  FOR N1 = 1 TO NC: PRINT CL(N1): NEXT 
  91. 2710  PRINT : PRINT CL$
  92. 2720  PRINT : PRINT D$"OPEN"N$",L"LL
  93. 2730  FOR X1 = 1 TO NC:B1 = CL(X1 -1): PRINT D$"WRITE"N$",R"0",B"B1: PRINT H$(X1): NEXT : PRINT CL$
  94. 2740  ONERR  GOTO 2870
  95. 2750  PRINT D$"OPEN"N$".F,D"D1: PRINT D$"READ"N$".F"
  96. 2760  INPUT NR: FOR J = 1 TO NR: INPUT R$(J): NEXT 
  97. 2770  PRINT D$"OPEN"N$".F,D1": PRINT D$"WRITE"N$".F"
  98. 2780  PRINT NR: FOR J = 1 TO NR: PRINT R$(J): NEXT : PRINT CL$: POKE 216,0
  99. 2790  FOR I = 1 TO NR
  100. 2800  PRINT D$"OPEN"R$(I)"-F,D"D1: PRINT D$"READ"R$(I)"-F"
  101. 2810  INPUT CO,F1,LI,F2,F1$,F3,F6$,F8$,F3$,A$,F5$,W3$,W2$,H1,WR$,F7$,CP,WN$,N,TF$,V$
  102. 2820  FOR X = 1 TO CP -1: INPUT PC(X): NEXT : PRINT CL$
  103. 2830  PRINT : PRINT D$"OPEN"R$(I)"-F,D1": PRINT D$"WRITE"R$(I)"-F"
  104. 2840  PRINT CO: PRINT F1: PRINT LI: PRINT F2: PRINT F1$: PRINT F3: PRINT F6$: PRINT F8$: PRINT F3$: PRINT A$: PRINT F5$: PRINT W3$: PRINT W2$: PRINT H1: PRINT WR$: PRINT F7$: PRINT CP: PRINT WN$: PRINT N: PRINT TF$: PRINT V$
  105. 2850  FOR X = 1 TO CP -1: PRINT PC(X): NEXT : PRINT CL$
  106. 2860  NEXT I
  107. 2870  PRINT CL$: POKE 216,0
  108. 2880  PRINT D$"OPEN"N$",L"LL
  109. 2890  FOR X1 = 1 TO NC:B1 = CL(X1 -1): PRINT D$"WRITE"N$",R"0",B"B1: PRINT H$(X1): NEXT 
  110. 2900  PRINT CL$
  111. 2910 R2 = 0:R3 = RC:R4 = 1:R5 = 0
  112. 2920 R6 = 0: IF R3 >R8  THEN R1 = R8: GOTO 2940
  113. 2930 R1 = R3
  114. 2940  VTAB 9: HTAB 11: PRINT "MOVING";: HTAB 18: PRINT R1" ";: HTAB 21: PRINT "RECORDS"
  115. 2950  PRINT OF$LL",D"D1: PRINT D$"OPEN"N$,L"LL",D"D1
  116. 2960 R5 = R5 +R1: FOR X2 = R4 TO R5
  117. 2970 R6 = R6 +1: FOR X = 1 TO NC:B1 = CL(X -1): PRINT RF$BB(X2)",B"B1: CALL 783:A$(R6,X) =  MID$ (TE$,1): NEXT : NEXT : PRINT CL$
  118. 2980  PRINT D$"OPEN"N$",L"LL",D1"
  119. 2990 R6 = 0: FOR X2 = R4 TO R5
  120. 3000 R6 = R6 +1: FOR X1 = 1 TO NC:B1 = CL(X1 -1): PRINT D$"WRITE"N$",R"X2",B"B1: PRINT A$(R6,X1): NEXT : NEXT : PRINT CL$
  121. 3010 R2 = R2 +R1: VTAB 12: HTAB 11: PRINT R2" ";: HTAB 16: PRINT "RECORDS MOVED"
  122. 3020 R4 = R4 +R1:R3 = RC -R2: VTAB 14: HTAB 11: PRINT R3" ";: HTAB 16: PRINT "RECORDS TO GO": IF R3 = 0  THEN  GOSUB 3590: POKE 216,0: GOTO 3040
  123. 3030  CALL 37896
  124. 3035  GOTO 2920
  125. 3040  HOME : VTAB 12: PRINT  TAB( 10)"* * DONE SORTING * *": FOR TI = 1 TO 10: PRINT  CHR$(7);: NEXT 
  126. 3045  IF D1 = 2  AND Z1$ = "Y"  THEN  VTAB 14: PRINT "REINSERT <REPORT DISK> INTO DRIVE# 1    AND PRESS 'RTN' ";: GET Z1$
  127. 3050  TEXT : VTAB 23: INVERSE : PRINT "R)ESTART/'RTN' MENU ";: NORMAL : GET Z$: IF Z$ = "R"  THEN 2000
  128. 3055  IF D1 = 1  THEN  HOME : PRINT  CHR$(7): VTAB 12: HTAB 4: PRINT "LOAD ";: INVERSE : PRINT "REPORT DISK";: NORMAL : PRINT " THEN PRESS 'RTN'";: GET Z$
  129. 3056  HOME : VTAB 12: HTAB 11: PRINT ">> LOADING MENU <<"
  130. 3057  PRINT D$"RUN MENU,D1"
  131. 3060  IF Z3$ = "1"  OR Z1$ = "N"  THEN 3230
  132. 3070  ONERR  GOTO 3220
  133. 3080  PRINT D$"OPEN"N$".F,D"D1: PRINT D$"READ"N$".F"
  134. 3090  INPUT NR: FOR J = 1 TO NR: INPUT R$(J): NEXT : POKE 216,0
  135. 3100  FOR I = 1 TO NR
  136. 3110  IF I >1  THEN  PRINT  CHR$(7);: VTAB 23: PRINT "INSERT ";: INVERSE : PRINT "ORIGINAL DATA DISK";: NORMAL : PRINT " & PRESS 'RTN'";: GET Z2$:`230
  137. 3120  PRINT : PRINT D$"OPEN"R$(I)"-F,D"D1: PRINT D$"READ"R$(I)"-F"
  138. 3130  INPUT CO,F1,LI,F2,F1$,F3,F6$,F8$,F3$,A$,F5$,W3$,W2$,H1,WR$,F7$,CP,WN$,N,TF$
  139. 3140  FOR X = 1 TO CP -1: INPUT PC(X): NEXT : PRINT : PRINT CL$
  140. 3150  PRINT  CHR$(7);: VTAB 23: PRINT "INSERT ";: INVERSE : PRINT "COPY DISK";: NORMAL : PRINT " AND PRESS 'RTN'";: GET Z2$: GOSUB 230
  141. 3160  PRINT : PRINT D$"OPEN"R$(I)"-F,D1": PRINT D$"WRITE"R$(I)"-F"
  142. 3170  PRINT CO: PRINT F1: PRINT LI: PRINT F2: PRINT F1$: PRINT F3: PRINT F6$: PRINT #8$: PRINT F3$: PRINT A$: PRINT F5$: PRINT W3$: PRINT W2$: PRINT H1: PRINT WR$: PRINT F7$: PRINT CP: PRINT WN$: PRINT N: PRINT TF$
  143. 3180  FOR X = 1 TO CP -1: PRINT PC(X): NEXT : PRINT : PRINT CL$
  144. 3190  NEXT I
  145. 3200  PRINT D$"OPEN"N$".F,D1": PRINT D$"WRITE"N$".F"
  146. 3210  PRINT NR: FOR J = 1 TO NR: PRINT R$(J): NEXT 
  147. 3220  PRINT CL$: POKE 216,0
  148. 3230  IF NR <1  AND Z3$ = "2"  THEN  PRINT  CHR$(7);: VTAB 23: PRINT "INSERT ";: INVERSE : PRINT "COPY DISK";: NORMAL : PRINT " AND PRESS 'RTN'";: GET Z2$: GOSUB 230
  149. 3240  VTAB 23: HTAB 15: FLASH : PRINT "- WORKING -": NORMAL 
  150. 3250  PRINT OT$",D"D1: PRINT WT$
  151. 3260  PRINT NC: PRINT RC: PRINT RR
  152. 3270  FOR N1 = 1 TO NC: PRINT CL(N1): NEXT 
  153. 3280  PRINT CL$
  154. 3290  PRINT O1$LL
  155. 3300  FOR X1 = 1 TO NC:B1 = CL(X1 -1): PRINT W1$0",B"B1: PRINT H$(X1): NEXT 
  156. 3310  PRINT CL$
  157. 3320  IF Z1$ = "N"  THEN 3350
  158. 3330  PRINT D$"OPEN"N$".P,D1": PRINT D$"WRITE"N$".P"
  159. 3340  PRINT CO: PRINT F1: PRINT LI: PRINT F2: PRINT F1$: PRINT F3: PRINT F3$: PRINT F6$: PRINT F8$: PRINT F8: PRINT MO: PRINT CT$: PRINT N: PRINT TF$: PRINT LF$: PRINT CL$: PRINT D$"OPEN DATE": PRINT D$"WRITE DATE": PRINT DA$: PRINT CL$
  160. 3350 R2 = 0:R3 = RC:R4 = 1:R5 = 0
  161. 3360  IF Z3$ = "2"  THEN  PRINT  CHR$(7);: VTAB 23: PRINT "INSERT ";: INVERSE : PRINT "ORIGINAL DATA DISK";: NORMAL : PRINT " & PRESS 'RTN'";: GET Z2$: GOSUB 230
  162. 3370 R6 = 0: IF R3 >R8  THEN R1 = R8: GOTO 3390
  163. 3380 R1 = R3
  164. 3390  VTAB 9: HTAB 11: PRINT "MOVING";: HTAB 18: PRINT R1" ";: HTAB 21: PRINT "RECORDS"
  165. 3400  PRINT OF$LL",D"D1
  166. 3410 R5 = R5 +R1: FOR X2 = R4 TO R5
  167. 3420 R6 = R6 +1: FOR X = 1 TO NC:B1 = CL(X -1): PRINT RF$BB(X2)",B"B1: CALL 783:A$(R6,X) =  MID$ (TE$,1): NEXT : NEXT 
  168. 3430  PRINT CL$
  169. 3440  IF Z3$ = "2"  THEN  PRINT  CHR$(7);: VTAB 23: PRINT "INSERT ";: INVERSE : PRINT "COPY DISK";: NORMAL : PRINT " AND PRESS 'RTN'";: GET Z2$: GOSUB 230
  170. 3450  PRINT : PRINT O1$LL
  171. 3460 R6 = 0: FOR X2 = R4 TO R5
  172. 3470 R6 = R6 +1: FOR X1 = 1 TO NC:B1 = CL(X1 -1): PRINT W1$X2",B"B1: PRINT A$(R6,X1): NEXT : NEXT : PRINT CL$
  173. 3480 R2 = R2 +R1: VTAB 12: HTAB 11: PRINT R2;: HTAB 16: PRINT "RECORDS MOVED"
  174. 3490 R4 = R4 +R1:R3 = RC -R2: VTAB 14: HTAB 11: PRINT R3" ";: HTAB 16: PRINT "RECORDS TO GO": IF R3 = 0  THEN 3510
  175. 3500  CALL 37896
  176. 3505  GOTO 3360
  177. 3510  IF Z3$ = "2"  THEN 3560
  178. 3520  PRINT : PRINT D$"DELETE"N$: PRINT D$"RENAME TEMP,"N$
  179. 3530  PRINT : PRINT D$"DELETE"N$".V": PRINT D$"RENAME VAR TEMP,"N$".V"
  180. 3540  IF Z3$ = "2"  THEN  GOSUB 3590: POKE 216,0
  181. 3550  GOTO 3040
  182. 3560  PRINT : PRINT D$"RENAME TEMP,"N$
  183. 3570  PRINT : PRINT D$"RENAME VAR TEMP,"N$".V"
  184. 3580  GOTO 3540
  185. 3590  FOR I = 1013 TO 1022: READ PP: POKE I,PP: NEXT : DATA  104,168,104,166,223,1            54,72,152,72,96
  186. 3600  VTAB 23: HTAB 15: FLASH : PRINT "-WORKING-": NORMAL 
  187. 3610  ONERR  GOTO 3630
  188. 3620  PRINT D$"OPEN DATA FILES,D1": PRINT D$"READ DATA FILES": INPUT NR: FOR J = 1 TO NR: INPUT R$(J): NEXT : PRINT CL$:R$(NRd1) = N$: PRINT D$"OPEN DATA FILES": PRINT D$"WRITE DATA FILES": PRINT NR +1: FOR J = 1 TO NR +1: PRINT R$(J): NEXT : PRINT CL$: GOTO 3640
  189. 3630  CALL 1013: PRINT D$"OPEN DATA FILES": PRINT D$"WRITE DATA FILES": PRINT 1: PRINT N$: PRINT CL$
  190. 3640  POKE 216,0: POKE 1013,76: POKE 1014,176: POKE 1015,3: RESTORE : RETURN 
  191. 4000  POKE 216,0: PRINT  CHR$(7): HOME : VTAB 12: PRINT "DISK ERROR-RECORD ";: INVERSE : PRINT I;: NORMAL : PRINT " MAY BE BAD": PRINT "PRESS 'RTN'";: GET Z$: GOTO 3045
  192. 63000  GOTO 2000