home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 74
/
074.d81
/
ut
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-08-26
|
4KB
|
120 lines
5 open15,8,15:print#15,"i":close15:poke53281,0
7 open8,8,8,"disk,s,r":input#8,xi,ox:close8:poke832,xi:poke833,ox
10 clr:poke53280,5:dimd$(50),q$(50):xi=peek(832):ox=peek(833)
15 a$=" ":print"[147]";a$;
20 print" dungeon utilities ";:printa$;
30 print"[154]1[146] [158]copy dungeon":print" [154]2[146] [158]scratch dungeon"
35 print" [154]3[146] [158]validate disk":print" [154]4[146] [158]erase treasure"
36 d=xi+1:ifd=10thend=8
37 a$=str$(d):a$=right$(a$,len(a$)-1)
40 print" [154]5[146] [158]erase traps":print" [154]6[146] [158]change data disk to ";a$;" [146]"
45 print" [154]7[146] [158]renumber drive":print" [154]8[146] [158]finished":poke53265,27
50 geta$:ifval(a$)=0orval(a$)>8then50
55 onval(a$)goto100,350,400,450,550,800,825,700
60 print"[159]return[146]";
65 geta$:ifa$<>"_"anda$<>chr$(13)andpeek(56320)<>111then65
70 ifa$="_"then10
75 print"[157][157][157][157][157][157]return":return
100 print"insert source disk.";:gosub60:goto160
110 x=0:open8,xi,8,"list,s,r":input#8,x:ifx=0thenclose8:goto10
115 forg=1tox:input#8,d$(g),q$(g):next:close8
120 print"[147][158]\ select dungeon \":a=1
130 print" "
135 print"[145]";d$(a)
140 geta$:ifa$=""thenj=peek(56320):ifj=127then140
145 ifa$=chr$(13)orj=111thendu$=d$(a):cr$=q$(a):print"[147][158]";du$:return
147 ifa$="_"then10
149 ifa$="[145]"orj=126thenk=-1:goto155
150 ifa$=""orj=125thenk=1:goto155
152 goto140
155 ifa+k<1ora+k>xthen140
157 a=a+k:goto130
160 gosub110:print"[154]reading..."
165 open8,xi,8,du$+",s,r"
170 dim c$(20),d(678),e$(800),f(64),m$(500)
175 forg=1to3:input#8,a$(g):next
180 forg=1to5:input#8,b(g):next
185 forg=1tob(5):input#8,c$(g):next
190 forg=1to678:input#8,d(g):next:ifb(4)=0then200
195 forg=1to678+b(4):input#8,e$(g):next
200 forg=1to64:input#8,f(g):next
205 close8
210 open3,xi,3,"m."+du$:open15,xi,15:r=0
220 r=r+1:h=int(r/256):l=r-(h*256)
225 print#15,"p"chr$(3)chr$(l)chr$(h)chr$(1):goto230
227 input#3,m$(r):goto220
230 input#15,a:ifa=0then227
233 ifa<>50thenprint"[147] disk error. [146]":forg=1to1000:goto10
235 close3:close15:r=r-1
250 print"insert target disk.";:gosub60:print"[154]writing..."
255 open8,xi,8,du$+",s,w"
260 forg=1to3:print#8,a$(g):next
262 forg=1to5:print#8,b(g):next
264 forg=1tob(5):print#8,c$(g):next
266 forg=1to678:print#8,d(g):next
268 forg=1to678+b(4):print#8,e$(g):next
270 forg=1to64:print#8,f(g):next
275 close8
280 a$="m."+left$(du$,14)+",l,":open3,xi,3,a$+chr$(38):open15,xi,15
285 forg=1tor:h=int(g/256):l=g-(h*256)
287 print#15,"p"chr$(3)chr$(l)chr$(h)chr$(1):print#3,m$(g):nextg:close3
290 input#15,a:ifa<>0anda<>50then233
293 close15:gosub294:goto300
294 x=0:open8,xi,8,"@0:list,s,r":input#8,x:ifx=0thenclose8:goto300
295 forg=1tox:input#8,d$(g),q$(g):next:close8:return
300 x=x+1:d$(x)=du$:q$(x)=cr$:gosub310:goto320
310 open8,xi,8,"@0:list,s,w":print#8,x:forg=1tox:print#8,d$(g):print#8,q$(g)
315 nextg:close8:open15,xi,15:input#15,a:close15:ifa<>0then233
317 return
320 goto575
350 print"insert data disk.";:gosub60:gosub110:print"[154]scratching..."
355 open15,xi,15:print#15,"s0:"+du$:print#15,"s0:"+"m."+left$(du$,14):close15
360 gosub294:forg=atox:d$(g)=d$(g+1):q$(g)=q$(g+1):nextg:x=x-1:gosub310
370 goto575
400 print"insert disk to validate.";:gosub60
410 print"[154]validating...":open15,xi,15:print#15,"v":close15:goto575
450 print"[159]1[146] [155]weapons":print"[159]2[146] [155]magic items"
455 print"[159]3[146] [155]armor"
460 geta$:ifa$<>"_"andval(a$)=0orval(a$)>3then460
465 ifa$="_"then10
470 onval(a$)goto475,500,525
475 print"erase weapons. insert disk.";:gosub60
477 print"[154]erasing weapons..."
480 open15,xi,15:print#15,"s0:weapons":close15
485 open3,xi,3,"weapons,l,"+chr$(25):close3:gosub600:tw=0:gosub610:goto575
500 print"erase magic. insert disk.";:gosub60
505 print"[154]erasing magic..."
510 open15,xi,15:print#15,"s0:magic":close15
515 open3,xi,3,"magic,l,"+chr$(49):close3:gosub600:tm=0:gosub610:goto575
525 print"erase armor. insert disk.";:gosub60
530 print"[154]erasing armor..."
535 open15,xi,15:print#15,"s0:armor":close15
540 open3,xi,3,"armor,l,"+chr$(25):close3:gosub600:ta=0:gosub610:goto575
550 print"erase traps. insert disk.";:gosub60
555 print"[154]erasing traps..."
560 open15,xi,15:print#15,"s0:traps":close15
565 open3,xi,3,"traps,l,"+chr$(17):close3:gosub600:tr=0:gosub610
575 print"complete.";:gosub60:goto10
600 open8,xi,8,"treasure,s,r":input#8,tw,tm,ta,tr:close8:return
610 open8,xi,8,"@0:treasure,s,w":print#8,tw:print#8,tm:print#8,ta:print#8,tr
615 close8:return
700 poke53280,0:ifde=0andxi=9thende=1:goto720
702 print"[147]insert 'dungeon' disk. [return]":gosub850
705 geta$:ifa$<>"_"anda$<>chr$(13)andpeek(56320)<>111then705
710 ifa$="_"then10
720 print"[147]":a=0:open8,8,8,"master disk,s,r":input#8,a:close8:ifa<>7then700
730 poke53265,11:print"load";chr$(34);"me";chr$(34);",8"
735 forg=631to633:pokeg,13:next:poke198,3:print"run":clr:end
800 print"[147][158]just a moment...":xi=xi+1:ifxi=10thenxi=8
805 poke832,xi:open15,8,15:print#15,"s0:disk":close15
807 open8,8,8,"disk,s,w":print#8,xi:print#8,ox:close8:ifxi=8then10
810 print"renumber a drive? [154] y/n [146]"
815 geta$:ifa$=""then815
817 ifa$="n"ora$="_"then10
820 ifa$<>"y"then815
825 print"[155]turn off 'dungeon' drive.";:gosub60
830 print"[155]turn on 'data' drive.";:gosub60
835 open15,8,15:print#15,"m-w"chr$(119)chr$(0)chr$(2)chr$(41)chr$(73):close15
840 print"[155]turn on 'dungeon' drive.";:gosub60:print:goto575
850 print"press [_] to escape.":return