home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 147 / 147.d81 / hrs2.bas (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1996-01-01  |  19.6 KB  |  500 lines

  1. 0 a=peek(j):f=a<=l:onaandugoto,,,,4,3,6,,1,2,5,,8,7:return
  2. 1 gosub8:goto5
  3. 2 gosub7:goto5
  4. 3 gosub7:goto6
  5. 4 gosub8:goto6
  6. 5 x=x+(x>.):return
  7. 6 x=x-(x<h):return
  8. 7 y=y+(y>.):return
  9. 8 y=y-(y<v):return
  10. 9 poker,dx:pokes,dy-1:syst:return
  11. 10 m1=a:m2=b:m3=c:m4=d:m5=e:m6=f:m7=x:m8=y:sysg:n$=x$+mid$(sp$,3):sysg:a=sl<2
  12. 11 k%(42)=a:k%(63)=a:a=3:c=dx:e=16:x=r:d=162:f=16:gosub9:fory=.toj:pokex,c:print"[146]"n$;
  13. 12 pokex,c+a:poked,.:forb=-1to.:getx$:b=x$="":print"[157]"c$(sgn(peek(d)andf)*-b)mid$(n$,a,1);:next
  14. 13 ifk%(asc(x$))thenn$=left$(n$,a-b)+x$+mid$(n$,a+b):a=a-(a<e):next
  15. 14 ifx$=""thena=a-(a<e):next
  16. 15 ifx$="[157]"thena=a+(a>b):next
  17. 16 ifx$=""thena=a+(a>b):n$=left$(n$,a-b)+mid$(n$,a+b)+" ":next
  18. 17 ifx$="[148]"thenn$=left$(n$,a-b)+" "+mid$(n$,a,e-a):next
  19. 18 x%=x$="_":y=-(x$=r$orx%)*j:next:pokex,c:print"[146]"n$;:forx=etobstep-b:ifmid$(n$,x,b)=" "thennext
  20. 19 n$=left$(n$,x):sysg:a=m1:b=m2:c=m3:d=m4:e=m5:f=m6:x=m7:y=m8:return
  21. 20 gosub9:x$="load":ifsl=2thenx$="'sav"
  22. 21 printx$"ing...      ":return
  23. 22 sysci:mz=peek(en):pokeen,.:x$="dd":onslgosub39,40:ifx%then26
  24. 24 gosub62:on-egoto25:gosub20:onslgosub27,28:gosub64
  25. 25 gosub66:gosub65
  26. 26 gosub459:pokeen,mz:return
  27. 27 get#1,x$,x$:y%=7168:x%=9024:sys50960:return
  28. 28 print#1,chr$(.)chr$(92);:y%=7168:x%=9216:sys50954:return
  29. 29 a=50037:b=51364:x%=64:y%=3584:sysa:sysb:x%=y%:y%=ry+(sp-1)*32+se*960:sysa
  30. 30 sysb+4:x%=rx:y%=sp-1:sysa:sysb+8:dx=22:dy=23:x$="s-":gosub10:ifx%then59
  31. 31 m0=peek(en):pokeen,.:sys6415:gosub422:gosub62:ifethen33
  32. 32 gosub20:onslgosub34,35:gosub64
  33. 33 gosub66:gosub422:gosub68:pokeen,m0:gosub65:goto59
  34. 34 get#1,x$,x$:sys51376:return
  35. 35 print#1,chr$(0)chr$(16);:sys51452:return
  36. 36 n$="load graphic":goto41
  37. 37 n$="load  window":goto41
  38. 38 n$="save  window":goto41
  39. 39 n$="load  doodle":goto41
  40. 40 n$="save  doodle"
  41. 41 gosub455:gosub454:print"[147]":a=160:b=fg:gosub450
  42. 42 print""spc(4)"type in file name and hit return":dx=11:dy=12:gosub9
  43. 43 print"[176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"spc(22)"[194]"sp$"[194]"spc(22)"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]"
  44. 44 printspc(12)"hit '_' to exit!";:dx=14:dy=10:gosub9:printn$:dx=12:dy=13:gosub456:goto10
  45. 45 se=.:dt=.:gosub329:sysci:pokeen,.:x$="g.":ifslthenx$="w."
  46. 46 onsl+1gosub36,37,38:f=.:on-x%goto49:gosub62:ifethen48
  47. 47 gosub20:tl=sl<2:onsl+1goto51,50:gosub54:gosub64
  48. 48 gosub66:gosub65
  49. 49 gosub459:wx=wx+(wx-39)*f:wy=wy+(wy-24)*f:x$="":m9=.:pokeen,240:f=.:return
  50. 50 y%=rx:sys52950:wx=peek(172)-1:wy=peek(173)-1:f=wx>39orwx<.orwy<.orwy>24:goto49
  51. 51 wx=10:wy=6:f=.:goto49
  52. 52 y%=rx:sys53006:goto66
  53. 53 y%=rx:sys49680:goto66
  54. 54 y%=rx:gosub333:sys52968:return
  55. 55 xy=hr+int(n/se)*1024:se=n/se:dx=22:dy=23:x$="f.":gosub10:ifx%then59
  56. 56 m0=peek(en):sys6415:pokeen,.:gosub62:ifethen58
  57. 57 gosub20:onslgosub60,61:z%(se)=a-(a>8ora<5)*(8-a):gosub64
  58. 58 gosub66:gosub67:pokeen,m0:gosub65
  59. 59 e=.:m1=.:m2=.:x$="":gosub9:printsp$:return
  60. 60 get#1,x$,x$:a=asc(x$+chr$(.)):y%=xy:x%=1024:sys50960:return
  61. 61 a=z%(se):print#1,chr$(.)chr$(a);:y%=xy:x%=1024:sys50954:return
  62. 62 open15,dv,15:close15:ifstthenx$="turn on drive"+str$(dv):e=-1:return
  63. 63 open15,dv,15,"i":open1,dv,4,n$+",p,"+mid$("rrw",sl+1,1)
  64. 64 input#15,e,x$:e=e>19:return
  65. 65 gosub9:printleft$(x$+sp$,16):fora=.to1e3-e*2e3:next:return
  66. 66 close1:close15:return
  67. 67 a=6364:sys6383:sysa:return
  68. 68 a=6258:sys6383:sysa:return
  69. 69 sys6400:return
  70. 70 sys6406:return
  71. 71 sys6391:return
  72. 72 pokeen,1:x=160:y=100
  73. 73 x=int(x):y=int(y):pokek,.
  74. 74 c=dm:v=199:h=319:fora=-1to.:gosub.:x%=x:y%=y:sysc-f*3:a=peek(k)=.:next:getx$
  75. 75 ifx$=" "thendm=dr-(dm=dr)*6:goto74
  76. 76 ifx$="[160]"thenifpeek(653)=2thengosub130
  77. 77 ifx$="f"thengosub125
  78. 78 ifx$=""thenx%=16136:y%=x%-8:b=49237:c=0:d=2:gosub124
  79. 79 ifx$="[157]"thenx%=7992:y%=8e3:b=49184:c=1:d=2:gosub124
  80. 80 ifx$=""thenx%=15680:y%=15360:b=49352:c=0:d=7:gosub124
  81. 81 ifx$="[145]"thenx%=8e3:y%=8320:b=49292:c=1:d=7:gosub124
  82. 82 ifx$=""thensysbf:sysi
  83. 83 ifx$="a"thenx1=x:y1=y:a=1:gosub122
  84. 84 ifx$="b"thenx2=x:y2=y:a=2:gosub122
  85. 85 ifx$="c"thenx3=x:y3=y:a=3:gosub122
  86. 86 a=peek(en):b=(aand6)=6:ifx$="h"then149
  87. 87 ifx$="[193]"thenpokeen,aand253
  88. 88 ifx$="[194]"thenpokeen,aand251
  89. 89 ifx$="[195]"thenpokeen,aand247
  90. 90 ifx$="[176]"thenifaand2thenx=x1:y=y1
  91. 91 ifx$="[191]"thenifaand4thenx=x2:y=y2
  92. 92 ifx$="[188]"thenifaand8thenx=x3:y=y3
  93. 93 ifx$="_"thenpokeen,1
  94. 94 ifx$="r"thenifbthengosub158
  95. 95 ifx$="p"thenifaand8andbthengosub161
  96. 96 ifx$="l"thenifbthengosub164
  97. 97 ifx$="o"thenifbthengosub170
  98. 98 ifx$="e"orx$="[197]"thenifbthengosub172
  99. 99 ifx$="m"then218
  100. 100 ifx$="[207]"thenifaand4thengosub237
  101. 101 ifx$="z"orx$="[218]"thengosub251
  102. 102 ifx$="u"thensyso
  103. 103 ifx$="t"thengosub334
  104. 104 ifx$="d"then151
  105. 105 ifx$="[204]"thensl=1:gosub22:sysi
  106. 106 ifx$="[211]"thensl=2:gosub22
  107. 107 a=x$="*":ifaorx$="[192]"thengosub426
  108. 108 ifx$="[144]"thengosub442
  109. 109 ifx$="[147]"thensysi:gosub451:goto72
  110. 110 ifx$=""thengosub351
  111. 111 ifx$=""thengosub385
  112. 112 ifx$="w"thensys7061:gosub298
  113. 113 ifx$="[175]"then141
  114. 114 ifx$=""thengosub469
  115. 115 ifx$=""thenfg=fg+1and15:gosub466
  116. 116 ifx$=""thenbg=bg+1and15:gosub466
  117. 117 ifx$=""thenpc=pc+1and15:gosub470
  118. 118 ifx$="x"thenifbthena=x1:x1=x2:x2=a:a=y1:y1=y2:y2=a:gosub462:gosub463
  119. 119 ifx$="$"thengosub133
  120. 120 ifx$="[209]"then490
  121. 121 goto73
  122. 122 poke780,a:sys50114:pokeen,peek(en)or2^a:return
  123. 123 y%=-6440*se-(wy*256+wx+257)*a
  124. 124 fora=-1to.:sysb:a=peek(653)=candpeek(197)=d:next:return
  125. 125 sysi:b=sa:e=q:d=53101:c=6984:v=199:h=319:rx=63:gosub441:sys7039:gosub462
  126. 126 pokeen,1:pokexa,13:pokeya,30:pokept,63:dt=1
  127. 127 fora=-1to.:gosub.:x%=x:y%=y:syse:iffthena=2+ti:sysd:forf=titoa:f=ti:next
  128. 128 a=peek(k)=.:next:gosub434:x%=rx*64:sys7039:ifx$<>r$then127
  129. 129 sa=b:mx=x:my=y:goto463
  130. 130 sysi:gosub462:gosub461:c=6496:v=192:h=312:x=x-(x>h)*(h-x):y=y-(y>v)*(v-y)
  131. 131 fora=-1to.:gosub.:x%=x:y%=y:sysc-f*3:a=peek(k)=.:next:getx$:mx=x:my=y
  132. 132 pokexa,15:pokeya,32:goto463
  133. 133 mz=peek(en):pokeen,.:sysci:gosub455:gosub454:gosub473:sys53191
  134. 134 print"[147][146]loading directory...":gosub456
  135. 135 sys57812"$",dv:poke43,1:poke44,8:poke768,174:poke769,167:sys47003,1
  136. 136 poke781,1:poke782,8:sys65493:sys42291:goto139
  137. 137 printr$"l[146]ist  e[146]xit  ctrl[146]/slow list";:pokek,.:waitk,1:getx$
  138. 138 on-(x$="$")-(x$="e")*2goto134,140:poke768,174:poke769,167
  139. 139 poke43,1:poke44,8:list:poke43,66:poke44,63:poke768,139:poke769,227:goto137
  140. 140 sys53196:gosub455:gosub472:gosub459:sysi:pokeen,mz:return
  141. 141 x$=" load printer program [y/n]":gosub499:ifx$<>"y"then148
  142. 142 n$="hrs2.prin*":f=-1:goto144
  143. 143 n$="hrs2.help":f=.
  144. 144 sl=1:gosub62:gosub66:ifethen148
  145. 145 poke646,bg:gosub455:gosub454:gosub473:print"[147]s[217]53200:";:iffthenprint"p[207]56,28:";
  146. 146 goto497
  147. 147 poke157,.:poke2,.:gosub472:gosub455:gosub471:sysco:gosub453:sysi:gosub456
  148. 148 pokeen,mz:goto73
  149. 149 x$=" load help? [y/n]:dir-[$]:quit-[shft q]":gosub499:ifx$="y"then143
  150. 150 pokeen,mz:goto119
  151. 151 sysci:gosub457:print" a(    ,    ) b(    ,    ) c(    ,    )";:poke173,3
  152. 152 z=6610:n=6503:v=199:h=319:d=780:f=.
  153. 153 b=x1:c=y1:gosub156:b=x2:c=y2:gosub156:b=x3:c=y3:gosub156:b=dm
  154. 154 fora=-1to.:gosub.:x%=x:y%=y:sysb:ifnotfthensysz
  155. 155 a=peek(k)=.:next:getx$:gosub458:goto75
  156. 156 f=f+1:if(aand2^f)=.thenb=.:c=.
  157. 157 x%=b:y%=c:poked,f:sysn:return
  158. 158 sysi:a=x1>x2or1:b=y1>y2or1:y%=y1:d=dm+3:forx=x1tox2stepa:x%=x:sysd:next
  159. 159 fory=y1toy2step+b:y%=y:sysd:next:forx=x2tox1step-a:x%=x:sysd:next
  160. 160 fory=y2toy1step-b:y%=y:sysd:next:x=x%:y=y%:return
  161. 161 sysi:x=x1:y=y1:x0=x2:y0=y2:gosub165:x=x2:y=y2:x0=x3:y0=y3:gosub165
  162. 162 x=x3:y=y3:x0=x3-x2+x1:y0=y3-y2+y1:gosub165:x=x0:y=y0:x0=x1:y0=y1:goto165
  163. 163 if(aand6)<6thenreturn
  164. 164 sysi:x=x1:y=y1:x0=x2:y0=y2
  165. 165 xd=x0-x:yd=y0-y:xd=xd+sgn(xd):yd=yd+sgn(yd):a=y0<yor1:b=x0<xor1:d=dm+3:sl=.
  166. 166 on-(yd=.)-(xd=.)*2goto167,168,169:sl=abs(yd/xd):ifint(sl)thensl=1/sl:goto168
  167. 167 c=sl*a:y=y-(y0<y)+c/2:forx=xtox+xd-bstepb:x%=x:y%=y:sysd:y=y+c:next:goto169
  168. 168 c=sl*b:x=x-(x0<x)+c/2:fory=ytoy+yd-astepa:x%=x:y%=y:sysd:x=x+c:next
  169. 169 x=x0:y=y0:return
  170. 170 sysi:a=sqr(((x1-x2)*w)^2+(y1-y2)^2)/w:b=int(w*a+.5):a=int(a+.5):c=dm+3
  171. 171 on1-(a<320andb<320)*sgn(a)*sgn(b)goto199,205
  172. 172 sysbf:mx=x2:my=y2:xd=(x1-x2)*w:yd=(y1-y2):ifxd=0thenz=(NULL)/2:dx=1:dy=0:goto175
  173. 173 sl=yd/xd:z=atn(sl):a=1e-06:v=200-a:h=320-a:a=abs(sl)<1:ifathendx=-sl/w:dy=1
  174. 174 ifnotathendy=-w/sl:dx=1
  175. 175 pokek,.:n=abs(z)<(NULL)/4:d=q:x=mx:y=my:fora=-1to.:mx=x:my=y:gosub.
  176. 176 a=(y2-y)*n+(x2-x)*notn:b=a*dx+x2:c=a*dy+y2:ifb>horb<.orc>vorc<.then175
  177. 177 x%=b:y%=c:sysd:a=peek(k)=.andnotf:next:x3=x%:y3=y%:a=3:gosub122:getn$:ifn$then199
  178. 178 rx=sqr(xd^2+yd^2)/w^2:xd=(b-x2)*w:yd=c-y2:ry=sqr(xd^2+yd^2)/w:x0=x2:y0=y2
  179. 179 if(abs(rx)>319orabs(ry)>319)andx$="e"orrx*ry=0then199
  180. 180 sysi:ify1-y2=.orx1-x2=.then204
  181. 181 e=z:f=1/w:a=ry^2:b=a/rx^2:d=dm+3:n=w^2:ifx$<>"[197]"then186
  182. 182 z=x1=x2andy2=y3:ifx2<x1andy3>y2orzandx3<x2andy2<y1then200
  183. 183 ifx1<x2andy3>y2orzandx3<x2andy1<y2thene=(NULL)+e:f=-f:goto200
  184. 184 ifx1<x2andy3<y2orzandx2<x3andy1<y2thene=(NULL)+e:goto200
  185. 185 ifx2<x1andy3<y2orzandx2<x3andy2<y1thenf=-f:goto200
  186. 186 forx=rxto1step-1:c=x*x:y=abs(a-c*b):c=sqr(c*n+y):z=atn(f*sqr(y)/x)
  187. 187 c(x)=c:z(x)=z:x%=cos(z+e)*c+x0:y%=sin(z+e)*c*w+y0:sysd:next
  188. 188 c(.)=ry:z(.)=(NULL)/2:f=(NULL)+e:a=x0:b=y0
  189. 189 forx=.torx:c=c(x):z=f-z(x):x%=cos(z)*c+a:y%=sin(z)*c*w+b:sysd:next
  190. 190 forx=rxto.step-1:c=c(x):z=f+z(x):x%=cos(z)*c+a:y%=sin(z)*c*w+b:sysd:next
  191. 191 f=2*(NULL)+e:forx=.torx:c=c(x):z=f-z(x):x%=cos(z)*c+a:y%=sin(z)*c*w+b:sysd:next
  192. 192 e=e+(NULL)/2:f=w:b=rx^2:a=b/(ry^2)
  193. 193 fory=ryto1step-1:c=y*y:x=abs(b-c*a)*n:c=sqr(x+c):z=atn(sqr(x)/y)
  194. 194 c(y)=c:z(y)=z:x%=cos(z+e)*c+x0:y%=sin(z+e)*c*w+y0:sysd:next
  195. 195 c(.)=rx*w:z(.)=(NULL)/2:f=(NULL)+e:a=x0:b=y0
  196. 196 fory=.tory:c=c(y):z=f-z(y):x%=cos(z)*c+a:y%=sin(z)*c*w+b:sysd:next
  197. 197 fory=ryto.step-1:c=c(y):z=f+z(y):x%=cos(z)*c+a:y%=sin(z)*c*w+b:sysd:next
  198. 198 f=2*(NULL)+e:fory=.tory:c=c(y):z=f-z(y):x%=cos(z)*c+a:y%=sin(z)*c*w+b:sysd:next
  199. 199 x=x2:y=y2:return
  200. 200 forx=1torx:c=x*x:y=abs(a-c*b):c=sqr(c*n+y):z=e+atn(f*sqr(y)/x)
  201. 201 x%=cos(z)*c+x0:y%=sin(z)*c*w+y0:sysd:next:e=e+sgn(f)*(NULL)/2:b=rx^2:a=b/ry^2:f=-1/f
  202. 202 fory=1tory:c=y*y:x=abs(b-c*a):c=sqr(x*n+c):z=e+atn(f*sqr(x)/y)
  203. 203 x%=cos(z)*c+x0:y%=sin(z)*c*w+y0:sysd:next:goto199
  204. 204 a=x1-x2:b=y3-y2:c=dm+3
  205. 205 dx=sgn(a):a=abs(a):dy=sgn(b):b=abs(b):ifa=.thena=x3-x2:b=y1-y2:goto205
  206. 206 rx=a+.25:ry=b+.25:a=x2+1e-4:b=y2+1e-4:d=(ry/w)^2:e=d/rx^2:ifx$="[197]"then215
  207. 207 forx=rxto.step-1:y=sqr(abs(d-x*x*e))*w:c(x)=int(y):x%=x+a:y%=y+b:sysc:next
  208. 208 forx=.torx:x%=a-x:y%=b+c(x):sysc:next
  209. 209 forx=-int(rx)to.:x%=a+x:y%=b-c(-x):sysc:next
  210. 210 forx=.torx:x%=a+x:y%=b-c(x):sysc:next:d=(rx/w)^2:e=d/ry^2
  211. 211 fory=ryto.step-1:x=sqr(abs(d-y*y*e))*w:c(y)=int(x):x%=x+a:y%=y+b:sysc:next
  212. 212 fory=.tory:x%=a+c(y):y%=b-y:sysc:next
  213. 213 fory=-int(ry)to.:x%=a-c(-y):y%=b+y:sysc:next
  214. 214 fory=.tory:x%=a-c(y):y%=b+y:sysc:next:goto199
  215. 215 forx=.torx:x%=x*dx+a:y%=int(sqr(abs(d-x*x*e))*w)*dy+b:sysc:next
  216. 216 d=(rx/w)^2:e=d/ry^2
  217. 217 fory=.tory:x%=int(sqr(abs(d-y*y*e))*w)*dx+a:y%=y*dy+b:sysc:next:goto199
  218. 218 mx=x:my=y:b=-sgn(aand2):c=-sgn(aand4):d=-sgn(aand8):ifb+c+d=.then73
  219. 219 a=notb:x=-x1*b+x2*c*a-x3*d*a*notc:e=x:y=-y1*b+y2*c*f-y3*d*f*notc:f=y
  220. 220 ifbthenifx1<xthenx=x1
  221. 221 ifbthenify1<ytheny=y1
  222. 222 ifcthenifx2<xthenx=x2
  223. 223 ifcthenify2<ytheny=y2
  224. 224 ifdthenifx3<xthenx=x3
  225. 225 ifdthenify3<ytheny=y3
  226. 226 ifbthenifx1>ethene=x1
  227. 227 ifbthenify1>fthenf=y1
  228. 228 ifcthenifx2>ethene=x2
  229. 229 ifcthenify2>fthenf=y2
  230. 230 ifdthenifx3>ethene=x3
  231. 231 ifdthenify3>fthenf=y3
  232. 232 h=319-e+x:v=199-f+y:b=780:c=50037:d=50114
  233. 233 x1=x1-x:y1=y1-y:x2=x2-x:y2=y2-y:x3=x3-x:y3=y3-y
  234. 234 fora=-1to.:gosub.:x%=x1+x:y%=y1+y:sysc:pokeb,1:sysd:x%=x2+x:y%=y2+y:sysc:pokeb,2:sysd
  235. 235 x%=x3+x:y%=y3+y:sysc:pokeb,3:sysd:a=peek(k)=.andnotf:next:x1=x1+x:y1=y1+y
  236. 236 x2=x2+x:y2=y2+y:x3=x3+x:y3=y3+y:x=mx:y=my:x%=x:y%=y:sysdm:getx$:goto75
  237. 237 sysbf:sysi:sysci:a=(x-x2)*w:b=y-y2:c=dm:sysg:n$="[157]"+sp$:ifa=.thenz=sgn(b)*(NULL)/2
  238. 238 d=sqr(a^2+b^2)/w:e=d*w:m0=w:w=x2+1e-4:v=y2+1e-4:ifathenz=atn(b/a)+(x<x2)*(NULL)
  239. 239 x0=180/(NULL):y0=360:n=.:b=.:h=.:ifdthena=1:gosub249:x=h/2
  240. 240 fory=-1to.:gosub.:y=z+x*b:x%=cos(y)*d+w:y%=sin(y)*e+v:sysc-f*3:y=peek(k)=.:next:goto243
  241. 241 fory=-1to.:gosub.:y=x*b:x%=cos(z+y)*d+w:y%=sin(z+y)*e+v:sysc-f*3
  242. 242 printy*x0-y0;n$;:poker,6:y=peek(k)=.:next
  243. 243 getx$:ifx$=" "thenc=dr-(c=dr)*6
  244. 244 ifx$="a"thengosub250:ifathenx1=x%:y1=y%:a=1:gosub122
  245. 245 ifx$="c"thengosub250:ifathenx3=x%:y3=y%:a=3:gosub122
  246. 246 a=val(x$):ifa*htheny=x/h:gosub249:x=int(h*y)
  247. 247 ifx$="^"thenon-ngosub458:n=notn:ifnthengosub457:print"angle:";
  248. 248 on(n-1)*(x$<>r$)goto240,241:w=m0:on-ngosub458:n$="":a=fre(.):goto199
  249. 249 a=(NULL)/(1/(4*a)/d):x%=a/256:h=(a-x%*256and254)+x%*256:b=(NULL)/(h/4):return
  250. 250 a=x%=>.andy%=>.andx%<320andy%<200:return
  251. 251 sysi:gosub462:xy=-(x$="[218]"):m1=40:m2=20+xy*5:gosub467
  252. 252 pokeen,.:sys50459:pokeen,240:sysci:zy=zy+(zy=20)*xy:x=zx:y=zy
  253. 253 v=20-xy:h=30:e=50234:pokek,.
  254. 254 fora=-1to.:gosub.:x%=x*8:y%=y*8:syse:a=peek(k)=.andnotf:ford=.to-a*30:next
  255. 255 next:ifx-zxory-zythenm1=40:m2=20+xy*5
  256. 256 zx=x:zy=y:gosub471:y%=pc:sys6673:poke646,fg:print"[147]":gosub454:sys6907
  257. 257 sys6003:z=50616:onxy+1gosub295,279:onxygoto259
  258. 258 fora=.to1:pokept+1+a,63:poke53250+a*2,144+a*40:poke53251+a*2,209:next
  259. 259 a=53264:pokea,peek(a)and240:poke53277,6:pokept,11:pokeen,7-xy*6:e=me
  260. 260 poke646,pc:onxy+1gosub286,280
  261. 261 z=1024:ry=80:y0=40:v=39+xy*8:h=79:x=m1:y=m2:xd=q:x0=51048+xy*38:rx=3584
  262. 262 c=4:d=8:n=2:pokexa,24:pokeya,50:x%=x*c:y%=y*c:sysxd:gosub456
  263. 263 pokek,.:forb=-1to.:gosub.:x%=x*c:y%=y*c:sysxd:ifnotfthenifm-athenfora=.top:next
  264. 264 iffthena=z+x/n+int(y/n)*y0:pokea,peek(e+peek(a)*c+(yand1)*n+(xand1))
  265. 265 iffthena=int(x/d)*c:b=int(y/d)*ry:x%=z+a+b+b:y%=rx+a+a+b:sysx0:waitj,m,l
  266. 266 b=peek(k)=.:next:getx$:ifx$=" "thena=.:gosub275:goto252
  267. 267 ifx$="[147]"thenmx=x:my=y:gosub297:x=mx:y=my
  268. 268 gosub282:ifathenonxy+1gosub286,280
  269. 269 ifxythen274
  270. 270 ifx$="[157]"thend=1:f=1:b=2:gosub292
  271. 271 ifx$=""thend=2:f=0:b=2:gosub292
  272. 272 ifx$="[145]"thend=3:f=1:b=7:gosub292
  273. 273 ifx$=""thend=4:f=0:b=7:gosub292
  274. 274 a=1:ifx$<>"_"andx$<>r$then263
  275. 275 me=e:mx=x+zx*8:my=y+zy*8:m1=x:m2=y
  276. 276 y%=fg:sys6698:gosub455:pokeen,.:poke53277,.
  277. 277 x=zx:y=zy:onxy+1gosub296,278:sysco:gosub453:onagosub463:gosub471:goto456
  278. 278 z=50622
  279. 279 forb=.to5:x%=1024+b*160:y%=hr+x*8+(y+b)*320:sysz:next:return
  280. 280 dy=25:dx=.:gosub9:print" "c$(-(e=512))"toggle "c$(-(e=576))"draw ";
  281. 281 printc$(-(e=640))"erase   (spc)window  _exit";:goto291
  282. 282 e=me:ifx$="t"thene=512
  283. 283 ifx$="d"thene=576
  284. 284 ifx$="e"thene=640
  285. 285 a=e<>me:me=e:return
  286. 286 dx=.:dy=21:gosub9:a=10:print"               "spc(a)
  287. 287 printsp$" [t]"c$(-(e=512))"oggle     "spc(a)"  [spc]window  ";
  288. 288 print"  [d]"c$(-(e=576))"raw       "spc(a)"  [csr]scroll  ";
  289. 289 print"  [e]"c$(-(e=640))"rase      "spc(a)"  ['_']exit   "sp$spc(a)
  290. 290 print"              [146]";
  291. 291 poke2023,160:poke56295,pc:return
  292. 292 mx=x:my=y:x=zx:y=zy:h=30:v=20
  293. 293 fora=-1to.:gosub296:ondgosub5,6,7,8:gosub295:a=peek(653)=fandpeek(197)=b:next
  294. 294 zx=x:zy=y:x=mx:y=my:h=79:v=39:d=8:return
  295. 295 y%=hr+x*8+y*320:x%=3584:sys5960:x%=1024:y%=3584:sys6036:return
  296. 296 y%=hr+x*8+y*320:x%=3584:sys5981:return
  297. 297 sys49899,1024,1823+xy*160,80:sys49899,3584,3983,.:return
  298. 298 sysi:gosub462:pokeen,.:gosub468:se=.:dt=.:v=24-wy:h=39-wx:x=wh:y=wv:z=52792
  299. 299 n=51795:sys50459:gosub333:fora=.to3:pokept+a,56+a:next:pokeen,240:tl=.:m9=.
  300. 300 pokek,.:forb=-1to.:gosub.:x%=x*8:y%=y*8:sysz:b=peek(k)=.andnotf:ford=.to-30*b:next:next
  301. 301 rx=hr+x*8+y*320:getx$:ifx$="[147]"thensysi:x%=rx:sys52825
  302. 302 iftlthen326
  303. 303 on-notfgoto308:dx=x:dy=y:forf=-1to.:b=a=l:if(aand4)=bthenwx=wx+(wx>0):h=39-wx
  304. 304 if(aand1)=bthenwy=wy+(wy>0):v=24-wy
  305. 305 if(aand8)=bthenwx=wx-(wx<39):h=39-wx:dx=dx+(dx>h)
  306. 306 if(aand2)=bthenwy=wy-(wy<24):v=24-wy:dy=dy+(dy>v)
  307. 307 x%=wx*4:y%=wy*8:sysn:x%=dx*8:y%=dy*8:sysz:gosub.:next:gosub333:x=dx:y=dy
  308. 308 ifx$="[134]"theny%=rx:x%=y%+wx*8:sys52327
  309. 309 ifx$="[135]"theny%=rx:x%=y%+wy*320+7:sys52438
  310. 310 ifx$="[136]"theny%=rx:sys52672
  311. 311 a=peek(653):b=x$="[137]":ifbanda<2thena=.:b=7159:d=4:gosub328:b=.
  312. 312 ifx$="[133]"ora=2andbthena=6763+b*3:onsgn(m9)goto330:m9=rx:gosub331
  313. 313 ifx$="[138]"thena=1:b=51680:d=5:gosub328
  314. 314 ifx$="[139]"thena=.:b=7135:d=6:gosub328
  315. 315 ifx$="[140]"thena=1:b=7148:d=3:gosub328
  316. 316 a=notse:ifx$=" "thense=a:gosub329
  317. 317 ifx$="[160]"andpeek(653)=2thense=.:dt=notdt:gosub329
  318. 318 ifx$=""thenx%=-hr*se-rx*a:b=51804:c=0:d=2:gosub123
  319. 319 ifx$="[157]"thenx%=-hr*se-rx*a:b=51911:c=1:d=2:gosub123
  320. 320 ifx$=""thenx%=-15872*se-(rx+wy*320)*a:b=52137:c=0:d=7:gosub123
  321. 321 ifx$="[145]"thenx%=-hr*se-rx*a:b=52040:c=1:d=7:gosub123
  322. 322 ifx$="^"thensysi:x%=(wx-(wx>24)*(24-wx))*8+wy*256:y%=x*8+y*320:sys49740,x*8,y*8
  323. 323 ifx$="u"thensyso
  324. 324 ifx$="s"thensl=2:gosub45:gosub333
  325. 325 a=x$="l":ifaorx$="g"thensl=-a:gosub45:x=.:y=.:gosub468:gosub333:v=24-wy:h=39-wx
  326. 326 iftlthenifx$=r$orfthensysi:gosub333:pokeen,.:onsl+1gosub53,52:pokeen,240:tl=.:x$=""
  327. 327 on-notx$=r$goto300:wh=x:wv=y:se=.:dt=.:gosub329:goto463
  328. 328 x%=rx+wy*320*a:c=1:a=se=.:on-agosub123
  329. 329 a=notse:poke2,dt*a:y%=bg*dt*a-pc*se+fg*a*notdt:sys6733:return
  330. 330 sysi:gosub333:x%=rx:y%=m9:sysa:m9=.:pokeen,240:goto300
  331. 331 pokeen,.:c=50037:d=780:e=50114:pokexa,24:pokeya,50:fora=.to1:forb=.to1
  332. 332 x%=x*8+wx*8*b:y%=y*8+wy*8*a:sysc:poked,a*2+b:syse:nextb,a:pokeen,255:return
  333. 333 poke172,wx+1:poke173,wy+1:return
  334. 334 sysi:gosub462:sysg:a=6063:b=6767:v=24:d=q:e=6872:rx=8184:z=cs:sys6919
  335. 335 gosub349:x=int(x/dx):y=int(y/8):pokexa,24:pokeya,48:pokeen,1:pokept,11
  336. 336 forf=-1to.:x%=x*dx:y%=y*8:sysd:f=-1:getx$:ifx$=""thennext
  337. 337 c=asc(x$):ifc>31andc<97orc>159then347
  338. 338 ifx$=""thenx%=x*dx:y%=y*8:syse:gosub5:next
  339. 339 ifx$=""thengosub6:next
  340. 340 ifx$="[157]"thengosub5:next
  341. 341 ifx$="[145]"thengosub7:next
  342. 342 ifx$=""thengosub8:next
  343. 343 f=(c>136)*(c<141)*(145-c):iffthenx=int((x*dx)/f):z%(z)=f:gosub349
  344. 344 ifc>132andc<137thenz=c-133:x=int((x*dx)/z%(z)):sysbf:gosub349
  345. 345 ifc=141thenx=.:gosub8
  346. 346 f=c<>13:next:cs=z:sysg:mx=x*dx:my=y*8:goto463
  347. 347 ifc>63thenc=c-64:ifc>127thenc=c-64
  348. 348 x%=rx:y%=c*8+n:sysa:x%=x*dx:y%=y*8:sysb:c=x<h:x=-c*x-c:next
  349. 349 n=z*1024:dx=z%(z):poke731,256-2^(8-dx):poke172,dx:h=int(320/dx)-1:return
  350. 350 gosub455:sysg:sysi:sysci:gosub462:print"[147]":gosub471:sys50459:goto449
  351. 351 gosub350:sys51035:sys49899,1544,2023,32:b=13:gosub460
  352. 352 fora=.to7:c(a)=2^a:next:sys5916:me=512:m2=.:m3=.:m4=.:m9=.:x=.:y=.:ry=hr
  353. 353 sys6919:poke731,127:poke732,128:poke53249,.:gosub461:gosub67
  354. 354 se=1024:d=q:c=51040:z=1628:v=12:h=39:e=.:dx=19:dy=23:pokept+1,61
  355. 355 pokek,.:fora=-1to.:gosub.:x%=x*8:y%=y*8:sysd:x%=z:n=(x+y*40)*8:y%=ry+n:sysc
  356. 356 a=1+int(n/se):gosub9:printmid$(str$(a),2):iffthenwaitj,16:gosub373:goto354
  357. 357 a=peek(k)=.:next:getx$:gosub359:ifx$=" "thengosub378:m9=.:goto354
  358. 358 on-note<.goto354:gosub71:sys50728:sysco:gosub453:syso:gosub463:goto456
  359. 359 ifx$="l"thensl=1:goto55
  360. 360 ifx$="s"thensl=2:goto55
  361. 361 ifx$="[147]"thenfora=y%toa+7:pokea,.:next:goto377
  362. 362 ifx$="[134]"thengosub375:x%=y%:sys52327:goto377
  363. 363 ifx$="[135]"thengosub375:x%=y%+7:sys52438:goto377
  364. 364 ifx$="[136]"thengosub375:sys52672:goto377
  365. 365 ifx$="[133]"then371
  366. 366 ifx$="[157]"thenb=51911:goto376
  367. 367 ifx$=""thenb=51804:goto376
  368. 368 ifx$="[145]"thenb=52040:goto376
  369. 369 ifx$=""thenb=52137:goto376
  370. 370 e=x$="_":return
  371. 371 fora=.to7:z(a)=peek(y%+a):next:fora=.to7:c=c(a):d=.:forb=.to7:ifz(b)andcthend=d+c(7-b)
  372. 372 next:pokey%+a,d:next:goto377
  373. 373 ifm9thenx%=y%:y%=m9:sys51781:m9=.:pokeen,1:y%=x%:goto377
  374. 374 m9=y%:x%=x*8:y%=y*8:sys50037:a=1:goto122
  375. 375 poke172,1:poke173,1:return
  376. 376 a=y%:x%=a:y%=257:sysb:y%=a
  377. 377 x%=z:sys51040:return
  378. 378 pokeen,1:rx=y%:x0=x:y0=y:x%=x*8:y%=y*8:sys50037:poke780,1:sys50114:pokept,62:x=.:y=.
  379. 379 v=7:h=7:dx=33:dy=121:c=51048:d=q:e=me:n=40:pokek,.:pokept+1,11:pokeen,3
  380. 380 forb=-1to.:gosub.:x%=dx+x*4:y%=dy+y*4:sysd:ifnotfthenifm-athenfora=.top:next
  381. 381 iffthenb=z+x/2+int(y/2)*n:pokeb,peek(e+peek(b)*4+(yand1)*2+(xand1)):waitj,m,l
  382. 382 x%=z:y%=rx:sysc:b=peek(k)=.:next:getx$:ifx$=" "then384
  383. 383 gosub282:gosub361:ife=>.then379
  384. 384 x=x0:y=y0:x%=x*8:y%=y*8:poke780,.:sys50114:pokept,61:pokeen,1:return
  385. 385 gosub350:sys49899,1184,2023,32:gosub454:b=4:gosub460:sys5927:sys7061
  386. 386 m1=.:m2=.:m8=.:m9=.:me=512
  387. 387 sys51114:se=.:sp=1:ry=8520:pokept,62
  388. 388 pokept+1,60:poke53271,2:poke53277,2:poke53249,.:poke53251,.:pokeen,3:gosub68
  389. 389 z=1347:c=51048:x0=160:y0=320:gosub413:v=20:h=23:d=q:e=me:n=40
  390. 390 dx=33:dy=82:x=m1:y=m2:pokek,.
  391. 391 forb=-1to.:gosub.:x%=dx+x*4:y%=dy+y*4:sysd:ifnotfthenifm-athenfora=.top:next
  392. 392 iffthena=z+x/2+int(y/2)*n:pokea,peek(e+peek(a)*4+(yand1)*2+(xand1))
  393. 393 iffthena=int(x/8)*4:b=int(y/8)*x0:x%=z+a+b:y%=sl+a+a+b+b:sysc:waitj,m,l
  394. 394 b=peek(k)=.:next:m1=x:m2=y:getx$:a=val(x$):ifathenifa<9thensp=a:goto389
  395. 395 ifx$=""thenx%=sl:y%=771:sys51804
  396. 396 ifx$="[157]"thenx%=sl:y%=771:sys51911
  397. 397 ifx$="[145]"thenx%=sl:y%=771:sys52568
  398. 398 ifx$=""thenx%=sl+640:y%=771:sys52619
  399. 399 ifx$="[147]"thengosub415
  400. 400 ifx$="[134]"thengosub423:y%=sl:x%=sl+16:sys52327
  401. 401 ifx$="[135]"thengosub423:y%=sl:x%=sl+644:sys50037:poke780,10:sys52445
  402. 402 ifx$="[136]"thengosub423:y%=sl:sys52739
  403. 403 ifx$="[133]"thengosub416
  404. 404 ifx$="l"thenrx=ry+3104:sl=1:gosub29
  405. 405 ifx$="s"thengosub408
  406. 406 ifx$="^"thenforf=-1to.:a=se:se=a+1and3:gosub411:f=54=peek(197):next
  407. 407 gosub282:on-notx$="_"goto389:on-(m8=.andm9=.)goto424:gosub419:m8=.:m9=.:goto389
  408. 408 ifm8=.thenm8=sp+se*256:dx=22:dy=23:gosub9:x$="save":goto420
  409. 409 b=51685:rx=sl+se*960:a=m8-1:e=int(a/256):d=aand255:x%=ry:y%=x%+se*960:sysb
  410. 410 y%=ry+e*960:sysb:se=e:sp=d+1:gosub413:gosub412:sl=2:goto29
  411. 411 gosub422:ifatheny%=ry+a*960:sys51685
  412. 412 dx=20:dy=19:gosub9:printse+1:return
  413. 413 a=sp:a=(a-1)*32:sl=ry+a:x%=13+a:y%=22:sys50037:poke780,1:sys50114
  414. 414 fora=.toy0stepx0:forb=.to8step4:x%=z+b+a:y%=sl+b+b+a+a:sysc-8:next:next:return
  415. 415 gosub423:x%=sl:sys52889:return
  416. 416 ifm9=.thenm9=sp+se*256:dx=22:dy=23:gosub9:x$="copy":goto420
  417. 417 x%=m9/256:a=x%<>se:x%=-a*x%-(x%=.anda)*se:y=m9and255:a=ry+x%*960+(y-1)*32
  418. 418 m9=.:ifa<>slthengosub415:gosub423:y%=a:x%=sl:sys52284
  419. 419 gosub421:printsp$:return
  420. 420 gosub421:printx$" to spr#":return
  421. 421 dx=22:dy=23:goto9
  422. 422 x%=ry+se*960:y%=ry:sys51685:return
  423. 423 poke172,3:poke173,3:return
  424. 424 gosub71:a=.:gosub411:sysco:gosub453:sys51121:syso
  425. 425 poke53271,.:poke53277,.:gosub463:goto456
  426. 426 sysbf:sysi:gosub462:pokeen,.:rx=56:pokept,rx:c=51648:d=51528-3*a:e=q:z=51577
  427. 427 b=sa:v=179:h=296:poke172,0:poke173,14:gosub441:pokexa,24:pokeya,50:pokeen,1
  428. 428 x=x-(x>h)*(h-x):y=y-(y>v)*(v-y):dt=.
  429. 429 fora=-1to.:gosub.:x%=x:y%=y:syse:a=peek(k)=.:iffthensysd
  430. 430 next:gosub434:ifx$="u"thensyso
  431. 431 ifx$=" "thena=peek(z)=5:pokez,5-a*32:pokez+1,253-a:y%=-bg*a-fg*nota:sys6733
  432. 432 pokek,.:ifx$<>r$then428
  433. 433 pokez,5:pokez+1,253:y%=fg:sys6733:sa=b:goto463
  434. 434 a=rx*64:getx$:ifx$="[133]"then441
  435. 435 ifx$="[134]"theny%=a:x%=a+2:sys50037:poke782,61-15*dt:sys51616
  436. 436 ifx$="[135]"thenx%=a:y%=a+60-dt*15:sys50037:poke781,10-dt*2:sys6844
  437. 437 ifx$="[136]"theny%=a:sys50037:poke782,62-15*dt:sys6862
  438. 438 f=b:b=b+(x$="[157]"andb>.)-(x$=""andb<31)
  439. 439 ifx$=>"[193]"andx$<="[218]"thenb=asc(x$)-asc("[193]")
  440. 440 iff=bthenreturn
  441. 441 x%=rx*64:y%=(band7)*32+int(b/8)*960:sysc:return
  442. 442 gosub462:pokeen,.:x=int(x/8):y=int(y/8):d=q:e=.:ry=1:dx=15:dy=16:gosub461
  443. 443 z=1024:v=24:h=39:fora=-1to.:gosub.:rx=z+x+y*40:x%=x*8:y%=y*8:a=peek(rx)
  444. 444 pokerx,(aanddx)orry*dy:sysd:forb=-1to.:b=peek(j)=mandpeek(k)=.:next:ifnotfthenpokerx,a
  445. 445 a=peek(k)=.:next:getx$:fora=1to16:ifx$<>mid$("[144][159][156][158][129][149][150][151][152][153][154][155]",a,1)thennext
  446. 446 ifa<17thenry=a-1
  447. 447 ifx$=" "thene=note:dx=-240*e-15*note:dy=-e-16*note
  448. 448 on-notx$=r$goto443:goto463
  449. 449 a=fg*16+bg
  450. 450 sys49899,1024,2023,a:sys49899,55296,56295,fg:return
  451. 451 sys49899,hr,16191,.:return
  452. 453 sys6290:return
  453. 454 sys6307:return
  454. 455 sys6333:return
  455. 456 sys6324:return
  456. 457 gosub455:y%=fg:sys6713:dx=.:dy=25:gosub9:print"";:goto69
  457. 458 gosub71
  458. 459 gosub455:sysco:gosub453:goto456
  459. 460 sys49899,55296,55295+b*40,bg:return
  460. 461 sys50459:pokept,61:pokexa,23:pokeya,49:pokeen,1:return
  461. 462 mx=x:my=y:mz=peek(en):return
  462. 463 pokeen,.:fora=1to3:pokept+a,59+a:next:pokexa,15:pokeya,32:a=50037:b=50114
  463. 464 c=780:x%=x1:y%=y1:sysa:pokec,1:sysb:x%=x2:y%=y2:sysa:pokec,2:sysb:x%=x3
  464. 465 y%=y3:sysa:pokec,3:sysb:pokept,56:x=mx:y=my:x%=x:y%=y:sysdm:sys50455:pokeen,mz:return
  465. 466 mx=x:my=y:gosub471:gosub449:x=mx:y=my:return
  466. 467 pokexa+6,24:x%=72:y%=32+xy*8:sys51795:return
  467. 468 pokexa+6,12:x%=wx*4:y%=wy*8:sys51795:return
  468. 469 bg=db:fg=df:pc=dp:gosub466
  469. 470 poke702,pc:fora=sctoa+7:pokea,pc:next:return
  470. 471 poke700,bg:poke701,fg:poke53280,fg:poke53281,bg:poke646,fg:return
  471. 472 poke53272,19:return
  472. 473 poke53272,21:return
  473. 474 poke646,peek(700):sys6345
  474. 475 print"[147]"chr$(142):poke53280,peek(701):poke53281,peek(701):sys51093:poke2,.
  475. 476 dimy%,x%,x,y,z,a,b,c,d,e,f,n,j,l,m,u,w,x$,n$:j=56320:m=127:l=111:u=15:k=198
  476. 477 dimh,v,x0,y0,rx,ry,xd,yd,x1,y1,x2,y2,x3,y3,xy,sl,dx,dy,dt,sa,sx,sy,sp,se
  477. 478 dimc(319),z(319),k%(255),c$(1),z%(4):w=.72
  478. 479 r=211:s=214:t=58732:r$=chr$(13):dr=50293:dm=dr:sp$="                "
  479. 480 en=53269:pt=2040:sc=53287:hr=8192:xa=49156:ya=xa+1:bf=50634:q=50628
  480. 481 dimm0,m1,m2,m3,m4,m5,m6,m7,m8,m9,me,mx,my,mz,zx,zy,wx,wy,wh,wv,tl,cs:me=512
  481. 482 c$(0)="":c$(1)="[146]":wx=4:wy=4:dv=peek(186):ifdv<8thendv=8
  482. 483 pokexa,15:pokeya,32:pokeya+6,50:gosub467:fora=.to3:poke49178+a,56+a:next
  483. 484 db=peek(700):df=peek(701):dp=peek(702):p=peek(703)
  484. 485 fora=1to3:pokept+a,59+a:next:fora=4to7:pokept+a,52+a:next:sys6886
  485. 486 fora=.to3:z%(a)=8:next:x$="abcdefghijklmnopqrstuvwxyz 1234567890/-+&!.'()#"
  486. 487 fora=1tolen(x$):k%(asc(mid$(x$,a,1)))=-1:next:sys49899,57344,61439,0:sys7087
  487. 488 gosub455:gosub472:gosub469:gosub471:i=50712:o=50716:ci=51088:co=51093
  488. 489 g=46374:gosub453:sysci:gosub456:sys50455:goto72
  489. 490 x$=" [l]oadstar      [b]asic      [s]ketch":gosub499
  490. 491 ifx$="b"thengosub455:sys64738
  491. 492 ifx$<>"l"then494
  492. 493 n$="hello connect":sl=1:gosub62:gosub66:ifnotethen495
  493. 494 pokeen,mz:goto73
  494. 495 gosub455:bg=.:fg=.:gosub471:gosub454
  495. 496 print"[147]s[217]6358:p[207]43,1:p[207]44,8:p[207]2048,.:new"
  496. 497 print"l[207]"chr$(34)n$chr$(34)","dv:print"r[213]";:gosub456
  497. 498 poke198,3:poke631,13:poke632,13:poke633,13:end
  498. 499 sysci:mz=peek(en):pokeen,.:gosub457:printx$"":pokek,.:waitk,1:getx$:goto458
  499. 1000 goto474
  500.