Home » Archimedes archive » Archimedes World » AW-1995-07-Disc1.adf » AW0795_1 » ReadSoft/Games/!Coll3/!RunImage

ReadSoft/Games/!Coll3/!RunImage

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Archimedes World » AW-1995-07-Disc1.adf » AW0795_1
Filename: ReadSoft/Games/!Coll3/!RunImage
Read OK:
File size: 2E46 bytes
Load address: 0000
Exec address: 0000
File contents
   10 REM ><Coll3$Dir>.!RunImage
   11 REM
   12 REM ** By Richard Sharp
   13 REM ** (c) Archimedes World
   14 REM **
   15 REM
   20 ON ERROR PROCshutdown:END
   30 MODE 15:OFF
   40 PRINT "Please wait ... (playing with disc drive)"
   41 OSCLI "IconSprites <Coll3$Dir>.Graphics.!Pointer"
   42 OSCLI "Pointer 1"
   50 REM OSCLI "Run <Coll3$Dir>.Graphics.!Palette1"
   60 DIM grid(11,12),tprint% 1024*5:ttp%=0:voice=1:VOICES 4:speed=50
   70 PROCloadsp
   71 OSCLI "Load <Coll3$Dir>.Tprinter "+STR$ ~tprint%
   80 finish=FALSE:CLS:PROCmenu:PROCgetinput
   90 END
  100 :
  110 DEF PROCplot(sname$,x,y)
  120 SYS &2E,290,s%,sname$,x,y
  130 ENDPROC
  140 :
  150 DEF PROCmenu
  160 VDU 26:REM OSCLI "PlayPos 0"
  161 PROCplay("Future",5000)
  170 PROCplot("drainpipe",300,600)
  180 PROCplot("info",10,750)
  190 PROCplot("define",10,550)
  200 PROCplot("exit",10,350)
  210 PROCplot("arcworld",0,10)
  220 PROCplot("credit",750,47)
  230 PROCplot("beyond",300,500)
  240 MOUSE ON:MOUSE COLOUR 2,250,250,0:MOUSE COLOUR 3,250,100,100
  250 ENDPROC
  260 :
  270 DEF PROCgetinput
  280 REPEAT
  290 PROCdoprint
  300 IF FNbox(297,1297,492,887) THEN PROCgamestart:PROCmenu
  310 IF FNbox(10,210,750,950) THEN PROCinfo:PROCmenu
  320 IF FNbox(10,210,550,749) THEN PROCdefine
  330 IF FNbox(10,210,350,549) THEN finish=TRUE
  340 UNTIL finish=TRUE
  341 PROCshutdown
  342 ENDPROC
  343 :
  344 DEF PROCshutdown:VDU 26
  345 LOCAL ERROR:ON ERROR LOCAL RESTORE ERROR:PRINT "Error in shutdown procedure: Could not shut down properly":END:ENDPROC
  349 PROCplay("GameOver",3500)
  350 MOUSE OFF:PROCclear
  360 OSCLI "IconSprites <Coll3$Dir>.Graphics.!Pointer1"
  370 OSCLI "Pointer 1":REM OSCLI "Run <Coll3$Dir>.Graphics.!Palette"
  380 COLOUR 63:PRINT'"'Nothing ever shuts down by itself"'" Every program needs a little bit of help        -  (Anarchy)'"'
  381 OSCLI "RmKill Collect":OSCLI "RmKill Drop":OSCLI "RmKill Future"
  382 OSCLI "RmKill GameOver":OSCLI "RmKill GetReady":OSCLI "RmKill Complete"
  383 OSCLI "Rmkill lost":OSCLI "RmKill Bing"
  390 ENDPROC
  400 :
  410 DEF FNbox(x,x1,y,y1)
  420 IF X>x AND X<x1 AND Y>y AND Y<y1 THEN =TRUE
  430 =FALSE
  440 :
  450 DEF PROCclear
  460 GCOL 0,0 TINT 0
  470 FOR Y=0 TO 1023 STEP 8:LINE 0,Y,1279,Y:IF Y MOD 24=0 THEN WAIT
  480 NEXT
  490 FOR Y=1020 TO 0 STEP -8:LINE 0,Y,1279,Y:IF Y MOD 6=0 THEN WAIT
  500 NEXT:CLS
  510 ENDPROC
  520 :
  530 DEF PROCloadsp
  540 LOCAL file%,len%
  550 file%=OPENIN("<Coll3$Dir>.Graphix"):len%=EXT#file%:CLOSE#file%
  560 DIM s% len%+4:!s%=len%+4
  570 SYS &2E,10+256,s%,"<Coll3$Dir>.Graphix"
  580 ENDPROC
  590 :
  600 DEF PROCgamestart:OSCLI "FX 15"
  610 MOUSE OFF:PROCplay("GetReady",4000)
  620 REM OSCLI "Playpos 24"
  621 s=TIME:PROCclear
  630 REPEAT:UNTIL TIME>s+338:REM OSCLI "Playpos 26"
  640 PROCgame:s=TIME:REPEAT:UNTIL TIME>s+100:PROCclear:PROCdrawit
  650 ENDPROC
  660 :
  670 DEF PROCtprint(text$,wait)
  680 LOCAL l,c
  690 key=FALSE
  700 FOR l=1 TO LEN(text$):IF MID$(text$,l,1)="\" THEN
  701 c=VAL(MID$(text$,l+1,2)):COLOUR c TINT 255:l+=2
  702  ELSE
  703 PRINT MID$(text$,l,1);
  705 ENDIF
  710 IF l MOD 2=1 THEN PRINT "*";:del=TRUE ELSE del=FALSE
  720 WAIT:IF del=TRUE THEN PRINT CHR$(127);
  730 MOUSE X,Y,B
  740 IF B=4 THEN key=TRUE:l=LEN(text$)+1
  750 NEXT
  760 PRINT:IF wait<>0 AND key<>TRUE THEN
  770 FOR l=1 TO wait:PRINT "*";:s=TIME:REPEAT:UNTIL TIME>s+25:PRINT CHR$(127);
  780 s=TIME:REPEAT:UNTIL TIME>s+25
  790 NEXT
  800 ENDIF
  810 ENDPROC
  820 :
  830 DEF PROCrect(x,y,x1,y1,w)
  840 LOCAL t
  850 FOR t=0 TO w:IF t=w THEN GCOL 0,0 TINT 0 ELSE GCOL t TINT 255
  860 RECTANGLE x+(t*2),y+(t*2),x1-(t*4),y1-(t*4):NEXT
  870 ENDPROC
  880 :
  890 DEF PROCwaitevent
  900 LOCAL X,Y,B,b
  910 REPEAT:MOUSE X,Y,B:b=INKEY(0):UNTIL b<>-1 OR B<>0
  920 ENDPROC
  930 :
  940 DEF PROCgame
  950 REM OSCLI "Playpos 15"
  960 PROCplot("aresearch",895,780)
  970 PROCplot("ack",880,46)
  980 PROCrect(10,50,820+40,927,4)
  990 FOR x=23 TO 23+(11*70) STEP 70
 1000 FOR y=60 TO 60+(12*70) STEP 70
 1010 PROCplot("greycir",x,y)
 1020 NEXT:NEXT
 1030 redypos=13:ylwypos=21:redxpos=0:ylwxpos=11:alt=1
 1040 oldredypos=-1:oldylwpos=-1:exit=FALSE:redl=0:yellowl=0
 1050 red=1:yellow=2:FOR x=0 TO 11:FOR y=0 TO 12:grid(x,y)=0:NEXT:NEXT
 1060 REM FOR x=0 TO 11:grid(x,5)=13:NEXT
 1080 REPEAT
 1090 s=TIME:rkey=FALSE:ykey=FALSE:REPEAT
 1100 IF NOT rkey AND redypos<13 THEN
 1110  IF INKEY-98 THEN
 1120   rredxpos=redxpos-1:IF rredxpos<0 THEN rredxpos=11
 1130   IF grid(rredxpos,redypos)=0 THEN
 1140   PROCplot("greycir",23+(redxpos*70),60+(redypos*70)):redxpos=rredxpos
 1150   PROCplot("redcir",23+(redxpos*70),60+(redypos*70)):rkey=TRUE
 1160  ENDIF
 1170  ENDIF
 1180  IF INKEY-67 THEN
 1190  rredxpos=redxpos+1:IF rredxpos>11 THEN rredxpos=0
 1200  IF grid(rredxpos,redypos)=0 THEN
 1210   PROCplot("greycir",23+(redxpos*70),60+(redypos*70)):redxpos=rredxpos
 1220   PROCplot("redcir",23+(redxpos*70),60+(redypos*70)):rkey=TRUE
 1230  ENDIF
 1240  ENDIF
 1250 ENDIF
 1260 IF NOT ykey AND ylwypos<13 THEN
 1270  IF INKEY-26 THEN
 1280  yylwxpos=ylwxpos-1:IF yylwxpos<0 THEN yylwxpos=11
 1290   IF grid(yylwxpos,ylwypos)=0 THEN
 1300   PROCplot("greycir",23+(ylwxpos*70),60+(ylwypos*70)):ylwxpos=yylwxpos
 1310   PROCplot("yellowcir",23+(ylwxpos*70),60+(ylwypos*70)):ykey=TRUE
 1320  ENDIF
 1330  ENDIF
 1340  IF INKEY-122 THEN
 1350  yylwxpos=ylwxpos+1:IF yylwxpos>11 THEN yylwxpos=0
 1360   IF grid(yylwxpos,ylwypos)=0 THEN
 1370   PROCplot("greycir",23+(ylwxpos*70),60+(ylwypos*70)):ylwxpos=yylwxpos
 1380   PROCplot("yellowcir",23+(ylwxpos*70),60+(ylwypos*70)):ykey=TRUE
 1390  ENDIF
 1400  ENDIF
 1410 ENDIF
 1420 IF NOT INKEY-98 AND NOT INKEY-67 THEN rkey=FALSE
 1430 IF NOT INKEY-26 AND NOT INKEY-122 THEN ykey=FALSE
 1440 UNTIL TIME>s+speed
 1450 IF redypos<13 THEN
 1460 exec=FALSE
 1470 IF redypos=0 THEN exec=TRUE
 1480 IF redypos>0 THEN IF grid(redxpos,redypos-1)<>0 THEN exec=TRUE
 1490 IF exec THEN
 1491 PROCplay("Collect",5000)
 1500 IF oldredypos<13 THEN PROCplot("greycir",23+(redxpos*70),60+(oldredypos*70))
 1510 PROCplot("redcir",23+(redxpos*70),60+(redypos*70))
 1520 grid(redxpos,redypos)=red:PROCchecklines(red,redxpos,redypos)
 1530  redxpos=RND(12)-1:redypos=ylwypos+3:IF redypos<13 THEN redypos=13
 1540 ENDIF
 1550 ENDIF
 1560 oldredypos=redypos:redypos-=1
 1570 IF redypos=12 AND grid(redxpos,12)<>0 THEN
 1580  back=0:REPEAT:redxpos+=1:IF redxpos>11 THEN redxpos=0:back+=1
 1590  UNTIL grid(redxpos,12)=0 OR back=2
 1600  IF back=2 THEN exit=TRUE
 1610 ENDIF
 1620 IF exit THEN GOTO 1920
 1630 IF ylwypos<13 THEN
 1640 exec=FALSE:IF ylwypos=0 THEN exec=TRUE
 1650 IF ylwypos>0 THEN IF grid(ylwxpos,ylwypos-1)<>0 THEN exec=TRUE
 1660 IF exec THEN
 1661 PROCplay("Collect",5000)
 1670 IF oldylwypos<13 THEN PROCplot("greycir",23+(ylwxpos*70),60+(oldylwypos*70))
 1680 PROCplot("yellowcir",23+(ylwxpos*70),60+(ylwypos*70))
 1690 grid(ylwxpos,ylwypos)=yellow:PROCchecklines(yellow,ylwxpos,ylwypos)
 1700  ylwxpos=RND(12)-1:ylwypos=redypos+3:IF ylwypos<13 THEN ylwypos=13
 1710 ENDIF
 1720 ENDIF
 1730 oldylwypos=ylwypos:ylwypos-=1
 1740 IF ylwypos=12 AND grid(ylwxpos,12)<>0 THEN
 1750  back=0:REPEAT:ylwxpos+=1:IF ylwxpos>11 THEN ylwxpos=0:back+=1
 1760  UNTIL grid(ylwxpos,12)=0 OR back=2
 1770  IF back=2 THEN exit=TRUE
 1780 ENDIF
 1790 IF exit THEN GOTO 1920
 1800 IF ylwypos=redypos THEN
 1810  IF alt=1 THEN ylwypos+=2 ELSE redypos+=2
 1820  alt=3-alt
 1830 ENDIF
 1840 IF redypos<13 THEN
 1850  PROCplot("redcir",23+(redxpos*70),60+(redypos*70))
 1860  IF oldredypos<13 THEN PROCplot("greycir",23+(redxpos*70),60+(oldredypos*70))
 1870 ENDIF
 1880 IF ylwypos<13 THEN
 1890  PROCplot("yellowcir",23+(ylwxpos*70),60+(ylwypos*70))
 1900  IF oldylwypos<13 THEN PROCplot("greycir",23+(ylwxpos*70),60+(oldylwypos*70))
 1910 ENDIF
 1920 WAIT:UNTIL exit:OSCLI "FX 15"
 1930 ENDPROC
 1940 :
 1950 DEF PROCdld(c,bx,by,tx)
 1951 PROCplay("Drop",5000)
 1960 IF c=red THEN s$="red" ELSE s$="yellow"
 1970 REPEAT:PROCplot(s$,23+(bx*70),60+(by*70)):grid(bx,by)=-c
 1980 bx+=1:by+=1:UNTIL bx=tx+1
 1990 ENDPROC
 2000 :
 2010 DEF PROCdlx(c,xl,xr):LOCAL x
 2011 PROCplay("Drop",5000)
 2020 IF c=red THEN s$="red":aty=redypos
 2030 IF c=yellow THEN s$="yellow":aty=ylwypos
 2040 FOR x=xl TO xr:PROCplot(s$,23+(x*70),60+(aty*70)):grid(x,aty)=-c
 2050 NEXT
 2060 ENDPROC
 2070 :
 2080 DEF PROCdldl(c,tx,ty,bx)
 2081 PROCplay("Drop",5000)
 2090 IF c=red THEN s$="red" ELSE s$="yellow"
 2100 REPEAT:PROCplot(s$,23+(tx*70),60+(ty*70)):grid(tx,ty)=-c
 2110 tx+=1:ty-=1:UNTIL tx=bx+1
 2120 ENDPROC
 2130 :
 2140 DEF PROCdly(c,yl,yt):LOCAL y
 2141 PROCplay("Drop",5000)
 2150 IF c=red THEN s$="red":atx=redxpos
 2160 IF c=yellow THEN s$="yellow":atx=ylwxpos
 2170 FOR y=yl TO yt:PROCplot(s$,23+(atx*70),60+(y*70)):grid(atx,y)=-c
 2180 NEXT
 2190 ENDPROC
 2200 :
 2210 DEF PROCchecklines(c,x,y)
 2220 IF x<11 THEN
 2230  dx=x:sq=0:REPEAT:dx+=1
 2240  IF grid(dx,y)=c THEN sq=0
 2250  IF grid(dx,y)<0 THEN sq+=1
 2260  UNTIL (grid(dx,y)<>c AND grid(dx,y)>-1) OR sq=2 OR dx=11
 2270  IF grid(dx,y)=c THEN xr=dx
 2280  IF grid(dx,y)<>c AND sq<2 THEN xr=dx-1
 2290  IF sq=2 THEN xr=dx-1
 2300  IF dx=11 AND sq=1 AND grid(dx,y)<0 THEN xr=dx
 2310 ELSE
 2320  xr=11
 2330 ENDIF
 2340 IF x>0 THEN
 2350  dx=x:sq=0:REPEAT:dx-=1
 2360  IF grid(dx,y)=c THEN sq=0
 2370  IF grid(dx,y)<0 THEN sq+=1
 2380  UNTIL (grid(dx,y)<>c AND grid(dx,y)>-1) OR sq=2 OR dx=0
 2390  IF grid(dx,y)=c THEN xl=dx
 2400  IF grid(dx,y)<>c AND sq<2 THEN xl=dx+1
 2410  IF sq=2 THEN xl=dx+1
 2420  IF dx=0 AND sq=1 AND grid(dx,y)<0 THEN xl=dx
 2430 ELSE
 2440  xl=0
 2450 ENDIF
 2460 IF (xr-xl)+1>3 THEN PROCdlx(c,xl,xr)
 2470 IF y>0 THEN
 2480  dy=y:sq=0:REPEAT:dy-=1
 2490  IF grid(x,dy)=c THEN sq=0
 2500  IF grid(x,dy)<0 THEN sq+=1
 2510  UNTIL (grid(x,dy)<>c AND grid(x,dy)>-1) OR sq=2 OR dy=0
 2520  IF grid(x,dy)=c THEN yl=dy
 2530  IF grid(x,dy)<>c AND sq<>2 THEN yl=dy+1
 2540  IF sq=2 THEN yl=dy+1
 2550  IF sq=1 AND dy=0 AND grid(x,dy)<0 THEN yl=dy
 2560 ELSE
 2570  yl=0
 2580 ENDIF
 2590 IF y<12 THEN
 2600  dy=y:sq=0:REPEAT:dy+=1
 2610  IF grid(x,dy)=c THEN sq=0
 2620  IF grid(x,dy)<0 THEN sq+=1
 2630  UNTIL (grid(x,dy)<>c AND grid(x,dy)>-1) OR sq=2 OR dy=12
 2640  IF grid(x,dy)=c THEN yt=dy
 2650  IF grid(x,dy)<>c AND sq<>2 THEN yt=dy-1
 2660  IF sq=2 THEN yt=dy-1
 2670  IF sq=1 AND dy=12 AND grid(x,dy)<0 THEN yt=dy
 2680 ELSE
 2690  yt=12
 2700 ENDIF
 2710 IF (yt-yl)+1>3 THEN PROCdly(c,yl,yt)
 2720 IF x<11 AND y<12 THEN
 2730  dy=y:dx=x:sq=0:REPEAT:dy+=1:dx+=1
 2740  IF grid(dx,dy)=c THEN sq=0
 2750  IF grid(dx,dy)<0 THEN sq+=1
 2760  UNTIL (grid(dx,dy)<>c AND grid(dx,dy)>-1) OR sq=2 OR dy=12 OR dx=11
 2770  IF grid(dx,dy)=c THEN tx=dx:ty=dy
 2780  IF grid(dx,dy)<>c AND sq<>2 THEN tx=dx-1:ty=dy-1
 2790  IF sq=2 THEN tx=dx-1:ty=dy-1
 2800  IF (dy=12 OR dx=11) AND sq=1 AND grid(dx,dy)<0 THEN tx=dx:ty=dy
 2810 ELSE
 2820  tx=x:ty=y
 2830 ENDIF
 2840 IF x>0 AND y>0 THEN
 2850  dy=y:dx=x:sq=0:REPEAT:dy-=1:dx-=1
 2860  IF grid(dx,dy)=c THEN sq=0
 2870  IF grid(dx,dy)<0 THEN sq+=1
 2880  UNTIL (grid(dx,dy)<>c AND grid(dx,dy)>-1) OR sq=2 OR dy=0 OR dx=0
 2890  IF grid(dx,dy)=c THEN bx=dx:by=dy
 2900  IF grid(dx,dy)<>c AND sq<>2 THEN bx=dx+1:by=dy+1
 2910  IF sq=2 THEN bx=dx+1:by=dy+1
 2920  IF (dy=0 OR dx=0) AND sq=1 AND grid(dx,dy)<0 THEN bx=dx:by=dy
 2930 ELSE
 2940  bx=x:by=y
 2950 ENDIF
 2960 IF (tx-bx)+1>3 THEN PROCdld(c,bx,by,tx)
 2970 IF y>0 AND x<11 THEN
 2980  dy=y:dx=x:sq=0:REPEAT:dy-=1:dx+=1
 2990  IF grid(dx,dy)=c THEN sq=0
 3000  IF grid(dx,dy)<0 THEN sq+=1
 3010  UNTIL (grid(dx,dy)<>c AND grid(dx,dy)>-1) OR sq=2 OR dy=0 OR dx=11
 3020  IF grid(dx,dy)=c THEN bx=dx:by=dy
 3030  IF grid(dx,dy)<>c AND sq<>2 THEN bx=dx-1:by=dy+1
 3040  IF sq=2 THEN bx=dx-1:by=dy+1
 3050  IF (dy=0 OR dx=11) AND sq=1 AND grid(dx,dy)<0 THEN bx=dx:by=dy
 3060 ELSE
 3070  bx=x:by=y
 3080 ENDIF
 3090 IF y<12 AND x>0 THEN
 3100  dy=y:dx=x:sq=0:REPEAT:dy+=1:dx-=1
 3110  IF grid(dx,dy)=c THEN sq=0
 3120  IF grid(dx,dy)<0 THEN sq+=1
 3130  UNTIL (grid(dx,dy)<>c AND grid(dx,dy)>-1) OR sq=2 OR dy=12 OR dx=0
 3140  IF grid(dx,dy)=c THEN tx=dx:ty=dy
 3150  IF grid(dx,dy)<>c AND sq<>2 THEN tx=dx+1:ty=dy-1
 3160  IF sq=2 THEN tx=dx+1:ty=dy-1
 3170  IF (dy=12 OR dx=0) AND sq=1 AND grid(dx,dy)<0 THEN tx=dx:ty=dy
 3180 ELSE
 3190  tx=x:ty=y
 3200 ENDIF
 3210 IF (ty-by)+1>3 THEN PROCdldl(c,tx,ty,bx)
 3220 ENDPROC
 3230 :
 3240 DEF PROCdrawit
 3241 PROCplay("Complete",5000)
 3250 PROCrect(10,50,820+40,927,4):PROCplot("stats",900,648)
 3260 PROCplot("aresearch",895,60)
 3270 redsq=0:ylwsq=0
 3280 FOR x=0 TO 11:FOR y=0 TO 12
 3290 IF grid(x,y)=red THEN PROCplot("redcir",23+(x*70),60+(y*70))
 3300 IF grid(x,y)=yellow THEN PROCplot("yellowcir",23+(x*70),60+(y*70))
 3310 IF grid(x,y)=-red THEN PROCplot("red",23+(x*70),60+(y*70)):redsq+=1
 3320 IF grid(x,y)=-yellow THEN PROCplot("yellow",23+(x*70),60+(y*70)):ylwsq+=1
 3330 IF grid(x,y)=0 THEN PROCplot("greycir",23+(x*70),60+(y*70))
 3340 COLOUR 3:PRINTTAB(72,6);redsq
 3350 COLOUR 15:PRINTTAB(72,8);ylwsq
 3360 WAIT:WAIT:WAIT:WAIT
 3370 NEXT:NEXT:PROCplay("lost",5000)
 3380 REM 48,15
 3390 PROCwaitevent:PROCclear
 3400 ENDPROC
 3410 :
 3420 DEF PROCinfo
 3430 MOUSE OFF
 3440 PROCclear
 3450 PROCplot("drainpipe",280,720)
 3460 PROCplot("arcworld",0,0)
 3470 PROCplot("aresearch",900,55)
 3480 PROCplot("info",0,780)
 3490 y=650
 3500 FOR x=0 TO 1200 STEP 70:IF x MOD 140 PROCplot("yellowcir",x,y) ELSE PROCplot("redcir",x,y)
 3510 NEXT:y=265
 3520 FOR x=0 TO 1200 STEP 70:IF x MOD 140 PROCplot("yellowcir",x,y) ELSE PROCplot("redcir",x,y)
 3530 NEXT
 3540 COLOUR 12:PRINTTAB(0,13);" ... see magasine for instructions"'
 3550 COLOUR 15:PRINT" From the main menu:"'
 3560 COLOUR 25:PRINT"   Click on the 'Collisions 3000' logo to play"
 3570 COLOUR 18:PRINT"   Click on the 'Acorn' icon to quit"
 3580 COLOUR 19:PRINT"   Click on the '??' icon to change options"
 3590 PROCwaitevent:PROCclear
 3600 MOUSE ON
 3610 ENDPROC
 3620 :
 3630 DEF PROCdoprint
 3640 VDU 28,19,20,76,17
 3650 COLOUR 13 TINT 255
 3660 REPEAT
 3661 tt$="":REPEAT:tt$+=CHR$(tprint%?ttp%):ttp%+=1:UNTIL tprint%?ttp%=10 OR tprint%?ttp%=ASC("~"):ttp%+=1
 3662 IF tprint%?(ttp%-1)=ASC("~") THEN ttp%=0:tt$=LEFT$(tt$)
 3670 PROCtprint(tt$,2)
 3680 UNTIL key=TRUE:VDU 26
 3690 ENDPROC
 3700:
 3800 DEF PROCntprint(text$)
 3810 FOR k=1 TO LEN(text$)
 3820 PRINT MID$(text$,k,1);:WAIT:WAIT
 3830 NEXT
 3840 ENDPROC
 3850 :
 3860 DEF PROCdefine
 3870 VDU 28,19,20,76,17:CLS:COLOUR 13 TINT 255
 3880 PROCntprint("Do you want sound (Y/N)?"):ON
 3890 a$=GET$:IF CHR$(ASC(a$) AND &DF)="Y" THEN OSCLI "Audio On" ELSE OSCLI "Audio Off"
 3900 PRINT':PROCntprint("1 - fast       80 - slow")
 3901 REPEAT
 3910 PRINT':PROCntprint("Enter a speed value (1-80): ")
 3920 INPUT s:IF NOT (s>0 AND s<81) THEN PRINT'"Invalid."'
 3930 UNTIL s>0 AND s<81:speed=s:CLS:OFF
 3940 ENDPROC
 3950:
 3960 DEF PROCplay(sname$,pitch)
 3961 IF sname$="Bing" OR sname$="Collect" THEN voice=3 ELSE voice=1
 3970 OSCLI "Channelvoice "+STR$(voice)+" "+sname$
 3980 OSCLI "Channelvoice "+STR$(voice+1)+" "+sname$
 3990 SOUND voice,-15,pitch,1:SOUND voice+1,-15,pitch,1
 4010 ENDPROC

 � ><Coll3$Dir>.!RunImage
 �
 � ** By Richard Sharp

 � ** (c) Archimedes World
	 � **
 �
 � � �shutdown:�
 � 15:�
