home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Run Magazine ReRun 1985 Winter
/
rerun-1985-winter.d64
/
wedgemaker
(
.txt
)
< prev
Wrap
Commodore BASIC
|
2022-09-20
|
3KB
|
93 lines
10 print"[147]*** wedgemaker ***":print"insert program disk"
20 z$=chr$(0)
30 f$="":input"program file";f$:iff$=""then30
40 close5:close6:close15:open15,8,15:open5,8,5,"0:"+f$+",p,r"
50 gosub730:ifer<>0thenclose5:close15:goto30
60 get#5,a$:get#5,b$:poke828,asc(a$+z$):poke829,asc(b$+z$):close5
70 open6,8,0,"$0:"+f$:get#6,a$,a$,a$,a$,a$,a$
80 get#6,a$:ifa$<>chr$(34)then80
90 get#6,a$:ifa$<>chr$(34)then90
100 get#6,a$:ifa$=chr$(32)then100
110 get#6,a$:ifa$<>""then110
120 get#6,a$,a$,a$,b$:l=asc(a$+z$)+256*asc(b$+z$)
130 close6:close15:print"program is"l"blocks long"
140 input"#data pages";p:p=int(p):ifp<1then140
150 a=831:fori=1tolen(f$):pokea,asc(mid$(f$,i,1)):a=a+1:nexti:pokea,0
160 poke830,l+p+2:poke56,peek(56)-l-p-2:clr
170 z$=chr$(0):p=peek(830):f$="":a=831
180 c=peek(a):ifc<>0thenf$=f$+chr$(c):a=a+1:goto180
190 print"loading "f$
200 open15,8,15:poke183,len(f$):poke184,5:poke185,0:poke186,8
210 poke187,63:poke188,3:poke780,0:poke781,peek(55):poke782,peek(56)+2
220 sys65493:t=peek(781)+256*peek(782):gosub730:ifer<>0thenstop
230 close15:print"linking "f$:a=peek(55)+256*(peek(56)+2)
240 b=peek(828)+256*peek(829):c=a
250 v=peek(a)+256*peek(a+1):ifv=0then270
260 v=v-b+c:pokea,v-int(v/256)*256:pokea+1,int(v/256):a=v:goto250
270 print"appending ml"
280 s=0:fori=828to875:readv:s=s+v:pokei,v:nexti
290 ifs<>5045thenprint"error in data block 1":stop
300 poke842,peek(771):poke873,peek(771)
310 c=c-512:s=0:fori=0to127:readv:pokec+i,v:s=s+v:nexti
320 ifs<>14688thenprint"error in data block 2":stop
330 s=0:fori=1to12:reada:s=s+a:readv:s=s+v:a=a+c+1:v=v+c
340 pokea,v-int(v/256)*256:pokea+1,int(v/256):nexti
350 ifs<>1949thenprint"error in data block 3":stop
360 pokec+57,peek(771):a=peek(770)+256*peek(771)
370 pokec+9,peek(a+1):pokec+10,peek(a+2)
380 fori=105to128:pokec+i,0:nexti
390 pokec+105,peek(55):pokec+106,peek(56)+2
400 t2=int(t/256):t1=t-t2*256
410 fori=107to111step2:pokec+i,t1:pokec+i+1,t2:nexti
420 c1=peek(55):c2=peek(56)+p
430 pokec+113,c1:pokec+114,c2:pokec+117,c1:pokec+118,c2
440 print"define commands":print"just hit return to end":l=1:a=129
450 a$="":print"command"l;:inputa$:ifa$=""then500
460 input"line number";n:x$=a$+z$+"g[207]"+mid$(str$(n),2)+z$
470 ifa+len(x$)>383thenprint"table overflow":goto500
480 fori=1tolen(x$):pokec+a,asc(mid$(x$,i,1)):a=a+1:nexti
490 pokec+a,0:l=l+1:goto450
500 ifl=1then440
510 input"okay (y/n)";a$:ifa$="n"then440
520 ifa$<>"y"then510
530 print"insert destination disk"
540 w$="":input"wedge name";w$:ifw$=""then540
550 w2$=w$+".w":print"saving "w2$:close5:close15:open15,8,15
560 fori=1tolen(w2$):poke575+i,asc(mid$(w2$,i,1)):nexti
570 poke183,len(w2$):poke184,5:poke185,1:poke186,8
580 poke187,64:poke188,2:poke780,55:poke781,t1:poke782,t2
590 sys65496:gosub730:ifer<>0then540
600 print:printw$" contains:":x$="load"+chr$(34)+w2$+chr$(34)+",8,1"+z$
610 x$=x$+"new"+z$+"p[207]55,"+str$(peek(55))+":p[207]56,"+str$(peek(56))
620 x$=x$+":p[207]770,"+str$(peek(55))+":p[207]771,"+str$(peek(56))+z$
630 fori=1tolen(x$):v=asc(mid$(x$,i)):poke874+i,v:printchr$(v-(v=0)*13);:nexti
640 print:print"saving "w$
650 close5:close15:open15,8,15,"i":open5,8,5,"0:"+w$+",p,w"
660 gosub730:ifer<>0thenclose5:close15:goto540
670 print#5,chr$(2)chr$(3)chr$(60)chr$(3);
680 fori=772to1019:print#5,chr$(peek(i));:nexti
690 close5:close15:print"done"
700 print"to install wedge"
710 print"load"chr$(34)w$chr$(34)",8,1"
720 end
730 input#15,er,e1$,tt,ss:ifer=0thenreturn
740 printe1$;tt;ss:return
750 rem data block 1
760 data172,106,3,185,107,3,208,13,169,131
770 data141,2,3,169,196,141,3,3,108,2
780 data3,162,0,185,107,3,157,0,2,240
790 data4,232,200,208,244,200,140,106,3,162
800 data255,160,1,76,134,196,0,0
810 rem data block 2
820 data173,104,96,240,3,32,76,96,32,96,197,160,0,162,0,189
830 data0,2,217,129,96,208,8,9,0,240,31,232,200,208,240,185
840 data129,96,240,3,200,208,248,200,185,129,96,208,250,200,185,129
850 data96,208,218,162,255,160,1,76,134,196,162,255,200,232,185,129
860 data96,157,0,2,208,246,32,76,96,24,144,231,162,23,189,105
870 data96,168,189,43,0,157,105,96,152,157,43,0,202,16,239,173
880 data104,96,73,255,141,104,96,96,0,1,98,137,98,137,98,137
890 data98,0,128,0,0,0,128,0,0,0,0,0,0,0,0,0
900 rem data block 3
910 data0,104,5,76,18,129,31,129,40,129,46,129
920 data62,129,70,76,78,105,85,105,95,104,100,104