Home » Archimedes archive » Acorn User » AU 1993-04.adf » !GameDes/Files/AlienEd2
!GameDes/Files/AlienEd2
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 » Acorn User » AU 1993-04.adf |
Filename: | !GameDes/Files/AlienEd2 |
Read OK: | ✔ |
File size: | 23BF bytes |
Load address: | FFFFFB44 |
Exec address: | 6A72B629 |
File contents
10REM >AlienEd2 20REM By Antony Bruce Lytis 30REM For 32-bit machines 40REM (C) BAU April 1993 50: 60MODE 9:OFF 70MOUSE ON 80PROCinit 90PROCload_file(0,"Aliens") 100PROCload_file(1,"Aliens") 110PROCscreen 120PROCedit 130MODE 0 140END 150: 160DEF PROCinit 170gridx=26 180gridy=26 190g=32 200mid=g/2 210max_path=100 220max_len=100 230DIM paths max_path*max_len*2 240DIM grid(gridx,gridy) 250DIM file$(1),type(1),dir$(1) 260DIM spr$(max_path-1),com$(max_path-1) 270type()=&FFF,&FF9 280dir$()="Movement","Sprites" 290moves=0 300quit=FALSE 310sprites=1 320FOR p=0 TO max_path-1 330 paths!(p*max_len*2)=&FFFF 340NEXT 350xstart=(1280+gridx*g)DIV2 360ystart=(gridy*g)DIV2 370path=0 380space=HIMEM-END-65536 390DIM sprites space 400!sprites=space 410sprites!8=16 420SYS "OS_SWINumberFromString",,"XOS_SpriteOp" TO spop 430SYS spop,&109,sprites 440ENDPROC 450: 460DEF PROCload_file(n,a$) 470IF FNok(n,a$) THEN 480 file$(n)=a$ 490 CASE n OF 500 WHEN 0 : PROCload_data(dir$(n)+"."+a$) 510 WHEN 1 : PROCload_sprites(dir$(n)+"."+a$) 520 ENDCASE 530ENDIF 540PROCname(n) 550ENDPROC 560: 570DEF FNok(n,a$) 580SYS "OS_File",5,dir$(n)+"."+a$ TO a,,type,,size 590type=(type>>8)AND&FFF 600IF a<>1 THEN =FALSE 610IF type<>type(n) THEN =FALSE 620IF n=1 AND size>space THEN =FALSE 630=TRUE 640: 650DEF PROCload_data(file$) 660in=OPENIN(file$) 670p=0 680REPEAT 690 line$=GET$#in 700 IF LEFT$(line$,1)<>";" AND line$<>"" THEN 710 IF MID$(line$,27,1)=" " THEN 720 com$(p)=FNstrip(LEFT$(line$,14)) 730 spr$(p)=FNstrip(MID$(line$,15,13)) 740 path$=MID$(line$,28) 750 ELSE 760 spr$(p)=FNstrip(LEFT$(line$,14)) 770 path$=MID$(line$,15) 780 ENDIF 790 a=paths+p*max_len*2 800 a?0=ASCMID$(path$,1,1)-64 810 a?1=ASCMID$(path$,2,1)-64 820 FOR i=2 TO LENpath$-1 830 a?i=FNasc(MID$(path$,i+1,1)) 840 NEXT 850 a?i=0 860 a?(i+1)=0 870 p+=1 880 ENDIF 890UNTIL EOF#in 900CLOSE #in 910ENDPROC 920: 930DEF FNstrip(s$) 940WHILE LEFT$(s$,1)=" " 950 s$=MID$(s$,2) 960ENDWHILE 970WHILE RIGHT$(s$,1)=" " 980 s$=LEFT$(s$) 990ENDWHILE 1000=s$ 1010: 1020DEF PROCload_sprites(file$) 1030SYS spop,&10A,sprites,file$ 1040ENDPROC 1050: 1060DEF PROCscreen 1070COLOUR 1,1 1080COLOUR 2,2 1090COLOUR 3,4 1100COLOUR 4,4 1110COLOUR 5,1 1120COLOUR 6,2 1130COLOUR 7,7 1140COLOUR 8,0,0,&CC 1150COLOUR 9,&CC,&CC,0 1160COLOUR 10,&88,&CC,&CC 1170COLOUR 11,&FF,&88,&44 1180COLOUR 12,&44,&CC,&44 1190PROCaname("File",0) 1200PROCaname("Sprs",2) 1210COLOUR 128 1220COLOUR 10 1230PRINTTAB(0,4);"Path: Test Save Quit" 1240GCOL 7 1250FOR x=0 TO gridx 1260 FOR y=0 TO gridy 1270 POINT x*g,y*g 1280 NEXT 1290NEXT 1300PROCname(0) 1310PROCname(1) 1320ENDPROC 1330: 1340DEF PROCaname(label$,ypos) 1350COLOUR 128 1360COLOUR 7 1370PRINTTAB(0,ypos);FNlpad(label$,5);":"; 1380COLOUR 136 1390PRINTTAB(7,ypos);STRING$(33," "); 1400COLOUR 128 1410ENDPROC 1420: 1430DEF PROCname(n) 1440COLOUR 136 1450COLOUR 9 1460PRINTTAB(7,n*2);file$(n);SPC(32-LENfile$(n)); 1470COLOUR 128 1480ENDPROC 1490: 1500DEF PROCinfo(p) 1510COLOUR 11 1520spr$=spr$(p) 1530IF spr$="" spr$="""""" 1540PRINTTAB(6,4);RIGHT$(" "+STR$p,3);" "; 1550IF NOT FNexists(spr$) COLOUR 1 1560PRINT FNlpad(spr$,12); 1570COLOUR 136 1580COLOUR 9 1590com$=com$(p) 1600IF com$="" com$="""""" 1610PRINTTAB(27,31);FNlpad(com$,12); 1620COLOUR 128 1630ENDPROC 1640: 1650DEF FNlpad(s$,l) 1660=LEFT$(s$+STRING$(l," "),l) 1670: 1680DEF FNexists(s$) 1690SYS spop,&118,sprites,s$ TO ;v 1700=(v AND 1)=0 1710: 1720DEF PROCview(p) 1730PROCinfo(p) 1740PROCdraw(p) 1750len=FNset_grid(p) 1760PROCpreview(p) 1770ENDPROC 1780: 1790DEF PROCedit 1800PROCview(path) 1810held=FALSE 1820REPEAT 1830 REPEAT 1840 MOUSE x,y,z 1850 shift=INKEY-1 1860 ctrl=INKEY-2 1870 IF z=0 held=FALSE 1880 UNTIL z<>0 1890 IF z<>0 AND NOT held THEN 1900 held=TRUE 1910 CASE TRUE OF 1920 WHEN y>gridy*g:PROCselect 1930 WHEN x>gridx*g: 1940 IF y<2*g THEN 1950 PROCcomment 1960 ELSE 1970 PROCrepos 1980 ENDIF 1990 OTHERWISE :PROCgrid 2000 ENDCASE 2010 ENDIF 2020UNTIL quit 2030ENDPROC 2040: 2050DEF PROCselect 2060xpos=x DIV 32 2070ypos=31-(y DIV 32) 2080CASE ypos OF 2090 WHEN 0,2: 2100 PROCload(ypos DIV 2) 2110 WHEN 4: 2120 CASE TRUE OF 2130 WHEN xpos>=0 AND xpos<=8 : PROCnewpath 2140 WHEN xpos>=10 AND xpos<=21 : PROCnewsprite 2150 WHEN xpos>=24 AND xpos<=27 : PROCtest 2160 WHEN xpos>=30 AND xpos<=33 : PROCsave 2170 WHEN xpos>=36 AND xpos<=39 : held=FALSE:IF z=7 quit=TRUE 2180 ENDCASE 2190ENDCASE 2200ENDPROC 2210: 2220DEF PROCnewpath 2230PROCdraw(path) 2240IF z AND 4 path+=1:IF path=max_path path=0 2250IF z AND 1 path-=1:IF path<0 path=max_path-1 2260PROCview(path) 2270ENDPROC 2280: 2290DEF PROCnewsprite 2300COLOUR 128 2310COLOUR 11 2320IF spr$(path)="" VDU 31,10,4,32,32 2330name$=FNalter(spr$(path),10,4,12) 2340IF name$<>"" OR key<>27 THEN 2350 spr$(path)=name$ 2360ENDIF 2370PROCinfo(path) 2380ENDPROC 2390: 2400DEF PROCsave 2410COLOUR 136:COLOUR 9 2420name$=FNalter(file$(0),7,n*2,28) 2430IF name$<>"" THEN 2440 PROCsave_file(name$) 2450ENDIF 2460ENDPROC 2470: 2480DEF PROCsave_file(file$) 2490out=OPENOUT(dir$(0)+"."+file$) 2500PROCbput(out,"; >"+file$) 2510PROCbput(out,"") 2520FOR p=0 TO max_path-1 2530 a=paths+p*max_len*2 2540 IF NOT (?a=255 AND a?1=255) THEN 2550 spr$=FNlpad(spr$(p),12) 2560 com$=com$(p) 2570 IF com$<>"" com$=FNlpad(com$(p),12)+" " 2580 path$=CHR$(?a+64)+CHR$(a?1+64) 2590 i=2 2600 WHILE NOT (a?i=0 AND a?(i+1)=0) 2610 path$+=FNchr(a?i)+FNchr(a?(i+1)) 2620 i+=2 2630 ENDWHILE 2640 PROCbput(out," "+com$+spr$+" "+path$) 2650 ENDIF 2660NEXT 2670CLOSE #out 2680SYS "OS_File",18,dir$(0)+"."+file$,&FFF 2690file$(0)=file$ 2700ENDPROC 2710: 2720DEF FNchr(x) 2730IF x<127 THEN =CHR$(96+(127-x)) 2740=CHR$(64+(x-127)) 2750: 2760DEF FNasc(x$) 2770IF x$>="a" THEN =127-(ASCx$-96) 2780=127+(ASCx$-64) 2790: 2800DEF PROCbput(f,s$) 2810BPUT #f,s$+CHR$10; 2820ENDPROC 2830: 2840DEF PROCload(n) 2850COLOUR 136:COLOUR 9 2860name$=FNalter(file$(n),7,n*2,28) 2870IF name$<>"" THEN 2880 PROCload_file(n,name$) 2890 IF n=0 PROCview(path) 2900ENDIF 2910ENDPROC 2920: 2930DEF FNalter(old$,x,y,max) 2940VDU 31,x+LENold$,y 2950a$=old$ 2960ON 2970MOUSE OFF 2980*FX229,1 2990*FX21,0 3000REPEAT 3010 key=GET 3020 IF key=127 AND LENa$>0 VDU 127:a$=LEFT$(a$) 3030 IF key=21 OR key=27 PRINTSTRING$(LENa$,CHR$127);:a$="" 3040 IF key=27 a$=old$:PRINTa$; 3050 IF key>32 AND key<127 AND LENa$<max a$+=CHR$key:VDU key 3060UNTIL key=13 OR key=27 3070IF key=27 a$="" 3080*FX229,0 3090OFF 3100MOUSE ON 3110COLOUR 128 3120=a$ 3130: 3140DEF PROCrepos 3150xstart=x 3160ystart=y 3170PROCpreview(path) 3180ENDPROC 3190: 3200DEF FNerr(p,xn,yn,at) 3210LOCAL a,x,y,ox,oy 3220a=paths+p*max_len*2 3230at=a+at*2 3240ox=?at:oy=at?1 3250?at=xn:at?1=yn 3260x=a?0 3270y=a?1 3280err=FNoff(x,y) 3290IF NOT (x=255 AND y=255) THEN 3300 a+=2 3310 WHILE NOT (?a=0 AND a?1=0) AND NOT err 3320 x+=(a?0-127) 3330 y+=(a?1-127) 3340 a+=2 3350 err=FNoff(x,y) 3360 ENDWHILE 3370ENDIF 3380?at=ox 3390at?1=oy 3400=err 3410: 3420DEF FNoff(xx,yy) 3430=(xx<0 OR yy<0 OR xx>=gridx OR yy>=gridy) 3440: 3450DEF FNset_grid(p) 3460grid()=-1 3470a=paths+p*max_len*2 3480x=a?0 3490y=a?1 3500l=0 3510IF NOT (x=255 AND y=255) THEN 3520 grid(x,y)=l 3530 l+=1 3540 a+=2 3550 WHILE NOT (?a=0 AND a?1=0) 3560 x+=(a?0-127) 3570 y+=(a?1-127) 3580 IF grid(x,y)<0 grid(x,y)=l 3590 a+=2 3600 l+=1 3610 ENDWHILE 3620ENDIF 3630=l 3640: 3650DEF PROCdraw(p) 3660LOCAL a,x,y,ox,oy 3670a=paths+p*max_len*2 3680x=a?0 3690y=a?1 3700l=0 3710IF NOT (x=255 AND y=255) THEN 3720 GCOL 3,1 3730 CIRCLE x*g+mid,y*g+mid,mid-4 3740 ox=x*g+mid 3750 oy=y*g+mid 3760 l+=1 3770 a+=2 3780 WHILE NOT (?a=0 AND a?1=0) 3790 x+=(a?0-127) 3800 y+=(a?1-127) 3810 GCOL 3,2 3820 CIRCLE x*g+mid,y*g+mid,mid-4 3830 GCOL 3,4 3840 MOVE ox,oy 3850 ox=x*g+mid 3860 oy=y*g+mid 3870 DRAW ox,oy 3880 a+=2 3890 l+=1 3900 ENDWHILE 3910ENDIF 3920xend=x 3930yend=y 3940ENDPROC 3950: 3960DEF PROCgrid 3970xg=x DIV g 3980yg=y DIV g 3990a=paths+path*max_len*2 4000e=grid(xg,yg) 4010IF ctrl THEN 4020 PROCdelete_point 4030ELSE 4040 PROCadd_point 4050ENDIF 4060ENDPROC 4070: 4080DEF PROCadd_point 4090IF e<0 THEN 4100 IF len=0 THEN 4110 ?a=xg 4120 a?1=yg 4130 GCOL 3,1 4140 CIRCLE xg*g+mid,yg*g+mid,mid-4 4150 ELSE 4160 a?(len*2) =xg-xend+127 4170 a?(len*2+1)=yg-yend+127 4180 GCOL 3,2 4190 CIRCLE xg*g+mid,yg*g+mid,mid-4 4200 GCOL 3,4 4210 LINE xend*g+mid,yend*g+mid,xg*g+mid,yg*g+mid 4220 ENDIF 4230 xend=xg 4240 yend=yg 4250 grid(xg,yg)=len 4260 len+=1 4270 a?(len*2)=0 4280 a?(len*2+1)=0 4290 PROCpreview(path) 4300ELSE 4310 ox=xg 4320 oy=yg 4330 REPEAT 4340 REPEAT 4350 MOUSE x,y,z 4360 x1=x DIV g 4370 y1=y DIV g 4380 shift=INKEY-1 4390 UNTIL z=0 OR x1<>ox OR y1<>oy 4400 IF z<>0 THEN 4410 IF (NOT shift) OR e=0 OR e=len-1 THEN 4420 IF e=0 THEN 4430 xnew=x1 4440 ynew=y1 4450 ELSE 4460 xnew=a?(e*2) +x1-ox 4470 ynew=a?(e*2+1)+y1-oy 4480 ENDIF 4490 off=FNerr(path,xnew,ynew,e) 4500 IF NOT off THEN 4510 PROCdraw(path) 4520 a?(e*2)=xnew 4530 a?(e*2+1)=ynew 4540 PROCdraw(path) 4550 PROCpreview(path) 4560 ENDIF 4570 ELSE 4580 off=FNoff(x1,y1) 4590 IF NOT off THEN 4600 PROCdraw(path) 4610 a?(e*2) +=(x1-ox) 4620 a?(e*2+1)+=(y1-oy) 4630 a?(e*2+2)+=(ox-x1) 4640 a?(e*2+3)+=(oy-y1) 4650 PROCdraw(path) 4660 PROCpreview(path) 4670 ENDIF 4680 ENDIF 4690 IF NOT off ox=x1:oy=y1 4700 ENDIF 4710 UNTIL z=0 4720 len=FNset_grid(path) 4730ENDIF 4740ENDPROC 4750: 4760DEF PROCdelete_point 4770del=FALSE 4780CASE TRUE OF 4790 WHEN e=0: 4800 IF len=1 THEN 4810 PROCdraw(path) 4820 !a=&FFFF 4830 del=TRUE 4840 ENDIF 4850 WHEN e>0: 4860 IF FNerr(path,127,127,e) THEN 4870 REM off 4880 ELSE 4890 PROCdraw(path) 4900 i=a+e*2 4910 REPEAT 4920 xi=i?2 4930 yi=i?3 4940 ?i=xi 4950 i?1=yi 4960 i+=2 4970 UNTIL xi=0 AND yi=0 4980 del=TRUE 4990 ENDIF 5000 ENDIF 5010ENDCASE 5020IF del THEN 5030 PROCdraw(path) 5040 PROCpreview(path) 5050 len=FNset_grid(path) 5060ENDIF 5070ENDPROC 5080: 5090DEF PROCpreview(p) 5100LOCAL a,i 5110a=paths+p*max_len*2 5120VDU 24,gridx*g+4;2*g;1279;gridy*g;16 5130GCOL 0,4 5140MOVE xstart,ystart 5150IF NOT (a?0=255 AND a?1=255) THEN 5160 FOR times=1 TO 5 5170 i=2 5180 WHILE NOT (a?i=0 AND a?(i+1)=0) 5190 DRAW BY 4*(a?i-127),4*(a?(i+1)-127) 5200 i+=2 5210 ENDWHILE 5220 NEXT 5230ENDIF 5240VDU 26 5250ENDPROC 5260: 5270DEF PROCtest 5280spr$=spr$(path) 5290IF FNexists(spr$) AND len>1 THEN 5300 MODE 12:MODE 9:OFF 5310 MOUSE ON 5320 *FX229,1 5330 PROCset_palette(spr$) 5340 start=paths+path*max_len*2+2 5350 x=640 5360 y=512 5370 b=1 5380 a=start 5390 waits=1 5400 REPEAT 5410 FOR w=1 TO waits:WAIT:NEXT 5420 SYS 6,112,b 5430 SYS 6,113,3-b 5440 b=3-b 5450 CLS 5460 SYS spop,&122,sprites,spr$,x,y,8 5470 IF a?0=0 AND a?1=0 a=start 5480 x+=4*(a?0-127) 5490 y+=4*(a?1-127) 5500 a+=2 5510 MOUSE mx,my,z 5520 IF z=0 held=FALSE 5530 IF z>0 AND NOT held x=mx:y=my:held=TRUE 5540 k=INKEY0 5550 IF k>=ASC"0" AND k<=ASC"9" waits=k-48:IF waits=0 waits=10 5560 UNTIL k=27 5570 *FX 229,0 5580 SYS 6,112,1 5590 SYS 6,113,1 5600 CLS 5610 PROCscreen 5620 PROCview(path) 5630ENDIF 5640ENDPROC 5650: 5660DEF PROCset_palette(s$) 5670SYS spop,&125,sprites,s$,-1 TO ,,,,pal 5680IF pal<>0 THEN 5690 FOR col=0 TO 15 5700 COLOUR col,pal?1,pal?2,pal?3 5710 pal+=8 5720 ENDIF 5730NEXT 5740ENDPROC 5750: 5760DEF PROCcomment 5770COLOUR 136:COLOUR 9 5780IF com$(path)="" VDU 31,27,31,32,32 5790com$(path)=FNalter(com$(path),27,31,12) 5800ENDPROC
� >AlienEd2 � By Antony Bruce Lytis � For 32-bit machines (� (C) BAU April 1993 2: < � 9:� Fȗ � P �init Z�load_file(0,"Aliens") d�load_file(1,"Aliens") n�screen x �edit �� 0 �� �: �� �init �gridx=26 �gridy=26 �g=32 �mid=g/2 �max_path=100 �max_len=100 �� paths max_path*max_len*2 �� grid(gridx,gridy) �� file$(1),type(1),dir$(1) '� spr$(max_path-1),com$(max_path-1) type()=&FFF,&FF9 dir$()="Movement","Sprites" "moves=0 , quit=� 6 sprites=1 @� p=0 � max_path-1 J paths!(p*max_len*2)=&FFFF T� ^xstart=(1280+gridx*g)�2 hystart=(gridy*g)�2 r path=0 |space=�-�-65536 �� sprites space �!sprites=space �sprites!8=16 �6ș "OS_SWINumberFromString",,"XOS_SpriteOp" � spop �ș spop,&109,sprites �� �: �� �load_file(n,a$) �� �ok(n,a$) � � file$(n)=a$ � Ȏ n � �& � 0 : �load_data(dir$(n)+"."+a$) �) � 1 : �load_sprites(dir$(n)+"."+a$) � � �name(n) &� 0: :� �ok(n,a$) D1ș "OS_File",5,dir$(n)+"."+a$ � a,,type,,size Ntype=(type>>8)�&FFF X� a<>1 � =� b� type<>type(n) � =� l� n=1 � size>space � =� v=� �: �� �load_data(file$) �in=�(file$) �p=0 �� � line$=�#in �# � �line$,1)<>";" � line$<>"" � � � �line$,27,1)=" " � �! com$(p)=�strip(�line$,14)) �$ spr$(p)=�strip(�line$,15,13)) � path$=�line$,28) � � �! spr$(p)=�strip(�line$,14)) path$=�line$,15) � a=paths+p*max_len*2 a?0=��path$,1,1)-64 * a?1=��path$,2,1)-64 4 � i=2 � �path$-1 > a?i=�asc(�path$,i+1,1)) H � R a?i=0 \ a?(i+1)=0 f p+=1 p � z � �#in � � #in �� �: �� �strip(s$) �ȕ �s$,1)=" " � s$=�s$,2) �� �ȕ �s$,1)=" " � s$=�s$) �� �=s$ �: �� �load_sprites(file$) ș spop,&10A,sprites,file$ � : $ � �screen . � 1,1 8 � 2,2 B � 3,4 L � 4,4 V � 5,1 ` � 6,2 j � 7,7 t� 8,0,0,&CC ~� 9,&CC,&CC,0 �� 10,&88,&CC,&CC �� 11,&FF,&88,&44 �� 12,&44,&CC,&44 ��aname("File",0) ��aname("Sprs",2) � � 128 �� 10 �5�0,4);"Path: Test Save Quit" �� 7 �� x=0 � gridx � � y=0 � gridy � Ȓ x*g,y*g � � �name(0) �name(1) (� 2: <� �aname(label$,ypos) F � 128 P� 7 Z"�0,ypos);�lpad(label$,5);":"; d � 136 n�7,ypos);�33," "); x � 128 �� �: �� �name(n) � � 136 �� 9 �&�7,n*2);file$(n);�(32-�file$(n)); � � 128 �� �: �� �info(p) �� 11 �spr$=spr$(p) �� spr$="" spr$="""""" �6,4);�" "+�p,3);" "; � � �exists(spr$) � 1 � �lpad(spr$,12); " � 136 ,� 9 6com$=com$(p) @� com$="" com$="""""" J�27,31);�lpad(com$,12); T � 128 ^� h: r� �lpad(s$,l) |=�s$+�l," "),l) �: �� �exists(s$) � ș spop,&118,sprites,s$ � ;v �=(v � 1)=0 �: �� �view(p) ��info(p) ��draw(p) �len=�set_grid(p) ��preview(p) �� �: �� �edit �view(path) held=� � & � 0 ȗ x,y,z : shift=�-1 D ctrl=�-2 N � z=0 held=� X � z<>0 b � z<>0 � � held � l held=� v Ȏ � � � � y>gridy*g:�select � � x>gridx*g: � � y<2*g � � �comment � � � �repos � � � :�grid � � � � � � quit �� �: � �select xpos=x � 32 ypos=31-(y � 32) Ȏ ypos � * � 0,2: 4 �load(ypos � 2) > � 4: H Ȏ � � R' � xpos>=0 � xpos<=8 : �newpath \) � xpos>=10 � xpos<=21 : �newsprite f$ � xpos>=24 � xpos<=27 : �test p$ � xpos>=30 � xpos<=33 : �save z2 � xpos>=36 � xpos<=39 : held=�:� z=7 quit=� � � �� �� �: �� �newpath ��draw(path) �*� z � 4 path+=1:� path=max_path path=0 �,� z � 1 path-=1:� path<0 path=max_path-1 ��view(path) �� �: �� �newsprite � � 128 � 11 #� spr$(path)="" � 31,10,4,32,32 $name$=�alter(spr$(path),10,4,12) $� name$<>"" � key<>27 � . spr$(path)=name$ 8� B�info(path) L� V: `� �save j � 136:� 9 t#name$=�alter(file$(0),7,n*2,28) ~� name$<>"" � � �save_file(name$) �� �� �: �� �save_file(file$) �out=�(dir$(0)+"."+file$) ��bput(out,"; >"+file$) ��bput(out,"") �� p=0 � max_path-1 � a=paths+p*max_len*2 � � � (?a=255 � a?1=255) � � spr$=�lpad(spr$(p),12) com$=com$(p) + � com$<>"" com$=�lpad(com$(p),12)+" " path$=�(?a+64)+�(a?1+64) i=2 ( ȕ � (a?i=0 � a?(i+1)=0) 2% path$+=�chr(a?i)+�chr(a?(i+1)) < i+=2 F � P( �bput(out," "+com$+spr$+" "+path$) Z � d� n � #out x*ș "OS_File",18,dir$(0)+"."+file$,&FFF �file$(0)=file$ �� �: � � �chr(x) �� x<127 � =�(96+(127-x)) �=�(64+(x-127)) �: �� �asc(x$) �� x$>="a" � =127-(�x$-96) �=127+(�x$-64) �: �� �bput(f,s$) �� #f,s$+�10; � : � �load(n) " � 136:� 9 ,#name$=�alter(file$(n),7,n*2,28) 6� name$<>"" � @ �load_file(n,name$) J � n=0 �view(path) T� ^� h: r� �alter(old$,x,y,max) |� 31,x+�old$,y �a$=old$ �� �ȗ � �*FX229,1 �*FX21,0 �� � key=� �$ � key=127 � �a$>0 � 127:a$=�a$) �) � key=21 � key=27 �ĩa$,�127);:a$="" � � key=27 a$=old$:�a$; �0 � key>32 � key<127 � �a$<max a$+=�key:� key �� key=13 � key=27 �� key=27 a$="" *FX229,0 � ȗ � & � 128 0=a$ :: D� �repos Nxstart=x Xystart=y b�preview(path) l� v: �� �err(p,xn,yn,at) �� a,x,y,ox,oy �a=paths+p*max_len*2 � at=a+at*2 �ox=?at:oy=at?1 �?at=xn:at?1=yn � x=a?0 � y=a?1 �err=�off(x,y) �� � (x=255 � y=255) � � a+=2 � ȕ � (?a=0 � a?1=0) � � err � x+=(a?0-127) y+=(a?1-127) a+=2 err=�off(x,y) � *� 4 ?at=ox >at?1=oy H=err R: \� �off(xx,yy) f*=(xx<0 � yy<0 � xx>=gridx � yy>=gridy) p: z� �set_grid(p) � grid()=-1 �a=paths+p*max_len*2 � x=a?0 � y=a?1 �l=0 �� � (x=255 � y=255) � � grid(x,y)=l � l+=1 � a+=2 � ȕ � (?a=0 � a?1=0) � x+=(a?0-127) � y+=(a?1-127) � � grid(x,y)<0 grid(x,y)=l a+=2 l+=1 � $� .=l 8: B� �draw(p) L� a,x,y,ox,oy Va=paths+p*max_len*2 ` x=a?0 j y=a?1 tl=0 ~� � (x=255 � y=255) � � � 3,1 � ȏ x*g+mid,y*g+mid,mid-4 � ox=x*g+mid � oy=y*g+mid � l+=1 � a+=2 � ȕ � (?a=0 � a?1=0) � x+=(a?0-127) � y+=(a?1-127) � � 3,2 � ȏ x*g+mid,y*g+mid,mid-4 � � 3,4 � ox,oy ox=x*g+mid oy=y*g+mid � ox,oy ( a+=2 2 l+=1 < � F� P xend=x Z yend=y d� n: x� �grid �xg=x � g �yg=y � g �a=paths+path*max_len*2 �e=grid(xg,yg) �� ctrl � � �delete_point �� � �add_point �� �� �: �� �add_point �� e<0 � � len=0 � ?a=xg a?1=yg " � 3,1 , ȏ xg*g+mid,yg*g+mid,mid-4 6 � @ a?(len*2) =xg-xend+127 J a?(len*2+1)=yg-yend+127 T � 3,2 ^ ȏ xg*g+mid,yg*g+mid,mid-4 h � 3,4 r/ � xend*g+mid,yend*g+mid,xg*g+mid,yg*g+mid | � � xend=xg � yend=yg � grid(xg,yg)=len � len+=1 � a?(len*2)=0 � a?(len*2+1)=0 � �preview(path) �� � ox=xg � oy=yg � � � � � ȗ x,y,z x1=x � g y1=y � g shift=�-1 & � z=0 � x1<>ox � y1<>oy 0 � z<>0 � :$ � (� shift) � e=0 � e=len-1 � D � e=0 � N xnew=x1 X ynew=y1 b � l xnew=a?(e*2) +x1-ox v ynew=a?(e*2+1)+y1-oy � � �" off=�err(path,xnew,ynew,e) � � � off � � �draw(path) � a?(e*2)=xnew � a?(e*2+1)=ynew � �draw(path) � �preview(path) � � � � � off=�off(x1,y1) � � � off � � �draw(path) a?(e*2) +=(x1-ox) a?(e*2+1)+=(y1-oy) a?(e*2+2)+=(ox-x1) a?(e*2+3)+=(oy-y1) * �draw(path) 4 �preview(path) > � H � R � � off ox=x1:oy=y1 \ � f � z=0 p len=�set_grid(path) z� �� �: �� �delete_point � del=� � Ȏ � � � � e=0: � � len=1 � � �draw(path) � !a=&FFFF � del=� � � � � e>0: � � �err(path,127,127,e) � � off � �draw(path) $ i=a+e*2 . � 8 xi=i?2 B yi=i?3 L ?i=xi V i?1=yi ` i+=2 j � xi=0 � yi=0 t del=� ~ � � � �� �� del � � �draw(path) � �preview(path) � len=�set_grid(path) �� �� �: �� �preview(p) � � a,i �a=paths+p*max_len*2 &� 24,gridx*g+4;2*g;1279;gridy*g;16 � 0,4 � xstart,ystart � � (a?0=255 � a?1=255) � ( � times=1 � 5 2 i=2 < ȕ � (a?i=0 � a?(i+1)=0) F' � BY 4*(a?i-127),4*(a?(i+1)-127) P i+=2 Z � d � n� x� 26 �� �: �� �test �spr$=spr$(path) �� �exists(spr$) � len>1 � � � 12:� 9:� � ȗ � � *FX229,1 � �set_palette(spr$) �! start=paths+path*max_len*2+2 � x=640 � y=512 � b=1 a=start waits=1 � " � w=1 � waits:Ȗ:� , ș 6,112,b 6 ș 6,113,3-b @ b=3-b J � T% ș spop,&122,sprites,spr$,x,y,8 ^ � a?0=0 � a?1=0 a=start h x+=4*(a?0-127) r y+=4*(a?1-127) | a+=2 � ȗ mx,my,z � � z=0 held=� �% � z>0 � � held x=mx:y=my:held=� � k=�0 �7 � k>=�"0" � k<=�"9" waits=k-48:� waits=0 waits=10 � � k=27 � *FX 229,0 � ș 6,112,1 � ș 6,113,1 � � � �screen � �view(path) �� � : � �set_palette(s$) &(ș spop,&125,sprites,s$,-1 � ,,,,pal 0� pal<>0 � : � col=0 � 15 D � col,pal?1,pal?2,pal?3 N pal+=8 X � b� l� v: �� �comment � � 136:� 9 �$� com$(path)="" � 31,27,31,32,32 �*com$(path)=�alter(com$(path),27,31,12) �� �
00000000 0d 00 0a 13 f4 20 20 20 20 20 3e 41 6c 69 65 6e |..... >Alien| 00000010 45 64 32 0d 00 14 1c f4 20 42 79 20 20 41 6e 74 |Ed2..... By Ant| 00000020 6f 6e 79 20 42 72 75 63 65 20 4c 79 74 69 73 0d |ony Bruce Lytis.| 00000030 00 1e 19 f4 20 46 6f 72 20 33 32 2d 62 69 74 20 |.... For 32-bit | 00000040 6d 61 63 68 69 6e 65 73 0d 00 28 18 f4 20 28 43 |machines..(.. (C| 00000050 29 20 42 41 55 20 41 70 72 69 6c 20 31 39 39 33 |) BAU April 1993| 00000060 0d 00 32 05 3a 0d 00 3c 09 eb 20 39 3a 87 0d 00 |..2.:..<.. 9:...| 00000070 46 08 c8 97 20 ee 0d 00 50 09 f2 69 6e 69 74 0d |F... ...P..init.| 00000080 00 5a 1a f2 6c 6f 61 64 5f 66 69 6c 65 28 30 2c |.Z..load_file(0,| 00000090 22 41 6c 69 65 6e 73 22 29 0d 00 64 1a f2 6c 6f |"Aliens")..d..lo| 000000a0 61 64 5f 66 69 6c 65 28 31 2c 22 41 6c 69 65 6e |ad_file(1,"Alien| 000000b0 73 22 29 0d 00 6e 0b f2 73 63 72 65 65 6e 0d 00 |s")..n..screen..| 000000c0 78 09 f2 65 64 69 74 0d 00 82 07 eb 20 30 0d 00 |x..edit..... 0..| 000000d0 8c 05 e0 0d 00 96 05 3a 0d 00 a0 0b dd 20 f2 69 |.......:..... .i| 000000e0 6e 69 74 0d 00 aa 0c 67 72 69 64 78 3d 32 36 0d |nit....gridx=26.| 000000f0 00 b4 0c 67 72 69 64 79 3d 32 36 0d 00 be 08 67 |...gridy=26....g| 00000100 3d 33 32 0d 00 c8 0b 6d 69 64 3d 67 2f 32 0d 00 |=32....mid=g/2..| 00000110 d2 10 6d 61 78 5f 70 61 74 68 3d 31 30 30 0d 00 |..max_path=100..| 00000120 dc 0f 6d 61 78 5f 6c 65 6e 3d 31 30 30 0d 00 e6 |..max_len=100...| 00000130 1e de 20 70 61 74 68 73 20 6d 61 78 5f 70 61 74 |.. paths max_pat| 00000140 68 2a 6d 61 78 5f 6c 65 6e 2a 32 0d 00 f0 17 de |h*max_len*2.....| 00000150 20 67 72 69 64 28 67 72 69 64 78 2c 67 72 69 64 | grid(gridx,grid| 00000160 79 29 0d 00 fa 1e de 20 66 69 6c 65 24 28 31 29 |y)..... file$(1)| 00000170 2c 74 79 70 65 28 31 29 2c 64 69 72 24 28 31 29 |,type(1),dir$(1)| 00000180 0d 01 04 27 de 20 73 70 72 24 28 6d 61 78 5f 70 |...'. spr$(max_p| 00000190 61 74 68 2d 31 29 2c 63 6f 6d 24 28 6d 61 78 5f |ath-1),com$(max_| 000001a0 70 61 74 68 2d 31 29 0d 01 0e 14 74 79 70 65 28 |path-1)....type(| 000001b0 29 3d 26 46 46 46 2c 26 46 46 39 0d 01 18 1f 64 |)=&FFF,&FF9....d| 000001c0 69 72 24 28 29 3d 22 4d 6f 76 65 6d 65 6e 74 22 |ir$()="Movement"| 000001d0 2c 22 53 70 72 69 74 65 73 22 0d 01 22 0b 6d 6f |,"Sprites"..".mo| 000001e0 76 65 73 3d 30 0d 01 2c 0a 71 75 69 74 3d a3 0d |ves=0..,.quit=..| 000001f0 01 36 0d 73 70 72 69 74 65 73 3d 31 0d 01 40 16 |.6.sprites=1..@.| 00000200 e3 20 70 3d 30 20 b8 20 6d 61 78 5f 70 61 74 68 |. p=0 . max_path| 00000210 2d 31 0d 01 4a 1e 20 70 61 74 68 73 21 28 70 2a |-1..J. paths!(p*| 00000220 6d 61 78 5f 6c 65 6e 2a 32 29 3d 26 46 46 46 46 |max_len*2)=&FFFF| 00000230 0d 01 54 05 ed 0d 01 5e 1b 78 73 74 61 72 74 3d |..T....^.xstart=| 00000240 28 31 32 38 30 2b 67 72 69 64 78 2a 67 29 81 32 |(1280+gridx*g).2| 00000250 0d 01 68 16 79 73 74 61 72 74 3d 28 67 72 69 64 |..h.ystart=(grid| 00000260 79 2a 67 29 81 32 0d 01 72 0a 70 61 74 68 3d 30 |y*g).2..r.path=0| 00000270 0d 01 7c 13 73 70 61 63 65 3d 93 2d e0 2d 36 35 |..|.space=.-.-65| 00000280 35 33 36 0d 01 86 13 de 20 73 70 72 69 74 65 73 |536..... sprites| 00000290 20 73 70 61 63 65 0d 01 90 12 21 73 70 72 69 74 | space....!sprit| 000002a0 65 73 3d 73 70 61 63 65 0d 01 9a 10 73 70 72 69 |es=space....spri| 000002b0 74 65 73 21 38 3d 31 36 0d 01 a4 36 c8 99 20 22 |tes!8=16...6.. "| 000002c0 4f 53 5f 53 57 49 4e 75 6d 62 65 72 46 72 6f 6d |OS_SWINumberFrom| 000002d0 53 74 72 69 6e 67 22 2c 2c 22 58 4f 53 5f 53 70 |String",,"XOS_Sp| 000002e0 72 69 74 65 4f 70 22 20 b8 20 73 70 6f 70 0d 01 |riteOp" . spop..| 000002f0 ae 18 c8 99 20 73 70 6f 70 2c 26 31 30 39 2c 73 |.... spop,&109,s| 00000300 70 72 69 74 65 73 0d 01 b8 05 e1 0d 01 c2 05 3a |prites.........:| 00000310 0d 01 cc 16 dd 20 f2 6c 6f 61 64 5f 66 69 6c 65 |..... .load_file| 00000320 28 6e 2c 61 24 29 0d 01 d6 11 e7 20 a4 6f 6b 28 |(n,a$)..... .ok(| 00000330 6e 2c 61 24 29 20 8c 0d 01 e0 10 20 66 69 6c 65 |n,a$) ..... file| 00000340 24 28 6e 29 3d 61 24 0d 01 ea 0b 20 c8 8e 20 6e |$(n)=a$.... .. n| 00000350 20 ca 0d 01 f4 26 20 20 c9 20 30 20 3a 20 f2 6c | ....& . 0 : .l| 00000360 6f 61 64 5f 64 61 74 61 28 64 69 72 24 28 6e 29 |oad_data(dir$(n)| 00000370 2b 22 2e 22 2b 61 24 29 0d 01 fe 29 20 20 c9 20 |+"."+a$)...) . | 00000380 31 20 3a 20 f2 6c 6f 61 64 5f 73 70 72 69 74 65 |1 : .load_sprite| 00000390 73 28 64 69 72 24 28 6e 29 2b 22 2e 22 2b 61 24 |s(dir$(n)+"."+a$| 000003a0 29 0d 02 08 06 20 cb 0d 02 12 05 cd 0d 02 1c 0c |).... ..........| 000003b0 f2 6e 61 6d 65 28 6e 29 0d 02 26 05 e1 0d 02 30 |.name(n)..&....0| 000003c0 05 3a 0d 02 3a 0f dd 20 a4 6f 6b 28 6e 2c 61 24 |.:..:.. .ok(n,a$| 000003d0 29 0d 02 44 31 c8 99 20 22 4f 53 5f 46 69 6c 65 |)..D1.. "OS_File| 000003e0 22 2c 35 2c 64 69 72 24 28 6e 29 2b 22 2e 22 2b |",5,dir$(n)+"."+| 000003f0 61 24 20 b8 20 61 2c 2c 74 79 70 65 2c 2c 73 69 |a$ . a,,type,,si| 00000400 7a 65 0d 02 4e 17 74 79 70 65 3d 28 74 79 70 65 |ze..N.type=(type| 00000410 3e 3e 38 29 80 26 46 46 46 0d 02 58 0f e7 20 61 |>>8).&FFF..X.. a| 00000420 3c 3e 31 20 8c 20 3d a3 0d 02 62 18 e7 20 74 79 |<>1 . =...b.. ty| 00000430 70 65 3c 3e 74 79 70 65 28 6e 29 20 8c 20 3d a3 |pe<>type(n) . =.| 00000440 0d 02 6c 1b e7 20 6e 3d 31 20 80 20 73 69 7a 65 |..l.. n=1 . size| 00000450 3e 73 70 61 63 65 20 8c 20 3d a3 0d 02 76 06 3d |>space . =...v.=| 00000460 b9 0d 02 80 05 3a 0d 02 8a 17 dd 20 f2 6c 6f 61 |.....:..... .loa| 00000470 64 5f 64 61 74 61 28 66 69 6c 65 24 29 0d 02 94 |d_data(file$)...| 00000480 0f 69 6e 3d 8e 28 66 69 6c 65 24 29 0d 02 9e 07 |.in=.(file$)....| 00000490 70 3d 30 0d 02 a8 05 f5 0d 02 b2 0f 20 6c 69 6e |p=0......... lin| 000004a0 65 24 3d be 23 69 6e 0d 02 bc 23 20 e7 20 c0 6c |e$=.#in...# . .l| 000004b0 69 6e 65 24 2c 31 29 3c 3e 22 3b 22 20 80 20 6c |ine$,1)<>";" . l| 000004c0 69 6e 65 24 3c 3e 22 22 20 8c 0d 02 c6 1a 20 20 |ine$<>"" ..... | 000004d0 e7 20 c1 6c 69 6e 65 24 2c 32 37 2c 31 29 3d 22 |. .line$,27,1)="| 000004e0 20 22 20 8c 0d 02 d0 21 20 20 20 63 6f 6d 24 28 | " ....! com$(| 000004f0 70 29 3d a4 73 74 72 69 70 28 c0 6c 69 6e 65 24 |p)=.strip(.line$| 00000500 2c 31 34 29 29 0d 02 da 24 20 20 20 73 70 72 24 |,14))...$ spr$| 00000510 28 70 29 3d a4 73 74 72 69 70 28 c1 6c 69 6e 65 |(p)=.strip(.line| 00000520 24 2c 31 35 2c 31 33 29 29 0d 02 e4 17 20 20 20 |$,15,13)).... | 00000530 70 61 74 68 24 3d c1 6c 69 6e 65 24 2c 32 38 29 |path$=.line$,28)| 00000540 0d 02 ee 07 20 20 cc 0d 02 f8 21 20 20 20 73 70 |.... ....! sp| 00000550 72 24 28 70 29 3d a4 73 74 72 69 70 28 c0 6c 69 |r$(p)=.strip(.li| 00000560 6e 65 24 2c 31 34 29 29 0d 03 02 17 20 20 20 70 |ne$,14)).... p| 00000570 61 74 68 24 3d c1 6c 69 6e 65 24 2c 31 35 29 0d |ath$=.line$,15).| 00000580 03 0c 07 20 20 cd 0d 03 16 19 20 20 61 3d 70 61 |... ..... a=pa| 00000590 74 68 73 2b 70 2a 6d 61 78 5f 6c 65 6e 2a 32 0d |ths+p*max_len*2.| 000005a0 03 20 19 20 20 61 3f 30 3d 97 c1 70 61 74 68 24 |. . a?0=..path$| 000005b0 2c 31 2c 31 29 2d 36 34 0d 03 2a 19 20 20 61 3f |,1,1)-64..*. a?| 000005c0 31 3d 97 c1 70 61 74 68 24 2c 32 2c 31 29 2d 36 |1=..path$,2,1)-6| 000005d0 34 0d 03 34 16 20 20 e3 20 69 3d 32 20 b8 20 a9 |4..4. . i=2 . .| 000005e0 70 61 74 68 24 2d 31 0d 03 3e 1e 20 20 20 61 3f |path$-1..>. a?| 000005f0 69 3d a4 61 73 63 28 c1 70 61 74 68 24 2c 69 2b |i=.asc(.path$,i+| 00000600 31 2c 31 29 29 0d 03 48 07 20 20 ed 0d 03 52 0b |1,1))..H. ...R.| 00000610 20 20 61 3f 69 3d 30 0d 03 5c 0f 20 20 61 3f 28 | a?i=0..\. a?(| 00000620 69 2b 31 29 3d 30 0d 03 66 0a 20 20 70 2b 3d 31 |i+1)=0..f. p+=1| 00000630 0d 03 70 06 20 cd 0d 03 7a 0a fd 20 c5 23 69 6e |..p. ...z.. .#in| 00000640 0d 03 84 09 d9 20 23 69 6e 0d 03 8e 05 e1 0d 03 |..... #in.......| 00000650 98 05 3a 0d 03 a2 10 dd 20 a4 73 74 72 69 70 28 |..:..... .strip(| 00000660 73 24 29 0d 03 ac 11 c8 95 20 c0 73 24 2c 31 29 |s$)...... .s$,1)| 00000670 3d 22 20 22 0d 03 b6 0e 20 73 24 3d c1 73 24 2c |=" ".... s$=.s$,| 00000680 32 29 0d 03 c0 05 ce 0d 03 ca 11 c8 95 20 c2 73 |2)........... .s| 00000690 24 2c 31 29 3d 22 20 22 0d 03 d4 0c 20 73 24 3d |$,1)=" ".... s$=| 000006a0 c0 73 24 29 0d 03 de 05 ce 0d 03 e8 07 3d 73 24 |.s$).........=s$| 000006b0 0d 03 f2 05 3a 0d 03 fc 1a dd 20 f2 6c 6f 61 64 |....:..... .load| 000006c0 5f 73 70 72 69 74 65 73 28 66 69 6c 65 24 29 0d |_sprites(file$).| 000006d0 04 06 1e c8 99 20 73 70 6f 70 2c 26 31 30 41 2c |..... spop,&10A,| 000006e0 73 70 72 69 74 65 73 2c 66 69 6c 65 24 0d 04 10 |sprites,file$...| 000006f0 05 e1 0d 04 1a 05 3a 0d 04 24 0d dd 20 f2 73 63 |......:..$.. .sc| 00000700 72 65 65 6e 0d 04 2e 09 fb 20 31 2c 31 0d 04 38 |reen..... 1,1..8| 00000710 09 fb 20 32 2c 32 0d 04 42 09 fb 20 33 2c 34 0d |.. 2,2..B.. 3,4.| 00000720 04 4c 09 fb 20 34 2c 34 0d 04 56 09 fb 20 35 2c |.L.. 4,4..V.. 5,| 00000730 31 0d 04 60 09 fb 20 36 2c 32 0d 04 6a 09 fb 20 |1..`.. 6,2..j.. | 00000740 37 2c 37 0d 04 74 0f fb 20 38 2c 30 2c 30 2c 26 |7,7..t.. 8,0,0,&| 00000750 43 43 0d 04 7e 11 fb 20 39 2c 26 43 43 2c 26 43 |CC..~.. 9,&CC,&C| 00000760 43 2c 30 0d 04 88 14 fb 20 31 30 2c 26 38 38 2c |C,0..... 10,&88,| 00000770 26 43 43 2c 26 43 43 0d 04 92 14 fb 20 31 31 2c |&CC,&CC..... 11,| 00000780 26 46 46 2c 26 38 38 2c 26 34 34 0d 04 9c 14 fb |&FF,&88,&44.....| 00000790 20 31 32 2c 26 34 34 2c 26 43 43 2c 26 34 34 0d | 12,&44,&CC,&44.| 000007a0 04 a6 14 f2 61 6e 61 6d 65 28 22 46 69 6c 65 22 |....aname("File"| 000007b0 2c 30 29 0d 04 b0 14 f2 61 6e 61 6d 65 28 22 53 |,0).....aname("S| 000007c0 70 72 73 22 2c 32 29 0d 04 ba 09 fb 20 31 32 38 |prs",2)..... 128| 000007d0 0d 04 c4 08 fb 20 31 30 0d 04 ce 35 f1 8a 30 2c |..... 10...5..0,| 000007e0 34 29 3b 22 50 61 74 68 3a 20 20 20 20 20 20 20 |4);"Path: | 000007f0 20 20 20 20 20 20 20 20 20 20 20 20 54 65 73 74 | Test| 00000800 20 20 53 61 76 65 20 20 51 75 69 74 22 0d 04 d8 | Save Quit"...| 00000810 07 e6 20 37 0d 04 e2 11 e3 20 78 3d 30 20 b8 20 |.. 7..... x=0 . | 00000820 67 72 69 64 78 0d 04 ec 12 20 e3 20 79 3d 30 20 |gridx.... . y=0 | 00000830 b8 20 67 72 69 64 79 0d 04 f6 10 20 20 c8 92 20 |. gridy.... .. | 00000840 78 2a 67 2c 79 2a 67 0d 05 00 06 20 ed 0d 05 0a |x*g,y*g.... ....| 00000850 05 ed 0d 05 14 0c f2 6e 61 6d 65 28 30 29 0d 05 |.......name(0)..| 00000860 1e 0c f2 6e 61 6d 65 28 31 29 0d 05 28 05 e1 0d |...name(1)..(...| 00000870 05 32 05 3a 0d 05 3c 19 dd 20 f2 61 6e 61 6d 65 |.2.:..<.. .aname| 00000880 28 6c 61 62 65 6c 24 2c 79 70 6f 73 29 0d 05 46 |(label$,ypos)..F| 00000890 09 fb 20 31 32 38 0d 05 50 07 fb 20 37 0d 05 5a |.. 128..P.. 7..Z| 000008a0 22 f1 8a 30 2c 79 70 6f 73 29 3b a4 6c 70 61 64 |"..0,ypos);.lpad| 000008b0 28 6c 61 62 65 6c 24 2c 35 29 3b 22 3a 22 3b 0d |(label$,5);":";.| 000008c0 05 64 09 fb 20 31 33 36 0d 05 6e 17 f1 8a 37 2c |.d.. 136..n...7,| 000008d0 79 70 6f 73 29 3b c4 33 33 2c 22 20 22 29 3b 0d |ypos);.33," ");.| 000008e0 05 78 09 fb 20 31 32 38 0d 05 82 05 e1 0d 05 8c |.x.. 128........| 000008f0 05 3a 0d 05 96 0e dd 20 f2 6e 61 6d 65 28 6e 29 |.:..... .name(n)| 00000900 0d 05 a0 09 fb 20 31 33 36 0d 05 aa 07 fb 20 39 |..... 136..... 9| 00000910 0d 05 b4 26 f1 8a 37 2c 6e 2a 32 29 3b 66 69 6c |...&..7,n*2);fil| 00000920 65 24 28 6e 29 3b 89 28 33 32 2d a9 66 69 6c 65 |e$(n);.(32-.file| 00000930 24 28 6e 29 29 3b 0d 05 be 09 fb 20 31 32 38 0d |$(n));..... 128.| 00000940 05 c8 05 e1 0d 05 d2 05 3a 0d 05 dc 0e dd 20 f2 |........:..... .| 00000950 69 6e 66 6f 28 70 29 0d 05 e6 08 fb 20 31 31 0d |info(p)..... 11.| 00000960 05 f0 10 73 70 72 24 3d 73 70 72 24 28 70 29 0d |...spr$=spr$(p).| 00000970 05 fa 19 e7 20 73 70 72 24 3d 22 22 20 73 70 72 |.... spr$="" spr| 00000980 24 3d 22 22 22 22 22 22 0d 06 04 1c f1 8a 36 2c |$=""""""......6,| 00000990 34 29 3b c2 22 20 20 20 22 2b c3 70 2c 33 29 3b |4);." "+.p,3);| 000009a0 22 20 22 3b 0d 06 0e 19 e7 20 ac 20 a4 65 78 69 |" ";..... . .exi| 000009b0 73 74 73 28 73 70 72 24 29 20 fb 20 31 0d 06 18 |sts(spr$) . 1...| 000009c0 15 f1 20 a4 6c 70 61 64 28 73 70 72 24 2c 31 32 |.. .lpad(spr$,12| 000009d0 29 3b 0d 06 22 09 fb 20 31 33 36 0d 06 2c 07 fb |);..".. 136..,..| 000009e0 20 39 0d 06 36 10 63 6f 6d 24 3d 63 6f 6d 24 28 | 9..6.com$=com$(| 000009f0 70 29 0d 06 40 19 e7 20 63 6f 6d 24 3d 22 22 20 |p)..@.. com$="" | 00000a00 63 6f 6d 24 3d 22 22 22 22 22 22 0d 06 4a 1c f1 |com$=""""""..J..| 00000a10 8a 32 37 2c 33 31 29 3b a4 6c 70 61 64 28 63 6f |.27,31);.lpad(co| 00000a20 6d 24 2c 31 32 29 3b 0d 06 54 09 fb 20 31 32 38 |m$,12);..T.. 128| 00000a30 0d 06 5e 05 e1 0d 06 68 05 3a 0d 06 72 11 dd 20 |..^....h.:..r.. | 00000a40 a4 6c 70 61 64 28 73 24 2c 6c 29 0d 06 7c 13 3d |.lpad(s$,l)..|.=| 00000a50 c0 73 24 2b c4 6c 2c 22 20 22 29 2c 6c 29 0d 06 |.s$+.l," "),l)..| 00000a60 86 05 3a 0d 06 90 11 dd 20 a4 65 78 69 73 74 73 |..:..... .exists| 00000a70 28 73 24 29 0d 06 9a 20 c8 99 20 73 70 6f 70 2c |(s$)... .. spop,| 00000a80 26 31 31 38 2c 73 70 72 69 74 65 73 2c 73 24 20 |&118,sprites,s$ | 00000a90 b8 20 3b 76 0d 06 a4 0e 3d 28 76 20 80 20 31 29 |. ;v....=(v . 1)| 00000aa0 3d 30 0d 06 ae 05 3a 0d 06 b8 0e dd 20 f2 76 69 |=0....:..... .vi| 00000ab0 65 77 28 70 29 0d 06 c2 0c f2 69 6e 66 6f 28 70 |ew(p).....info(p| 00000ac0 29 0d 06 cc 0c f2 64 72 61 77 28 70 29 0d 06 d6 |).....draw(p)...| 00000ad0 14 6c 65 6e 3d a4 73 65 74 5f 67 72 69 64 28 70 |.len=.set_grid(p| 00000ae0 29 0d 06 e0 0f f2 70 72 65 76 69 65 77 28 70 29 |).....preview(p)| 00000af0 0d 06 ea 05 e1 0d 06 f4 05 3a 0d 06 fe 0b dd 20 |.........:..... | 00000b00 f2 65 64 69 74 0d 07 08 0f f2 76 69 65 77 28 70 |.edit.....view(p| 00000b10 61 74 68 29 0d 07 12 0a 68 65 6c 64 3d a3 0d 07 |ath)....held=...| 00000b20 1c 05 f5 0d 07 26 06 20 f5 0d 07 30 0e 20 20 c8 |.....&. ...0. .| 00000b30 97 20 78 2c 79 2c 7a 0d 07 3a 0f 20 20 73 68 69 |. x,y,z..:. shi| 00000b40 66 74 3d a6 2d 31 0d 07 44 0e 20 20 63 74 72 6c |ft=.-1..D. ctrl| 00000b50 3d a6 2d 32 0d 07 4e 12 20 20 e7 20 7a 3d 30 20 |=.-2..N. . z=0 | 00000b60 68 65 6c 64 3d a3 0d 07 58 0b 20 fd 20 7a 3c 3e |held=...X. . z<>| 00000b70 30 0d 07 62 16 20 e7 20 7a 3c 3e 30 20 80 20 ac |0..b. . z<>0 . .| 00000b80 20 68 65 6c 64 20 8c 0d 07 6c 0c 20 20 68 65 6c | held ...l. hel| 00000b90 64 3d b9 0d 07 76 0c 20 20 c8 8e 20 b9 20 ca 0d |d=...v. .. . ..| 00000ba0 07 80 1a 20 20 20 c9 20 79 3e 67 72 69 64 79 2a |... . y>gridy*| 00000bb0 67 3a f2 73 65 6c 65 63 74 0d 07 8a 13 20 20 20 |g:.select.... | 00000bc0 c9 20 78 3e 67 72 69 64 78 2a 67 3a 0d 07 94 11 |. x>gridx*g:....| 00000bd0 20 20 20 20 e7 20 79 3c 32 2a 67 20 8c 0d 07 9e | . y<2*g ....| 00000be0 11 20 20 20 20 20 f2 63 6f 6d 6d 65 6e 74 0d 07 |. .comment..| 00000bf0 a8 09 20 20 20 20 cc 0d 07 b2 0f 20 20 20 20 20 |.. ..... | 00000c00 f2 72 65 70 6f 73 0d 07 bc 09 20 20 20 20 cd 0d |.repos.... ..| 00000c10 07 c6 13 20 20 20 7f 20 20 20 20 20 3a f2 67 72 |... . :.gr| 00000c20 69 64 0d 07 d0 07 20 20 cb 0d 07 da 06 20 cd 0d |id.... ..... ..| 00000c30 07 e4 0a fd 20 71 75 69 74 0d 07 ee 05 e1 0d 07 |.... quit.......| 00000c40 f8 05 3a 0d 08 02 0d dd 20 f2 73 65 6c 65 63 74 |..:..... .select| 00000c50 0d 08 0c 0f 78 70 6f 73 3d 78 20 81 20 33 32 0d |....xpos=x . 32.| 00000c60 08 16 14 79 70 6f 73 3d 33 31 2d 28 79 20 81 20 |...ypos=31-(y . | 00000c70 33 32 29 0d 08 20 0d c8 8e 20 79 70 6f 73 20 ca |32).. ... ypos .| 00000c80 0d 08 2a 0b 20 c9 20 30 2c 32 3a 0d 08 34 15 20 |..*. . 0,2:..4. | 00000c90 20 f2 6c 6f 61 64 28 79 70 6f 73 20 81 20 32 29 | .load(ypos . 2)| 00000ca0 0d 08 3e 09 20 c9 20 34 3a 0d 08 48 0c 20 20 c8 |..>. . 4:..H. .| 00000cb0 8e 20 b9 20 ca 0d 08 52 27 20 20 20 c9 20 78 70 |. . ...R' . xp| 00000cc0 6f 73 3e 3d 30 20 20 80 20 78 70 6f 73 3c 3d 38 |os>=0 . xpos<=8| 00000cd0 20 20 3a 20 f2 6e 65 77 70 61 74 68 0d 08 5c 29 | : .newpath..\)| 00000ce0 20 20 20 c9 20 78 70 6f 73 3e 3d 31 30 20 80 20 | . xpos>=10 . | 00000cf0 78 70 6f 73 3c 3d 32 31 20 3a 20 f2 6e 65 77 73 |xpos<=21 : .news| 00000d00 70 72 69 74 65 0d 08 66 24 20 20 20 c9 20 78 70 |prite..f$ . xp| 00000d10 6f 73 3e 3d 32 34 20 80 20 78 70 6f 73 3c 3d 32 |os>=24 . xpos<=2| 00000d20 37 20 3a 20 f2 74 65 73 74 0d 08 70 24 20 20 20 |7 : .test..p$ | 00000d30 c9 20 78 70 6f 73 3e 3d 33 30 20 80 20 78 70 6f |. xpos>=30 . xpo| 00000d40 73 3c 3d 33 33 20 3a 20 f2 73 61 76 65 0d 08 7a |s<=33 : .save..z| 00000d50 32 20 20 20 c9 20 78 70 6f 73 3e 3d 33 36 20 80 |2 . xpos>=36 .| 00000d60 20 78 70 6f 73 3c 3d 33 39 20 3a 20 68 65 6c 64 | xpos<=39 : held| 00000d70 3d a3 3a e7 20 7a 3d 37 20 71 75 69 74 3d b9 0d |=.:. z=7 quit=..| 00000d80 08 84 07 20 20 cb 0d 08 8e 05 cb 0d 08 98 05 e1 |... ...........| 00000d90 0d 08 a2 05 3a 0d 08 ac 0e dd 20 f2 6e 65 77 70 |....:..... .newp| 00000da0 61 74 68 0d 08 b6 0f f2 64 72 61 77 28 70 61 74 |ath.....draw(pat| 00000db0 68 29 0d 08 c0 2a e7 20 7a 20 80 20 34 20 70 61 |h)...*. z . 4 pa| 00000dc0 74 68 2b 3d 31 3a e7 20 70 61 74 68 3d 6d 61 78 |th+=1:. path=max| 00000dd0 5f 70 61 74 68 20 70 61 74 68 3d 30 0d 08 ca 2c |_path path=0...,| 00000de0 e7 20 7a 20 80 20 31 20 70 61 74 68 2d 3d 31 3a |. z . 1 path-=1:| 00000df0 e7 20 70 61 74 68 3c 30 20 70 61 74 68 3d 6d 61 |. path<0 path=ma| 00000e00 78 5f 70 61 74 68 2d 31 0d 08 d4 0f f2 76 69 65 |x_path-1.....vie| 00000e10 77 28 70 61 74 68 29 0d 08 de 05 e1 0d 08 e8 05 |w(path).........| 00000e20 3a 0d 08 f2 10 dd 20 f2 6e 65 77 73 70 72 69 74 |:..... .newsprit| 00000e30 65 0d 08 fc 09 fb 20 31 32 38 0d 09 06 08 fb 20 |e..... 128..... | 00000e40 31 31 0d 09 10 23 e7 20 73 70 72 24 28 70 61 74 |11...#. spr$(pat| 00000e50 68 29 3d 22 22 20 ef 20 33 31 2c 31 30 2c 34 2c |h)="" . 31,10,4,| 00000e60 33 32 2c 33 32 0d 09 1a 24 6e 61 6d 65 24 3d a4 |32,32...$name$=.| 00000e70 61 6c 74 65 72 28 73 70 72 24 28 70 61 74 68 29 |alter(spr$(path)| 00000e80 2c 31 30 2c 34 2c 31 32 29 0d 09 24 1b e7 20 6e |,10,4,12)..$.. n| 00000e90 61 6d 65 24 3c 3e 22 22 20 84 20 6b 65 79 3c 3e |ame$<>"" . key<>| 00000ea0 32 37 20 8c 0d 09 2e 15 20 73 70 72 24 28 70 61 |27 ..... spr$(pa| 00000eb0 74 68 29 3d 6e 61 6d 65 24 0d 09 38 05 cd 0d 09 |th)=name$..8....| 00000ec0 42 0f f2 69 6e 66 6f 28 70 61 74 68 29 0d 09 4c |B..info(path)..L| 00000ed0 05 e1 0d 09 56 05 3a 0d 09 60 0b dd 20 f2 73 61 |....V.:..`.. .sa| 00000ee0 76 65 0d 09 6a 0d fb 20 31 33 36 3a fb 20 39 0d |ve..j.. 136:. 9.| 00000ef0 09 74 23 6e 61 6d 65 24 3d a4 61 6c 74 65 72 28 |.t#name$=.alter(| 00000f00 66 69 6c 65 24 28 30 29 2c 37 2c 6e 2a 32 2c 32 |file$(0),7,n*2,2| 00000f10 38 29 0d 09 7e 11 e7 20 6e 61 6d 65 24 3c 3e 22 |8)..~.. name$<>"| 00000f20 22 20 8c 0d 09 88 16 20 f2 73 61 76 65 5f 66 69 |" ..... .save_fi| 00000f30 6c 65 28 6e 61 6d 65 24 29 0d 09 92 05 cd 0d 09 |le(name$).......| 00000f40 9c 05 e1 0d 09 a6 05 3a 0d 09 b0 17 dd 20 f2 73 |.......:..... .s| 00000f50 61 76 65 5f 66 69 6c 65 28 66 69 6c 65 24 29 0d |ave_file(file$).| 00000f60 09 ba 1c 6f 75 74 3d ae 28 64 69 72 24 28 30 29 |...out=.(dir$(0)| 00000f70 2b 22 2e 22 2b 66 69 6c 65 24 29 0d 09 c4 1a f2 |+"."+file$).....| 00000f80 62 70 75 74 28 6f 75 74 2c 22 3b 20 3e 22 2b 66 |bput(out,"; >"+f| 00000f90 69 6c 65 24 29 0d 09 ce 11 f2 62 70 75 74 28 6f |ile$).....bput(o| 00000fa0 75 74 2c 22 22 29 0d 09 d8 16 e3 20 70 3d 30 20 |ut,"")..... p=0 | 00000fb0 b8 20 6d 61 78 5f 70 61 74 68 2d 31 0d 09 e2 18 |. max_path-1....| 00000fc0 20 61 3d 70 61 74 68 73 2b 70 2a 6d 61 78 5f 6c | a=paths+p*max_l| 00000fd0 65 6e 2a 32 0d 09 ec 1d 20 e7 20 ac 20 28 3f 61 |en*2.... . . (?a| 00000fe0 3d 32 35 35 20 80 20 61 3f 31 3d 32 35 35 29 20 |=255 . a?1=255) | 00000ff0 8c 0d 09 f6 1c 20 20 73 70 72 24 3d a4 6c 70 61 |..... spr$=.lpa| 00001000 64 28 73 70 72 24 28 70 29 2c 31 32 29 0d 0a 00 |d(spr$(p),12)...| 00001010 12 20 20 63 6f 6d 24 3d 63 6f 6d 24 28 70 29 0d |. com$=com$(p).| 00001020 0a 0a 2b 20 20 e7 20 63 6f 6d 24 3c 3e 22 22 20 |..+ . com$<>"" | 00001030 63 6f 6d 24 3d a4 6c 70 61 64 28 63 6f 6d 24 28 |com$=.lpad(com$(| 00001040 70 29 2c 31 32 29 2b 22 20 22 0d 0a 14 1e 20 20 |p),12)+" ".... | 00001050 70 61 74 68 24 3d bd 28 3f 61 2b 36 34 29 2b bd |path$=.(?a+64)+.| 00001060 28 61 3f 31 2b 36 34 29 0d 0a 1e 09 20 20 69 3d |(a?1+64).... i=| 00001070 32 0d 0a 28 1e 20 20 c8 95 20 ac 20 28 61 3f 69 |2..(. .. . (a?i| 00001080 3d 30 20 80 20 61 3f 28 69 2b 31 29 3d 30 29 0d |=0 . a?(i+1)=0).| 00001090 0a 32 25 20 20 20 70 61 74 68 24 2b 3d a4 63 68 |.2% path$+=.ch| 000010a0 72 28 61 3f 69 29 2b a4 63 68 72 28 61 3f 28 69 |r(a?i)+.chr(a?(i| 000010b0 2b 31 29 29 0d 0a 3c 0b 20 20 20 69 2b 3d 32 0d |+1))..<. i+=2.| 000010c0 0a 46 07 20 20 ce 0d 0a 50 28 20 20 f2 62 70 75 |.F. ...P( .bpu| 000010d0 74 28 6f 75 74 2c 22 20 22 2b 63 6f 6d 24 2b 73 |t(out," "+com$+s| 000010e0 70 72 24 2b 22 20 22 2b 70 61 74 68 24 29 0d 0a |pr$+" "+path$)..| 000010f0 5a 06 20 cd 0d 0a 64 05 ed 0d 0a 6e 0a d9 20 23 |Z. ...d....n.. #| 00001100 6f 75 74 0d 0a 78 2a c8 99 20 22 4f 53 5f 46 69 |out..x*.. "OS_Fi| 00001110 6c 65 22 2c 31 38 2c 64 69 72 24 28 30 29 2b 22 |le",18,dir$(0)+"| 00001120 2e 22 2b 66 69 6c 65 24 2c 26 46 46 46 0d 0a 82 |."+file$,&FFF...| 00001130 12 66 69 6c 65 24 28 30 29 3d 66 69 6c 65 24 0d |.file$(0)=file$.| 00001140 0a 8c 05 e1 0d 0a 96 05 3a 0d 0a a0 0d dd 20 a4 |........:..... .| 00001150 63 68 72 28 78 29 0d 0a aa 1c e7 20 78 3c 31 32 |chr(x)..... x<12| 00001160 37 20 8c 20 3d bd 28 39 36 2b 28 31 32 37 2d 78 |7 . =.(96+(127-x| 00001170 29 29 0d 0a b4 12 3d bd 28 36 34 2b 28 78 2d 31 |))....=.(64+(x-1| 00001180 32 37 29 29 0d 0a be 05 3a 0d 0a c8 0e dd 20 a4 |27))....:..... .| 00001190 61 73 63 28 78 24 29 0d 0a d2 1d e7 20 78 24 3e |asc(x$)..... x$>| 000011a0 3d 22 61 22 20 8c 20 3d 31 32 37 2d 28 97 78 24 |="a" . =127-(.x$| 000011b0 2d 39 36 29 0d 0a dc 11 3d 31 32 37 2b 28 97 78 |-96)....=127+(.x| 000011c0 24 2d 36 34 29 0d 0a e6 05 3a 0d 0a f0 11 dd 20 |$-64)....:..... | 000011d0 f2 62 70 75 74 28 66 2c 73 24 29 0d 0a fa 10 d5 |.bput(f,s$).....| 000011e0 20 23 66 2c 73 24 2b bd 31 30 3b 0d 0b 04 05 e1 | #f,s$+.10;.....| 000011f0 0d 0b 0e 05 3a 0d 0b 18 0e dd 20 f2 6c 6f 61 64 |....:..... .load| 00001200 28 6e 29 0d 0b 22 0d fb 20 31 33 36 3a fb 20 39 |(n)..".. 136:. 9| 00001210 0d 0b 2c 23 6e 61 6d 65 24 3d a4 61 6c 74 65 72 |..,#name$=.alter| 00001220 28 66 69 6c 65 24 28 6e 29 2c 37 2c 6e 2a 32 2c |(file$(n),7,n*2,| 00001230 32 38 29 0d 0b 36 11 e7 20 6e 61 6d 65 24 3c 3e |28)..6.. name$<>| 00001240 22 22 20 8c 0d 0b 40 18 20 f2 6c 6f 61 64 5f 66 |"" ...@. .load_f| 00001250 69 6c 65 28 6e 2c 6e 61 6d 65 24 29 0d 0b 4a 16 |ile(n,name$)..J.| 00001260 20 e7 20 6e 3d 30 20 f2 76 69 65 77 28 70 61 74 | . n=0 .view(pat| 00001270 68 29 0d 0b 54 05 cd 0d 0b 5e 05 e1 0d 0b 68 05 |h)..T....^....h.| 00001280 3a 0d 0b 72 1a dd 20 a4 61 6c 74 65 72 28 6f 6c |:..r.. .alter(ol| 00001290 64 24 2c 78 2c 79 2c 6d 61 78 29 0d 0b 7c 12 ef |d$,x,y,max)..|..| 000012a0 20 33 31 2c 78 2b a9 6f 6c 64 24 2c 79 0d 0b 86 | 31,x+.old$,y...| 000012b0 0b 61 24 3d 6f 6c 64 24 0d 0b 90 05 ee 0d 0b 9a |.a$=old$........| 000012c0 08 c8 97 20 87 0d 0b a4 0c 2a 46 58 32 32 39 2c |... .....*FX229,| 000012d0 31 0d 0b ae 0b 2a 46 58 32 31 2c 30 0d 0b b8 05 |1....*FX21,0....| 000012e0 f5 0d 0b c2 0a 20 6b 65 79 3d a5 0d 0b cc 24 20 |..... key=....$ | 000012f0 e7 20 6b 65 79 3d 31 32 37 20 80 20 a9 61 24 3e |. key=127 . .a$>| 00001300 30 20 ef 20 31 32 37 3a 61 24 3d c0 61 24 29 0d |0 . 127:a$=.a$).| 00001310 0b d6 29 20 e7 20 6b 65 79 3d 32 31 20 84 20 6b |..) . key=21 . k| 00001320 65 79 3d 32 37 20 f1 c4 a9 61 24 2c bd 31 32 37 |ey=27 ...a$,.127| 00001330 29 3b 3a 61 24 3d 22 22 0d 0b e0 1a 20 e7 20 6b |);:a$="".... . k| 00001340 65 79 3d 32 37 20 61 24 3d 6f 6c 64 24 3a f1 61 |ey=27 a$=old$:.a| 00001350 24 3b 0d 0b ea 30 20 e7 20 6b 65 79 3e 33 32 20 |$;...0 . key>32 | 00001360 80 20 6b 65 79 3c 31 32 37 20 80 20 a9 61 24 3c |. key<127 . .a$<| 00001370 6d 61 78 20 61 24 2b 3d bd 6b 65 79 3a ef 20 6b |max a$+=.key:. k| 00001380 65 79 0d 0b f4 15 fd 20 6b 65 79 3d 31 33 20 84 |ey..... key=13 .| 00001390 20 6b 65 79 3d 32 37 0d 0b fe 12 e7 20 6b 65 79 | key=27..... key| 000013a0 3d 32 37 20 61 24 3d 22 22 0d 0c 08 0c 2a 46 58 |=27 a$=""....*FX| 000013b0 32 32 39 2c 30 0d 0c 12 05 87 0d 0c 1c 08 c8 97 |229,0...........| 000013c0 20 ee 0d 0c 26 09 fb 20 31 32 38 0d 0c 30 07 3d | ...&.. 128..0.=| 000013d0 61 24 0d 0c 3a 05 3a 0d 0c 44 0c dd 20 f2 72 65 |a$..:.:..D.. .re| 000013e0 70 6f 73 0d 0c 4e 0c 78 73 74 61 72 74 3d 78 0d |pos..N.xstart=x.| 000013f0 0c 58 0c 79 73 74 61 72 74 3d 79 0d 0c 62 12 f2 |.X.ystart=y..b..| 00001400 70 72 65 76 69 65 77 28 70 61 74 68 29 0d 0c 6c |preview(path)..l| 00001410 05 e1 0d 0c 76 05 3a 0d 0c 80 16 dd 20 a4 65 72 |....v.:..... .er| 00001420 72 28 70 2c 78 6e 2c 79 6e 2c 61 74 29 0d 0c 8a |r(p,xn,yn,at)...| 00001430 11 ea 20 61 2c 78 2c 79 2c 6f 78 2c 6f 79 0d 0c |.. a,x,y,ox,oy..| 00001440 94 17 61 3d 70 61 74 68 73 2b 70 2a 6d 61 78 5f |..a=paths+p*max_| 00001450 6c 65 6e 2a 32 0d 0c 9e 0d 61 74 3d 61 2b 61 74 |len*2....at=a+at| 00001460 2a 32 0d 0c a8 12 6f 78 3d 3f 61 74 3a 6f 79 3d |*2....ox=?at:oy=| 00001470 61 74 3f 31 0d 0c b2 12 3f 61 74 3d 78 6e 3a 61 |at?1....?at=xn:a| 00001480 74 3f 31 3d 79 6e 0d 0c bc 09 78 3d 61 3f 30 0d |t?1=yn....x=a?0.| 00001490 0c c6 09 79 3d 61 3f 31 0d 0c d0 11 65 72 72 3d |...y=a?1....err=| 000014a0 a4 6f 66 66 28 78 2c 79 29 0d 0c da 19 e7 20 ac |.off(x,y)..... .| 000014b0 20 28 78 3d 32 35 35 20 80 20 79 3d 32 35 35 29 | (x=255 . y=255)| 000014c0 20 8c 0d 0c e4 09 20 61 2b 3d 32 0d 0c ee 20 20 | ..... a+=2... | 000014d0 c8 95 20 ac 20 28 3f 61 3d 30 20 80 20 61 3f 31 |.. . (?a=0 . a?1| 000014e0 3d 30 29 20 80 20 ac 20 65 72 72 0d 0c f8 12 20 |=0) . . err.... | 000014f0 20 78 2b 3d 28 61 3f 30 2d 31 32 37 29 0d 0d 02 | x+=(a?0-127)...| 00001500 12 20 20 79 2b 3d 28 61 3f 31 2d 31 32 37 29 0d |. y+=(a?1-127).| 00001510 0d 0c 0a 20 20 61 2b 3d 32 0d 0d 16 13 20 20 65 |... a+=2.... e| 00001520 72 72 3d a4 6f 66 66 28 78 2c 79 29 0d 0d 20 06 |rr=.off(x,y).. .| 00001530 20 ce 0d 0d 2a 05 cd 0d 0d 34 0a 3f 61 74 3d 6f | ...*....4.?at=o| 00001540 78 0d 0d 3e 0b 61 74 3f 31 3d 6f 79 0d 0d 48 08 |x..>.at?1=oy..H.| 00001550 3d 65 72 72 0d 0d 52 05 3a 0d 0d 5c 11 dd 20 a4 |=err..R.:..\.. .| 00001560 6f 66 66 28 78 78 2c 79 79 29 0d 0d 66 2a 3d 28 |off(xx,yy)..f*=(| 00001570 78 78 3c 30 20 84 20 79 79 3c 30 20 84 20 78 78 |xx<0 . yy<0 . xx| 00001580 3e 3d 67 72 69 64 78 20 84 20 79 79 3e 3d 67 72 |>=gridx . yy>=gr| 00001590 69 64 79 29 0d 0d 70 05 3a 0d 0d 7a 12 dd 20 a4 |idy)..p.:..z.. .| 000015a0 73 65 74 5f 67 72 69 64 28 70 29 0d 0d 84 0d 67 |set_grid(p)....g| 000015b0 72 69 64 28 29 3d 2d 31 0d 0d 8e 17 61 3d 70 61 |rid()=-1....a=pa| 000015c0 74 68 73 2b 70 2a 6d 61 78 5f 6c 65 6e 2a 32 0d |ths+p*max_len*2.| 000015d0 0d 98 09 78 3d 61 3f 30 0d 0d a2 09 79 3d 61 3f |...x=a?0....y=a?| 000015e0 31 0d 0d ac 07 6c 3d 30 0d 0d b6 19 e7 20 ac 20 |1....l=0..... . | 000015f0 28 78 3d 32 35 35 20 80 20 79 3d 32 35 35 29 20 |(x=255 . y=255) | 00001600 8c 0d 0d c0 10 20 67 72 69 64 28 78 2c 79 29 3d |..... grid(x,y)=| 00001610 6c 0d 0d ca 09 20 6c 2b 3d 31 0d 0d d4 09 20 61 |l.... l+=1.... a| 00001620 2b 3d 32 0d 0d de 18 20 c8 95 20 ac 20 28 3f 61 |+=2.... .. . (?a| 00001630 3d 30 20 80 20 61 3f 31 3d 30 29 0d 0d e8 12 20 |=0 . a?1=0).... | 00001640 20 78 2b 3d 28 61 3f 30 2d 31 32 37 29 0d 0d f2 | x+=(a?0-127)...| 00001650 12 20 20 79 2b 3d 28 61 3f 31 2d 31 32 37 29 0d |. y+=(a?1-127).| 00001660 0d fc 1f 20 20 e7 20 67 72 69 64 28 78 2c 79 29 |... . grid(x,y)| 00001670 3c 30 20 67 72 69 64 28 78 2c 79 29 3d 6c 0d 0e |<0 grid(x,y)=l..| 00001680 06 0a 20 20 61 2b 3d 32 0d 0e 10 0a 20 20 6c 2b |.. a+=2.... l+| 00001690 3d 31 0d 0e 1a 06 20 ce 0d 0e 24 05 cd 0d 0e 2e |=1.... ...$.....| 000016a0 06 3d 6c 0d 0e 38 05 3a 0d 0e 42 0e dd 20 f2 64 |.=l..8.:..B.. .d| 000016b0 72 61 77 28 70 29 0d 0e 4c 11 ea 20 61 2c 78 2c |raw(p)..L.. a,x,| 000016c0 79 2c 6f 78 2c 6f 79 0d 0e 56 17 61 3d 70 61 74 |y,ox,oy..V.a=pat| 000016d0 68 73 2b 70 2a 6d 61 78 5f 6c 65 6e 2a 32 0d 0e |hs+p*max_len*2..| 000016e0 60 09 78 3d 61 3f 30 0d 0e 6a 09 79 3d 61 3f 31 |`.x=a?0..j.y=a?1| 000016f0 0d 0e 74 07 6c 3d 30 0d 0e 7e 19 e7 20 ac 20 28 |..t.l=0..~.. . (| 00001700 78 3d 32 35 35 20 80 20 79 3d 32 35 35 29 20 8c |x=255 . y=255) .| 00001710 0d 0e 88 0a 20 e6 20 33 2c 31 0d 0e 92 1d 20 c8 |.... . 3,1.... .| 00001720 8f 20 78 2a 67 2b 6d 69 64 2c 79 2a 67 2b 6d 69 |. x*g+mid,y*g+mi| 00001730 64 2c 6d 69 64 2d 34 0d 0e 9c 0f 20 6f 78 3d 78 |d,mid-4.... ox=x| 00001740 2a 67 2b 6d 69 64 0d 0e a6 0f 20 6f 79 3d 79 2a |*g+mid.... oy=y*| 00001750 67 2b 6d 69 64 0d 0e b0 09 20 6c 2b 3d 31 0d 0e |g+mid.... l+=1..| 00001760 ba 09 20 61 2b 3d 32 0d 0e c4 18 20 c8 95 20 ac |.. a+=2.... .. .| 00001770 20 28 3f 61 3d 30 20 80 20 61 3f 31 3d 30 29 0d | (?a=0 . a?1=0).| 00001780 0e ce 12 20 20 78 2b 3d 28 61 3f 30 2d 31 32 37 |... x+=(a?0-127| 00001790 29 0d 0e d8 12 20 20 79 2b 3d 28 61 3f 31 2d 31 |).... y+=(a?1-1| 000017a0 32 37 29 0d 0e e2 0b 20 20 e6 20 33 2c 32 0d 0e |27).... . 3,2..| 000017b0 ec 1e 20 20 c8 8f 20 78 2a 67 2b 6d 69 64 2c 79 |.. .. x*g+mid,y| 000017c0 2a 67 2b 6d 69 64 2c 6d 69 64 2d 34 0d 0e f6 0b |*g+mid,mid-4....| 000017d0 20 20 e6 20 33 2c 34 0d 0f 00 0d 20 20 ec 20 6f | . 3,4.... . o| 000017e0 78 2c 6f 79 0d 0f 0a 10 20 20 6f 78 3d 78 2a 67 |x,oy.... ox=x*g| 000017f0 2b 6d 69 64 0d 0f 14 10 20 20 6f 79 3d 79 2a 67 |+mid.... oy=y*g| 00001800 2b 6d 69 64 0d 0f 1e 0d 20 20 df 20 6f 78 2c 6f |+mid.... . ox,o| 00001810 79 0d 0f 28 0a 20 20 61 2b 3d 32 0d 0f 32 0a 20 |y..(. a+=2..2. | 00001820 20 6c 2b 3d 31 0d 0f 3c 06 20 ce 0d 0f 46 05 cd | l+=1..<. ...F..| 00001830 0d 0f 50 0a 78 65 6e 64 3d 78 0d 0f 5a 0a 79 65 |..P.xend=x..Z.ye| 00001840 6e 64 3d 79 0d 0f 64 05 e1 0d 0f 6e 05 3a 0d 0f |nd=y..d....n.:..| 00001850 78 0b dd 20 f2 67 72 69 64 0d 0f 82 0c 78 67 3d |x.. .grid....xg=| 00001860 78 20 81 20 67 0d 0f 8c 0c 79 67 3d 79 20 81 20 |x . g....yg=y . | 00001870 67 0d 0f 96 1a 61 3d 70 61 74 68 73 2b 70 61 74 |g....a=paths+pat| 00001880 68 2a 6d 61 78 5f 6c 65 6e 2a 32 0d 0f a0 11 65 |h*max_len*2....e| 00001890 3d 67 72 69 64 28 78 67 2c 79 67 29 0d 0f aa 0c |=grid(xg,yg)....| 000018a0 e7 20 63 74 72 6c 20 8c 0d 0f b4 12 20 f2 64 65 |. ctrl ..... .de| 000018b0 6c 65 74 65 5f 70 6f 69 6e 74 0d 0f be 05 cc 0d |lete_point......| 000018c0 0f c8 0f 20 f2 61 64 64 5f 70 6f 69 6e 74 0d 0f |... .add_point..| 000018d0 d2 05 cd 0d 0f dc 05 e1 0d 0f e6 05 3a 0d 0f f0 |............:...| 000018e0 10 dd 20 f2 61 64 64 5f 70 6f 69 6e 74 0d 0f fa |.. .add_point...| 000018f0 0b e7 20 65 3c 30 20 8c 0d 10 04 0e 20 e7 20 6c |.. e<0 ..... . l| 00001900 65 6e 3d 30 20 8c 0d 10 0e 0b 20 20 3f 61 3d 78 |en=0 ..... ?a=x| 00001910 67 0d 10 18 0c 20 20 61 3f 31 3d 79 67 0d 10 22 |g.... a?1=yg.."| 00001920 0b 20 20 e6 20 33 2c 31 0d 10 2c 20 20 20 c8 8f |. . 3,1.., ..| 00001930 20 78 67 2a 67 2b 6d 69 64 2c 79 67 2a 67 2b 6d | xg*g+mid,yg*g+m| 00001940 69 64 2c 6d 69 64 2d 34 0d 10 36 06 20 cc 0d 10 |id,mid-4..6. ...| 00001950 40 1d 20 20 61 3f 28 6c 65 6e 2a 32 29 20 20 3d |@. a?(len*2) =| 00001960 78 67 2d 78 65 6e 64 2b 31 32 37 0d 10 4a 1d 20 |xg-xend+127..J. | 00001970 20 61 3f 28 6c 65 6e 2a 32 2b 31 29 3d 79 67 2d | a?(len*2+1)=yg-| 00001980 79 65 6e 64 2b 31 32 37 0d 10 54 0b 20 20 e6 20 |yend+127..T. . | 00001990 33 2c 32 0d 10 5e 20 20 20 c8 8f 20 78 67 2a 67 |3,2..^ .. xg*g| 000019a0 2b 6d 69 64 2c 79 67 2a 67 2b 6d 69 64 2c 6d 69 |+mid,yg*g+mid,mi| 000019b0 64 2d 34 0d 10 68 0b 20 20 e6 20 33 2c 34 0d 10 |d-4..h. . 3,4..| 000019c0 72 2f 20 20 86 20 78 65 6e 64 2a 67 2b 6d 69 64 |r/ . xend*g+mid| 000019d0 2c 79 65 6e 64 2a 67 2b 6d 69 64 2c 78 67 2a 67 |,yend*g+mid,xg*g| 000019e0 2b 6d 69 64 2c 79 67 2a 67 2b 6d 69 64 0d 10 7c |+mid,yg*g+mid..|| 000019f0 06 20 cd 0d 10 86 0c 20 78 65 6e 64 3d 78 67 0d |. ..... xend=xg.| 00001a00 10 90 0c 20 79 65 6e 64 3d 79 67 0d 10 9a 14 20 |... yend=yg.... | 00001a10 67 72 69 64 28 78 67 2c 79 67 29 3d 6c 65 6e 0d |grid(xg,yg)=len.| 00001a20 10 a4 0b 20 6c 65 6e 2b 3d 31 0d 10 ae 10 20 61 |... len+=1.... a| 00001a30 3f 28 6c 65 6e 2a 32 29 3d 30 0d 10 b8 12 20 61 |?(len*2)=0.... a| 00001a40 3f 28 6c 65 6e 2a 32 2b 31 29 3d 30 0d 10 c2 13 |?(len*2+1)=0....| 00001a50 20 f2 70 72 65 76 69 65 77 28 70 61 74 68 29 0d | .preview(path).| 00001a60 10 cc 05 cc 0d 10 d6 0a 20 6f 78 3d 78 67 0d 10 |........ ox=xg..| 00001a70 e0 0a 20 6f 79 3d 79 67 0d 10 ea 06 20 f5 0d 10 |.. oy=yg.... ...| 00001a80 f4 07 20 20 f5 0d 10 fe 0f 20 20 20 c8 97 20 78 |.. ..... .. x| 00001a90 2c 79 2c 7a 0d 11 08 0f 20 20 20 78 31 3d 78 20 |,y,z.... x1=x | 00001aa0 81 20 67 0d 11 12 0f 20 20 20 79 31 3d 79 20 81 |. g.... y1=y .| 00001ab0 20 67 0d 11 1c 10 20 20 20 73 68 69 66 74 3d a6 | g.... shift=.| 00001ac0 2d 31 0d 11 26 1d 20 20 fd 20 7a 3d 30 20 84 20 |-1..&. . z=0 . | 00001ad0 78 31 3c 3e 6f 78 20 84 20 79 31 3c 3e 6f 79 0d |x1<>ox . y1<>oy.| 00001ae0 11 30 0e 20 20 e7 20 7a 3c 3e 30 20 8c 0d 11 3a |.0. . z<>0 ...:| 00001af0 24 20 20 20 e7 20 28 ac 20 73 68 69 66 74 29 20 |$ . (. shift) | 00001b00 84 20 65 3d 30 20 84 20 65 3d 6c 65 6e 2d 31 20 |. e=0 . e=len-1 | 00001b10 8c 0d 11 44 0f 20 20 20 20 e7 20 65 3d 30 20 8c |...D. . e=0 .| 00001b20 0d 11 4e 10 20 20 20 20 20 78 6e 65 77 3d 78 31 |..N. xnew=x1| 00001b30 0d 11 58 10 20 20 20 20 20 79 6e 65 77 3d 79 31 |..X. ynew=y1| 00001b40 0d 11 62 09 20 20 20 20 cc 0d 11 6c 1d 20 20 20 |..b. ...l. | 00001b50 20 20 78 6e 65 77 3d 61 3f 28 65 2a 32 29 20 20 | xnew=a?(e*2) | 00001b60 2b 78 31 2d 6f 78 0d 11 76 1d 20 20 20 20 20 79 |+x1-ox..v. y| 00001b70 6e 65 77 3d 61 3f 28 65 2a 32 2b 31 29 2b 79 31 |new=a?(e*2+1)+y1| 00001b80 2d 6f 79 0d 11 80 09 20 20 20 20 cd 0d 11 8a 22 |-oy.... ...."| 00001b90 20 20 20 20 6f 66 66 3d a4 65 72 72 28 70 61 74 | off=.err(pat| 00001ba0 68 2c 78 6e 65 77 2c 79 6e 65 77 2c 65 29 0d 11 |h,xnew,ynew,e)..| 00001bb0 94 11 20 20 20 20 e7 20 ac 20 6f 66 66 20 8c 0d |.. . . off ..| 00001bc0 11 9e 14 20 20 20 20 20 f2 64 72 61 77 28 70 61 |... .draw(pa| 00001bd0 74 68 29 0d 11 a8 15 20 20 20 20 20 61 3f 28 65 |th).... a?(e| 00001be0 2a 32 29 3d 78 6e 65 77 0d 11 b2 17 20 20 20 20 |*2)=xnew.... | 00001bf0 20 61 3f 28 65 2a 32 2b 31 29 3d 79 6e 65 77 0d | a?(e*2+1)=ynew.| 00001c00 11 bc 14 20 20 20 20 20 f2 64 72 61 77 28 70 61 |... .draw(pa| 00001c10 74 68 29 0d 11 c6 17 20 20 20 20 20 f2 70 72 65 |th).... .pre| 00001c20 76 69 65 77 28 70 61 74 68 29 0d 11 d0 09 20 20 |view(path).... | 00001c30 20 20 cd 0d 11 da 08 20 20 20 cc 0d 11 e4 17 20 | ..... ..... | 00001c40 20 20 20 6f 66 66 3d a4 6f 66 66 28 78 31 2c 79 | off=.off(x1,y| 00001c50 31 29 0d 11 ee 11 20 20 20 20 e7 20 ac 20 6f 66 |1).... . . of| 00001c60 66 20 8c 0d 11 f8 14 20 20 20 20 20 f2 64 72 61 |f ..... .dra| 00001c70 77 28 70 61 74 68 29 0d 12 02 1b 20 20 20 20 20 |w(path).... | 00001c80 61 3f 28 65 2a 32 29 20 20 2b 3d 28 78 31 2d 6f |a?(e*2) +=(x1-o| 00001c90 78 29 0d 12 0c 1b 20 20 20 20 20 61 3f 28 65 2a |x).... a?(e*| 00001ca0 32 2b 31 29 2b 3d 28 79 31 2d 6f 79 29 0d 12 16 |2+1)+=(y1-oy)...| 00001cb0 1b 20 20 20 20 20 61 3f 28 65 2a 32 2b 32 29 2b |. a?(e*2+2)+| 00001cc0 3d 28 6f 78 2d 78 31 29 0d 12 20 1b 20 20 20 20 |=(ox-x1).. . | 00001cd0 20 61 3f 28 65 2a 32 2b 33 29 2b 3d 28 6f 79 2d | a?(e*2+3)+=(oy-| 00001ce0 79 31 29 0d 12 2a 14 20 20 20 20 20 f2 64 72 61 |y1)..*. .dra| 00001cf0 77 28 70 61 74 68 29 0d 12 34 17 20 20 20 20 20 |w(path)..4. | 00001d00 f2 70 72 65 76 69 65 77 28 70 61 74 68 29 0d 12 |.preview(path)..| 00001d10 3e 09 20 20 20 20 cd 0d 12 48 08 20 20 20 cd 0d |>. ...H. ..| 00001d20 12 52 1a 20 20 20 e7 20 ac 20 6f 66 66 20 6f 78 |.R. . . off ox| 00001d30 3d 78 31 3a 6f 79 3d 79 31 0d 12 5c 07 20 20 cd |=x1:oy=y1..\. .| 00001d40 0d 12 66 0a 20 fd 20 7a 3d 30 0d 12 70 18 20 6c |..f. . z=0..p. l| 00001d50 65 6e 3d a4 73 65 74 5f 67 72 69 64 28 70 61 74 |en=.set_grid(pat| 00001d60 68 29 0d 12 7a 05 cd 0d 12 84 05 e1 0d 12 8e 05 |h)..z...........| 00001d70 3a 0d 12 98 13 dd 20 f2 64 65 6c 65 74 65 5f 70 |:..... .delete_p| 00001d80 6f 69 6e 74 0d 12 a2 09 64 65 6c 3d a3 0d 12 ac |oint....del=....| 00001d90 0a c8 8e 20 b9 20 ca 0d 12 b6 0b 20 c9 20 65 3d |... . ..... . e=| 00001da0 30 3a 0d 12 c0 0f 20 20 e7 20 6c 65 6e 3d 31 20 |0:.... . len=1 | 00001db0 8c 0d 12 ca 12 20 20 20 f2 64 72 61 77 28 70 61 |..... .draw(pa| 00001dc0 74 68 29 0d 12 d4 0f 20 20 20 21 61 3d 26 46 46 |th).... !a=&FF| 00001dd0 46 46 0d 12 de 0c 20 20 20 64 65 6c 3d b9 0d 12 |FF.... del=...| 00001de0 e8 07 20 20 cd 0d 12 f2 0b 20 c9 20 65 3e 30 3a |.. ..... . e>0:| 00001df0 0d 12 fc 1e 20 20 e7 20 a4 65 72 72 28 70 61 74 |.... . .err(pat| 00001e00 68 2c 31 32 37 2c 31 32 37 2c 65 29 20 8c 0d 13 |h,127,127,e) ...| 00001e10 06 0c 20 20 20 f4 20 6f 66 66 0d 13 10 07 20 20 |.. . off.... | 00001e20 cc 0d 13 1a 12 20 20 20 f2 64 72 61 77 28 70 61 |..... .draw(pa| 00001e30 74 68 29 0d 13 24 0e 20 20 20 69 3d 61 2b 65 2a |th)..$. i=a+e*| 00001e40 32 0d 13 2e 08 20 20 20 f5 0d 13 38 0e 20 20 20 |2.... ...8. | 00001e50 20 78 69 3d 69 3f 32 0d 13 42 0e 20 20 20 20 79 | xi=i?2..B. y| 00001e60 69 3d 69 3f 33 0d 13 4c 0d 20 20 20 20 3f 69 3d |i=i?3..L. ?i=| 00001e70 78 69 0d 13 56 0e 20 20 20 20 69 3f 31 3d 79 69 |xi..V. i?1=yi| 00001e80 0d 13 60 0c 20 20 20 20 69 2b 3d 32 0d 13 6a 14 |..`. i+=2..j.| 00001e90 20 20 20 fd 20 78 69 3d 30 20 80 20 79 69 3d 30 | . xi=0 . yi=0| 00001ea0 0d 13 74 0c 20 20 20 64 65 6c 3d b9 0d 13 7e 07 |..t. del=...~.| 00001eb0 20 20 cd 0d 13 88 06 20 cd 0d 13 92 05 cb 0d 13 | ..... ........| 00001ec0 9c 0b e7 20 64 65 6c 20 8c 0d 13 a6 10 20 f2 64 |... del ..... .d| 00001ed0 72 61 77 28 70 61 74 68 29 0d 13 b0 13 20 f2 70 |raw(path).... .p| 00001ee0 72 65 76 69 65 77 28 70 61 74 68 29 0d 13 ba 18 |review(path)....| 00001ef0 20 6c 65 6e 3d a4 73 65 74 5f 67 72 69 64 28 70 | len=.set_grid(p| 00001f00 61 74 68 29 0d 13 c4 05 cd 0d 13 ce 05 e1 0d 13 |ath)............| 00001f10 d8 05 3a 0d 13 e2 11 dd 20 f2 70 72 65 76 69 65 |..:..... .previe| 00001f20 77 28 70 29 0d 13 ec 09 ea 20 61 2c 69 0d 13 f6 |w(p)..... a,i...| 00001f30 17 61 3d 70 61 74 68 73 2b 70 2a 6d 61 78 5f 6c |.a=paths+p*max_l| 00001f40 65 6e 2a 32 0d 14 00 26 ef 20 32 34 2c 67 72 69 |en*2...&. 24,gri| 00001f50 64 78 2a 67 2b 34 3b 32 2a 67 3b 31 32 37 39 3b |dx*g+4;2*g;1279;| 00001f60 67 72 69 64 79 2a 67 3b 31 36 0d 14 0a 09 e6 20 |gridy*g;16..... | 00001f70 30 2c 34 0d 14 14 13 ec 20 78 73 74 61 72 74 2c |0,4..... xstart,| 00001f80 79 73 74 61 72 74 0d 14 1e 1d e7 20 ac 20 28 61 |ystart..... . (a| 00001f90 3f 30 3d 32 35 35 20 80 20 61 3f 31 3d 32 35 35 |?0=255 . a?1=255| 00001fa0 29 20 8c 0d 14 28 12 20 e3 20 74 69 6d 65 73 3d |) ...(. . times=| 00001fb0 31 20 b8 20 35 0d 14 32 09 20 20 69 3d 32 0d 14 |1 . 5..2. i=2..| 00001fc0 3c 1e 20 20 c8 95 20 ac 20 28 61 3f 69 3d 30 20 |<. .. . (a?i=0 | 00001fd0 80 20 61 3f 28 69 2b 31 29 3d 30 29 0d 14 46 27 |. a?(i+1)=0)..F'| 00001fe0 20 20 20 df 20 42 59 20 34 2a 28 61 3f 69 2d 31 | . BY 4*(a?i-1| 00001ff0 32 37 29 2c 34 2a 28 61 3f 28 69 2b 31 29 2d 31 |27),4*(a?(i+1)-1| 00002000 32 37 29 0d 14 50 0b 20 20 20 69 2b 3d 32 0d 14 |27)..P. i+=2..| 00002010 5a 07 20 20 ce 0d 14 64 06 20 ed 0d 14 6e 05 cd |Z. ...d. ...n..| 00002020 0d 14 78 08 ef 20 32 36 0d 14 82 05 e1 0d 14 8c |..x.. 26........| 00002030 05 3a 0d 14 96 0b dd 20 f2 74 65 73 74 0d 14 a0 |.:..... .test...| 00002040 13 73 70 72 24 3d 73 70 72 24 28 70 61 74 68 29 |.spr$=spr$(path)| 00002050 0d 14 aa 1d e7 20 a4 65 78 69 73 74 73 28 73 70 |..... .exists(sp| 00002060 72 24 29 20 80 20 6c 65 6e 3e 31 20 8c 0d 14 b4 |r$) . len>1 ....| 00002070 0f 20 eb 20 31 32 3a eb 20 39 3a 87 0d 14 be 09 |. . 12:. 9:.....| 00002080 20 c8 97 20 ee 0d 14 c8 0d 20 2a 46 58 32 32 39 | .. ..... *FX229| 00002090 2c 31 0d 14 d2 17 20 f2 73 65 74 5f 70 61 6c 65 |,1.... .set_pale| 000020a0 74 74 65 28 73 70 72 24 29 0d 14 dc 21 20 73 74 |tte(spr$)...! st| 000020b0 61 72 74 3d 70 61 74 68 73 2b 70 61 74 68 2a 6d |art=paths+path*m| 000020c0 61 78 5f 6c 65 6e 2a 32 2b 32 0d 14 e6 0a 20 78 |ax_len*2+2.... x| 000020d0 3d 36 34 30 0d 14 f0 0a 20 79 3d 35 31 32 0d 14 |=640.... y=512..| 000020e0 fa 08 20 62 3d 31 0d 15 04 0c 20 61 3d 73 74 61 |.. b=1.... a=sta| 000020f0 72 74 0d 15 0e 0c 20 77 61 69 74 73 3d 31 0d 15 |rt.... waits=1..| 00002100 18 06 20 f5 0d 15 22 18 20 20 e3 20 77 3d 31 20 |.. ...". . w=1 | 00002110 b8 20 77 61 69 74 73 3a c8 96 3a ed 0d 15 2c 10 |. waits:..:...,.| 00002120 20 20 c8 99 20 36 2c 31 31 32 2c 62 0d 15 36 12 | .. 6,112,b..6.| 00002130 20 20 c8 99 20 36 2c 31 31 33 2c 33 2d 62 0d 15 | .. 6,113,3-b..| 00002140 40 0b 20 20 62 3d 33 2d 62 0d 15 4a 07 20 20 db |@. b=3-b..J. .| 00002150 0d 15 54 25 20 20 c8 99 20 73 70 6f 70 2c 26 31 |..T% .. spop,&1| 00002160 32 32 2c 73 70 72 69 74 65 73 2c 73 70 72 24 2c |22,sprites,spr$,| 00002170 78 2c 79 2c 38 0d 15 5e 1d 20 20 e7 20 61 3f 30 |x,y,8..^. . a?0| 00002180 3d 30 20 80 20 61 3f 31 3d 30 20 61 3d 73 74 61 |=0 . a?1=0 a=sta| 00002190 72 74 0d 15 68 14 20 20 78 2b 3d 34 2a 28 61 3f |rt..h. x+=4*(a?| 000021a0 30 2d 31 32 37 29 0d 15 72 14 20 20 79 2b 3d 34 |0-127)..r. y+=4| 000021b0 2a 28 61 3f 31 2d 31 32 37 29 0d 15 7c 0a 20 20 |*(a?1-127)..|. | 000021c0 61 2b 3d 32 0d 15 86 10 20 20 c8 97 20 6d 78 2c |a+=2.... .. mx,| 000021d0 6d 79 2c 7a 0d 15 90 12 20 20 e7 20 7a 3d 30 20 |my,z.... . z=0 | 000021e0 68 65 6c 64 3d a3 0d 15 9a 25 20 20 e7 20 7a 3e |held=....% . z>| 000021f0 30 20 80 20 ac 20 68 65 6c 64 20 78 3d 6d 78 3a |0 . . held x=mx:| 00002200 79 3d 6d 79 3a 68 65 6c 64 3d b9 0d 15 a4 0a 20 |y=my:held=..... | 00002210 20 6b 3d a6 30 0d 15 ae 37 20 20 e7 20 6b 3e 3d | k=.0...7 . k>=| 00002220 97 22 30 22 20 80 20 6b 3c 3d 97 22 39 22 20 77 |."0" . k<=."9" w| 00002230 61 69 74 73 3d 6b 2d 34 38 3a e7 20 77 61 69 74 |aits=k-48:. wait| 00002240 73 3d 30 20 77 61 69 74 73 3d 31 30 0d 15 b8 0b |s=0 waits=10....| 00002250 20 fd 20 6b 3d 32 37 0d 15 c2 0e 20 2a 46 58 20 | . k=27.... *FX | 00002260 32 32 39 2c 30 0d 15 cc 0f 20 c8 99 20 36 2c 31 |229,0.... .. 6,1| 00002270 31 32 2c 31 0d 15 d6 0f 20 c8 99 20 36 2c 31 31 |12,1.... .. 6,11| 00002280 33 2c 31 0d 15 e0 06 20 db 0d 15 ea 0c 20 f2 73 |3,1.... ..... .s| 00002290 63 72 65 65 6e 0d 15 f4 10 20 f2 76 69 65 77 28 |creen.... .view(| 000022a0 70 61 74 68 29 0d 15 fe 05 cd 0d 16 08 05 e1 0d |path)...........| 000022b0 16 12 05 3a 0d 16 1c 16 dd 20 f2 73 65 74 5f 70 |...:..... .set_p| 000022c0 61 6c 65 74 74 65 28 73 24 29 0d 16 26 28 c8 99 |alette(s$)..&(..| 000022d0 20 73 70 6f 70 2c 26 31 32 35 2c 73 70 72 69 74 | spop,&125,sprit| 000022e0 65 73 2c 73 24 2c 2d 31 20 b8 20 2c 2c 2c 2c 70 |es,s$,-1 . ,,,,p| 000022f0 61 6c 0d 16 30 0e e7 20 70 61 6c 3c 3e 30 20 8c |al..0.. pal<>0 .| 00002300 0d 16 3a 11 20 e3 20 63 6f 6c 3d 30 20 b8 20 31 |..:. . col=0 . 1| 00002310 35 0d 16 44 1d 20 20 fb 20 63 6f 6c 2c 70 61 6c |5..D. . col,pal| 00002320 3f 31 2c 70 61 6c 3f 32 2c 70 61 6c 3f 33 0d 16 |?1,pal?2,pal?3..| 00002330 4e 0c 20 20 70 61 6c 2b 3d 38 0d 16 58 06 20 cd |N. pal+=8..X. .| 00002340 0d 16 62 05 ed 0d 16 6c 05 e1 0d 16 76 05 3a 0d |..b....l....v.:.| 00002350 16 80 0e dd 20 f2 63 6f 6d 6d 65 6e 74 0d 16 8a |.... .comment...| 00002360 0d fb 20 31 33 36 3a fb 20 39 0d 16 94 24 e7 20 |.. 136:. 9...$. | 00002370 63 6f 6d 24 28 70 61 74 68 29 3d 22 22 20 ef 20 |com$(path)="" . | 00002380 33 31 2c 32 37 2c 33 31 2c 33 32 2c 33 32 0d 16 |31,27,31,32,32..| 00002390 9e 2a 63 6f 6d 24 28 70 61 74 68 29 3d a4 61 6c |.*com$(path)=.al| 000023a0 74 65 72 28 63 6f 6d 24 28 70 61 74 68 29 2c 32 |ter(com$(path),2| 000023b0 37 2c 33 31 2c 31 32 29 0d 16 a8 05 e1 0d ff |7,31,12).......| 000023bf