(2 � "Please wait ... (playing with disc drive)"
)2 � "IconSprites <Coll3$Dir>.Graphics.!Pointer"
* � "Pointer 1"
21 � OSCLI "Run <Coll3$Dir>.Graphics.!Palette1"
<> � grid(11,12),tprint% 1024*5:ttp%=0:voice=1:Ƞ 4:speed=50
F �loadsp
G. � "Load <Coll3$Dir>.Tprinter "+� ~tprint%
P finish=�:�:�menu:�getinput
Z �
d :
n � �plot(sname$,x,y)
x ș &2E,290,s%,sname$,x,y
� �
� :
� � �menu
� � 26:� OSCLI "PlayPos 0"
� �play("Future",5000)
� �plot("drainpipe",300,600)
� �plot("info",10,750)
� �plot("define",10,550)
� �plot("exit",10,350)
� �plot("arcworld",0,10)
� �plot("credit",750,47)
� �plot("beyond",300,500)
�- ȗ �:ȗ � 2,250,250,0:ȗ � 3,250,100,100
� �
 :
 � �getinput
 �
"
 �doprint
,0 � �box(297,1297,492,887) � �gamestart:�menu
6) � �box(10,210,750,950) � �info:�menu
@% � �box(10,210,550,749) � �define
J& � �box(10,210,350,549) � finish=�
T � finish=�
U �shutdown
V �
W :
X � �shutdown:� 26
YT � �:� � � � �:� "Error in shutdown procedure: Could not shut down properly":�:�
] �play("GameOver",3500)
^ ȗ �:�clear
h3 � "IconSprites <Coll3$Dir>.Graphics.!Pointer1"
r> � "Pointer 1":� OSCLI "Run <Coll3$Dir>.Graphics.!Palette"
|r � 63:�'"'Nothing ever shuts down by itself"'" Every program needs a little bit of help        -  (Anarchy)'"'
}9 � "RmKill Collect":� "RmKill Drop":� "RmKill Future"
~@ � "RmKill GameOver":� "RmKill GetReady":� "RmKill Complete"
$ � "Rmkill lost":� "RmKill Bing"
� �
� :
� � �box(x,x1,y,y1)
�# � X>x � X<x1 � Y>y � Y<y1 � =�
� =�
� :
�
 � �clear
� � 0,0 Ȝ 0
�2 � Y=0 � 1023 � 8:� 0,Y,1279,Y:� Y � 24=0 � Ȗ
� �
�2 � Y=1020 � 0 � -8:� 0,Y,1279,Y:� Y � 6=0 � Ȗ
� �:�
� �
 :
 � �loadsp
 � file%,len%
&8 file%=�("<Coll3$Dir>.Graphix"):len%=�#file%:�#file%
0 � s% len%+4:!s%=len%+4
:+ ș &2E,10+256,s%,"<Coll3$Dir>.Graphix"
D �
N :
X � �gamestart:� "FX 15"
b  ȗ �:�play("GetReady",4000)
l � OSCLI "Playpos 24"
m s=�:�clear
v% �:� �>s+338:� OSCLI "Playpos 26"
�) �game:s=�:�:� �>s+100:�clear:�drawit
� �
� :
� � �tprint(text$,wait)
�
 � l,c
�
 key=�
�) � l=1 � �(text$):� �text$,l,1)="\" �
�' c=�(�text$,l+1,2)):� c Ȝ 255:l+=2
�  �
� � �text$,l,1);
� �
�% � l � 2=1 � � "*";:del=� � del=�
� Ȗ:� del=� � � �(127);
�
 ȗ X,Y,B
� � B=4 � key=�:l=�(text$)+1
� �
� �:� wait<>0 � key<>� �
1 � l=1 � wait:� "*";:s=�:�:� �>s+25:� �(127);
 s=�:�:� �>s+25
 �
  �
* �
4 :
> � �rect(x,y,x1,y1,w)
H � t
R. � t=0 � w:� t=w � � 0,0 Ȝ 0 � � t Ȝ 255
\+ ȓ x+(t*2),y+(t*2),x1-(t*4),y1-(t*4):�
f �
p :
z � �waitevent
� � X,Y,B,b
�% �:ȗ X,Y,B:b=�(0):� b<>-1 � B<>0
� �
� :
� � �game
� � OSCLI "Playpos 15"
� �plot("aresearch",895,780)
� �plot("ack",880,46)
� �rect(10,50,820+40,927,4)
� � x=23 � 23+(11*70) � 70
� � y=60 � 60+(12*70) � 70
� �plot("greycir",x,y)
� �:�
5 redypos=13:ylwypos=21:redxpos=0:ylwxpos=11:alt=1
7 oldredypos=-1:oldylwpos=-1:exit=�:redl=0:yellowl=0
9 red=1:yellow=2:� x=0 � 11:� y=0 � 12:grid(x,y)=0:�:�
$& � FOR x=0 TO 11:grid(x,5)=13:NEXT
8 �
B s=�:rkey=�:ykey=�:�
L � � rkey � redypos<13 �
V  � �-98 �
`4   rredxpos=redxpos-1:� rredxpos<0 � rredxpos=11
j#   � grid(rredxpos,redypos)=0 �
tH   �plot("greycir",23+(redxpos*70),60+(redypos*70)):redxpos=rredxpos
~=   �plot("redcir",23+(redxpos*70),60+(redypos*70)):rkey=�
�  �
�  �
�  � �-67 �
�3  rredxpos=redxpos+1:� rredxpos>11 � rredxpos=0
�"  � grid(rredxpos,redypos)=0 �
�H   �plot("greycir",23+(redxpos*70),60+(redypos*70)):redxpos=rredxpos
�=   �plot("redcir",23+(redxpos*70),60+(redypos*70)):rkey=�
�  �
�  �
� �
� � � ykey � ylwypos<13 �
�  � �-26 �
3  yylwxpos=ylwxpos-1:� yylwxpos<0 � yylwxpos=11

#   � grid(yylwxpos,ylwypos)=0 �
H   �plot("greycir",23+(ylwxpos*70),60+(ylwypos*70)):ylwxpos=yylwxpos
@   �plot("yellowcir",23+(ylwxpos*70),60+(ylwypos*70)):ykey=�
(  �
2  �
<  � �-122 �
F3  yylwxpos=ylwxpos+1:� yylwxpos>11 � yylwxpos=0
P#   � grid(yylwxpos,ylwypos)=0 �
ZH   �plot("greycir",23+(ylwxpos*70),60+(ylwypos*70)):ylwxpos=yylwxpos
d@   �plot("yellowcir",23+(ylwxpos*70),60+(ylwypos*70)):ykey=�
n  �
x  �
� �
� � � �-98 � � �-67 � rkey=�
�  � � �-26 � � �-122 � ykey=�
� � �>s+speed
� � redypos<13 �
� exec=�
� � redypos=0 � exec=�
�8 � redypos>0 � � grid(redxpos,redypos-1)<>0 � exec=�
�
 � exec �
� �play("Collect",5000)
�J � oldredypos<13 � �plot("greycir",23+(redxpos*70),60+(oldredypos*70))
�4 �plot("redcir",23+(redxpos*70),60+(redypos*70))
�? grid(redxpos,redypos)=red:�checklines(red,redxpos,redypos)
�A  redxpos=�(12)-1:redypos=ylwypos+3:� redypos<13 � redypos=13
 �
 �
" oldredypos=redypos:redypos-=1
") � redypos=12 � grid(redxpos,12)<>0 �
,:  back=0:�:redxpos+=1:� redxpos>11 � redxpos=0:back+=1
6#  � grid(redxpos,12)=0 � back=2
@  � back=2 � exit=�
J �
T � exit � � �t@G
^ � ylwypos<13 �
h  exec=�:� ylwypos=0 � exec=�
r8 � ylwypos>0 � � grid(ylwxpos,ylwypos-1)<>0 � exec=�
|
 � exec �
} �play("Collect",5000)
�J � oldylwypos<13 � �plot("greycir",23+(ylwxpos*70),60+(oldylwypos*70))
�7 �plot("yellowcir",23+(ylwxpos*70),60+(ylwypos*70))
�E grid(ylwxpos,ylwypos)=yellow:�checklines(yellow,ylwxpos,ylwypos)
�A  ylwxpos=�(12)-1:ylwypos=redypos+3:� ylwypos<13 � ylwypos=13
� �
� �
�" oldylwypos=ylwypos:ylwypos-=1
�) � ylwypos=12 � grid(ylwxpos,12)<>0 �
�:  back=0:�:ylwxpos+=1:� ylwxpos>11 � ylwxpos=0:back+=1
�#  � grid(ylwxpos,12)=0 � back=2
�  � back=2 � exit=�
� �
� � exit � � �t@G
 � ylwypos=redypos �
'  � alt=1 � ylwypos+=2 � redypos+=2
  alt=3-alt
& �
0 � redypos<13 �
:5  �plot("redcir",23+(redxpos*70),60+(redypos*70))
DK  � oldredypos<13 � �plot("greycir",23+(redxpos*70),60+(oldredypos*70))
N �
X � ylwypos<13 �
b8  �plot("yellowcir",23+(ylwxpos*70),60+(ylwypos*70))
lK  � oldylwypos<13 � �plot("greycir",23+(ylwxpos*70),60+(oldylwypos*70))
v �
� Ȗ:� exit:� "FX 15"
� �
� :
� � �dld(c,bx,by,tx)
� �play("Drop",5000)
�% � c=red � s$="red" � s$="yellow"
�5 �:�plot(s$,23+(bx*70),60+(by*70)):grid(bx,by)=-c
� bx+=1:by+=1:� bx=tx+1
� �
� :
� � �dlx(c,xl,xr):� x
� �play("Drop",5000)
�# � c=red � s$="red":aty=redypos
�) � c=yellow � s$="yellow":aty=ylwypos
�? � x=xl � xr:�plot(s$,23+(x*70),60+(aty*70)):grid(x,aty)=-c
 �
 �
 :
  � �dldl(c,tx,ty,bx)
! �play("Drop",5000)
*% � c=red � s$="red" � s$="yellow"
45 �:�plot(s$,23+(tx*70),60+(ty*70)):grid(tx,ty)=-c
> tx+=1:ty-=1:� tx=bx+1
H �
R :
\ � �dly(c,yl,yt):� y
] �play("Drop",5000)
f# � c=red � s$="red":atx=redxpos
p) � c=yellow � s$="yellow":atx=ylwxpos
z? � y=yl � yt:�plot(s$,23+(atx*70),60+(y*70)):grid(atx,y)=-c
� �
� �
� :
� � �checklines(c,x,y)
�
 � x<11 �
�  dx=x:sq=0:�:dx+=1
�  � grid(dx,y)=c � sq=0
�  � grid(dx,y)<0 � sq+=1
�6  � (grid(dx,y)<>c � grid(dx,y)>-1) � sq=2 � dx=11
�  � grid(dx,y)=c � xr=dx
�&  � grid(dx,y)<>c � sq<2 � xr=dx-1
�  � sq=2 � xr=dx-1
�+  � dx=11 � sq=1 � grid(dx,y)<0 � xr=dx
	 �
	  xr=11
	 �
	$ � x>0 �
	.  dx=x:sq=0:�:dx-=1
	8  � grid(dx,y)=c � sq=0
	B  � grid(dx,y)<0 � sq+=1
	L5  � (grid(dx,y)<>c � grid(dx,y)>-1) � sq=2 � dx=0
	V  � grid(dx,y)=c � xl=dx
	`&  � grid(dx,y)<>c � sq<2 � xl=dx+1
	j  � sq=2 � xl=dx+1
	t*  � dx=0 � sq=1 � grid(dx,y)<0 � xl=dx
	~ �
	�
  xl=0
	� �
	�" � (xr-xl)+1>3 � �dlx(c,xl,xr)
	� � y>0 �
	�  dy=y:sq=0:�:dy-=1
	�  � grid(x,dy)=c � sq=0
	�  � grid(x,dy)<0 � sq+=1
	�5  � (grid(x,dy)<>c � grid(x,dy)>-1) � sq=2 � dy=0
	�  � grid(x,dy)=c � yl=dy
	�'  � grid(x,dy)<>c � sq<>2 � yl=dy+1
	�  � sq=2 � yl=dy+1
	�*  � sq=1 � dy=0 � grid(x,dy)<0 � yl=dy
 �


  yl=0
 �

 � y<12 �
