home *** CD-ROM | disk | FTP | other *** search
/ Run Magazine ReRun 1985 Winter / rerun-1985-winter.d64 / wedgemaker (.txt) < prev   
Commodore BASIC  |  2022-09-20  |  3KB  |  93 lines

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