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