(  dy=y:sq=0:�:dy+=1
2  � grid(x,dy)=c � sq=0
<  � grid(x,dy)<0 � sq+=1
F6  � (grid(x,dy)<>c � grid(x,dy)>-1) � sq=2 � dy=12
P  � grid(x,dy)=c � yt=dy
Z'  � grid(x,dy)<>c � sq<>2 � yt=dy-1
d  � sq=2 � yt=dy-1
n+  � sq=1 � dy=12 � grid(x,dy)<0 � yt=dy
x �
�  yt=12
� �
�" � (yt-yl)+1>3 � �dly(c,yl,yt)
� � x<11 � y<12 �
�"  dy=y:dx=x:sq=0:�:dy+=1:dx+=1
�  � grid(dx,dy)=c � sq=0
�  � grid(dx,dy)<0 � sq+=1
�@  � (grid(dx,dy)<>c � grid(dx,dy)>-1) � sq=2 � dy=12 � dx=11
�#  � grid(dx,dy)=c � tx=dx:ty=dy
�0  � grid(dx,dy)<>c � sq<>2 � tx=dx-1:ty=dy-1
�  � sq=2 � tx=dx-1:ty=dy-1
�<  � (dy=12 � dx=11) � sq=1 � grid(dx,dy)<0 � tx=dx:ty=dy
� �
  tx=x:ty=y
 �
 � x>0 � y>0 �
""  dy=y:dx=x:sq=0:�:dy-=1:dx-=1
,  � grid(dx,dy)=c � sq=0
6  � grid(dx,dy)<0 � sq+=1
@>  � (grid(dx,dy)<>c � grid(dx,dy)>-1) � sq=2 � dy=0 � dx=0
J#  � grid(dx,dy)=c � bx=dx:by=dy
T0  � grid(dx,dy)<>c � sq<>2 � bx=dx+1:by=dy+1
^  � sq=2 � bx=dx+1:by=dy+1
h:  � (dy=0 � dx=0) � sq=1 � grid(dx,dy)<0 � bx=dx:by=dy
r �
|  bx=x:by=y
� �
�% � (tx-bx)+1>3 � �dld(c,bx,by,tx)
� � y>0 � x<11 �
�"  dy=y:dx=x:sq=0:�:dy-=1:dx+=1
�  � grid(dx,dy)=c � sq=0
�  � grid(dx,dy)<0 � sq+=1
�?  � (grid(dx,dy)<>c � grid(dx,dy)>-1) � sq=2 � dy=0 � dx=11
�#  � grid(dx,dy)=c � bx=dx:by=dy
�0  � grid(dx,dy)<>c � sq<>2 � bx=dx-1:by=dy+1
�  � sq=2 � bx=dx-1:by=dy+1
�;  � (dy=0 � dx=11) � sq=1 � grid(dx,dy)<0 � bx=dx:by=dy
� �
�  bx=x:by=y
 �
 � y<12 � x>0 �
"  dy=y:dx=x:sq=0:�:dy+=1:dx-=1
&  � grid(dx,dy)=c � sq=0
0  � grid(dx,dy)<0 � sq+=1
:?  � (grid(dx,dy)<>c � grid(dx,dy)>-1) � sq=2 � dy=12 � dx=0
D#  � grid(dx,dy)=c � tx=dx:ty=dy
N0  � grid(dx,dy)<>c � sq<>2 � tx=dx+1:ty=dy-1
X  � sq=2 � tx=dx+1:ty=dy-1
b;  � (dy=12 � dx=0) � sq=1 � grid(dx,dy)<0 � tx=dx:ty=dy
l �
v  tx=x:ty=y
� �
�& � (ty-by)+1>3 � �dldl(c,tx,ty,bx)
� �
� :
� � �drawit
� �play("Complete",5000)
�5 �rect(10,50,820+40,927,4):�plot("stats",900,648)
� �plot("aresearch",895,60)
� redsq=0:ylwsq=0
� � x=0 � 11:� y=0 � 12
�: � grid(x,y)=red � �plot("redcir",23+(x*70),60+(y*70))
�@ � grid(x,y)=yellow � �plot("yellowcir",23+(x*70),60+(y*70))
�A � grid(x,y)=-red � �plot("red",23+(x*70),60+(y*70)):redsq+=1
�G � grid(x,y)=-yellow � �plot("yellow",23+(x*70),60+(y*70)):ylwsq+=1

9 � grid(x,y)=0 � �plot("greycir",23+(x*70),60+(y*70))

 � 3:�72,6);redsq

 � 15:�72,8);ylwsq

  Ȗ:Ȗ:Ȗ:Ȗ

* �:�:�play("lost",5000)

4 � 48,15

> �waitevent:�clear

H �

R :

\ � �info

f	 ȗ �

p �clear

z �plot("drainpipe",280,720)

� �plot("arcworld",0,0)

� �plot("aresearch",900,55)

� �plot("info",0,780)

�
 y=650

�M � x=0 � 1200 � 70:� x � 140 �plot("yellowcir",x,y) � �plot("redcir",x,y)

� �:y=265

�M � x=0 � 1200 � 70:� x � 140 �plot("yellowcir",x,y) � �plot("redcir",x,y)

� �

�7 � 12:�0,13);" ... see magasine for instructions"'

�" � 15:�" From the main menu:"'

�; � 25:�"   Click on the 'Collisions 3000' logo to play"

�1 � 18:�"   Click on the 'Acorn' icon to quit"

�8 � 19:�"   Click on the '??' icon to change options"
 �waitevent:�clear
	 ȗ �
 �
