home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1984 October / 64er_Magazin_84-10_1984_Markt__Technik_de.d64 / diskorganisat.64 (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  11KB  |  328 lines

  1. 1 rem **********************************
  2. 2 rem *disketten-organisations-programm*
  3. 3 rem *       fuer den cbm-64          *
  4. 4 rem *            von                 *
  5. 5 rem *wilhelm boosz - heinrichstr. 21 *
  6. 6 rem *8602 strullendorf - t.09543/7606*
  7. 7 rem **********************************
  8. 8 rem
  9. 9 poke49152,8:poke53280,1:poke53281,1
  10. 10 print"[147]";:gn%=peek(49152):ur%=0
  11. 11 print"[156]    disketten-organisations-programm"
  12. 12 print"         von wilhelm boosz / 09543/7606"
  13. 13 printtab(4)"geraetenr. floppy =          [157][157][157][157][157][157][157][157][157][157]"gn%" (+/-)"
  14. 14 print"[149] i[146] nitialisieren"tab(22)"f[146] ormatieren"
  15. 15 print" v[146] alidieren"tab(22)"d[146] irectory"
  16. 16 print" k[146] opieren"tab(22)"b[146] am alphabetisch"
  17. 17 print" g[146] eraetenr.aendern"tab(22)"u[146] mbenennen"
  18. 18 print" l[146] oeschen"tab(22)"r[146] egenerieren"
  19. 19 print" n[146] ame disk aendern"tab(22)"a[146] endern disk-id"
  20. 20 print" c[146] heck disk"tab(22)"e[146] nde programm"
  21. 21 printtab(10)"bitte waehlen !"
  22. 22 gety$:ify$=""then22
  23. 23 ify$="+"thengn%=gn%+1:ifgn%>255thengn%=255
  24. 24 ify$="-"thengn%=gn%-1:ifgn%<0thengn%=0
  25. 25 ify$="+"ory$="-"thenpoke49152,gn%:print"";:goto11
  26. 26 ify$="e"thenpoke53280,14:poke53281,6:print"[147][154]":clr:end
  27. 27 ify$="i"thengosub44:clr:goto10
  28. 28 ify$="f"thengosub50:clr:goto10
  29. 29 ify$="d"thengosub64:clr:goto10
  30. 30 ify$="b"thengosub84:clr:goto10
  31. 31 ify$="k"thengosub121:clr:goto10
  32. 32 ify$="u"thengosub130:clr:goto10
  33. 33 ify$="l"thengosub148:clr:goto10
  34. 34 ify$="r"thengosub159:clr:goto10
  35. 35 ify$="n"thengosub212:clr:goto10
  36. 36 ify$="a"thengosub221:clr:goto10
  37. 37 ify$="g"thengosub231:clr:goto10
  38. 38 ify$="c"thengosub263:clr:goto10
  39. 39 ify$="v"thengosub58:clr:goto10
  40. 40 goto22
  41. 41 rem ******************************
  42. 42 rem *i n i t i a l i s i e r e n *
  43. 43 rem ******************************
  44. 44 print"[147]"tab(5)"i n i t i a l i s i e r e n"
  45. 45 close1:open1,gn%,15,"i0":gosub298:close1:ifen=0thenreturn
  46. 46 print"    "en;en$;ne;ee:gosub305:return
  47. 47 rem ******************************
  48. 48 rem *   f o r m a t i e r e n    *
  49. 49 rem ******************************
  50. 50 print"[147]"tab(5)"f o r m a t i e r e n"
  51. 51 na$="test":input"diskettenname";na$:na$=left$(na$,16)
  52. 52 id$="":input"disketten-id ";id$:id$=left$(id$,2)
  53. 53 close1:open1,gn%,15,"n0:"+na$+","+id$:close1:gosub298:ifenthen46
  54. 54 return
  55. 55 rem ******************************
  56. 56 rem *    v a l i d i e r e n     *
  57. 57 rem ******************************
  58. 58 print"[147]"tab(5)"v a l i d i e r e n"
  59. 59 close1:open1,gn%,15,"v":gosub298:close1:ifen=0thenreturn
  60. 60 goto46
  61. 61 rem ******************************
  62. 62 rem *directory drucker/bildschirm*
  63. 63 rem ******************************
  64. 64 print"[147]"tab(5)"d i r e c t o r y":printtab(5)"d[146] rucker"
  65. 65 printtab(5)"b[146] ildschirm"
  66. 66 gety$:ify$<>"d"andy$<>"b"then66
  67. 67 ify$="d"thenprint"[147]"tab(5)"d r u c k e r   bereit ?":goto69
  68. 68 gosub309:goto77
  69. 69 gety$:ify$<>"j"andy$<>"n"then69
  70. 70 ify$="n"thenreturn
  71. 71 input"geraetenummer drucker   4[157][157][157]";gd%:open4,gd%:gosub309
  72. 72 print#4,"      "f$(0)" "id$:print#4
  73. 73 fory=1toze-1
  74. 74 iflen(f$(y))<16thenf$(y)=f$(y)+" ":goto74
  75. 75 print#4,l$(y)"   "f$(y)"   "k$(y)
  76. 76 next:print#4:print#4,"      freie bloecke: "l$(ze):print#4:return
  77. 77 print"[147]name:"tab(8)f$(0):print"id:"tab(8)id$"[146]"
  78. 78 yy=3:fory=1toze-1:yy=yy+1
  79. 79 printtab(2)l$(y)tab(8)f$(y)tab(26)k$(y):ifyy/20=int(yy/20)thengosub305:print"[147]"
  80. 80 next:printtab(8)"freie bloecke:"tab(26)""l$(ze):gosub305:return
  81. 81 rem ******************************
  82. 82 rem *     bam alphabetisch       *
  83. 83 rem ******************************
  84. 84 dimpn$(224),sp(29),se(29):open15,gn%,15,"i"
  85. 85 nn=0:sn=0:so=1:sp%=18:se%=1
  86. 86 ur%=1:gosub299:ifenthenclose15:return
  87. 87 open2,gn%,2,"#":gosub299:ifenthenclose15:goto46
  88. 88 print"[147]"
  89. 89 print#15,"u1";2;0;sp%;se%:sp(sn)=sp%:se(sn)=se%
  90. 90 get#2,eg$:ifeg$=""theneg$=chr$(0)
  91. 91 sp%=asc(eg$)
  92. 92 get#2,eg$:ifeg$=""theneg$=chr$(0)
  93. 93 se%=asc(eg$):pz=2
  94. 94 print#15,"b-p";2;pz:nn=nn+1
  95. 95 fori=1to30:get#2,eg$:ifeg$=""theneg$=chr$(0)
  96. 96 pn$(nn)=pn$(nn)+eg$:nexti
  97. 97 ifasc(left$(pn$(nn),1))=0thenpn$="":lo=lo+1:goto101
  98. 98 fori=19to5step-1:ifmid$(pn$(nn),i,1)<>chr$(160)theni=5:goto100
  99. 99 pn$(nn)=left$(pn$(nn),i-1)+chr$(32)+right$(pn$(nn),30-i)
  100. 100 nexti:printmid$(pn$(nn),4,16)
  101. 101 ifpz-226thenpz=pz+32:goto94
  102. 102 ifsp%thenpz=2:sn=sn+1:goto89
  103. 103 iflo=0then108
  104. 104 n$="":forj=1to30:n$=n$+chr$(0):nextj
  105. 105 forj=1tolo
  106. 106 pn$(nn+j)=n$
  107. 107 nextj
  108. 108 print"files werden sortiert[160]!":print
  109. 109 forj=1tonn-1:fori=j+1tonn:ifmid$(pn$(i),4,16)>mid$(pn$(j),4,16)then111
  110. 110 n$=pn$(i):pn$(i)=pn$(j):pn$(j)=n$:so=0
  111. 111 nexti,j:forj=1tonn:printmid$(pn$(j),4,16):fori=19to5step-1
  112. 112 ifmid$(pn$(j),i,1)<>chr$(32)theni=5:goto114
  113. 113 pn$(j)=left$(pn$(j),i-1)+chr$(160)+right$(pn$(j),30-i)
  114. 114 nexti,j:ifsothenclose2:close15:return
  115. 115 pn%=1:forj=0tosn:print#15,"b-p";2;0:print#2,chr$(sp(j+1));chr$(se(j+1))
  116. 116 pz=2:fori=1to8:print#15,"b-p";2;pz:print#2,pn$(pn%);:pn%=pn%+1:pz=pz+32
  117. 117 nexti:print#15,"u2";2;0;sp(j);se(j):nextj:close2:close15:return
  118. 118 rem ******************************
  119. 119 rem *      k o p i e r e n       *
  120. 120 rem ******************************
  121. 121 print"[147]"tab(5)"k o p i e r e n"
  122. 122 print"welches file soll kopiert werden?"
  123. 123 input"alter name";an$
  124. 124 input"neuer name";nn$
  125. 125 close1:open1,gn%,15,"c:"+nn$+"="+an$:gosub298:ifenthen46
  126. 126 return
  127. 127 rem ******************************
  128. 128 rem *    u m b e n e n n e n     *
  129. 129 rem ******************************
  130. 130 print"[147]"tab(5)"u m b e n e n n e n"
  131. 131 print"1  =  ein file umbenennen":print"2  =  alle files umbenennen"
  132. 132 print"bitte waehlen !"
  133. 133 gety$:ify$<"1"ory$>"2"then133
  134. 134 ify$="2"then139
  135. 135 input"alter name";an$
  136. 136 input"neuer name";nn$
  137. 137 close1:open1,gn%,15,"r:"+nn$+"="+an$:gosub298:ifenthen46
  138. 138 return
  139. 139 gosub309
  140. 140 print"[147]":fory=1toze-1:print"neuer name   "f$(y):print"[145]";:inputnn$
  141. 141 ifnn$=f$(y)then144
  142. 142 close1:open1,gn%,15,"r:"+nn$+"="+f$(y):gosub298
  143. 143 ifenthenprint"    "en;en$;ne;ee:gosub305
  144. 144 next:return
  145. 145 rem ******************************
  146. 146 rem *      l o e s c h e n       *
  147. 147 rem ******************************
  148. 148 print"[147]"tab(5)"l o e s c h e n"
  149. 149 input"name des zu loeschenden files";na$
  150. 150 print"sind sie sicher, dass "na$:print"geloescht werden soll ?"
  151. 151 gety$:ify$=""then151
  152. 152 ify$<>"j"thenclr:goto10
  153. 153 close1:open1,gn%,15,"s0:"+na$:gosub298:ifen$<>"files scratched"then46
  154. 154 ifne=0thenprint"kein file "na$"[146] gefunden !":gosub305:return
  155. 155 print"    "ne"file(s) geloescht":gosub305:return
  156. 156 rem ******************************
  157. 157 rem *  r e g e n e r i e r e n   *
  158. 158 rem ******************************
  159. 159 gosub206:re%=0:print"[147]"tab(5)"r e g e n e r i e r e n"
  160. 160 sp%=1:tr%=di%:open15,8,15,"i0
  161. 161 [159]8,8,2,"#2":fi%[178]0
  162. 162 [152]15,"u1:"2;0;tr%;sp%:[141]204
  163. 163 [129]i[178]0[164]1:[161]#8,a$:[141]201:p%(i)[178][198](a$):[130]:a[178]2:[141]203
  164. 164 [161]#8,a$:[141]201:a[178][198](a$)[175]7
  165. 165 h$[178]"":[129]i[178]0[164]1:[161]#8,a$:[141]201:l%(i)[178][198](a$):[130]
  166. 166 [129]i[178]3[164]18:[161]#8,a$:h$[178]h$[170]a$:[130]:
  167. 167 [139]h$[178]""[167]169
  168. 168 [153] ki$(a);" ";co$;h$;[163]11)co$;;l%(0);l%(1):[139]a[178]0[167][137]185
  169. 169 fi%[178]fi%[170]1:[139]fi%[179]8[167]a[178]fi%[172]32[170]2:[141]203:[137]164
  170. 170 [139]p%(0)[178]0[167]172
  171. 171 tr%[178]p%(0):sp%[178]p%(1):fi%[178]0:[137]162
  172. 172 [160]8:[139]re%[167]58
  173. 173 [141]204:[160]15:[142]
  174. 174 [152]15,"u1:"2;0;l%(0);l%(1):[142]
  175. 175 d%[178]2:[153]"spur, sektor";
  176. 176 [141]174:[129]i[178]0[164]1:[161]#8,a$:[141]201:z%(i)[178][198](a$)
  177. 177 [153]z%(i)"cmd ";:[130]:[153]:[153]"onspur, sektor";
  178. 178 [139]z%(0)[178]0[167][153]:[142]
  179. 179 [152]15,"b-f"0;z%(0);z%(1):l%(0)[178]z%(0):l%(1)[178]z%(1):z%(d%)[178]z%(0)
  180. 180 z%(d%[170]1)[178]z%(1):d%[178]d%[170]2
  181. 181 [139]ds[178]0[167]176
  182. 182 [153]:[153]"das file wurde bereits ueberschriebenwait!":x%[178][168](x%):a[178]fi%[172]32[170]2
  183. 183 [129]i[178]2[164]d%[171]4[169]2:[152]15,"b-f:"0;z%(i);z%(i[170]1):[130]
  184. 184 l%(0)[178]tr%:l%(1)[178]sp%:[141]174:[137]203
  185. 185 [153]"zurueckholen? (j/n)closeclosecloseclose
  186. 186 get a$:if a$="" then 186
  187. 187 if a$<>"j"then169
  188. 188 x%=0:print"bloecke wiederbelegen...":z%(0)=l%(0):gosub175:ifx%then169
  189. 189 print"p[146]rogramm, s[146]equenielles, u[146]ser,"
  190. 190 print"oder r[146]elatives file ?"
  191. 191 get ja$:ifja$<>"p"andja$<>"s"andja$<>"u"andja$<>"r"then191
  192. 192 print:ifja$="p"thenki%=130:goto196
  193. 193 ifja$="u"thenki%=131:goto196
  194. 194 ifja$="r"thenki%=132:goto196
  195. 195 ki%=129
  196. 196 print"file zurueckholen..."
  197. 197 l%(0)=tr%:l%(1)=sp%:gosub174
  198. 198 a=fi%*32+2:gosub203:print#8,chr$(ki%);
  199. 199 bl%=((d%-2)/2)+1:print""bl%"bloecke ";
  200. 200 print#15,"u2:"2;0;tr%;sp%:print"wiederhergestellt !":re%=1:goto169
  201. 201 ifa$=""thena$=chr$(0)
  202. 202 return
  203. 203 print#15,"b-p:"2;a
  204. 204 input#15,en%,em$,et%,es%:ifen%=0thenreturn
  205. 205 goto46
  206. 206 dimp%(1),l%(1),z%(300),ki$(4):co$=chr$(34)
  207. 207 fori=0to4:readki$(i):next:di%=18:return
  208. 208 data"del[146]","seq","prg","usr","rel"
  209. 209 rem ******************************
  210. 210 rem *     diskname aendern       *
  211. 211 rem ******************************
  212. 212 open15,gn%,15:nr=0:open1,gn%,3,"#":print#15,"u1:3"nr",18,0"
  213. 213 print#15,"b-p:3,144":d$="":forl=1to16:get#1,a$:d$=d$+a$:next
  214. 214 print"[147]alter disk-name: "d$
  215. 215 na$="disk-name":print"neuer disk-name";:inputna$
  216. 216 na$=left$(na$+"                 ",16)
  217. 217 print#15,"b-p:3,144":print#1,na$;:print#15,"u2:3"nr",18,0":close1:close15:return
  218. 218 rem ******************************
  219. 219 rem *     disk - id aendern      *
  220. 220 rem ******************************
  221. 221 dv=0:open15,gn%,15:open1,gn%,3,"#":print#15,"u1:3"dv",18,0"
  222. 222 print#15,"b-p:3,162":get#1,a$,b$,c$,d$,e$:print"[147]alter disk-id: "a$;b$;c$;
  223. 223 printd$;e$:input"neuer disk-id";i$
  224. 224 iflen(i$)<3theni$=i$+" ":goto224
  225. 225 i$=left$(i$+"2a",5)
  226. 226 print#15,"b-p:3,162":print#1,i$;:print#15,"u2:3"dv",18,0
  227. 227 [141]45:[142]
  228. 228 [143] *****************************
  229. 229 [143] *geraetenummer disk aendern *
  230. 230 [143] *****************************
  231. 231 [151]59468,12:[153]"load  g e r a e t e n u m m e r   aendern"
  232. 232 [153]"bitte alle floppys ausschalten ausser"
  233. 233 [153]"der, deren nummer geaendert werden soll!"
  234. 234 [153]"alte geraetenummer  8cmdcmdcmd";
  235. 235 [133]od:[139]od[179]8[176]od[177]15[167]234
  236. 236 [153]"neue geraetenummer  9cmdcmdcmd";
  237. 237 [133]nd:[139]nd[179]8[176]nd[177]15[167]236
  238. 238 [141]239:[141]256:[142]
  239. 239 [160]15:[159]15,od,15
  240. 240 [152]15,"m-r"[199](255)[199](255):[161]#15,c$:c[178][198](c$[170][199](0))
  241. 241 [139]st[167]259
  242. 242 [139]c[178]254[167]mt[178]119
  243. 243 [139]c[178]226[167]mt[178]50
  244. 244 [139]c[178]213[167]mt[178]12
  245. 245 [139]c[178]242[167]mt[178]12
  246. 246 [139]c[178]198[167]248
  247. 247 [142]
  248. 248 [152]15,"m-r"[199](234)[199](16):[161]#15,zb$:zb[178][198](zb$[170][199](0))
  249. 249 [139]zb[178]0[167]mt[178]12
  250. 250 [139]zb[178]1[167]252
  251. 251 [139]st[167]259
  252. 252 [152]15,"m-r"[199](172)[199](16):[161]#15,zc$:zc[178][198](zc$[170][199](0))
  253. 253 [139]zc[178]1[167]mt[178]12
  254. 254 [139]zc[178]2[167]mt[178]12
  255. 255 [142]
  256. 256 [160]15:[159]15,od,15
  257. 257 [152]15,"m-w"[199](mt)[199](0)[199](2)[199](nd[170]32)[199](nd[170]64)
  258. 258 [142]
  259. 259 [153]" fehler am geraet !":[141]305:[142]
  260. 260 [143] *****************************
  261. 261 [143] *    c h e c k   d i s k    *
  262. 262 [143] *****************************
  263. 263 [134]t(100):[134]s(100)
  264. 264 [153]"load"[163]8)"c h e c k   d i s k"
  265. 265 [141]59:[159]15,gn%,15:n%[178][187](ti)[172]255
  266. 266 a$[178]"":[129]i[178]1[164]255:a$[178]a$[170][199](255[175](i[170]n%)):[130]
  267. 267 ur%[178]1:[141]299:[139]en[167][160]15:[137]46
  268. 268 [159]2,gn%,2,"#"
  269. 269 [153]:[152]2,a$;
  270. 270 t[178]1:s[178]0
  271. 271 [152]15,"b-a:0"t;s
  272. 272 [132]15,en,em$,et,es
  273. 273 [139]en[178]0[167]276
  274. 274 [139]et[178]0[167]284
  275. 275 [152]15,"b-a:0"et;es:t[178]et:s[178]es
  276. 276 [152]15,"u2:2,0"t;s
  277. 277 nb[178]nb[170]1:[153][163]8)"getestete bloecke:"nb
  278. 278 [153][163]8)" spur     cmdcmdcmdcmd"t;" sektor    cmdcmdcmdcmd"s"ononon"
  279. 279 [132]15,en,em$,es,et
  280. 280 [139]en[178]0[167]271
  281. 281 t(j)[178]t:s(j)[178]s:j[178]j[170]1
  282. 282 [153]"fehlerhafter block:",t;s"onononononon"
  283. 283 [137]271
  284. 284 [141]45
  285. 285 [141]299:[139]en[167][160]15:[160]2:[137]46
  286. 286 [160]2:[160]15
  287. 287 [139]j[178]0[167][153]"keine fehlerhaften bloecke !":[142]
  288. 288 [159]2,gn%,2,"#"
  289. 289 [153]"fehlerbloecke","spur","sektor"
  290. 290 [129]i[178]0[164]j[171]1
  291. 291 [152]15,"b-a:0"t(i);s(i)
  292. 292 [153],,t(i),s(i)
  293. 293 [130]
  294. 294 [153]""j"fehlerbloecke wurden festgestellt":[160]15:[160]2:[141]305:[142]
  295. 295 [143] *****************************
  296. 296 [143] * fehlerkanal ueberpruefen  *
  297. 297 [143] *****************************
  298. 298 [160]15:[159]15,gn%,15
  299. 299 [132]15,en,en$,ne,ee:[139]ur%[167][142]
  300. 300 [160]15
  301. 301 [142]
  302. 302 [143] *****************************
  303. 303 [143] *    tastendruck abwarten   *
  304. 304 [143] *****************************
  305. 305 [153][163]5)"weiter  -->  taste druecken !":[151]198,0:[146]198,1:[151]198,0:[142]
  306. 306 [143] *****************************
  307. 307 [143] *     directory lesen       *
  308. 308 [143] *****************************
  309. 309 [153]"load"[163]5)"d i r e c t o r y   l e s e n":[153][163]5)"moment bitte !"
  310. 310 [134]l$(140),k$(140),f$(140)
  311. 311 [159]1,gn%,0,"$0":[159]15,gn%,15:ur%[178]1:[141]299:[139]en[167]46
  312. 312 [161]#1,a$,b$:ze[178][171]1
  313. 313 ze[178]ze[170]1:[161]#1,a$,b$
  314. 314 [161]#1,a$,b$:c[178]0
  315. 315 [139]a$[179][177]""[167]c[178][198](a$)
  316. 316 [139]b$[179][177]""[167]c[178]c[170][198](b$)[172]256
  317. 317 l$(ze)[178][201]("   "[170][202]([196](c),2),3)
  318. 318 [161]#1,b$:[139]st[179][177]0[167]fb$[178][201]("   "[170]l$,3):[137]327
  319. 319 [139]b$[179][177][199](34)[167] 318
  320. 320 f$(ze)[178]""
  321. 321 [161]#1,b$:[139]b$[179][177][199](34)[167]f$(ze)[178]f$(ze)[170]b$:[137]321
  322. 322 [161]#1,b$:[139]b$[178][199](32)[167]322
  323. 323 c$[178]""
  324. 324 c$[178]c$[170]b$:[161]#1,b$:[139]b$[179][177]""[167]324
  325. 325 k$(ze)[178][200](c$,3):[139]ze[178]0[167]id$[178][200](c$,5)
  326. 326 [139]st[178]0[167]313
  327. 327 [160]1:[160]15:[142]
  328.