home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh0x / sh02.d64 / reformat (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1995-03-30  |  5.5 KB  |  228 lines

  1. 1 REM *******************************
  2. 2 REM *       REFORMAT V4.0         *
  3. 3 REM *                             *
  4. 4 REM *  (C) 1985 BY GEORG BURGER   *
  5. 5 REM *     ROIDERSTRASSE 18        *
  6. 6 REM *       8051 ZOLLING          *
  7. 7 REM *******************************
  8. 8 :
  9. 9 :
  10. 10 POKE53280,0:POKE53281,0:POKE646,5:PRINTCHR$(142)
  11. 20 OPEN1,8,15,"I":CLOSE1:GOTO1000
  12. 97 :
  13. 98 REM  ---------ROUTINEN--------------
  14. 99 :
  15. 100 CLOSE5:OPEN5,8,5,"#2":RETURN
  16. 200 INPUT#15,Y1$,Y2$,Y3$,Y4$
  17. 210 IFVAL(Y1$)=0THENRETURN
  18. 220 PRINT""Y1$" "Y2$" "Y3$" "Y4$
  19. 230 PRINT"   USE  _ [146] TO EXIT OR  F7 [146] TO CONTINUE"
  20. 240 POKE198,0
  21. 250 GETA$:IFA$=""THEN250
  22. 260 IFA$="_"THENRUN
  23. 270 IFASC(A$)=136THENRETURN
  24. 280 GOTO250
  25. 300 PRINT"[147][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]";
  26. 310 PRINT"   REFORMAT  V4.0    BY  GEORG BURGER   [146]";
  27. 320 FORI=1TO7:PRINT"[165]                                      [167]";:NEXTI
  28. 330 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]":RETURN
  29. 400 PRINT"OLD DIRECTORY-REGISTER:":PRINT
  30. 410 PRINT"NAME",DN$(D1)
  31. 420 PRINT"BLOCKS",DL(D1)
  32. 430 PRINT"TRACK",DS(D1)
  33. 440 PRINT"SECTOR",DB(D1)
  34. 450 EF$="Y":RETURN
  35. 500 PRINT"              PRESS ANY KEY [146]":POKE198,0
  36. 510 GETA$:IFA$=""THEN510
  37. 520 RETURN
  38. 600 D1=0
  39. 610 IF(DS(D1)=AS)AND(DB(D1)=AB)THEN400
  40. 620 D1=D1+1:IFD1>=DPTHENRETURN
  41. 630 GOTO610
  42. 700 MB=NB:NB=NB+3
  43. 710 IFNB=19THENNB=2
  44. 720 IFNB=20THENNB=3
  45. 730 RETURN
  46. 997 :
  47. 998 REM --------- MENUE ---------------
  48. 999 :
  49. 1000 OPEN15,8,15:OPEN5,8,5,"#2"
  50. 1010 DIMS(35,21),B(35,21),BL(35),DI$(29),DI(29),A$(255)
  51. 1020 DIMSV(35,21),BV(35,21),US(35,21),DS(144),DB(144),DL(144),DN$(144),DT(144)
  52. 1030 FORI=1TO17:BL(I)=20:NEXT:FORI=18TO24:BL(I)=18:NEXT
  53. 1040 FORI=25TO30:BL(I)=17:NEXT:FORI=31TO35:BL(I)=16:NEXT
  54. 1050 GOSUB300:POKE214,4:POKE211,0:SYS58640
  55. 1060 PRINT"    F1 [146]   RECONSTRUCT DIRECTORY
  56. 1070 [153]"    F7 WAIT   EXAMINE DIRECTORY":[151]198,0
  57. 1080 [161]A$:[139]A$[178]""[167]1080
  58. 1090 [139][198](A$)[178]133[167][141]100:[137]2000
  59. 1100 [139][198](A$)[178]136[167][141]100:[141]4000:[137]1050
  60. 1110 [137]1080
  61. 1997 :
  62. 1998 [143] --- RECONSTRUCT DIRECTORY ----
  63. 1999 :
  64. 2000 [141]300:[151]214,4:[151]211,0:[158]58640
  65. 2010 [153]"         RECONSTRUCT DIRECTORY
  66. 2020 PRINT"            USE  _ [146] TO EXIT
  67. 2030 [153]"TOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTOTO";
  68. 2040 [153]" TRACK   SECTOR   TO   TRACK     SECTOR WAIT"
  69. 2050 [129]S[178]1[164]35:[129]B[178]0[164]BL(S)
  70. 2060 [152]15,"B-R:"5;0;S;B:[141]200
  71. 2070 [152]15,"B-P:"5;0:[141]200
  72. 2080 [161]#5,E$
  73. 2090 [161]#5,F$
  74. 2100 E[178][198](E$[170][199](0))
  75. 2110 F[178][198](F$[170][199](0))
  76. 2120 [153]"  "S,B,"    "E,"    "F
  77. 2130 [161]A$:[139]A$[178]""[167]2150
  78. 2140 [139]A$[178]"_"[167][160]15:[138]
  79. 2150 [139]E[178]75[175]F[178]1[167]US(S,B)[178][171]2:[137]2200
  80. 2160 [139]E[177]35[167]E[178]0
  81. 2170 [139]F[177]21[167]F[178]21
  82. 2180 S(S,B)[178]E:B(S,B)[178]F
  83. 2190 SV(E,F)[178]S:BV(E,F)[178]B:US(E,F)[178]US(E,F)[170]1
  84. 2200 [130]:[130]
  85. 2210 [143] ------ CRITICAL BLOCKS -------
  86. 2220 [141]300:[151]214,5:[151]211,0:[158]58640
  87. 2230 [153]"            CRITICAL BLOCKS
  88. 2240 PRINT" TRACK   SECTOR   LENGHT [146]":PRINT
  89. 2250 FORS=1TO35
  90. 2260 FORB=0TOBL(S)
  91. 2270 IFUS(S,B)<2THEN2290
  92. 2280 PRINT"  "S,B,US(S,B)
  93. 2290 NEXT:NEXT
  94. 2300 PRINT"          END OF CRITICAL BLOCKS [146]"
  95. 2310 GOSUB500:GOSUB300:POKE214,4:POKE211,0:SYS58640
  96. 2320 PRINT"   USE OLD DIRECTORY TO NAME FILES ?
  97. 2330 [153]"                (Y/N)
  98. 2340 GETDA$:IFDA$=""THEN2340
  99. 2350 IFDA$<>"N"THENDA$="Y":GOSUB4030
  100. 2360 FORS=1TO35
  101. 2370 IFS=18THEN2550
  102. 2380 FORB=0TOBL(S)
  103. 2390 S1=S:B1=B
  104. 2400 IF(S=1)AND(S(S,B)=0)AND(B(S,B)=1)THEN2540
  105. 2410 IFUS(S1,B1)<0THEN2540
  106. 2420 IFUS(S1,B1)>0THENS2=SV(S1,B1):B2=BV(S1,B1):S1=S2:B1=B2:GOTO2420
  107. 2430 PRINT"[147][192][192][192][192][192][192][192][192][192][192][192][192][192][192] FILE-START [146][192][192][192][192][192][192][192][192][192][192][192][192][192][192]";:BA=1:AS=S1:AB=B1
  108. 2440 PRINTS1,B1:US(S1,B1)=-1
  109. 2450 S2=S(S1,B1):B2=B(S1,B1):S1=S2:B1=B2
  110. 2460 IFS1<>0THENBA=BA+1:GOTO2440
  111. 2470 PRINT"[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192] FILE-END [146][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
  112. 2475 PRINT"LENGHT:";BA;"BLOCKS":PRINT
  113. 2480 IFBA<2THEN2540
  114. 2490 IFDA$="Y"THENEF$="N":GOSUB600
  115. 2500 PRINT"WRITE BACK IN DIRECTORY (Y/N)":POKE198,0:PRINT
  116. 2510 GETE$:IFE$=""THEN2510
  117. 2520 IFE$="Y"THEN2570
  118. 2530 IFE$<>"N"THEN2510
  119. 2540 NEXTB
  120. 2550 NEXTS
  121. 2560 GOTO1050
  122. 2570 REM -------- WRITE BAM -----------
  123. 2580 S1=AS:B1=AB
  124. 2590 PRINT#15,"B-A:"0;S1;B1:GOSUB200
  125. 2600 S2=S(S1,B1):B2=B(S1,B1):S1=S2:B1=B2
  126. 2610 IFS1<>0THEN2590
  127. 2620 REM ----- WRITE DIRECTORY --------
  128. 2630 MB=1:NB=4
  129. 2640 PRINT#15,"U1:"5;0;18;MB:GOSUB200
  130. 2650 PRINT#15,"B-P:"5;0:GOSUB200
  131. 2660 GET#5,NS$,NB$
  132. 2670 NS=ASC(NS$+CHR$(0))
  133. 2680 IFNS<>0THENGOSUB700:GOTO2640
  134. 2690 C=0
  135. 2700 GET#5,A$,B$,C$
  136. 2710 IFA$=""THENA$="0"
  137. 2720 IFB$=""THENB$="0"
  138. 2730 IFC$=""THENC$="0"
  139. 2740 IFA$="0"THENIFB$="0"THENIFC$="0"THEN2910
  140. 2750 FORI=1TO27:GET#5,A$:NEXT
  141. 2760 C=C+1:IFC<8THENGET#5,A$,A$:GOTO2700
  142. 2770 IFMB<18THEN2810
  143. 2780 PRINT"DIRECTORY IS FULL !"
  144. 2790 GETA$:IFA$=""THEN2790
  145. 2800 GOTO1050
  146. 2810 PRINT#15,"B-P:"5;0:GOSUB200
  147. 2820 PRINT#5,CHR$(18);
  148. 2830 PRINT#5,CHR$(NB);
  149. 2840 PRINT#15,"U2:"5;0;18;MB:GOSUB200
  150. 2850 GOSUB700
  151. 2860 PRINT#15,"U1:"5;0;18;MB:GOSUB200
  152. 2870 PRINT#15,"B-P:"5;0:GOSUB200
  153. 2880 PRINT#5,CHR$(0);CHR$(255);:FORI=0TO253:PRINT#5,CHR$(0);:NEXT
  154. 2890 PRINT#15,"U2:"5;0;18;MB:GOSUB200
  155. 2900 GOTO2640
  156. 2910 PRINT"TRACK 18 SECTOR"MB"POSITION"C+1:PRINT
  157. 2920 P=2+C*32
  158. 2930 PRINT#15,"B-P:"5;P:GOSUB200
  159. 2940 DI$(0)=CHR$(130)
  160. 2950 DI$(1)=CHR$(AS)
  161. 2960 DI$(2)=CHR$(AB)
  162. 2970 FORI=3TO18:DI$(I)=CHR$(160):NEXT
  163. 2980 IFDA$="Y"ANDEF$="Y"THENPRINT"       "DN$(D1)"[145]"
  164. 2990 INPUT"NAME ";N$
  165. 3000 N$=LEFT$(N$,16)
  166. 3010 FORI=0TOLEN(N$)-1
  167. 3020 DI$(3+I)=MID$(N$,I+1,1)
  168. 3030 NEXT
  169. 3040 FORI=19TO27:DI$(I)=CHR$(0):NEXT
  170. 3050 BH=INT(BA/256):BL=BA-256*BH
  171. 3060 DI$(28)=CHR$(BL)
  172. 3070 DI$(29)=CHR$(BH)
  173. 3080 FORI=0TO29
  174. 3090 PRINT#5,DI$(I);
  175. 3100 NEXT
  176. 3110 PRINT#15,"U2:"5;0;18;MB:GOSUB200
  177. 3120 GOTO2540
  178. 3997 :
  179. 3998 REM ---- EXAMINE DIRECTORY -------
  180. 3999 :
  181. 4000 GOSUB300:POKE214,4:POKE211,0:SYS58640
  182. 4010 PRINT"           EXAMINE DIRECTORY
  183. 4020 [153]"            USE  _ WAIT TO EXIT
  184. 4030 PRINT
  185. 4040 MB=1:DP=0
  186. 4050 PRINT#15,"U1:"5;0;18;MB:GOSUB200
  187. 4060 PRINT#15,"B-P:"5;0:GOSUB200
  188. 4070 GET#5,NS$,NB$
  189. 4080 NB=ASC(NB$+CHR$(0))
  190. 4090 NS=ASC(NS$+CHR$(0))
  191. 4100 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]";
  192. 4110 PRINT"     TRACK 18  SECTOR"MB"-->"NS" "NB
  193. 4120 PRINT"[164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]";
  194. 4130 GETA$:IFA$=""THEN4150
  195. 4140 IFA$="_"THENCLOSE15:RUN
  196. 4150 IFNS=75ANDNB=1THEN4440
  197. 4160 PRINT
  198. 4170 PRINT"BLOCKS"TAB(7)"NAME"TAB(26)"TYP"TAB(31)"TRA."TAB(36)"SEC.[146]"
  199. 4180 FORC=0TO7
  200. 4190 GETA$:IFA$=""THEN4210
  201. 4200 IFA$="_"THENCLOSE15:RUN
  202. 4210 FORI=0TO29
  203. 4220 GET#5,DI$(I)
  204. 4230 NEXTI
  205. 4240 IFC<>7THENGET#5,A$,A$
  206. 4250 FORI=0TO29:DI(I)=ASC(DI$(I)+CHR$(0)):NEXT
  207. 4260 KW$=" NO MORE FILES IN SECTOR"
  208. 4270 IFDI(0)=0ANDDI(1)=0ANDDI(2)=0THENPRINT"      "KW$;MB"[157] [146]":PRINT:GOTO4440
  209. 4280 DS(DP)=DI(1):DB(DP)=DI(2)
  210. 4290 DL(DP)=DI(29)*256+DI(28)
  211. 4300 DN$(DP)="":FORI=3TO18:IFDI(I)<>160THENDN$(DP)=DN$(DP)+DI$(I)
  212. 4310 NEXTI
  213. 4320 DT(DP)=DI(0)
  214. 4330 DP=DP+1
  215. 4340 PRINTDI(29)*256+DI(28);TAB(7);CHR$(34);
  216. 4350 FORI=3TO18:IFDI(I)<>160THENPRINTDI$(I);
  217. 4360 NEXT:PRINTCHR$(34);
  218. 4370 BY=DI(0)AND(NOT128):IFBY=0THENPRINTTAB(26);"DEL";
  219. 4380 IFBY=1THENPRINTTAB(26);"SEQ";
  220. 4390 IFBY=2THENPRINTTAB(26);"PRG";
  221. 4400 IFBY=3THENPRINTTAB(26);"USR";
  222. 4410 IFBY=4THENPRINTTAB(26);"REL";
  223. 4420 PRINTTAB(30);DI(1);TAB(35);DI(2)
  224. 4430 NEXTC
  225. 4440 MB=MB+1:IFMB<>19THEN4050
  226. 4450 IFDA$="Y"THENRETURN
  227. 4460 GOSUB500:RETURN
  228.