$ :
. � �doprint
8 � 28,19,20,76,17
B � 13 Ȝ 255
L �
MZ tt$="":�:tt$+=�(tprint%?ttp%):ttp%+=1:� tprint%?ttp%=10 � tprint%?ttp%=�("~"):ttp%+=1
N1 � tprint%?(ttp%-1)=�("~") � ttp%=0:tt$=�tt$)
V �tprint(tt$,2)
` � key=�:� 26
j �
t:
� � �ntprint(text$)
� � k=1 � �(text$)
� � �text$,k,1);:Ȗ:Ȗ
� �
 �

 :
 � �define
# � 28,19,20,76,17:�:� 13 Ȝ 255
(+ �ntprint("Do you want sound (Y/N)?"):�
2= a$=�:� �(�(a$) � &DF)="Y" � � "Audio On" � � "Audio Off"
<, �':�ntprint("1 - fast       80 - slow")
= �
F0 �':�ntprint("Enter a speed value (1-80): ")
P) � s:� � (s>0 � s<81) � �'"Invalid."'
Z � s>0 � s<81:speed=s:�:�
d �
n:
x � �play(sname$,pitch)
y; � sname$="Bing" � sname$="Collect" � voice=3 � voice=1
�* � "Channelvoice "+�(voice)+" "+sname$
�, � "Channelvoice "+�(voice+1)+" "+sname$
�. � voice,-15,pitch,1:� voice+1,-15,pitch,1
� �
�
00000000  0d 00 0a 1d 20 f4 20 3e  3c 43 6f 6c 6c 33 24 44  |.... . ><Coll3$D|
00000010  69 72 3e 2e 21 52 75 6e  49 6d 61 67 65 0d 00 0b  |ir>.!RunImage...|
00000020  06 20 f4 0d 00 0c 1a 20  f4 20 2a 2a 20 42 79 20  |. ..... . ** By |
00000030  52 69 63 68 61 72 64 20  53 68 61 72 70 0d 00 0d  |Richard Sharp...|
00000040  1e 20 f4 20 2a 2a 20 28  63 29 20 41 72 63 68 69  |. . ** (c) Archi|
00000050  6d 65 64 65 73 20 57 6f  72 6c 64 0d 00 0e 09 20  |medes World.... |
00000060  f4 20 2a 2a 0d 00 0f 06  20 f4 0d 00 14 14 20 ee  |. **.... ..... .|
00000070  20 85 20 f2 73 68 75 74  64 6f 77 6e 3a e0 0d 00  | . .shutdown:...|
00000080  1e 0b 20 eb 20 31 35 3a  87 0d 00 28 32 20 f1 20  |.. . 15:...(2 . |
00000090  22 50 6c 65 61 73 65 20  77 61 69 74 20 2e 2e 2e  |"Please wait ...|
000000a0  20 28 70 6c 61 79 69 6e  67 20 77 69 74 68 20 64  | (playing with d|
000000b0  69 73 63 20 64 72 69 76  65 29 22 0d 00 29 32 20  |isc drive)"..)2 |
000000c0  ff 20 22 49 63 6f 6e 53  70 72 69 74 65 73 20 3c  |. "IconSprites <|
000000d0  43 6f 6c 6c 33 24 44 69  72 3e 2e 47 72 61 70 68  |Coll3$Dir>.Graph|
000000e0  69 63 73 2e 21 50 6f 69  6e 74 65 72 22 0d 00 2a  |ics.!Pointer"..*|
000000f0  12 20 ff 20 22 50 6f 69  6e 74 65 72 20 31 22 0d  |. . "Pointer 1".|
00000100  00 32 31 20 f4 20 4f 53  43 4c 49 20 22 52 75 6e  |.21 . OSCLI "Run|
00000110  20 3c 43 6f 6c 6c 33 24  44 69 72 3e 2e 47 72 61  | <Coll3$Dir>.Gra|
00000120  70 68 69 63 73 2e 21 50  61 6c 65 74 74 65 31 22  |phics.!Palette1"|
00000130  0d 00 3c 3e 20 de 20 67  72 69 64 28 31 31 2c 31  |..<> . grid(11,1|
00000140  32 29 2c 74 70 72 69 6e  74 25 20 31 30 32 34 2a  |2),tprint% 1024*|
00000150  35 3a 74 74 70 25 3d 30  3a 76 6f 69 63 65 3d 31  |5:ttp%=0:voice=1|
00000160  3a c8 a0 20 34 3a 73 70  65 65 64 3d 35 30 0d 00  |:.. 4:speed=50..|
00000170  46 0c 20 f2 6c 6f 61 64  73 70 0d 00 47 2e 20 ff  |F. .loadsp..G. .|
00000180  20 22 4c 6f 61 64 20 3c  43 6f 6c 6c 33 24 44 69  | "Load <Coll3$Di|
00000190  72 3e 2e 54 70 72 69 6e  74 65 72 20 22 2b c3 20  |r>.Tprinter "+. |
000001a0  7e 74 70 72 69 6e 74 25  0d 00 50 1f 20 66 69 6e  |~tprint%..P. fin|
000001b0  69 73 68 3d a3 3a db 3a  f2 6d 65 6e 75 3a f2 67  |ish=.:.:.menu:.g|
000001c0  65 74 69 6e 70 75 74 0d  00 5a 06 20 e0 0d 00 64  |etinput..Z. ...d|
000001d0  06 20 3a 0d 00 6e 18 20  dd 20 f2 70 6c 6f 74 28  |. :..n. . .plot(|
000001e0  73 6e 61 6d 65 24 2c 78  2c 79 29 0d 00 78 1d 20  |sname$,x,y)..x. |
000001f0  c8 99 20 26 32 45 2c 32  39 30 2c 73 25 2c 73 6e  |.. &2E,290,s%,sn|
00000200  61 6d 65 24 2c 78 2c 79  0d 00 82 06 20 e1 0d 00  |ame$,x,y.... ...|
00000210  8c 06 20 3a 0d 00 96 0c  20 dd 20 f2 6d 65 6e 75  |.. :.... . .menu|
00000220  0d 00 a0 1d 20 ef 20 32  36 3a f4 20 4f 53 43 4c  |.... . 26:. OSCL|
00000230  49 20 22 50 6c 61 79 50  6f 73 20 30 22 0d 00 a1  |I "PlayPos 0"...|
00000240  19 20 f2 70 6c 61 79 28  22 46 75 74 75 72 65 22  |. .play("Future"|
00000250  2c 35 30 30 30 29 0d 00  aa 1f 20 f2 70 6c 6f 74  |,5000).... .plot|
00000260  28 22 64 72 61 69 6e 70  69 70 65 22 2c 33 30 30  |("drainpipe",300|
00000270  2c 36 30 30 29 0d 00 b4  19 20 f2 70 6c 6f 74 28  |,600).... .plot(|
00000280  22 69 6e 66 6f 22 2c 31  30 2c 37 35 30 29 0d 00  |"info",10,750)..|
00000290  be 1b 20 f2 70 6c 6f 74  28 22 64 65 66 69 6e 65  |.. .plot("define|
000002a0  22 2c 31 30 2c 35 35 30  29 0d 00 c8 19 20 f2 70  |",10,550).... .p|
000002b0  6c 6f 74 28 22 65 78 69  74 22 2c 31 30 2c 33 35  |lot("exit",10,35|
000002c0  30 29 0d 00 d2 1b 20 f2  70 6c 6f 74 28 22 61 72  |0).... .plot("ar|
000002d0  63 77 6f 72 6c 64 22 2c  30 2c 31 30 29 0d 00 dc  |cworld",0,10)...|
000002e0  1b 20 f2 70 6c 6f 74 28  22 63 72 65 64 69 74 22  |. .plot("credit"|
000002f0  2c 37 35 30 2c 34 37 29  0d 00 e6 1c 20 f2 70 6c  |,750,47).... .pl|
00000300  6f 74 28 22 62 65 79 6f  6e 64 22 2c 33 30 30 2c  |ot("beyond",300,|
00000310  35 30 30 29 0d 00 f0 2d  20 c8 97 20 ee 3a c8 97  |500)...- .. .:..|
00000320  20 fb 20 32 2c 32 35 30  2c 32 35 30 2c 30 3a c8  | . 2,250,250,0:.|
00000330  97 20 fb 20 33 2c 32 35  30 2c 31 30 30 2c 31 30  |. . 3,250,100,10|
00000340  30 0d 00 fa 06 20 e1 0d  01 04 06 20 3a 0d 01 0e  |0.... ..... :...|
00000350  10 20 dd 20 f2 67 65 74  69 6e 70 75 74 0d 01 18  |. . .getinput...|
00000360  06 20 f5 0d 01 22 0d 20  f2 64 6f 70 72 69 6e 74  |. ...". .doprint|
00000370  0d 01 2c 30 20 e7 20 a4  62 6f 78 28 32 39 37 2c  |..,0 . .box(297,|
00000380  31 32 39 37 2c 34 39 32  2c 38 38 37 29 20 8c 20  |1297,492,887) . |
00000390  f2 67 61 6d 65 73 74 61  72 74 3a f2 6d 65 6e 75  |.gamestart:.menu|
000003a0  0d 01 36 29 20 e7 20 a4  62 6f 78 28 31 30 2c 32  |..6) . .box(10,2|
000003b0  31 30 2c 37 35 30 2c 39  35 30 29 20 8c 20 f2 69  |10,750,950) . .i|
000003c0  6e 66 6f 3a f2 6d 65 6e  75 0d 01 40 25 20 e7 20  |nfo:.menu..@% . |
000003d0  a4 62 6f 78 28 31 30 2c  32 31 30 2c 35 35 30 2c  |.box(10,210,550,|
000003e0  37 34 39 29 20 8c 20 f2  64 65 66 69 6e 65 0d 01  |749) . .define..|
000003f0  4a 26 20 e7 20 a4 62 6f  78 28 31 30 2c 32 31 30  |J& . .box(10,210|
00000400  2c 33 35 30 2c 35 34 39  29 20 8c 20 66 69 6e 69  |,350,549) . fini|
00000410  73 68 3d b9 0d 01 54 0f  20 fd 20 66 69 6e 69 73  |sh=...T. . finis|
00000420  68 3d b9 0d 01 55 0e 20  f2 73 68 75 74 64 6f 77  |h=...U. .shutdow|
00000430  6e 0d 01 56 06 20 e1 0d  01 57 06 20 3a 0d 01 58  |n..V. ...W. :..X|
00000440  15 20 dd 20 f2 73 68 75  74 64 6f 77 6e 3a ef 20  |. . .shutdown:. |
00000450  32 36 0d 01 59 54 20 ea  20 85 3a ee 20 85 20 ea  |26..YT . .:. . .|
00000460  20 f7 20 85 3a f1 20 22  45 72 72 6f 72 20 69 6e  | . .:. "Error in|
00000470  20 73 68 75 74 64 6f 77  6e 20 70 72 6f 63 65 64  | shutdown proced|
00000480  75 72 65 3a 20 43 6f 75  6c 64 20 6e 6f 74 20 73  |ure: Could not s|
00000490  68 75 74 20 64 6f 77 6e  20 70 72 6f 70 65 72 6c  |hut down properl|
000004a0  79 22 3a e0 3a e1 0d 01  5d 1b 20 f2 70 6c 61 79  |y":.:...]. .play|
000004b0  28 22 47 61 6d 65 4f 76  65 72 22 2c 33 35 30 30  |("GameOver",3500|
000004c0  29 0d 01 5e 10 20 c8 97  20 87 3a f2 63 6c 65 61  |)..^. .. .:.clea|
000004d0  72 0d 01 68 33 20 ff 20  22 49 63 6f 6e 53 70 72  |r..h3 . "IconSpr|
000004e0  69 74 65 73 20 3c 43 6f  6c 6c 33 24 44 69 72 3e  |ites <Coll3$Dir>|
000004f0  2e 47 72 61 70 68 69 63  73 2e 21 50 6f 69 6e 74  |.Graphics.!Point|
00000500  65 72 31 22 0d 01 72 3e  20 ff 20 22 50 6f 69 6e  |er1"..r> . "Poin|
00000510  74 65 72 20 31 22 3a f4  20 4f 53 43 4c 49 20 22  |ter 1":. OSCLI "|
00000520  52 75 6e 20 3c 43 6f 6c  6c 33 24 44 69 72 3e 2e  |Run <Coll3$Dir>.|
00000530  47 72 61 70 68 69 63 73  2e 21 50 61 6c 65 74 74  |Graphics.!Palett|
00000540  65 22 0d 01 7c 72 20 fb  20 36 33 3a f1 27 22 27  |e"..|r . 63:.'"'|
00000550  4e 6f 74 68 69 6e 67 20  65 76 65 72 20 73 68 75  |Nothing ever shu|
00000560  74 73 20 64 6f 77 6e 20  62 79 20 69 74 73 65 6c  |ts down by itsel|
00000570  66 22 27 22 20 45 76 65  72 79 20 70 72 6f 67 72  |f"'" Every progr|
00000580  61 6d 20 6e 65 65 64 73  20 61 20 6c 69 74 74 6c  |am needs a littl|
00000590  65 20 62 69 74 20 6f 66  20 68 65 6c 70 20 20 20  |e bit of help   |
000005a0  20 20 20 20 20 2d 20 20  28 41 6e 61 72 63 68 79  |     -  (Anarchy|
000005b0  29 27 22 27 0d 01 7d 39  20 ff 20 22 52 6d 4b 69  |)'"'..}9 . "RmKi|
000005c0  6c 6c 20 43 6f 6c 6c 65  63 74 22 3a ff 20 22 52  |ll Collect":. "R|
000005d0  6d 4b 69 6c 6c 20 44 72  6f 70 22 3a ff 20 22 52  |mKill Drop":. "R|
000005e0  6d 4b 69 6c 6c 20 46 75  74 75 72 65 22 0d 01 7e  |mKill Future"..~|
000005f0  40 20 ff 20 22 52 6d 4b  69 6c 6c 20 47 61 6d 65  |@ . "RmKill Game|
00000600  4f 76 65 72 22 3a ff 20  22 52 6d 4b 69 6c 6c 20  |Over":. "RmKill |
00000610  47 65 74 52 65 61 64 79  22 3a ff 20 22 52 6d 4b  |GetReady":. "RmK|
00000620  69 6c 6c 20 43 6f 6d 70  6c 65 74 65 22 0d 01 7f  |ill Complete"...|
00000630  24 20 ff 20 22 52 6d 6b  69 6c 6c 20 6c 6f 73 74  |$ . "Rmkill lost|
00000640  22 3a ff 20 22 52 6d 4b  69 6c 6c 20 42 69 6e 67  |":. "RmKill Bing|
00000650  22 0d 01 86 06 20 e1 0d  01 90 06 20 3a 0d 01 9a  |".... ..... :...|
00000660  16 20 dd 20 a4 62 6f 78  28 78 2c 78 31 2c 79 2c  |. . .box(x,x1,y,|
00000670  79 31 29 0d 01 a4 23 20  e7 20 58 3e 78 20 80 20  |y1)...# . X>x . |
00000680  58 3c 78 31 20 80 20 59  3e 79 20 80 20 59 3c 79  |X<x1 . Y>y . Y<y|
00000690  31 20 8c 20 3d b9 0d 01  ae 07 20 3d a3 0d 01 b8  |1 . =..... =....|
000006a0  06 20 3a 0d 01 c2 0d 20  dd 20 f2 63 6c 65 61 72  |. :.... . .clear|
000006b0  0d 01 cc 0f 20 e6 20 30  2c 30 20 c8 9c 20 30 0d  |.... . 0,0 .. 0.|
000006c0  01 d6 32 20 e3 20 59 3d  30 20 b8 20 31 30 32 33  |..2 . Y=0 . 1023|
000006d0  20 88 20 38 3a 86 20 30  2c 59 2c 31 32 37 39 2c  | . 8:. 0,Y,1279,|
000006e0  59 3a e7 20 59 20 83 20  32 34 3d 30 20 8c 20 c8  |Y:. Y . 24=0 . .|
000006f0  96 0d 01 e0 06 20 ed 0d  01 ea 32 20 e3 20 59 3d  |..... ....2 . Y=|
00000700  31 30 32 30 20 b8 20 30  20 88 20 2d 38 3a 86 20  |1020 . 0 . -8:. |
00000710  30 2c 59 2c 31 32 37 39  2c 59 3a e7 20 59 20 83  |0,Y,1279,Y:. Y .|
00000720  20 36 3d 30 20 8c 20 c8  96 0d 01 f4 08 20 ed 3a  | 6=0 . ...... .:|
00000730  db 0d 01 fe 06 20 e1 0d  02 08 06 20 3a 0d 02 12  |..... ..... :...|
00000740  0e 20 dd 20 f2 6c 6f 61  64 73 70 0d 02 1c 11 20  |. . .loadsp.... |
00000750  ea 20 66 69 6c 65 25 2c  6c 65 6e 25 0d 02 26 38  |. file%,len%..&8|
00000760  20 66 69 6c 65 25 3d 8e  28 22 3c 43 6f 6c 6c 33  | file%=.("<Coll3|
00000770  24 44 69 72 3e 2e 47 72  61 70 68 69 78 22 29 3a  |$Dir>.Graphix"):|
00000780  6c 65 6e 25 3d a2 23 66  69 6c 65 25 3a d9 23 66  |len%=.#file%:.#f|
00000790  69 6c 65 25 0d 02 30 1b  20 de 20 73 25 20 6c 65  |ile%..0. . s% le|
000007a0  6e 25 2b 34 3a 21 73 25  3d 6c 65 6e 25 2b 34 0d  |n%+4:!s%=len%+4.|
000007b0  02 3a 2b 20 c8 99 20 26  32 45 2c 31 30 2b 32 35  |.:+ .. &2E,10+25|
000007c0  36 2c 73 25 2c 22 3c 43  6f 6c 6c 33 24 44 69 72  |6,s%,"<Coll3$Dir|
000007d0  3e 2e 47 72 61 70 68 69  78 22 0d 02 44 06 20 e1  |>.Graphix"..D. .|
000007e0  0d 02 4e 06 20 3a 0d 02  58 1b 20 dd 20 f2 67 61  |..N. :..X. . .ga|
000007f0  6d 65 73 74 61 72 74 3a  ff 20 22 46 58 20 31 35  |mestart:. "FX 15|
00000800  22 0d 02 62 20 20 c8 97  20 87 3a f2 70 6c 61 79  |"..b  .. .:.play|
00000810  28 22 47 65 74 52 65 61  64 79 22 2c 34 30 30 30  |("GetReady",4000|
00000820  29 0d 02 6c 19 20 f4 20  4f 53 43 4c 49 20 22 50  |)..l. . OSCLI "P|
00000830  6c 61 79 70 6f 73 20 32  34 22 0d 02 6d 0f 20 73  |laypos 24"..m. s|
00000840  3d 91 3a f2 63 6c 65 61  72 0d 02 76 25 20 f5 3a  |=.:.clear..v% .:|
00000850  fd 20 91 3e 73 2b 33 33  38 3a f4 20 4f 53 43 4c  |. .>s+338:. OSCL|
00000860  49 20 22 50 6c 61 79 70  6f 73 20 32 36 22 0d 02  |I "Playpos 26"..|
00000870  80 29 20 f2 67 61 6d 65  3a 73 3d 91 3a f5 3a fd  |.) .game:s=.:.:.|
00000880  20 91 3e 73 2b 31 30 30  3a f2 63 6c 65 61 72 3a  | .>s+100:.clear:|
00000890  f2 64 72 61 77 69 74 0d  02 8a 06 20 e1 0d 02 94  |.drawit.... ....|
000008a0  06 20 3a 0d 02 9e 1a 20  dd 20 f2 74 70 72 69 6e  |. :.... . .tprin|
000008b0  74 28 74 65 78 74 24 2c  77 61 69 74 29 0d 02 a8  |t(text$,wait)...|
000008c0  0a 20 ea 20 6c 2c 63 0d  02 b2 0a 20 6b 65 79 3d  |. . l,c.... key=|
000008d0  a3 0d 02 bc 29 20 e3 20  6c 3d 31 20 b8 20 a9 28  |....) . l=1 . .(|
000008e0  74 65 78 74 24 29 3a e7  20 c1 74 65 78 74 24 2c  |text$):. .text$,|
000008f0  6c 2c 31 29 3d 22 5c 22  20 8c 0d 02 bd 27 20 63  |l,1)="\" ....' c|
00000900  3d bb 28 c1 74 65 78 74  24 2c 6c 2b 31 2c 32 29  |=.(.text$,l+1,2)|
00000910  29 3a fb 20 63 20 c8 9c  20 32 35 35 3a 6c 2b 3d  |):. c .. 255:l+=|
00000920  32 0d 02 be 07 20 20 cc  0d 02 bf 13 20 f1 20 c1  |2....  ..... . .|
00000930  74 65 78 74 24 2c 6c 2c  31 29 3b 0d 02 c1 06 20  |text$,l,1);.... |
00000940  cd 0d 02 c6 25 20 e7 20  6c 20 83 20 32 3d 31 20  |....% . l . 2=1 |
00000950  8c 20 f1 20 22 2a 22 3b  3a 64 65 6c 3d b9 20 8b  |. . "*";:del=. .|
00000960  20 64 65 6c 3d a3 0d 02  d0 1b 20 c8 96 3a e7 20  | del=..... ..:. |
00000970  64 65 6c 3d b9 20 8c 20  f1 20 bd 28 31 32 37 29  |del=. . . .(127)|
00000980  3b 0d 02 da 0d 20 c8 97  20 58 2c 59 2c 42 0d 02  |;.... .. X,Y,B..|
00000990  e4 1f 20 e7 20 42 3d 34  20 8c 20 6b 65 79 3d b9  |.. . B=4 . key=.|
000009a0  3a 6c 3d a9 28 74 65 78  74 24 29 2b 31 0d 02 ee  |:l=.(text$)+1...|
000009b0  06 20 ed 0d 02 f8 1b 20  f1 3a e7 20 77 61 69 74  |. ..... .:. wait|
000009c0  3c 3e 30 20 80 20 6b 65  79 3c 3e b9 20 8c 0d 03  |<>0 . key<>. ...|
000009d0  02 31 20 e3 20 6c 3d 31  20 b8 20 77 61 69 74 3a  |.1 . l=1 . wait:|
000009e0  f1 20 22 2a 22 3b 3a 73  3d 91 3a f5 3a fd 20 91  |. "*";:s=.:.:. .|
000009f0  3e 73 2b 32 35 3a f1 20  bd 28 31 32 37 29 3b 0d  |>s+25:. .(127);.|
00000a00  03 0c 13 20 73 3d 91 3a  f5 3a fd 20 91 3e 73 2b  |... s=.:.:. .>s+|
00000a10  32 35 0d 03 16 06 20 ed  0d 03 20 06 20 cd 0d 03  |25.... ... . ...|
00000a20  2a 06 20 e1 0d 03 34 06  20 3a 0d 03 3e 19 20 dd  |*. ...4. :..>. .|
00000a30  20 f2 72 65 63 74 28 78  2c 79 2c 78 31 2c 79 31  | .rect(x,y,x1,y1|
00000a40  2c 77 29 0d 03 48 08 20  ea 20 74 0d 03 52 2e 20  |,w)..H. . t..R. |
00000a50  e3 20 74 3d 30 20 b8 20  77 3a e7 20 74 3d 77 20  |. t=0 . w:. t=w |
00000a60  8c 20 e6 20 30 2c 30 20  c8 9c 20 30 20 8b 20 e6  |. . 0,0 .. 0 . .|
00000a70  20 74 20 c8 9c 20 32 35  35 0d 03 5c 2b 20 c8 93  | t .. 255..\+ ..|
00000a80  20 78 2b 28 74 2a 32 29  2c 79 2b 28 74 2a 32 29  | x+(t*2),y+(t*2)|
00000a90  2c 78 31 2d 28 74 2a 34  29 2c 79 31 2d 28 74 2a  |,x1-(t*4),y1-(t*|
00000aa0  34 29 3a ed 0d 03 66 06  20 e1 0d 03 70 06 20 3a  |4):...f. ...p. :|
00000ab0  0d 03 7a 11 20 dd 20 f2  77 61 69 74 65 76 65 6e  |..z. . .waiteven|
00000ac0  74 0d 03 84 0e 20 ea 20  58 2c 59 2c 42 2c 62 0d  |t.... . X,Y,B,b.|
00000ad0  03 8e 25 20 f5 3a c8 97  20 58 2c 59 2c 42 3a 62  |..% .:.. X,Y,B:b|
00000ae0  3d a6 28 30 29 3a fd 20  62 3c 3e 2d 31 20 84 20  |=.(0):. b<>-1 . |
00000af0  42 3c 3e 30 0d 03 98 06  20 e1 0d 03 a2 06 20 3a  |B<>0.... ..... :|
00000b00  0d 03 ac 0c 20 dd 20 f2  67 61 6d 65 0d 03 b6 19  |.... . .game....|
00000b10  20 f4 20 4f 53 43 4c 49  20 22 50 6c 61 79 70 6f  | . OSCLI "Playpo|
00000b20  73 20 31 35 22 0d 03 c0  1f 20 f2 70 6c 6f 74 28  |s 15".... .plot(|
00000b30  22 61 72 65 73 65 61 72  63 68 22 2c 38 39 35 2c  |"aresearch",895,|
00000b40  37 38 30 29 0d 03 ca 18  20 f2 70 6c 6f 74 28 22  |780).... .plot("|
00000b50  61 63 6b 22 2c 38 38 30  2c 34 36 29 0d 03 d4 1e  |ack",880,46)....|
00000b60  20 f2 72 65 63 74 28 31  30 2c 35 30 2c 38 32 30  | .rect(10,50,820|
00000b70  2b 34 30 2c 39 32 37 2c  34 29 0d 03 de 1d 20 e3  |+40,927,4).... .|
00000b80  20 78 3d 32 33 20 b8 20  32 33 2b 28 31 31 2a 37  | x=23 . 23+(11*7|
00000b90  30 29 20 88 20 37 30 0d  03 e8 1d 20 e3 20 79 3d  |0) . 70.... . y=|
00000ba0  36 30 20 b8 20 36 30 2b  28 31 32 2a 37 30 29 20  |60 . 60+(12*70) |
00000bb0  88 20 37 30 0d 03 f2 19  20 f2 70 6c 6f 74 28 22  |. 70.... .plot("|
00000bc0  67 72 65 79 63 69 72 22  2c 78 2c 79 29 0d 03 fc  |greycir",x,y)...|
00000bd0  08 20 ed 3a ed 0d 04 06  35 20 72 65 64 79 70 6f  |. .:....5 redypo|
00000be0  73 3d 31 33 3a 79 6c 77  79 70 6f 73 3d 32 31 3a  |s=13:ylwypos=21:|
00000bf0  72 65 64 78 70 6f 73 3d  30 3a 79 6c 77 78 70 6f  |redxpos=0:ylwxpo|
00000c00  73 3d 31 31 3a 61 6c 74  3d 31 0d 04 10 37 20 6f  |s=11:alt=1...7 o|
00000c10  6c 64 72 65 64 79 70 6f  73 3d 2d 31 3a 6f 6c 64  |ldredypos=-1:old|
00000c20  79 6c 77 70 6f 73 3d 2d  31 3a 65 78 69 74 3d a3  |ylwpos=-1:exit=.|
00000c30  3a 72 65 64 6c 3d 30 3a  79 65 6c 6c 6f 77 6c 3d  |:redl=0:yellowl=|
00000c40  30 0d 04 1a 39 20 72 65  64 3d 31 3a 79 65 6c 6c  |0...9 red=1:yell|
00000c50  6f 77 3d 32 3a e3 20 78  3d 30 20 b8 20 31 31 3a  |ow=2:. x=0 . 11:|
00000c60  e3 20 79 3d 30 20 b8 20  31 32 3a 67 72 69 64 28  |. y=0 . 12:grid(|
00000c70  78 2c 79 29 3d 30 3a ed  3a ed 0d 04 24 26 20 f4  |x,y)=0:.:...$& .|
00000c80  20 46 4f 52 20 78 3d 30  20 54 4f 20 31 31 3a 67  | FOR x=0 TO 11:g|
00000c90  72 69 64 28 78 2c 35 29  3d 31 33 3a 4e 45 58 54  |rid(x,5)=13:NEXT|
00000ca0  0d 04 38 06 20 f5 0d 04  42 18 20 73 3d 91 3a 72  |..8. ...B. s=.:r|
00000cb0  6b 65 79 3d a3 3a 79 6b  65 79 3d a3 3a f5 0d 04  |key=.:ykey=.:...|
00000cc0  4c 1c 20 e7 20 ac 20 72  6b 65 79 20 80 20 72 65  |L. . . rkey . re|
00000cd0  64 79 70 6f 73 3c 31 33  20 8c 0d 04 56 0e 20 20  |dypos<13 ...V.  |
00000ce0  e7 20 a6 2d 39 38 20 8c  0d 04 60 34 20 20 20 72  |. .-98 ...`4   r|
00000cf0  72 65 64 78 70 6f 73 3d  72 65 64 78 70 6f 73 2d  |redxpos=redxpos-|
00000d00  31 3a e7 20 72 72 65 64  78 70 6f 73 3c 30 20 8c  |1:. rredxpos<0 .|
00000d10  20 72 72 65 64 78 70 6f  73 3d 31 31 0d 04 6a 23  | rredxpos=11..j#|
00000d20  20 20 20 e7 20 67 72 69  64 28 72 72 65 64 78 70  |   . grid(rredxp|
00000d30  6f 73 2c 72 65 64 79 70  6f 73 29 3d 30 20 8c 0d  |os,redypos)=0 ..|
00000d40  04 74 48 20 20 20 f2 70  6c 6f 74 28 22 67 72 65  |.tH   .plot("gre|
00000d50  79 63 69 72 22 2c 32 33  2b 28 72 65 64 78 70 6f  |ycir",23+(redxpo|
00000d60  73 2a 37 30 29 2c 36 30  2b 28 72 65 64 79 70 6f  |s*70),60+(redypo|
00000d70  73 2a 37 30 29 29 3a 72  65 64 78 70 6f 73 3d 72  |s*70)):redxpos=r|
00000d80  72 65 64 78 70 6f 73 0d  04 7e 3d 20 20 20 f2 70  |redxpos..~=   .p|
00000d90  6c 6f 74 28 22 72 65 64  63 69 72 22 2c 32 33 2b  |lot("redcir",23+|
00000da0  28 72 65 64 78 70 6f 73  2a 37 30 29 2c 36 30 2b  |(redxpos*70),60+|
00000db0  28 72 65 64 79 70 6f 73  2a 37 30 29 29 3a 72 6b  |(redypos*70)):rk|
00000dc0  65 79 3d b9 0d 04 88 07  20 20 cd 0d 04 92 07 20  |ey=.....  ..... |
00000dd0  20 cd 0d 04 9c 0e 20 20  e7 20 a6 2d 36 37 20 8c  | .....  . .-67 .|
00000de0  0d 04 a6 33 20 20 72 72  65 64 78 70 6f 73 3d 72  |...3  rredxpos=r|
00000df0  65 64 78 70 6f 73 2b 31  3a e7 20 72 72 65 64 78  |edxpos+1:. rredx|
00000e00  70 6f 73 3e 31 31 20 8c  20 72 72 65 64 78 70 6f  |pos>11 . rredxpo|
00000e10  73 3d 30 0d 04 b0 22 20  20 e7 20 67 72 69 64 28  |s=0..."  . grid(|
00000e20  72 72 65 64 78 70 6f 73  2c 72 65 64 79 70 6f 73  |rredxpos,redypos|
00000e30  29 3d 30 20 8c 0d 04 ba  48 20 20 20 f2 70 6c 6f  |)=0 ....H   .plo|
00000e40  74 28 22 67 72 65 79 63  69 72 22 2c 32 33 2b 28  |t("greycir",23+(|
00000e50  72 65 64 78 70 6f 73 2a  37 30 29 2c 36 30 2b 28  |redxpos*70),60+(|
00000e60  72 65 64 79 70 6f 73 2a  37 30 29 29 3a 72 65 64  |redypos*70)):red|
00000e70  78 70 6f 73 3d 72 72 65  64 78 70 6f 73 0d 04 c4  |xpos=rredxpos...|
00000e80  3d 20 20 20 f2 70 6c 6f  74 28 22 72 65 64 63 69  |=   .plot("redci|
00000e90  72 22 2c 32 33 2b 28 72  65 64 78 70 6f 73 2a 37  |r",23+(redxpos*7|
00000ea0  30 29 2c 36 30 2b 28 72  65 64 79 70 6f 73 2a 37  |0),60+(redypos*7|
00000eb0  30 29 29 3a 72 6b 65 79  3d b9 0d 04 ce 07 20 20  |0)):rkey=.....  |
00000ec0  cd 0d 04 d8 07 20 20 cd  0d 04 e2 06 20 cd 0d 04  |.....  ..... ...|
00000ed0  ec 1c 20 e7 20 ac 20 79  6b 65 79 20 80 20 79 6c  |.. . . ykey . yl|
00000ee0  77 79 70 6f 73 3c 31 33  20 8c 0d 04 f6 0e 20 20  |wypos<13 .....  |
00000ef0  e7 20 a6 2d 32 36 20 8c  0d 05 00 33 20 20 79 79  |. .-26 ....3  yy|
00000f00  6c 77 78 70 6f 73 3d 79  6c 77 78 70 6f 73 2d 31  |lwxpos=ylwxpos-1|
00000f10  3a e7 20 79 79 6c 77 78  70 6f 73 3c 30 20 8c 20  |:. yylwxpos<0 . |
00000f20  79 79 6c 77 78 70 6f 73  3d 31 31 0d 05 0a 23 20  |yylwxpos=11...# |
00000f30  20 20 e7 20 67 72 69 64  28 79 79 6c 77 78 70 6f  |  . grid(yylwxpo|
00000f40  73 2c 79 6c 77 79 70 6f  73 29 3d 30 20 8c 0d 05  |s,ylwypos)=0 ...|
00000f50  14 48 20 20 20 f2 70 6c  6f 74 28 22 67 72 65 79  |.H   .plot("grey|
00000f60  63 69 72 22 2c 32 33 2b  28 79 6c 77 78 70 6f 73  |cir",23+(ylwxpos|
00000f70  2a 37 30 29 2c 36 30 2b  28 79 6c 77 79 70 6f 73  |*70),60+(ylwypos|
00000f80  2a 37 30 29 29 3a 79 6c  77 78 70 6f 73 3d 79 79  |*70)):ylwxpos=yy|
00000f90  6c 77 78 70 6f 73 0d 05  1e 40 20 20 20 f2 70 6c  |lwxpos...@   .pl|
00000fa0  6f 74 28 22 79 65 6c 6c  6f 77 63 69 72 22 2c 32  |ot("yellowcir",2|
00000fb0  33 2b 28 79 6c 77 78 70  6f 73 2a 37 30 29 2c 36  |3+(ylwxpos*70),6|
00000fc0  30 2b 28 79 6c 77 79 70  6f 73 2a 37 30 29 29 3a  |0+(ylwypos*70)):|
00000fd0  79 6b 65 79 3d b9 0d 05  28 07 20 20 cd 0d 05 32  |ykey=...(.  ...2|
00000fe0  07 20 20 cd 0d 05 3c 0f  20 20 e7 20 a6 2d 31 32  |.  ...<.  . .-12|
00000ff0  32 20 8c 0d 05 46 33 20  20 79 79 6c 77 78 70 6f  |2 ...F3  yylwxpo|
00001000  73 3d 79 6c 77 78 70 6f  73 2b 31 3a e7 20 79 79  |s=ylwxpos+1:. yy|
00001010  6c 77 78 70 6f 73 3e 31  31 20 8c 20 79 79 6c 77  |lwxpos>11 . yylw|
00001020  78 70 6f 73 3d 30 0d 05  50 23 20 20 20 e7 20 67  |xpos=0..P#   . g|
00001030  72 69 64 28 79 79 6c 77  78 70 6f 73 2c 79 6c 77  |rid(yylwxpos,ylw|
00001040  79 70 6f 73 29 3d 30 20  8c 0d 05 5a 48 20 20 20  |ypos)=0 ...ZH   |
00001050  f2 70 6c 6f 74 28 22 67  72 65 79 63 69 72 22 2c  |.plot("greycir",|
00001060  32 33 2b 28 79 6c 77 78  70 6f 73 2a 37 30 29 2c  |23+(ylwxpos*70),|
00001070  36 30 2b 28 79 6c 77 79  70 6f 73 2a 37 30 29 29  |60+(ylwypos*70))|
00001080  3a 79 6c 77 78 70 6f 73  3d 79 79 6c 77 78 70 6f  |:ylwxpos=yylwxpo|
00001090  73 0d 05 64 40 20 20 20  f2 70 6c 6f 74 28 22 79  |s..d@   .plot("y|
000010a0  65 6c 6c 6f 77 63 69 72  22 2c 32 33 2b 28 79 6c  |ellowcir",23+(yl|
000010b0  77 78 70 6f 73 2a 37 30  29 2c 36 30 2b 28 79 6c  |wxpos*70),60+(yl|
000010c0  77 79 70 6f 73 2a 37 30  29 29 3a 79 6b 65 79 3d  |wypos*70)):ykey=|
000010d0  b9 0d 05 6e 07 20 20 cd  0d 05 78 07 20 20 cd 0d  |...n.  ...x.  ..|
000010e0  05 82 06 20 cd 0d 05 8c  1f 20 e7 20 ac 20 a6 2d  |... ..... . . .-|
000010f0  39 38 20 80 20 ac 20 a6  2d 36 37 20 8c 20 72 6b  |98 . . .-67 . rk|
00001100  65 79 3d a3 0d 05 96 20  20 e7 20 ac 20 a6 2d 32  |ey=....  . . .-2|
00001110  36 20 80 20 ac 20 a6 2d  31 32 32 20 8c 20 79 6b  |6 . . .-122 . yk|
00001120  65 79 3d a3 0d 05 a0 10  20 fd 20 91 3e 73 2b 73  |ey=..... . .>s+s|
00001130  70 65 65 64 0d 05 aa 13  20 e7 20 72 65 64 79 70  |peed.... . redyp|
00001140  6f 73 3c 31 33 20 8c 0d  05 b4 0b 20 65 78 65 63  |os<13 ..... exec|
00001150  3d a3 0d 05 be 19 20 e7  20 72 65 64 79 70 6f 73  |=..... . redypos|
00001160  3d 30 20 8c 20 65 78 65  63 3d b9 0d 05 c8 38 20  |=0 . exec=....8 |
00001170  e7 20 72 65 64 79 70 6f  73 3e 30 20 8c 20 e7 20  |. redypos>0 . . |
00001180  67 72 69 64 28 72 65 64  78 70 6f 73 2c 72 65 64  |grid(redxpos,red|
00001190  79 70 6f 73 2d 31 29 3c  3e 30 20 8c 20 65 78 65  |ypos-1)<>0 . exe|
000011a0  63 3d b9 0d 05 d2 0d 20  e7 20 65 78 65 63 20 8c  |c=..... . exec .|
000011b0  0d 05 d3 1a 20 f2 70 6c  61 79 28 22 43 6f 6c 6c  |.... .play("Coll|
000011c0  65 63 74 22 2c 35 30 30  30 29 0d 05 dc 4a 20 e7  |ect",5000)...J .|
000011d0  20 6f 6c 64 72 65 64 79  70 6f 73 3c 31 33 20 8c  | oldredypos<13 .|
000011e0  20 f2 70 6c 6f 74 28 22  67 72 65 79 63 69 72 22  | .plot("greycir"|
000011f0  2c 32 33 2b 28 72 65 64  78 70 6f 73 2a 37 30 29  |,23+(redxpos*70)|
00001200  2c 36 30 2b 28 6f 6c 64  72 65 64 79 70 6f 73 2a  |,60+(oldredypos*|
00001210  37 30 29 29 0d 05 e6 34  20 f2 70 6c 6f 74 28 22  |70))...4 .plot("|
00001220  72 65 64 63 69 72 22 2c  32 33 2b 28 72 65 64 78  |redcir",23+(redx|
00001230  70 6f 73 2a 37 30 29 2c  36 30 2b 28 72 65 64 79  |pos*70),60+(redy|
00001240  70 6f 73 2a 37 30 29 29  0d 05 f0 3f 20 67 72 69  |pos*70))...? gri|
00001250  64 28 72 65 64 78 70 6f  73 2c 72 65 64 79 70 6f  |d(redxpos,redypo|
00001260  73 29 3d 72 65 64 3a f2  63 68 65 63 6b 6c 69 6e  |s)=red:.checklin|
00001270  65 73 28 72 65 64 2c 72  65 64 78 70 6f 73 2c 72  |es(red,redxpos,r|
00001280  65 64 79 70 6f 73 29 0d  05 fa 41 20 20 72 65 64  |edypos)...A  red|
00001290  78 70 6f 73 3d b3 28 31  32 29 2d 31 3a 72 65 64  |xpos=.(12)-1:red|
000012a0  79 70 6f 73 3d 79 6c 77  79 70 6f 73 2b 33 3a e7  |ypos=ylwypos+3:.|
000012b0  20 72 65 64 79 70 6f 73  3c 31 33 20 8c 20 72 65  | redypos<13 . re|
000012c0  64 79 70 6f 73 3d 31 33  0d 06 04 06 20 cd 0d 06  |dypos=13.... ...|
000012d0  0e 06 20 cd 0d 06 18 22  20 6f 6c 64 72 65 64 79  |.. ...." oldredy|
000012e0  70 6f 73 3d 72 65 64 79  70 6f 73 3a 72 65 64 79  |pos=redypos:redy|
000012f0  70 6f 73 2d 3d 31 0d 06  22 29 20 e7 20 72 65 64  |pos-=1..") . red|
00001300  79 70 6f 73 3d 31 32 20  80 20 67 72 69 64 28 72  |ypos=12 . grid(r|
00001310  65 64 78 70 6f 73 2c 31  32 29 3c 3e 30 20 8c 0d  |edxpos,12)<>0 ..|
00001320  06 2c 3a 20 20 62 61 63  6b 3d 30 3a f5 3a 72 65  |.,:  back=0:.:re|
00001330  64 78 70 6f 73 2b 3d 31  3a e7 20 72 65 64 78 70  |dxpos+=1:. redxp|
00001340  6f 73 3e 31 31 20 8c 20  72 65 64 78 70 6f 73 3d  |os>11 . redxpos=|
00001350  30 3a 62 61 63 6b 2b 3d  31 0d 06 36 23 20 20 fd  |0:back+=1..6#  .|
00001360  20 67 72 69 64 28 72 65  64 78 70 6f 73 2c 31 32  | grid(redxpos,12|
00001370  29 3d 30 20 84 20 62 61  63 6b 3d 32 0d 06 40 17  |)=0 . back=2..@.|
00001380  20 20 e7 20 62 61 63 6b  3d 32 20 8c 20 65 78 69  |  . back=2 . exi|
00001390  74 3d b9 0d 06 4a 06 20  cd 0d 06 54 14 20 e7 20  |t=...J. ...T. . |
000013a0  65 78 69 74 20 8c 20 e5  20 8d 74 40 47 0d 06 5e  |exit . . .t@G..^|
000013b0  13 20 e7 20 79 6c 77 79  70 6f 73 3c 31 33 20 8c  |. . ylwypos<13 .|
000013c0  0d 06 68 20 20 65 78 65  63 3d a3 3a e7 20 79 6c  |..h  exec=.:. yl|
000013d0  77 79 70 6f 73 3d 30 20  8c 20 65 78 65 63 3d b9  |wypos=0 . exec=.|
000013e0  0d 06 72 38 20 e7 20 79  6c 77 79 70 6f 73 3e 30  |..r8 . ylwypos>0|
000013f0  20 8c 20 e7 20 67 72 69  64 28 79 6c 77 78 70 6f  | . . grid(ylwxpo|
00001400  73 2c 79 6c 77 79 70 6f  73 2d 31 29 3c 3e 30 20  |s,ylwypos-1)<>0 |
00001410  8c 20 65 78 65 63 3d b9  0d 06 7c 0d 20 e7 20 65  |. exec=...|. . e|
00001420  78 65 63 20 8c 0d 06 7d  1a 20 f2 70 6c 61 79 28  |xec ...}. .play(|
00001430  22 43 6f 6c 6c 65 63 74  22 2c 35 30 30 30 29 0d  |"Collect",5000).|
00001440  06 86 4a 20 e7 20 6f 6c  64 79 6c 77 79 70 6f 73  |..J . oldylwypos|
00001450  3c 31 33 20 8c 20 f2 70  6c 6f 74 28 22 67 72 65  |<13 . .plot("gre|
00001460  79 63 69 72 22 2c 32 33  2b 28 79 6c 77 78 70 6f  |ycir",23+(ylwxpo|
00001470  73 2a 37 30 29 2c 36 30  2b 28 6f 6c 64 79 6c 77  |s*70),60+(oldylw|
00001480  79 70 6f 73 2a 37 30 29  29 0d 06 90 37 20 f2 70  |ypos*70))...7 .p|
00001490  6c 6f 74 28 22 79 65 6c  6c 6f 77 63 69 72 22 2c  |lot("yellowcir",|
000014a0  32 33 2b 28 79 6c 77 78  70 6f 73 2a 37 30 29 2c  |23+(ylwxpos*70),|
000014b0  36 30 2b 28 79 6c 77 79  70 6f 73 2a 37 30 29 29  |60+(ylwypos*70))|
000014c0  0d 06 9a 45 20 67 72 69  64 28 79 6c 77 78 70 6f  |...E grid(ylwxpo|
000014d0  73 2c 79 6c 77 79 70 6f  73 29 3d 79 65 6c 6c 6f  |s,ylwypos)=yello|
000014e0  77 3a f2 63 68 65 63 6b  6c 69 6e 65 73 28 79 65  |w:.checklines(ye|
000014f0  6c 6c 6f 77 2c 79 6c 77  78 70 6f 73 2c 79 6c 77  |llow,ylwxpos,ylw|
00001500  79 70 6f 73 29 0d 06 a4  41 20 20 79 6c 77 78 70  |ypos)...A  ylwxp|
00001510  6f 73 3d b3 28 31 32 29  2d 31 3a 79 6c 77 79 70  |os=.(12)-1:ylwyp|
00001520  6f 73 3d 72 65 64 79 70  6f 73 2b 33 3a e7 20 79  |os=redypos+3:. y|
00001530  6c 77 79 70 6f 73 3c 31  33 20 8c 20 79 6c 77 79  |lwypos<13 . ylwy|
00001540  70 6f 73 3d 31 33 0d 06  ae 06 20 cd 0d 06 b8 06  |pos=13.... .....|
00001550  20 cd 0d 06 c2 22 20 6f  6c 64 79 6c 77 79 70 6f  | ...." oldylwypo|
00001560  73 3d 79 6c 77 79 70 6f  73 3a 79 6c 77 79 70 6f  |s=ylwypos:ylwypo|
00001570  73 2d 3d 31 0d 06 cc 29  20 e7 20 79 6c 77 79 70  |s-=1...) . ylwyp|
00001580  6f 73 3d 31 32 20 80 20  67 72 69 64 28 79 6c 77  |os=12 . grid(ylw|
00001590  78 70 6f 73 2c 31 32 29  3c 3e 30 20 8c 0d 06 d6  |xpos,12)<>0 ....|
000015a0  3a 20 20 62 61 63 6b 3d  30 3a f5 3a 79 6c 77 78  |:  back=0:.:ylwx|
000015b0  70 6f 73 2b 3d 31 3a e7  20 79 6c 77 78 70 6f 73  |pos+=1:. ylwxpos|
000015c0  3e 31 31 20 8c 20 79 6c  77 78 70 6f 73 3d 30 3a  |>11 . ylwxpos=0:|
000015d0  62 61 63 6b 2b 3d 31 0d  06 e0 23 20 20 fd 20 67  |back+=1...#  . g|
000015e0  72 69 64 28 79 6c 77 78  70 6f 73 2c 31 32 29 3d  |rid(ylwxpos,12)=|
000015f0  30 20 84 20 62 61 63 6b  3d 32 0d 06 ea 17 20 20  |0 . back=2....  |
00001600  e7 20 62 61 63 6b 3d 32  20 8c 20 65 78 69 74 3d  |. back=2 . exit=|
00001610  b9 0d 06 f4 06 20 cd 0d  06 fe 14 20 e7 20 65 78  |..... ..... . ex|
00001620  69 74 20 8c 20 e5 20 8d  74 40 47 0d 07 08 18 20  |it . . .t@G.... |
00001630  e7 20 79 6c 77 79 70 6f  73 3d 72 65 64 79 70 6f  |. ylwypos=redypo|
00001640  73 20 8c 0d 07 12 27 20  20 e7 20 61 6c 74 3d 31  |s ....'  . alt=1|
00001650  20 8c 20 79 6c 77 79 70  6f 73 2b 3d 32 20 8b 20  | . ylwypos+=2 . |
00001660  72 65 64 79 70 6f 73 2b  3d 32 0d 07 1c 0f 20 20  |redypos+=2....  |
00001670  61 6c 74 3d 33 2d 61 6c  74 0d 07 26 06 20 cd 0d  |alt=3-alt..&. ..|
00001680  07 30 13 20 e7 20 72 65  64 79 70 6f 73 3c 31 33  |.0. . redypos<13|
00001690  20 8c 0d 07 3a 35 20 20  f2 70 6c 6f 74 28 22 72  | ...:5  .plot("r|
000016a0  65 64 63 69 72 22 2c 32  33 2b 28 72 65 64 78 70  |edcir",23+(redxp|
000016b0  6f 73 2a 37 30 29 2c 36  30 2b 28 72 65 64 79 70  |os*70),60+(redyp|
000016c0  6f 73 2a 37 30 29 29 0d  07 44 4b 20 20 e7 20 6f  |os*70))..DK  . o|
000016d0  6c 64 72 65 64 79 70 6f  73 3c 31 33 20 8c 20 f2  |ldredypos<13 . .|
000016e0  70 6c 6f 74 28 22 67 72  65 79 63 69 72 22 2c 32  |plot("greycir",2|
000016f0  33 2b 28 72 65 64 78 70  6f 73 2a 37 30 29 2c 36  |3+(redxpos*70),6|
00001700  30 2b 28 6f 6c 64 72 65  64 79 70 6f 73 2a 37 30  |0+(oldredypos*70|
00001710  29 29 0d 07 4e 06 20 cd  0d 07 58 13 20 e7 20 79  |))..N. ...X. . y|
00001720  6c 77 79 70 6f 73 3c 31  33 20 8c 0d 07 62 38 20  |lwypos<13 ...b8 |
00001730  20 f2 70 6c 6f 74 28 22  79 65 6c 6c 6f 77 63 69  | .plot("yellowci|
00001740  72 22 2c 32 33 2b 28 79  6c 77 78 70 6f 73 2a 37  |r",23+(ylwxpos*7|
00001750  30 29 2c 36 30 2b 28 79  6c 77 79 70 6f 73 2a 37  |0),60+(ylwypos*7|
00001760  30 29 29 0d 07 6c 4b 20  20 e7 20 6f 6c 64 79 6c  |0))..lK  . oldyl|
00001770  77 79 70 6f 73 3c 31 33  20 8c 20 f2 70 6c 6f 74  |wypos<13 . .plot|
00001780  28 22 67 72 65 79 63 69  72 22 2c 32 33 2b 28 79  |("greycir",23+(y|
00001790  6c 77 78 70 6f 73 2a 37  30 29 2c 36 30 2b 28 6f  |lwxpos*70),60+(o|
000017a0  6c 64 79 6c 77 79 70 6f  73 2a 37 30 29 29 0d 07  |ldylwypos*70))..|
000017b0  76 06 20 cd 0d 07 80 18  20 c8 96 3a fd 20 65 78  |v. ..... ..:. ex|
000017c0  69 74 3a ff 20 22 46 58  20 31 35 22 0d 07 8a 06  |it:. "FX 15"....|
000017d0  20 e1 0d 07 94 06 20 3a  0d 07 9e 17 20 dd 20 f2  | ..... :.... . .|
000017e0  64 6c 64 28 63 2c 62 78  2c 62 79 2c 74 78 29 0d  |dld(c,bx,by,tx).|
000017f0  07 9f 17 20 f2 70 6c 61  79 28 22 44 72 6f 70 22  |... .play("Drop"|
00001800  2c 35 30 30 30 29 0d 07  a8 25 20 e7 20 63 3d 72  |,5000)...% . c=r|
00001810  65 64 20 8c 20 73 24 3d  22 72 65 64 22 20 8b 20  |ed . s$="red" . |
00001820  73 24 3d 22 79 65 6c 6c  6f 77 22 0d 07 b2 35 20  |s$="yellow"...5 |
00001830  f5 3a f2 70 6c 6f 74 28  73 24 2c 32 33 2b 28 62  |.:.plot(s$,23+(b|
00001840  78 2a 37 30 29 2c 36 30  2b 28 62 79 2a 37 30 29  |x*70),60+(by*70)|
00001850  29 3a 67 72 69 64 28 62  78 2c 62 79 29 3d 2d 63  |):grid(bx,by)=-c|
00001860  0d 07 bc 1a 20 62 78 2b  3d 31 3a 62 79 2b 3d 31  |.... bx+=1:by+=1|
00001870  3a fd 20 62 78 3d 74 78  2b 31 0d 07 c6 06 20 e1  |:. bx=tx+1.... .|
00001880  0d 07 d0 06 20 3a 0d 07  da 18 20 dd 20 f2 64 6c  |.... :.... . .dl|
00001890  78 28 63 2c 78 6c 2c 78  72 29 3a ea 20 78 0d 07  |x(c,xl,xr):. x..|
000018a0  db 17 20 f2 70 6c 61 79  28 22 44 72 6f 70 22 2c  |.. .play("Drop",|
000018b0  35 30 30 30 29 0d 07 e4  23 20 e7 20 63 3d 72 65  |5000)...# . c=re|
000018c0  64 20 8c 20 73 24 3d 22  72 65 64 22 3a 61 74 79  |d . s$="red":aty|
000018d0  3d 72 65 64 79 70 6f 73  0d 07 ee 29 20 e7 20 63  |=redypos...) . c|
000018e0  3d 79 65 6c 6c 6f 77 20  8c 20 73 24 3d 22 79 65  |=yellow . s$="ye|
000018f0  6c 6c 6f 77 22 3a 61 74  79 3d 79 6c 77 79 70 6f  |llow":aty=ylwypo|
00001900  73 0d 07 f8 3f 20 e3 20  78 3d 78 6c 20 b8 20 78  |s...? . x=xl . x|
00001910  72 3a f2 70 6c 6f 74 28  73 24 2c 32 33 2b 28 78  |r:.plot(s$,23+(x|
00001920  2a 37 30 29 2c 36 30 2b  28 61 74 79 2a 37 30 29  |*70),60+(aty*70)|
00001930  29 3a 67 72 69 64 28 78  2c 61 74 79 29 3d 2d 63  |):grid(x,aty)=-c|
00001940  0d 08 02 06 20 ed 0d 08  0c 06 20 e1 0d 08 16 06  |.... ..... .....|
00001950  20 3a 0d 08 20 18 20 dd  20 f2 64 6c 64 6c 28 63  | :.. . . .dldl(c|
00001960  2c 74 78 2c 74 79 2c 62  78 29 0d 08 21 17 20 f2  |,tx,ty,bx)..!. .|
00001970  70 6c 61 79 28 22 44 72  6f 70 22 2c 35 30 30 30  |play("Drop",5000|
00001980  29 0d 08 2a 25 20 e7 20  63 3d 72 65 64 20 8c 20  |)..*% . c=red . |
00001990  73 24 3d 22 72 65 64 22  20 8b 20 73 24 3d 22 79  |s$="red" . s$="y|
000019a0  65 6c 6c 6f 77 22 0d 08  34 35 20 f5 3a f2 70 6c  |ellow"..45 .:.pl|
000019b0  6f 74 28 73 24 2c 32 33  2b 28 74 78 2a 37 30 29  |ot(s$,23+(tx*70)|
000019c0  2c 36 30 2b 28 74 79 2a  37 30 29 29 3a 67 72 69  |,60+(ty*70)):gri|
000019d0  64 28 74 78 2c 74 79 29  3d 2d 63 0d 08 3e 1a 20  |d(tx,ty)=-c..>. |
000019e0  74 78 2b 3d 31 3a 74 79  2d 3d 31 3a fd 20 74 78  |tx+=1:ty-=1:. tx|
000019f0  3d 62 78 2b 31 0d 08 48  06 20 e1 0d 08 52 06 20  |=bx+1..H. ...R. |
00001a00  3a 0d 08 5c 18 20 dd 20  f2 64 6c 79 28 63 2c 79  |:..\. . .dly(c,y|
00001a10  6c 2c 79 74 29 3a ea 20  79 0d 08 5d 17 20 f2 70  |l,yt):. y..]. .p|
00001a20  6c 61 79 28 22 44 72 6f  70 22 2c 35 30 30 30 29  |lay("Drop",5000)|
00001a30  0d 08 66 23 20 e7 20 63  3d 72 65 64 20 8c 20 73  |..f# . c=red . s|
00001a40  24 3d 22 72 65 64 22 3a  61 74 78 3d 72 65 64 78  |$="red":atx=redx|
00001a50  70 6f 73 0d 08 70 29 20  e7 20 63 3d 79 65 6c 6c  |pos..p) . c=yell|
00001a60  6f 77 20 8c 20 73 24 3d  22 79 65 6c 6c 6f 77 22  |ow . s$="yellow"|
00001a70  3a 61 74 78 3d 79 6c 77  78 70 6f 73 0d 08 7a 3f  |:atx=ylwxpos..z?|
00001a80  20 e3 20 79 3d 79 6c 20  b8 20 79 74 3a f2 70 6c  | . y=yl . yt:.pl|
00001a90  6f 74 28 73 24 2c 32 33  2b 28 61 74 78 2a 37 30  |ot(s$,23+(atx*70|
00001aa0  29 2c 36 30 2b 28 79 2a  37 30 29 29 3a 67 72 69  |),60+(y*70)):gri|
00001ab0  64 28 61 74 78 2c 79 29  3d 2d 63 0d 08 84 06 20  |d(atx,y)=-c.... |
00001ac0  ed 0d 08 8e 06 20 e1 0d  08 98 06 20 3a 0d 08 a2  |..... ..... :...|
00001ad0  19 20 dd 20 f2 63 68 65  63 6b 6c 69 6e 65 73 28  |. . .checklines(|
00001ae0  63 2c 78 2c 79 29 0d 08  ac 0d 20 e7 20 78 3c 31  |c,x,y).... . x<1|
00001af0  31 20 8c 0d 08 b6 17 20  20 64 78 3d 78 3a 73 71  |1 .....  dx=x:sq|
00001b00  3d 30 3a f5 3a 64 78 2b  3d 31 0d 08 c0 1b 20 20  |=0:.:dx+=1....  |
00001b10  e7 20 67 72 69 64 28 64  78 2c 79 29 3d 63 20 8c  |. grid(dx,y)=c .|
00001b20  20 73 71 3d 30 0d 08 ca  1c 20 20 e7 20 67 72 69  | sq=0....  . gri|
00001b30  64 28 64 78 2c 79 29 3c  30 20 8c 20 73 71 2b 3d  |d(dx,y)<0 . sq+=|
00001b40  31 0d 08 d4 36 20 20 fd  20 28 67 72 69 64 28 64  |1...6  . (grid(d|
00001b50  78 2c 79 29 3c 3e 63 20  80 20 67 72 69 64 28 64  |x,y)<>c . grid(d|
00001b60  78 2c 79 29 3e 2d 31 29  20 84 20 73 71 3d 32 20  |x,y)>-1) . sq=2 |
00001b70  84 20 64 78 3d 31 31 0d  08 de 1c 20 20 e7 20 67  |. dx=11....  . g|
00001b80  72 69 64 28 64 78 2c 79  29 3d 63 20 8c 20 78 72  |rid(dx,y)=c . xr|
00001b90  3d 64 78 0d 08 e8 26 20  20 e7 20 67 72 69 64 28  |=dx...&  . grid(|
00001ba0  64 78 2c 79 29 3c 3e 63  20 80 20 73 71 3c 32 20  |dx,y)<>c . sq<2 |
00001bb0  8c 20 78 72 3d 64 78 2d  31 0d 08 f2 16 20 20 e7  |. xr=dx-1....  .|
00001bc0  20 73 71 3d 32 20 8c 20  78 72 3d 64 78 2d 31 0d  | sq=2 . xr=dx-1.|
00001bd0  08 fc 2b 20 20 e7 20 64  78 3d 31 31 20 80 20 73  |..+  . dx=11 . s|
00001be0  71 3d 31 20 80 20 67 72  69 64 28 64 78 2c 79 29  |q=1 . grid(dx,y)|
00001bf0  3c 30 20 8c 20 78 72 3d  64 78 0d 09 06 06 20 cc  |<0 . xr=dx.... .|
00001c00  0d 09 10 0b 20 20 78 72  3d 31 31 0d 09 1a 06 20  |....  xr=11.... |
00001c10  cd 0d 09 24 0c 20 e7 20  78 3e 30 20 8c 0d 09 2e  |...$. . x>0 ....|
00001c20  17 20 20 64 78 3d 78 3a  73 71 3d 30 3a f5 3a 64  |.  dx=x:sq=0:.:d|
00001c30  78 2d 3d 31 0d 09 38 1b  20 20 e7 20 67 72 69 64  |x-=1..8.  . grid|
00001c40  28 64 78 2c 79 29 3d 63  20 8c 20 73 71 3d 30 0d  |(dx,y)=c . sq=0.|
00001c50  09 42 1c 20 20 e7 20 67  72 69 64 28 64 78 2c 79  |.B.  . grid(dx,y|
00001c60  29 3c 30 20 8c 20 73 71  2b 3d 31 0d 09 4c 35 20  |)<0 . sq+=1..L5 |
00001c70  20 fd 20 28 67 72 69 64  28 64 78 2c 79 29 3c 3e  | . (grid(dx,y)<>|
00001c80  63 20 80 20 67 72 69 64  28 64 78 2c 79 29 3e 2d  |c . grid(dx,y)>-|
00001c90  31 29 20 84 20 73 71 3d  32 20 84 20 64 78 3d 30  |1) . sq=2 . dx=0|
00001ca0  0d 09 56 1c 20 20 e7 20  67 72 69 64 28 64 78 2c  |..V.  . grid(dx,|
00001cb0  79 29 3d 63 20 8c 20 78  6c 3d 64 78 0d 09 60 26  |y)=c . xl=dx..`&|
00001cc0  20 20 e7 20 67 72 69 64  28 64 78 2c 79 29 3c 3e  |  . grid(dx,y)<>|
00001cd0  63 20 80 20 73 71 3c 32  20 8c 20 78 6c 3d 64 78  |c . sq<2 . xl=dx|
00001ce0  2b 31 0d 09 6a 16 20 20  e7 20 73 71 3d 32 20 8c  |+1..j.  . sq=2 .|
00001cf0  20 78 6c 3d 64 78 2b 31  0d 09 74 2a 20 20 e7 20  | xl=dx+1..t*  . |
00001d00  64 78 3d 30 20 80 20 73  71 3d 31 20 80 20 67 72  |dx=0 . sq=1 . gr|
00001d10  69 64 28 64 78 2c 79 29  3c 30 20 8c 20 78 6c 3d  |id(dx,y)<0 . xl=|
00001d20  64 78 0d 09 7e 06 20 cc  0d 09 88 0a 20 20 78 6c  |dx..~. .....  xl|
00001d30  3d 30 0d 09 92 06 20 cd  0d 09 9c 22 20 e7 20 28  |=0.... ...." . (|
00001d40  78 72 2d 78 6c 29 2b 31  3e 33 20 8c 20 f2 64 6c  |xr-xl)+1>3 . .dl|
00001d50  78 28 63 2c 78 6c 2c 78  72 29 0d 09 a6 0c 20 e7  |x(c,xl,xr).... .|
00001d60  20 79 3e 30 20 8c 0d 09  b0 17 20 20 64 79 3d 79  | y>0 .....  dy=y|
00001d70  3a 73 71 3d 30 3a f5 3a  64 79 2d 3d 31 0d 09 ba  |:sq=0:.:dy-=1...|
00001d80  1b 20 20 e7 20 67 72 69  64 28 78 2c 64 79 29 3d  |.  . grid(x,dy)=|
00001d90  63 20 8c 20 73 71 3d 30  0d 09 c4 1c 20 20 e7 20  |c . sq=0....  . |
00001da0  67 72 69 64 28 78 2c 64  79 29 3c 30 20 8c 20 73  |grid(x,dy)<0 . s|
00001db0  71 2b 3d 31 0d 09 ce 35  20 20 fd 20 28 67 72 69  |q+=1...5  . (gri|
00001dc0  64 28 78 2c 64 79 29 3c  3e 63 20 80 20 67 72 69  |d(x,dy)<>c . gri|
00001dd0  64 28 78 2c 64 79 29 3e  2d 31 29 20 84 20 73 71  |d(x,dy)>-1) . sq|
00001de0  3d 32 20 84 20 64 79 3d  30 0d 09 d8 1c 20 20 e7  |=2 . dy=0....  .|
00001df0  20 67 72 69 64 28 78 2c  64 79 29 3d 63 20 8c 20  | grid(x,dy)=c . |
00001e00  79 6c 3d 64 79 0d 09 e2  27 20 20 e7 20 67 72 69  |yl=dy...'  . gri|
00001e10  64 28 78 2c 64 79 29 3c  3e 63 20 80 20 73 71 3c  |d(x,dy)<>c . sq<|
00001e20  3e 32 20 8c 20 79 6c 3d  64 79 2b 31 0d 09 ec 16  |>2 . yl=dy+1....|
00001e30  20 20 e7 20 73 71 3d 32  20 8c 20 79 6c 3d 64 79  |  . sq=2 . yl=dy|
00001e40  2b 31 0d 09 f6 2a 20 20  e7 20 73 71 3d 31 20 80  |+1...*  . sq=1 .|
00001e50  20 64 79 3d 30 20 80 20  67 72 69 64 28 78 2c 64  | dy=0 . grid(x,d|
00001e60  79 29 3c 30 20 8c 20 79  6c 3d 64 79 0d 0a 00 06  |y)<0 . yl=dy....|
00001e70  20 cc 0d 0a 0a 0a 20 20  79 6c 3d 30 0d 0a 14 06  | .....  yl=0....|
00001e80  20 cd 0d 0a 1e 0d 20 e7  20 79 3c 31 32 20 8c 0d  | ..... . y<12 ..|
00001e90  0a 28 17 20 20 64 79 3d  79 3a 73 71 3d 30 3a f5  |.(.  dy=y:sq=0:.|
00001ea0  3a 64 79 2b 3d 31 0d 0a  32 1b 20 20 e7 20 67 72  |:dy+=1..2.  . gr|
00001eb0  69 64 28 78 2c 64 79 29  3d 63 20 8c 20 73 71 3d  |id(x,dy)=c . sq=|
00001ec0  30 0d 0a 3c 1c 20 20 e7  20 67 72 69 64 28 78 2c  |0..<.  . grid(x,|
00001ed0  64 79 29 3c 30 20 8c 20  73 71 2b 3d 31 0d 0a 46  |dy)<0 . sq+=1..F|
00001ee0  36 20 20 fd 20 28 67 72  69 64 28 78 2c 64 79 29  |6  . (grid(x,dy)|
00001ef0  3c 3e 63 20 80 20 67 72  69 64 28 78 2c 64 79 29  |<>c . grid(x,dy)|
00001f00  3e 2d 31 29 20 84 20 73  71 3d 32 20 84 20 64 79  |>-1) . sq=2 . dy|
00001f10  3d 31 32 0d 0a 50 1c 20  20 e7 20 67 72 69 64 28  |=12..P.  . grid(|
00001f20  78 2c 64 79 29 3d 63 20  8c 20 79 74 3d 64 79 0d  |x,dy)=c . yt=dy.|
00001f30  0a 5a 27 20 20 e7 20 67  72 69 64 28 78 2c 64 79  |.Z'  . grid(x,dy|
00001f40  29 3c 3e 63 20 80 20 73  71 3c 3e 32 20 8c 20 79  |)<>c . sq<>2 . y|
00001f50  74 3d 64 79 2d 31 0d 0a  64 16 20 20 e7 20 73 71  |t=dy-1..d.  . sq|
00001f60  3d 32 20 8c 20 79 74 3d  64 79 2d 31 0d 0a 6e 2b  |=2 . yt=dy-1..n+|
00001f70  20 20 e7 20 73 71 3d 31  20 80 20 64 79 3d 31 32  |  . sq=1 . dy=12|
00001f80  20 80 20 67 72 69 64 28  78 2c 64 79 29 3c 30 20  | . grid(x,dy)<0 |
00001f90  8c 20 79 74 3d 64 79 0d  0a 78 06 20 cc 0d 0a 82  |. yt=dy..x. ....|
00001fa0  0b 20 20 79 74 3d 31 32  0d 0a 8c 06 20 cd 0d 0a  |.  yt=12.... ...|
00001fb0  96 22 20 e7 20 28 79 74  2d 79 6c 29 2b 31 3e 33  |." . (yt-yl)+1>3|
00001fc0  20 8c 20 f2 64 6c 79 28  63 2c 79 6c 2c 79 74 29  | . .dly(c,yl,yt)|
00001fd0  0d 0a a0 14 20 e7 20 78  3c 31 31 20 80 20 79 3c  |.... . x<11 . y<|
00001fe0  31 32 20 8c 0d 0a aa 22  20 20 64 79 3d 79 3a 64  |12 ...."  dy=y:d|
00001ff0  78 3d 78 3a 73 71 3d 30  3a f5 3a 64 79 2b 3d 31  |x=x:sq=0:.:dy+=1|
00002000  3a 64 78 2b 3d 31 0d 0a  b4 1c 20 20 e7 20 67 72  |:dx+=1....  . gr|
00002010  69 64 28 64 78 2c 64 79  29 3d 63 20 8c 20 73 71  |id(dx,dy)=c . sq|
00002020  3d 30 0d 0a be 1d 20 20  e7 20 67 72 69 64 28 64  |=0....  . grid(d|
00002030  78 2c 64 79 29 3c 30 20  8c 20 73 71 2b 3d 31 0d  |x,dy)<0 . sq+=1.|
00002040  0a c8 40 20 20 fd 20 28  67 72 69 64 28 64 78 2c  |..@  . (grid(dx,|
00002050  64 79 29 3c 3e 63 20 80  20 67 72 69 64 28 64 78  |dy)<>c . grid(dx|
00002060  2c 64 79 29 3e 2d 31 29  20 84 20 73 71 3d 32 20  |,dy)>-1) . sq=2 |
00002070  84 20 64 79 3d 31 32 20  84 20 64 78 3d 31 31 0d  |. dy=12 . dx=11.|
00002080  0a d2 23 20 20 e7 20 67  72 69 64 28 64 78 2c 64  |..#  . grid(dx,d|
00002090  79 29 3d 63 20 8c 20 74  78 3d 64 78 3a 74 79 3d  |y)=c . tx=dx:ty=|
000020a0  64 79 0d 0a dc 30 20 20  e7 20 67 72 69 64 28 64  |dy...0  . grid(d|
000020b0  78 2c 64 79 29 3c 3e 63  20 80 20 73 71 3c 3e 32  |x,dy)<>c . sq<>2|
000020c0  20 8c 20 74 78 3d 64 78  2d 31 3a 74 79 3d 64 79  | . tx=dx-1:ty=dy|
000020d0  2d 31 0d 0a e6 1e 20 20  e7 20 73 71 3d 32 20 8c  |-1....  . sq=2 .|
000020e0  20 74 78 3d 64 78 2d 31  3a 74 79 3d 64 79 2d 31  | tx=dx-1:ty=dy-1|
000020f0  0d 0a f0 3c 20 20 e7 20  28 64 79 3d 31 32 20 84  |...<  . (dy=12 .|
00002100  20 64 78 3d 31 31 29 20  80 20 73 71 3d 31 20 80  | dx=11) . sq=1 .|
00002110  20 67 72 69 64 28 64 78  2c 64 79 29 3c 30 20 8c  | grid(dx,dy)<0 .|
00002120  20 74 78 3d 64 78 3a 74  79 3d 64 79 0d 0a fa 06  | tx=dx:ty=dy....|
00002130  20 cc 0d 0b 04 0f 20 20  74 78 3d 78 3a 74 79 3d  | .....  tx=x:ty=|
00002140  79 0d 0b 0e 06 20 cd 0d  0b 18 12 20 e7 20 78 3e  |y.... ..... . x>|
00002150  30 20 80 20 79 3e 30 20  8c 0d 0b 22 22 20 20 64  |0 . y>0 ...""  d|
00002160  79 3d 79 3a 64 78 3d 78  3a 73 71 3d 30 3a f5 3a  |y=y:dx=x:sq=0:.:|
00002170  64 79 2d 3d 31 3a 64 78  2d 3d 31 0d 0b 2c 1c 20  |dy-=1:dx-=1..,. |
00002180  20 e7 20 67 72 69 64 28  64 78 2c 64 79 29 3d 63  | . grid(dx,dy)=c|
00002190  20 8c 20 73 71 3d 30 0d  0b 36 1d 20 20 e7 20 67  | . sq=0..6.  . g|
000021a0  72 69 64 28 64 78 2c 64  79 29 3c 30 20 8c 20 73  |rid(dx,dy)<0 . s|
000021b0  71 2b 3d 31 0d 0b 40 3e  20 20 fd 20 28 67 72 69  |q+=1..@>  . (gri|
000021c0  64 28 64 78 2c 64 79 29  3c 3e 63 20 80 20 67 72  |d(dx,dy)<>c . gr|
000021d0  69 64 28 64 78 2c 64 79  29 3e 2d 31 29 20 84 20  |id(dx,dy)>-1) . |
000021e0  73 71 3d 32 20 84 20 64  79 3d 30 20 84 20 64 78  |sq=2 . dy=0 . dx|
000021f0  3d 30 0d 0b 4a 23 20 20  e7 20 67 72 69 64 28 64  |=0..J#  . grid(d|
00002200  78 2c 64 79 29 3d 63 20  8c 20 62 78 3d 64 78 3a  |x,dy)=c . bx=dx:|
00002210  62 79 3d 64 79 0d 0b 54  30 20 20 e7 20 67 72 69  |by=dy..T0  . gri|
00002220  64 28 64 78 2c 64 79 29  3c 3e 63 20 80 20 73 71  |d(dx,dy)<>c . sq|
00002230  3c 3e 32 20 8c 20 62 78  3d 64 78 2b 31 3a 62 79  |<>2 . bx=dx+1:by|
00002240  3d 64 79 2b 31 0d 0b 5e  1e 20 20 e7 20 73 71 3d  |=dy+1..^.  . sq=|
00002250  32 20 8c 20 62 78 3d 64  78 2b 31 3a 62 79 3d 64  |2 . bx=dx+1:by=d|
00002260  79 2b 31 0d 0b 68 3a 20  20 e7 20 28 64 79 3d 30  |y+1..h:  . (dy=0|
00002270  20 84 20 64 78 3d 30 29  20 80 20 73 71 3d 31 20  | . dx=0) . sq=1 |
00002280  80 20 67 72 69 64 28 64  78 2c 64 79 29 3c 30 20  |. grid(dx,dy)<0 |
00002290  8c 20 62 78 3d 64 78 3a  62 79 3d 64 79 0d 0b 72  |. bx=dx:by=dy..r|
000022a0  06 20 cc 0d 0b 7c 0f 20  20 62 78 3d 78 3a 62 79  |. ...|.  bx=x:by|
000022b0  3d 79 0d 0b 86 06 20 cd  0d 0b 90 25 20 e7 20 28  |=y.... ....% . (|
000022c0  74 78 2d 62 78 29 2b 31  3e 33 20 8c 20 f2 64 6c  |tx-bx)+1>3 . .dl|
000022d0  64 28 63 2c 62 78 2c 62  79 2c 74 78 29 0d 0b 9a  |d(c,bx,by,tx)...|
000022e0  13 20 e7 20 79 3e 30 20  80 20 78 3c 31 31 20 8c  |. . y>0 . x<11 .|
000022f0  0d 0b a4 22 20 20 64 79  3d 79 3a 64 78 3d 78 3a  |..."  dy=y:dx=x:|
00002300  73 71 3d 30 3a f5 3a 64  79 2d 3d 31 3a 64 78 2b  |sq=0:.:dy-=1:dx+|
00002310  3d 31 0d 0b ae 1c 20 20  e7 20 67 72 69 64 28 64  |=1....  . grid(d|
00002320  78 2c 64 79 29 3d 63 20  8c 20 73 71 3d 30 0d 0b  |x,dy)=c . sq=0..|
00002330  b8 1d 20 20 e7 20 67 72  69 64 28 64 78 2c 64 79  |..  . grid(dx,dy|
00002340  29 3c 30 20 8c 20 73 71  2b 3d 31 0d 0b c2 3f 20  |)<0 . sq+=1...? |
00002350  20 fd 20 28 67 72 69 64  28 64 78 2c 64 79 29 3c  | . (grid(dx,dy)<|
00002360  3e 63 20 80 20 67 72 69  64 28 64 78 2c 64 79 29  |>c . grid(dx,dy)|
00002370  3e 2d 31 29 20 84 20 73  71 3d 32 20 84 20 64 79  |>-1) . sq=2 . dy|
00002380  3d 30 20 84 20 64 78 3d  31 31 0d 0b cc 23 20 20  |=0 . dx=11...#  |
00002390  e7 20 67 72 69 64 28 64  78 2c 64 79 29 3d 63 20  |. grid(dx,dy)=c |
000023a0  8c 20 62 78 3d 64 78 3a  62 79 3d 64 79 0d 0b d6  |. bx=dx:by=dy...|
000023b0  30 20 20 e7 20 67 72 69  64 28 64 78 2c 64 79 29  |0  . grid(dx,dy)|
000023c0  3c 3e 63 20 80 20 73 71  3c 3e 32 20 8c 20 62 78  |<>c . sq<>2 . bx|
000023d0  3d 64 78 2d 31 3a 62 79  3d 64 79 2b 31 0d 0b e0  |=dx-1:by=dy+1...|
000023e0  1e 20 20 e7 20 73 71 3d  32 20 8c 20 62 78 3d 64  |.  . sq=2 . bx=d|
000023f0  78 2d 31 3a 62 79 3d 64  79 2b 31 0d 0b ea 3b 20  |x-1:by=dy+1...; |
00002400  20 e7 20 28 64 79 3d 30  20 84 20 64 78 3d 31 31  | . (dy=0 . dx=11|
00002410  29 20 80 20 73 71 3d 31  20 80 20 67 72 69 64 28  |) . sq=1 . grid(|
00002420  64 78 2c 64 79 29 3c 30  20 8c 20 62 78 3d 64 78  |dx,dy)<0 . bx=dx|
00002430  3a 62 79 3d 64 79 0d 0b  f4 06 20 cc 0d 0b fe 0f  |:by=dy.... .....|
00002440  20 20 62 78 3d 78 3a 62  79 3d 79 0d 0c 08 06 20  |  bx=x:by=y.... |
00002450  cd 0d 0c 12 13 20 e7 20  79 3c 31 32 20 80 20 78  |..... . y<12 . x|
00002460  3e 30 20 8c 0d 0c 1c 22  20 20 64 79 3d 79 3a 64  |>0 ...."  dy=y:d|
00002470  78 3d 78 3a 73 71 3d 30  3a f5 3a 64 79 2b 3d 31  |x=x:sq=0:.:dy+=1|
00002480  3a 64 78 2d 3d 31 0d 0c  26 1c 20 20 e7 20 67 72  |:dx-=1..&.  . gr|
00002490  69 64 28 64 78 2c 64 79  29 3d 63 20 8c 20 73 71  |id(dx,dy)=c . sq|
000024a0  3d 30 0d 0c 30 1d 20 20  e7 20 67 72 69 64 28 64  |=0..0.  . grid(d|
000024b0  78 2c 64 79 29 3c 30 20  8c 20 73 71 2b 3d 31 0d  |x,dy)<0 . sq+=1.|
000024c0  0c 3a 3f 20 20 fd 20 28  67 72 69 64 28 64 78 2c  |.:?  . (grid(dx,|
000024d0  64 79 29 3c 3e 63 20 80  20 67 72 69 64 28 64 78  |dy)<>c . grid(dx|
000024e0  2c 64 79 29 3e 2d 31 29  20 84 20 73 71 3d 32 20  |,dy)>-1) . sq=2 |
000024f0  84 20 64 79 3d 31 32 20  84 20 64 78 3d 30 0d 0c  |. dy=12 . dx=0..|
00002500  44 23 20 20 e7 20 67 72  69 64 28 64 78 2c 64 79  |D#  . grid(dx,dy|
00002510  29 3d 63 20 8c 20 74 78  3d 64 78 3a 74 79 3d 64  |)=c . tx=dx:ty=d|
00002520  79 0d 0c 4e 30 20 20 e7  20 67 72 69 64 28 64 78  |y..N0  . grid(dx|
00002530  2c 64 79 29 3c 3e 63 20  80 20 73 71 3c 3e 32 20  |,dy)<>c . sq<>2 |
00002540  8c 20 74 78 3d 64 78 2b  31 3a 74 79 3d 64 79 2d  |. tx=dx+1:ty=dy-|
00002550  31 0d 0c 58 1e 20 20 e7  20 73 71 3d 32 20 8c 20  |1..X.  . sq=2 . |
00002560  74 78 3d 64 78 2b 31 3a  74 79 3d 64 79 2d 31 0d  |tx=dx+1:ty=dy-1.|
00002570  0c 62 3b 20 20 e7 20 28  64 79 3d 31 32 20 84 20  |.b;  . (dy=12 . |
00002580  64 78 3d 30 29 20 80 20  73 71 3d 31 20 80 20 67  |dx=0) . sq=1 . g|
00002590  72 69 64 28 64 78 2c 64  79 29 3c 30 20 8c 20 74  |rid(dx,dy)<0 . t|
000025a0  78 3d 64 78 3a 74 79 3d  64 79 0d 0c 6c 06 20 cc  |x=dx:ty=dy..l. .|
000025b0  0d 0c 76 0f 20 20 74 78  3d 78 3a 74 79 3d 79 0d  |..v.  tx=x:ty=y.|
000025c0  0c 80 06 20 cd 0d 0c 8a  26 20 e7 20 28 74 79 2d  |... ....& . (ty-|
000025d0  62 79 29 2b 31 3e 33 20  8c 20 f2 64 6c 64 6c 28  |by)+1>3 . .dldl(|
000025e0  63 2c 74 78 2c 74 79 2c  62 78 29 0d 0c 94 06 20  |c,tx,ty,bx).... |
000025f0  e1 0d 0c 9e 06 20 3a 0d  0c a8 0e 20 dd 20 f2 64  |..... :.... . .d|
00002600  72 61 77 69 74 0d 0c a9  1b 20 f2 70 6c 61 79 28  |rawit.... .play(|
00002610  22 43 6f 6d 70 6c 65 74  65 22 2c 35 30 30 30 29  |"Complete",5000)|
00002620  0d 0c b2 35 20 f2 72 65  63 74 28 31 30 2c 35 30  |...5 .rect(10,50|
00002630  2c 38 32 30 2b 34 30 2c  39 32 37 2c 34 29 3a f2  |,820+40,927,4):.|
00002640  70 6c 6f 74 28 22 73 74  61 74 73 22 2c 39 30 30  |plot("stats",900|
00002650  2c 36 34 38 29 0d 0c bc  1e 20 f2 70 6c 6f 74 28  |,648).... .plot(|
00002660  22 61 72 65 73 65 61 72  63 68 22 2c 38 39 35 2c  |"aresearch",895,|
00002670  36 30 29 0d 0c c6 14 20  72 65 64 73 71 3d 30 3a  |60).... redsq=0:|
00002680  79 6c 77 73 71 3d 30 0d  0c d0 1a 20 e3 20 78 3d  |ylwsq=0.... . x=|
00002690  30 20 b8 20 31 31 3a e3  20 79 3d 30 20 b8 20 31  |0 . 11:. y=0 . 1|
000026a0  32 0d 0c da 3a 20 e7 20  67 72 69 64 28 78 2c 79  |2...: . grid(x,y|
000026b0  29 3d 72 65 64 20 8c 20  f2 70 6c 6f 74 28 22 72  |)=red . .plot("r|
000026c0  65 64 63 69 72 22 2c 32  33 2b 28 78 2a 37 30 29  |edcir",23+(x*70)|
000026d0  2c 36 30 2b 28 79 2a 37  30 29 29 0d 0c e4 40 20  |,60+(y*70))...@ |
000026e0  e7 20 67 72 69 64 28 78  2c 79 29 3d 79 65 6c 6c  |. grid(x,y)=yell|
000026f0  6f 77 20 8c 20 f2 70 6c  6f 74 28 22 79 65 6c 6c  |ow . .plot("yell|
00002700  6f 77 63 69 72 22 2c 32  33 2b 28 78 2a 37 30 29  |owcir",23+(x*70)|
00002710  2c 36 30 2b 28 79 2a 37  30 29 29 0d 0c ee 41 20  |,60+(y*70))...A |
00002720  e7 20 67 72 69 64 28 78  2c 79 29 3d 2d 72 65 64  |. grid(x,y)=-red|
00002730  20 8c 20 f2 70 6c 6f 74  28 22 72 65 64 22 2c 32  | . .plot("red",2|
00002740  33 2b 28 78 2a 37 30 29  2c 36 30 2b 28 79 2a 37  |3+(x*70),60+(y*7|
00002750  30 29 29 3a 72 65 64 73  71 2b 3d 31 0d 0c f8 47  |0)):redsq+=1...G|
00002760  20 e7 20 67 72 69 64 28  78 2c 79 29 3d 2d 79 65  | . grid(x,y)=-ye|
00002770  6c 6c 6f 77 20 8c 20 f2  70 6c 6f 74 28 22 79 65  |llow . .plot("ye|
00002780  6c 6c 6f 77 22 2c 32 33  2b 28 78 2a 37 30 29 2c  |llow",23+(x*70),|
00002790  36 30 2b 28 79 2a 37 30  29 29 3a 79 6c 77 73 71  |60+(y*70)):ylwsq|
000027a0  2b 3d 31 0d 0d 02 39 20  e7 20 67 72 69 64 28 78  |+=1...9 . grid(x|
000027b0  2c 79 29 3d 30 20 8c 20  f2 70 6c 6f 74 28 22 67  |,y)=0 . .plot("g|
000027c0  72 65 79 63 69 72 22 2c  32 33 2b 28 78 2a 37 30  |reycir",23+(x*70|
000027d0  29 2c 36 30 2b 28 79 2a  37 30 29 29 0d 0d 0c 16  |),60+(y*70))....|
000027e0  20 fb 20 33 3a f1 8a 37  32 2c 36 29 3b 72 65 64  | . 3:..72,6);red|
000027f0  73 71 0d 0d 16 17 20 fb  20 31 35 3a f1 8a 37 32  |sq.... . 15:..72|
00002800  2c 38 29 3b 79 6c 77 73  71 0d 0d 20 10 20 c8 96  |,8);ylwsq.. . ..|
00002810  3a c8 96 3a c8 96 3a c8  96 0d 0d 2a 1b 20 ed 3a  |:..:..:....*. .:|
00002820  ed 3a f2 70 6c 61 79 28  22 6c 6f 73 74 22 2c 35  |.:.play("lost",5|
00002830  30 30 30 29 0d 0d 34 0c  20 f4 20 34 38 2c 31 35  |000)..4. . 48,15|
00002840  0d 0d 3e 16 20 f2 77 61  69 74 65 76 65 6e 74 3a  |..>. .waitevent:|
00002850  f2 63 6c 65 61 72 0d 0d  48 06 20 e1 0d 0d 52 06  |.clear..H. ...R.|
00002860  20 3a 0d 0d 5c 0c 20 dd  20 f2 69 6e 66 6f 0d 0d  | :..\. . .info..|
00002870  66 09 20 c8 97 20 87 0d  0d 70 0b 20 f2 63 6c 65  |f. .. ...p. .cle|
00002880  61 72 0d 0d 7a 1f 20 f2  70 6c 6f 74 28 22 64 72  |ar..z. .plot("dr|
00002890  61 69 6e 70 69 70 65 22  2c 32 38 30 2c 37 32 30  |ainpipe",280,720|
000028a0  29 0d 0d 84 1a 20 f2 70  6c 6f 74 28 22 61 72 63  |).... .plot("arc|
000028b0  77 6f 72 6c 64 22 2c 30  2c 30 29 0d 0d 8e 1e 20  |world",0,0).... |
000028c0  f2 70 6c 6f 74 28 22 61  72 65 73 65 61 72 63 68  |.plot("aresearch|
000028d0  22 2c 39 30 30 2c 35 35  29 0d 0d 98 18 20 f2 70  |",900,55).... .p|
000028e0  6c 6f 74 28 22 69 6e 66  6f 22 2c 30 2c 37 38 30  |lot("info",0,780|
000028f0  29 0d 0d a2 0a 20 79 3d  36 35 30 0d 0d ac 4d 20  |).... y=650...M |
00002900  e3 20 78 3d 30 20 b8 20  31 32 30 30 20 88 20 37  |. x=0 . 1200 . 7|
00002910  30 3a e7 20 78 20 83 20  31 34 30 20 f2 70 6c 6f  |0:. x . 140 .plo|
00002920  74 28 22 79 65 6c 6c 6f  77 63 69 72 22 2c 78 2c  |t("yellowcir",x,|
00002930  79 29 20 8b 20 f2 70 6c  6f 74 28 22 72 65 64 63  |y) . .plot("redc|
00002940  69 72 22 2c 78 2c 79 29  0d 0d b6 0c 20 ed 3a 79  |ir",x,y).... .:y|
00002950  3d 32 36 35 0d 0d c0 4d  20 e3 20 78 3d 30 20 b8  |=265...M . x=0 .|
00002960  20 31 32 30 30 20 88 20  37 30 3a e7 20 78 20 83  | 1200 . 70:. x .|
00002970  20 31 34 30 20 f2 70 6c  6f 74 28 22 79 65 6c 6c  | 140 .plot("yell|
00002980  6f 77 63 69 72 22 2c 78  2c 79 29 20 8b 20 f2 70  |owcir",x,y) . .p|
00002990  6c 6f 74 28 22 72 65 64  63 69 72 22 2c 78 2c 79  |lot("redcir",x,y|
000029a0  29 0d 0d ca 06 20 ed 0d  0d d4 37 20 fb 20 31 32  |).... ....7 . 12|
000029b0  3a f1 8a 30 2c 31 33 29  3b 22 20 2e 2e 2e 20 73  |:..0,13);" ... s|
000029c0  65 65 20 6d 61 67 61 73  69 6e 65 20 66 6f 72 20  |ee magasine for |
000029d0  69 6e 73 74 72 75 63 74  69 6f 6e 73 22 27 0d 0d  |instructions"'..|
000029e0  de 22 20 fb 20 31 35 3a  f1 22 20 46 72 6f 6d 20  |." . 15:." From |
000029f0  74 68 65 20 6d 61 69 6e  20 6d 65 6e 75 3a 22 27  |the main menu:"'|
00002a00  0d 0d e8 3b 20 fb 20 32  35 3a f1 22 20 20 20 43  |...; . 25:."   C|
00002a10  6c 69 63 6b 20 6f 6e 20  74 68 65 20 27 43 6f 6c  |lick on the 'Col|
00002a20  6c 69 73 69 6f 6e 73 20  33 30 30 30 27 20 6c 6f  |lisions 3000' lo|
00002a30  67 6f 20 74 6f 20 70 6c  61 79 22 0d 0d f2 31 20  |go to play"...1 |
00002a40  fb 20 31 38 3a f1 22 20  20 20 43 6c 69 63 6b 20  |. 18:."   Click |
00002a50  6f 6e 20 74 68 65 20 27  41 63 6f 72 6e 27 20 69  |on the 'Acorn' i|
00002a60  63 6f 6e 20 74 6f 20 71  75 69 74 22 0d 0d fc 38  |con to quit"...8|
00002a70  20 fb 20 31 39 3a f1 22  20 20 20 43 6c 69 63 6b  | . 19:."   Click|
00002a80  20 6f 6e 20 74 68 65 20  27 3f 3f 27 20 69 63 6f  | on the '??' ico|
00002a90  6e 20 74 6f 20 63 68 61  6e 67 65 20 6f 70 74 69  |n to change opti|
00002aa0  6f 6e 73 22 0d 0e 06 16  20 f2 77 61 69 74 65 76  |ons".... .waitev|
00002ab0  65 6e 74 3a f2 63 6c 65  61 72 0d 0e 10 09 20 c8  |ent:.clear.... .|
00002ac0  97 20 ee 0d 0e 1a 06 20  e1 0d 0e 24 06 20 3a 0d  |. ..... ...$. :.|
00002ad0  0e 2e 0f 20 dd 20 f2 64  6f 70 72 69 6e 74 0d 0e  |... . .doprint..|
00002ae0  38 15 20 ef 20 32 38 2c  31 39 2c 32 30 2c 37 36  |8. . 28,19,20,76|
00002af0  2c 31 37 0d 0e 42 10 20  fb 20 31 33 20 c8 9c 20  |,17..B. . 13 .. |
00002b00  32 35 35 0d 0e 4c 06 20  f5 0d 0e 4d 5a 20 74 74  |255..L. ...MZ tt|
00002b10  24 3d 22 22 3a f5 3a 74  74 24 2b 3d bd 28 74 70  |$="":.:tt$+=.(tp|
00002b20  72 69 6e 74 25 3f 74 74  70 25 29 3a 74 74 70 25  |rint%?ttp%):ttp%|
00002b30  2b 3d 31 3a fd 20 74 70  72 69 6e 74 25 3f 74 74  |+=1:. tprint%?tt|
00002b40  70 25 3d 31 30 20 84 20  74 70 72 69 6e 74 25 3f  |p%=10 . tprint%?|
00002b50  74 74 70 25 3d 97 28 22  7e 22 29 3a 74 74 70 25  |ttp%=.("~"):ttp%|
00002b60  2b 3d 31 0d 0e 4e 31 20  e7 20 74 70 72 69 6e 74  |+=1..N1 . tprint|
00002b70  25 3f 28 74 74 70 25 2d  31 29 3d 97 28 22 7e 22  |%?(ttp%-1)=.("~"|
00002b80  29 20 8c 20 74 74 70 25  3d 30 3a 74 74 24 3d c0  |) . ttp%=0:tt$=.|
00002b90  74 74 24 29 0d 0e 56 13  20 f2 74 70 72 69 6e 74  |tt$)..V. .tprint|
00002ba0  28 74 74 24 2c 32 29 0d  0e 60 11 20 fd 20 6b 65  |(tt$,2)..`. . ke|
00002bb0  79 3d b9 3a ef 20 32 36  0d 0e 6a 06 20 e1 0d 0e  |y=.:. 26..j. ...|
00002bc0  74 05 3a 0d 0e d8 16 20  dd 20 f2 6e 74 70 72 69  |t.:.... . .ntpri|
00002bd0  6e 74 28 74 65 78 74 24  29 0d 0e e2 15 20 e3 20  |nt(text$).... . |
00002be0  6b 3d 31 20 b8 20 a9 28  74 65 78 74 24 29 0d 0e  |k=1 . .(text$)..|
00002bf0  ec 19 20 f1 20 c1 74 65  78 74 24 2c 6b 2c 31 29  |.. . .text$,k,1)|
00002c00  3b 3a c8 96 3a c8 96 0d  0e f6 06 20 ed 0d 0f 00  |;:..:...... ....|
00002c10  06 20 e1 0d 0f 0a 06 20  3a 0d 0f 14 0e 20 dd 20  |. ..... :.... . |
00002c20  f2 64 65 66 69 6e 65 0d  0f 1e 23 20 ef 20 32 38  |.define...# . 28|
00002c30  2c 31 39 2c 32 30 2c 37  36 2c 31 37 3a db 3a fb  |,19,20,76,17:.:.|
00002c40  20 31 33 20 c8 9c 20 32  35 35 0d 0f 28 2b 20 f2  | 13 .. 255..(+ .|
00002c50  6e 74 70 72 69 6e 74 28  22 44 6f 20 79 6f 75 20  |ntprint("Do you |
00002c60  77 61 6e 74 20 73 6f 75  6e 64 20 28 59 2f 4e 29  |want sound (Y/N)|
00002c70  3f 22 29 3a ee 0d 0f 32  3d 20 61 24 3d be 3a e7  |?"):...2= a$=.:.|
00002c80  20 bd 28 97 28 61 24 29  20 80 20 26 44 46 29 3d  | .(.(a$) . &DF)=|
00002c90  22 59 22 20 8c 20 ff 20  22 41 75 64 69 6f 20 4f  |"Y" . . "Audio O|
00002ca0  6e 22 20 8b 20 ff 20 22  41 75 64 69 6f 20 4f 66  |n" . . "Audio Of|
00002cb0  66 22 0d 0f 3c 2c 20 f1  27 3a f2 6e 74 70 72 69  |f"..<, .':.ntpri|
00002cc0  6e 74 28 22 31 20 2d 20  66 61 73 74 20 20 20 20  |nt("1 - fast    |
00002cd0  20 20 20 38 30 20 2d 20  73 6c 6f 77 22 29 0d 0f  |   80 - slow")..|
00002ce0  3d 06 20 f5 0d 0f 46 30  20 f1 27 3a f2 6e 74 70  |=. ...F0 .':.ntp|
00002cf0  72 69 6e 74 28 22 45 6e  74 65 72 20 61 20 73 70  |rint("Enter a sp|
00002d00  65 65 64 20 76 61 6c 75  65 20 28 31 2d 38 30 29  |eed value (1-80)|
00002d10  3a 20 22 29 0d 0f 50 29  20 e8 20 73 3a e7 20 ac  |: ")..P) . s:. .|
00002d20  20 28 73 3e 30 20 80 20  73 3c 38 31 29 20 8c 20  | (s>0 . s<81) . |
00002d30  f1 27 22 49 6e 76 61 6c  69 64 2e 22 27 0d 0f 5a  |.'"Invalid."'..Z|
00002d40  1d 20 fd 20 73 3e 30 20  80 20 73 3c 38 31 3a 73  |. . s>0 . s<81:s|
00002d50  70 65 65 64 3d 73 3a db  3a 87 0d 0f 64 06 20 e1  |peed=s:.:...d. .|
00002d60  0d 0f 6e 05 3a 0d 0f 78  1a 20 dd 20 f2 70 6c 61  |..n.:..x. . .pla|
00002d70  79 28 73 6e 61 6d 65 24  2c 70 69 74 63 68 29 0d  |y(sname$,pitch).|
00002d80  0f 79 3b 20 e7 20 73 6e  61 6d 65 24 3d 22 42 69  |.y; . sname$="Bi|
00002d90  6e 67 22 20 84 20 73 6e  61 6d 65 24 3d 22 43 6f  |ng" . sname$="Co|
00002da0  6c 6c 65 63 74 22 20 8c  20 76 6f 69 63 65 3d 33  |llect" . voice=3|
00002db0  20 8b 20 76 6f 69 63 65  3d 31 0d 0f 82 2a 20 ff  | . voice=1...* .|
00002dc0  20 22 43 68 61 6e 6e 65  6c 76 6f 69 63 65 20 22  | "Channelvoice "|
00002dd0  2b c3 28 76 6f 69 63 65  29 2b 22 20 22 2b 73 6e  |+.(voice)+" "+sn|
00002de0  61 6d 65 24 0d 0f 8c 2c  20 ff 20 22 43 68 61 6e  |ame$..., . "Chan|
00002df0  6e 65 6c 76 6f 69 63 65  20 22 2b c3 28 76 6f 69  |nelvoice "+.(voi|
00002e00  63 65 2b 31 29 2b 22 20  22 2b 73 6e 61 6d 65 24  |ce+1)+" "+sname$|
00002e10  0d 0f 96 2e 20 d4 20 76  6f 69 63 65 2c 2d 31 35  |.... . voice,-15|
00002e20  2c 70 69 74 63 68 2c 31  3a d4 20 76 6f 69 63 65  |,pitch,1:. voice|
00002e30  2b 31 2c 2d 31 35 2c 70  69 74 63 68 2c 31 0d 0f  |+1,-15,pitch,1..|
00002e40  aa 06 20 e1 0d ff                                 |.. ...|
00002e46