Home » Archimedes archive » Archimedes World » AW-1991-10.adf » October91 » !AWOct91/Goodies/OL_System/!OL_System/!RunImage
!AWOct91/Goodies/OL_System/!OL_System/!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-1991-10.adf » October91 |
Filename: | !AWOct91/Goodies/OL_System/!OL_System/!RunImage |
Read OK: | ✔ |
File size: | 34E0 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >!RunImage 20: 30REM Title : OL System 40REM Use : Draw fractal pictures 50REM Author : Stewart May 60REM Version : 1.10 3rd July 1991 65REM Copyright : Archimedes World October 1991 70: 80DIM sp 25000 90sp!0=25000:sp!4=0:sp!8=16:sp!12=16 100SYS "OS_SpriteOp",10+256,sp,"<Obey$Dir>.Sprites" 110: 120OSCLI("DIR <Obey$Dir>.Files") 130: 140MODE 12:OFF 150MOUSE ON 160PROCStartUp 170PROCColours 180 190REPEAT 200 PROCDisplaySelectScreen 210 PROCHandleSelectScreen 220UNTIL FALSE 230END 240: 250DEFPROCDisplaySelectScreen 260 COLOUR 128+5 270 CLS 280 OFF 290 FOR i=1 TO 6 300 PROCDrawSelectObject(i) 310 NEXT 320ENDPROC 330: 340DEFPROCDrawSelectObject(which) 350LOCAL i 360 370 COLOUR 9:COLOUR 128+5 380 390 CASE which OF 400 WHEN 1: 410 PROCPlinth(680,680,440+40,240+40,8,8,7,12,3,2,FALSE) 420 SYS "OS_SpriteOp",34+256,sp,"Title",700,700,8 430 440 WHEN 2: 450 PROCPlinth(6,20,548,984,8,8,7,5,3,2,TRUE) 460 i=0 470 WHILE i<max 480 PRINTTAB(1,i+1);i+1;"." 490 IF name$(i)<>"" 500 PRINTTAB(4,i+1);name$(i) 510 ENDIF 520 i+=1 530 ENDWHILE 540 550 WHEN 3: 560 REM *** save *** 570 PROCPlinth(726,244,388,56,8,8,7,5,3,2,TRUE) 580 PRINTTAB(53,23);"Save file" 590 600 WHEN 4: 610 REM *** load *** 620 PROCPlinth(726,180,388,56,8,8,7,5,3,2,TRUE) 630 PRINTTAB(53,25);"Load file" 640 650 WHEN 5: 660 REM *** filename *** 670 PROCPlinth(726,84,388,88,8,8,7,5,3,2,TRUE) 680 PRINTTAB(52,27);"File name is" 690 PRINTTAB(57-LEN(filename$)/2,28);"'";filename$;"'" 700 710 WHEN 6: 720 REM *** *command *** 730 PROCPlinth(726,20,388,56,8,8,7,5,3,2,TRUE) 740 PRINTTAB(53,30);"* Command" 750 ENDCASE 760ENDPROC 770: 780DEFPROCHandleSelectScreen 790 REPEAT 800 PROCMouseWait(-8) 810 CASE TRUE OF 820 WHEN FNRectangle(X%,6,554,Y%,20,1004): 830 PROCEdit(((1024-Y%) DIV 32)-1) 840 PROCDisplaySelectScreen 850 860 WHEN FNRectangle(X%,726,1114,Y%,244,300) 870 PROCSave(filename$) 880 890 WHEN FNRectangle(X%,726,1114,Y%,180,236) 900 PROCLoad(filename$) 910 PROCDrawSelectObject(2) 920 930 WHEN FNRectangle(X%,726,1114,Y%,84,172) 940 COLOUR 9:COLOUR 128+5 950 PRINTTAB(53,28); 960 filename$=FNInput(10,48,122,":;<=>?@[\]^�","_",TRUE,FALSE) 970 IF filename$="" THEN filename$="LSYS_TEMP" 980 PROCDrawSelectObject(5) 990 1000 WHEN FNRectangle(X%,726,1114,Y%,20,76) 1010 PROCStarCommand 1020 MOUSE ON:OFF 1030 PROCDisplaySelectScreen 1040 ENDCASE 1050 UNTIL FALSE 1060ENDPROC 1070: 1080DEFPROCEdit(num) 1090 PROCDisplayEditScreen(num) 1100 PROCHandleEditScreen(num) 1110ENDPROC 1120: 1130DEFPROCDisplayEditScreen(num) 1140LOCAL b 1150 COLOUR 128+5 1160 CLS 1170 OFF 1180 FOR b=1 TO 9 1190 PROCDrawEditObject(num,b) 1200 NEXT 1210ENDPROC 1220: 1230DEFPROCHandleEditScreen(num) 1240 REPEAT 1250 PROCMouseWait(-8) 1260 CASE TRUE OF 1270 WHEN FNRectangle(X%,0,640,Y%,928,960): 1280 PRINTTAB(4,2); 1290 name$(num)=FNInput(30,32,126,"","_",TRUE,FALSE) 1300 PROCDrawEditObject(num,1) 1310 WHEN FNRectangle(X%,0,640,Y%,864,896): 1320 PRINTTAB(9,4); 1330 axiom$(num)=FNInput(25,32,126,"","_",TRUE,FALSE) 1340 PROCDrawEditObject(num,2) 1350 WHEN FNRectangle(X%,0,640,Y%,800,832): 1360 PRINTTAB(20,6); 1370 angles(num)=FNInput(3,48,57,"","_",TRUE,TRUE) 1380 IF angles(num)=0 THEN angles(num)=1 1390 PROCDrawEditObject(num,3) 1400 WHEN FNRectangle(X%,0,640,Y%,736,768): 1410 PRINTTAB(9,8); 1420 level(num)=FNInput(2,48,57,"","_",TRUE,TRUE) 1430 PROCDrawEditObject(num,4) 1440 WHEN FNRectangle(X%,0,640,Y%,32,672): 1450 r=((1280-Y%) DIV 32)-19 1460 PRINTTAB(4,11+r); 1470 rule$(num,r)=FNInput(30,32,126,"","_",TRUE,FALSE) 1480 PROCDrawEditObject(num,5) 1490 WHEN FNRectangle(X%,726,1114,Y%,372,428): 1500 screen_save=(NOT screen_save) 1510 PROCDrawEditObject(num,7) 1520 WHEN FNRectangle(X%,726,1114,Y%,436,492): 1530 compact=(NOT compact) 1540 PROCDrawEditObject(num,9) 1550 WHEN FNRectangle(X%,726,1114,Y%,308,364): 1560 PROCL_PLOT(num) 1570 PROCDisplayEditScreen(num) 1580 ENDCASE 1590 UNTIL FNRectangle(X%,726,1114,Y%,564,620) 1600ENDPROC 1610: 1620DEFPROCDrawEditObject(num,but) 1630 COLOUR 9:COLOUR 128+5 1640 1650 CASE TRUE OF 1660 WHEN but=1: 1670 REM *** name *** 1680 PROCPlinth(6,916,548,56,8,8,7,5,3,2,TRUE) 1690 PRINTTAB(1,2);num+1;"." 1700 PRINTTAB(4,2);name$(num) 1710 1720 WHEN but=2: 1730 REM *** default axiom *** 1740 PROCPlinth(6,852,548,56,8,8,7,5,3,2,TRUE) 1750 PRINTTAB(1,4);"Axiom : ";axiom$(num) 1760 1770 WHEN but=3: 1780 REM *** angles *** 1790 PROCPlinth(6,788,372,56,8,8,7,5,3,2,TRUE) 1800 PRINTTAB(1,6);"Number of angles : ";angles(num) 1810 1820 WHEN but=4: 1830 REM *** level *** 1840 PROCPlinth(6,724,180,56,8,8,7,5,3,2,TRUE) 1850 PRINTTAB(1,8);"Level : ";level(num) 1860 1870 WHEN but=5: 1880 REM *** rules *** 1890 PROCPlinth(6,20,548,696,8,8,7,5,3,2,TRUE) 1900 PRINTTAB(1,10);"Rules :" 1910 FOR i=0 TO 19 1920 PRINTTAB(1,11+i);i+1;"." 1930 PRINTTAB(4,11+i);rule$(num,i) 1940 NEXT 1950 1960 WHEN but=6: 1970 REM *** curve menu *** 1980 PROCPlinth(726,564,388,56,8,8,7,5,3,2,TRUE) 1990 PRINTTAB(47,13);"Return to curve menu." 2000 2010 WHEN but=7: 2020 REM *** screen save *** 2030 PROCPlinth(726,372,388,56,8,8,7,5,3,2,TRUE) 2040 PRINTTAB(49,19);"Screen save - "; 2050 IF screen_save THEN PRINT"yes" ELSE PRINT" no" 2060 2070 WHEN but=8: 2080 REM *** draw curve *** 2090 PROCPlinth(726,308,388,56,8,8,7,5,3,2,TRUE) 2100 PRINTTAB(53,21);"Draw curve" 2110 2120 WHEN but=9: 2130 REM *** compact screen save *** 2140 PROCPlinth(726,436,388,56,8,8,7,5,3,2,TRUE) 2150 PRINTTAB(47,17);"Compact screens - "; 2160 IF compact THEN PRINT"yes" ELSE PRINT" no" 2170 OTHERWISE: 2180 ENDCASE 2190ENDPROC 2200: 2210DEFPROCSaveError(err,report$) 2220 *CLOSE 2230 GCOL 0 2240 RECTANGLEFILL 0,512-200,1280,300 2250 COLOUR 128:COLOUR 8 2260 PRINTTAB(10,16);"The file '";filename$;"' has not been saved due" 2270 PRINTTAB(10,17);"to the following error - ";report$;"." 2280 PRINTTAB(10,18);"Press a mouse button to continue." 2290 PROCMouseWait(-8) 2300 PROCDisplaySelectScreen 2310ENDPROC 2320: 2330DEFPROCLoadError(err,report$) 2340 *CLOSE 2350 GCOL 0 2360 RECTANGLEFILL 0,512-200,1280,300 2370 COLOUR 128:COLOUR 8 2380 PRINTTAB(10,16);"The file '";filename$;"' has not been loaded due" 2390 PRINTTAB(10,17);"to the following error - ";report$;"." 2400 PRINTTAB(10,18);"Press a mouse button to continue." 2410 PROCMouseWait(-8) 2420 PROCDisplaySelectScreen 2430ENDPROC 2440: 2450DEFPROCSave(filename$) 2460LOCAL x,i,c,t 2470LOCAL ERROR 2480 ON ERROR LOCAL PROCSaveError(ERR,REPORT$):ENDPROC 2490 x=OPENOUT(filename$) 2500 FOR i=0 TO max-1 2510 IF name$(i)<>"" THEN 2520 t=FNCountRules(i) 2530 PRINT# x,name$(i),axiom$(i),t 2540 FOR c=0 TO 19 2550 IF rule$(i,c)<>"" THEN PRINT# x,rule$(i,c) 2560 NEXT 2570 PRINT# x,angles(i),level(i) 2580 ENDIF 2590 NEXT 2600 CLOSE# x 2610 2620 RESTORE ERROR 2630ENDPROC 2640: 2650DEFFNCountRules(num) 2660LOCAL i,t 2670 t=0 2680 FOR i=0 TO 19 2690 IF rule$(num,i)<>"" THEN t+=1 2700 NEXT 2710=t 2720: 2730DEFPROCLoad(filename$) 2740LOCAL x,i,c,t 2750LOCAL ERROR 2760 ON ERROR LOCAL PROCLoadError(ERR,REPORT$):ENDPROC 2770 PROCArrayInit 2780 x=OPENIN(filename$) 2790 IF x=0 THEN ERROR 102,"file '"+filename$+"' does not exist" 2800 i=0 2810 WHILE (NOT EOF#(x) AND i<=max) 2820 INPUT# x,name$(i),axiom$(i),t 2830 FOR c=0 TO t-1 2840 INPUT# x,rule$(i,c) 2850 NEXT 2860 INPUT# x,angles(i),level(i) 2870 i+=1 2880 ENDWHILE 2890 CLOSE# x 2900 2910 RESTORE ERROR 2920ENDPROC 2930: 2940DEFPROCL_PLOT(num) 2950LOCAL i 2960 rule()=0 2970 TurtleDirN=angles(num) 2980 maxlevel=level(num) 2990 PROCSetAngles 3000 FOR i=0 TO 19 3010 IF rule$(num,i)<>"" THEN 3020 PROCSetRule(LEFT$(rule$(num,i),1),MID$(rule$(num,i),3,100)) 3030 ENDIF 3040 NEXT 3050 3060 COLOUR 128 3070 CLS 3080 PROCInitialiseTurtle 3090 xmin=-200 3100 xmax=200 3110 ymin=-200 3120 ymax=200 3130 scale=FNMin(1276/(xmax-xmin),1020/(ymax-ymin)) 3140 xmin=0 3150 ymin=0 3160 xmax=0 3170 ymax=0 3180 COLOUR 8 3190 PRINTTAB(1,1);"Wait one moment while I work out the curve size........" 3200 MOVE scale*(TurtleX-xmin),scale*(TurtleY-ymin) 3210 FOR i=1 TO LEN(axiom$(num)) 3220 PROCCurve(ASC(MID$(axiom$(num),i,1)),0) 3230 NEXT 3240 3250 CLS 3260 PROCInitialiseTurtle 3270 IF xmin=xmax THEN xmax=0.01 3280 IF ymin=ymax THEN ymax=0.01 3290 scale=FNMin(1276/(xmax-xmin),1020/(ymax-ymin)) 3300 MOVE scale*(TurtleX-xmin),scale*(TurtleY-ymin) 3310 FOR i=1 TO LEN(axiom$(num)) 3320 PROCCurve(ASC(MID$(axiom$(num),i,1)),0) 3330 NEXT 3340 IF screen_save THEN PROCScreenSave 3350 3360 PROCMouseWait(-8) 3370ENDPROC 3380: 3390DEFPROCScreenSaveError(err,report$) 3400 COLOUR 8:COLOUR 128 3410 PRINTTAB(0,0);"Screen not saved - ";report$ 3420ENDPROC 3430: 3440DEFPROCScreenSave 3450LOCAL fname$,type,num 3460LOCAL ERROR 3470 ON ERROR LOCAL PROCScreenSaveError(ERR,REPORT$):ENDPROC 3480 num=1 3490 fname$="OL_Sys"+STR$(num) 3500 SYS "OS_File",17,fname$ TO type 3510 WHILE type<>0 3520 num+=1 3530 fname$="OL_Sys"+STR$(num) 3540 SYS "OS_File",17,fname$ TO type 3550 ENDWHILE 3560 3570 IF compact=TRUE THEN 3580 OSCLI("SCRSAVE "+fname$) 3590 ELSE 3600 OSCLI("SCREENSAVE "+fname$) 3610 ENDIF 3620 3630 RESTORE ERROR 3640ENDPROC 3650: 3660DEFPROCSetAngles 3670LOCAL i 3680 FOR i=0 TO TurtleDirN 3690 cos(i)=COSRAD(360*i/TurtleDirN) 3700 sin(i)=SINRAD(360*i/TurtleDirN) 3710 NEXT 3720ENDPROC 3730: 3740DEFPROCSetRule(c$,output$) 3750LOCAL i,c 3760 c=ASC(c$) 3770 rule(c,0)=LEN(output$) 3780 FOR i=1 TO LEN(output$) 3790 rule(c,i)=ASC(MID$(output$,i,1)) 3800 NEXT 3810ENDPROC 3820: 3830DEFPROCCurve(c,level) 3840LOCAL i 3850IF level<maxlevel THEN 3860 IF rule(c,0)<>0 THEN 3870 FOR i=1 TO rule(c,0) 3880 PROCCurve(rule(c,i),level+1) 3890 NEXT 3900 ENDPROC 3910 ELSE 3920 PROCTurtle(c) 3930 ENDIF 3940ELSE 3950 PROCTurtle(c) 3960ENDIF 3970ENDPROC 3980: 3990DEFPROCTurtle(c) 4000CASE c OF 4010 WHEN ASC("F"): 4020 TurtleX+=sin(TurtleDir) 4030 TurtleY+=cos(TurtleDir) 4040 GCOL 4+RND(4) 4050 DRAW scale*(TurtleX-xmin),scale*(TurtleY-ymin) 4060 IF TurtleX>xmax THEN xmax=TurtleX 4070 IF TurtleX<xmin THEN xmin=TurtleX 4080 IF TurtleY>ymax THEN ymax=TurtleY 4090 IF TurtleY<ymin THEN ymin=TurtleY 4100 WHEN ASC("f"): 4110 TurtleX+=sin(TurtleDir) 4120 TurtleY+=cos(TurtleDir) 4130 MOVE scale*(TurtleX-xmin),scale*(TurtleY-ymin) 4140 IF TurtleX>xmax THEN xmax=TurtleX 4150 IF TurtleX<xmin THEN xmin=TurtleX 4160 IF TurtleY>ymax THEN ymax=TurtleY 4170 IF TurtleY<ymin THEN ymin=TurtleY 4180 WHEN ASC("+"): 4190 TurtleDir-=1 4200 IF TurtleDir<0 THEN TurtleDir=TurtleDirN-1 4210 WHEN ASC("-"): 4220 TurtleDir+=1 4230 IF TurtleDir=TurtleDirN THEN TurtleDir=0 4240 WHEN ASC("|"): 4250 TurtleDir+=TurtleDirN/2 4260 IF TurtleDir>TurtleDirN THEN TurtleDir-=TurtleDirN 4270 WHEN ASC("["): 4280 IF TStackSize=TStackMax THEN ERROR 100,"stack full":END 4290 TStackX(TStackSize)=TurtleX 4300 TStackY(TStackSize)=TurtleY 4310 TStackDir(TStackSize)=TurtleDir 4320 TStackSize+=1 4330 WHEN ASC("]"): 4340 IF TStackSize=0 THEN ERROR 101,"stack empty":END 4350 TStackSize-=1 4360 TurtleX=TStackX(TStackSize) 4370 TurtleY=TStackY(TStackSize) 4380 TurtleDir=TStackDir(TStackSize) 4390 MOVE scale*(TurtleX-xmin),scale*(TurtleY-ymin) 4400 OTHERWISE: 4410ENDCASE 4420ENDPROC 4430: 4440DEFPROCStartUp 4450 max=30 4460 DIM name$(max) 4470 DIM axiom$(max) 4480 DIM rule$(max,20) 4490 DIM angles(max) 4500 DIM level(max) 4510 DIM buff% 100 4520 4530 DIM rule(255,30) 4540 TStackMax=100 4550 DIM TStackX(TStackMax) 4560 DIM TStackY(TStackMax) 4570 DIM TStackDir(TStackMax) 4580 DIM cos(360) 4590 DIM sin(360) 4600 4610 filename$="Demo" 4620 compact=TRUE 4630 screen_save=FALSE 4640 angles()=1 4650ENDPROC 4660: 4670DEFPROCInitialiseTurtle 4680 TurtleX=0 4690 TurtleY=0 4700 TurtleDir=0 4710 TStackSize=0 4720ENDPROC 4730: 4740DEFPROCColours 4750LOCAL i 4760 FOR i=0 TO 7 4770 COLOUR i,i*32,i*32,i*32 4780 NEXT 4790 COLOUR 8 ,255,255,255 :REM WHITE 4800 COLOUR 9 ,255,0 ,0 :REM RED 4810 COLOUR 10,0 ,255,0 :REM GREEN 4820 COLOUR 11,255,255,0 :REM YELLOW 4830 COLOUR 12,0 ,0 ,255 :REM BLUE 4840 COLOUR 13,255,0 ,255 :REM MAGENTA 4850 COLOUR 14,0 ,255,255 :REM CYAN 4860 4870 COLOUR 15,255,255,255 :REM WHITE (AGAIN) 4880ENDPROC 4890: 4900DEFPROCStarCommand 4910LOCAL C$ 4920LOCAL ERROR 4930 ON 4940 COLOUR 7:COLOUR 128 4950 PRINTTAB(0,32) 4960 ON ERROR LOCAL IF ERR=17 THEN ENDPROC ELSE REPORT:PRINT' 4970 REPEAT 4980 PRINTTAB(0,32); 4990 INPUT"*"C$ 5000 OSCLI(C$) 5010 UNTIL C$="" 5020 OFF 5030 RESTORE ERROR 5040ENDPROC 5050: 5060REM ***** INITIALISE ARRAYS ***** 5070DEFPROCArrayInit 5080 name$()="" 5090 axiom$()="" 5100 rule$()="" 5110 angles()=1 5120 level()=1 5130ENDPROC 5140: 5150DEFPROCPlinth(X,Y,WX,WY,W,C0,C1,C2,C3,C4,RAISED) 5160IF NOT RAISED THEN SWAP C1,C3:SWAP C0,C4 5170GCOL C1 5180RECTANGLEFILL X,Y,WX,WY 5190GCOL C3 5200RECTANGLEFILL X+W,Y,WX-2*W,W 5210RECTANGLEFILL X+WX-W,Y,W,WY-W 5220MOVE X,Y:MOVE X+W,Y 5230PLOT85,X+W,Y+W:MOVE X+WX-W,Y+WY-W 5240MOVE X+WX,Y+WY-W 5250PLOT85,X+WX,Y+WY:PLOT85,X+WX,Y+WY 5260GCOL C0 5270LINE X,Y+WY,X+W,Y+WY-W 5280GCOL C4 5290LINE X+WX,Y,X+WX-W,Y+W 5300GCOL C2 5310RECTANGLEFILL X+W,Y+W,WX-2*W,WY-2*W 5320ENDPROC 5330: 5340DEFFNMin(a,b) 5350IF a<b THEN =a ELSE =b 5360: 5370DEFFNMax(a,b) 5380IF a>b THEN =a ELSE =b 5390: 5400DEFPROCMouseWait(N) 5410LOCAL ANYPRESS,inkey,M 5420*FX 21,9 5430IF N<0 THEN PROCMouseWait(0):N=ABS(N) 5440IF (N AND 16)>0 THEN inkey=TRUE:*FX 21 5450IF (N AND 8)>0 THEN ANYPRESS=TRUE 5460M=N AND 7:W%=-1 5470REPEAT 5480MOUSE X%,Y%,Z% 5490IF inkey THEN W%=INKEY(0) 5500UNTIL (Z%=M AND NOT (N>7 AND M=0)) OR (ANYPRESS AND (Z%>0)) OR (inkey AND (W%>-1)) 5510ENDPROC 5520: 5530DEFFNRectangle(x,xlo,xhi,y,ylo,yhi) 5540=(x>=xlo) AND (x<=xhi) AND (y>=ylo) AND (y<=yhi) 5550: 5560DEFFNInput(len%,lochr%,hichr%,exclude$,paint$,echo%,num%) 5570 LOCAL n%,paint%,inputok%,quitinput% 5580 quitinput%=FALSE 5590 inputok%=FALSE 5600 input$="":n%=0:exitchoice%=0 5610 paint%=ASC(paint$) 5620 PRINT STRING$(len%,paint$);STRING$(len%,CHR$(8)); 5630 REPEAT 5640 PROCMouseWait(-24) 5650 IF Z%>0 THEN 5660 IF Z%=4 THEN inputok%=TRUE ELSE quitinput%=TRUE 5670 ELSE 5680 CASE TRUE OF 5690 WHEN W%=13:inputok%=TRUE 5700 WHEN W%=127 AND n%>0:n%-=1 5710 input$=LEFT$(input$,n%):VDU 8,paint%,8 5720 WHEN W%>=lochr% AND W%<=hichr% AND INSTR(exclude$,CHR$(W%))=0: 5730 IF n%>=len% THEN 5740 VDU 7 5750 ELSE 5760 input$+=CHR$(W%):n%+=1 5770 IF echo% THEN VDU W% ELSE VDU 9 5780 ENDIF 5790 ENDCASE 5800 ENDIF 5810 UNTIL quitinput% OR inputok% 5820 IF quitinput% THEN input$="" 5830 exitchoice%=Z%:PRINT: 5840 PROCMouseWait(0) 5850 IF num% THEN =VAL(input$) 5860=input$
� >!RunImage : � Title : OL System (%� Use : Draw fractal pictures 2� Author : Stewart May <#� Version : 1.10 3rd July 1991 A/� Copyright : Archimedes World October 1991 F: P� sp 25000 Z&sp!0=25000:sp!4=0:sp!8=16:sp!12=16 d3ș "OS_SpriteOp",10+256,sp,"<Obey$Dir>.Sprites" n: x�("DIR <Obey$Dir>.Files") �: � � 12:� �ȗ � ��StartUp ��Colours � �� � �DisplaySelectScreen � �HandleSelectScreen �� � �� �: ���DisplaySelectScreen � 128+5 � � " � i=1 � 6 , �DrawSelectObject(i) 6 � @� J: T��DrawSelectObject(which) ^� i h r � 9:� 128+5 | � Ȏ which � � � 1: �: �Plinth(680,680,440+40,240+40,8,8,7,12,3,2,�) �9 ș "OS_SpriteOp",34+256,sp,"Title",700,700,8 � � � 2: �0 �Plinth(6,20,548,984,8,8,7,5,3,2,�) � i=0 � ȕ i<max � �1,i+1);i+1;"." � � name$(i)<>"" �$ �4,i+1);name$(i) � � i+=1 � & � 3: 0 � *** save *** :2 �Plinth(726,244,388,56,8,8,7,5,3,2,�) D! �53,23);"Save file" N X � 4: b � *** load *** l2 �Plinth(726,180,388,56,8,8,7,5,3,2,�) v! �53,25);"Load file" � � � 5: � � *** filename *** �1 �Plinth(726,84,388,88,8,8,7,5,3,2,�) �$ �52,27);"File name is" �6 �57-�(filename$)/2,28);"'";filename$;"'" � � � 6: � � *** *command *** �1 �Plinth(726,20,388,56,8,8,7,5,3,2,�) �! �53,30);"* Command" � � �� : ��HandleSelectScreen � �MouseWait(-8) * Ȏ � � 4/ � �Rectangle(X%,6,554,Y%,20,1004): >) �Edit(((1024-Y%) � 32)-1) H$ �DisplaySelectScreen R \1 � �Rectangle(X%,726,1114,Y%,244,300) f �Save(filename$) p z1 � �Rectangle(X%,726,1114,Y%,180,236) � �Load(filename$) �$ �DrawSelectObject(2) � �0 � �Rectangle(X%,726,1114,Y%,84,172) � � 9:� 128+5 � �53,28); �B filename$=�Input(10,48,122,":;<=>?@[\]^�","_",�,�) �6 � filename$="" � filename$="LSYS_TEMP" �$ �DrawSelectObject(5) � �/ � �Rectangle(X%,726,1114,Y%,20,76) � �StarCommand � ȗ �:� $ �DisplaySelectScreen � � � $� .: 8��Edit(num) B �DisplayEditScreen(num) L �HandleEditScreen(num) V� `: j��DisplayEditScreen(num) t� b ~ � 128+5 � � � � � � b=1 � 9 � �DrawEditObject(num,b) � � �� �: ���HandleEditScreen(num) � � � �MouseWait(-8) � Ȏ � � �/ � �Rectangle(X%,0,640,Y%,928,960): �4,2); 7 name$(num)=�Input(30,32,126,"","_",�,�) & �DrawEditObject(num,1) / � �Rectangle(X%,0,640,Y%,864,896): ( �9,4); 28 axiom$(num)=�Input(25,32,126,"","_",�,�) <& �DrawEditObject(num,2) F/ � �Rectangle(X%,0,640,Y%,800,832): P �20,6); Z6 angles(num)=�Input(3,48,57,"","_",�,�) d/ � angles(num)=0 � angles(num)=1 n& �DrawEditObject(num,3) x/ � �Rectangle(X%,0,640,Y%,736,768): � �9,8); �5 level(num)=�Input(2,48,57,"","_",�,�) �& �DrawEditObject(num,4) �. � �Rectangle(X%,0,640,Y%,32,672): �% r=((1280-Y%) � 32)-19 � �4,11+r); �9 rule$(num,r)=�Input(30,32,126,"","_",�,�) �& �DrawEditObject(num,5) �2 � �Rectangle(X%,726,1114,Y%,372,428): �+ screen_save=(� screen_save) �& �DrawEditObject(num,7) �2 � �Rectangle(X%,726,1114,Y%,436,492): �# compact=(� compact) & �DrawEditObject(num,9) 2 � �Rectangle(X%,726,1114,Y%,308,364): �L_PLOT(num) "' �DisplayEditScreen(num) , � 6+ � �Rectangle(X%,726,1114,Y%,564,620) @� J: T��DrawEditObject(num,but) ^ � 9:� 128+5 h r Ȏ � � | � but=1: � � *** name *** �0 �Plinth(6,916,548,56,8,8,7,5,3,2,�) � �1,2);num+1;"." � �4,2);name$(num) � � � but=2: �$ � *** default axiom *** �0 �Plinth(6,852,548,56,8,8,7,5,3,2,�) �* �1,4);"Axiom : ";axiom$(num) � � � but=3: � � *** angles *** �0 �Plinth(6,788,372,56,8,8,7,5,3,2,�) 5 �1,6);"Number of angles : ";angles(num) � but=4: & � *** level *** 00 �Plinth(6,724,180,56,8,8,7,5,3,2,�) :) �1,8);"Level : ";level(num) D N � but=5: X � *** rules *** b0 �Plinth(6,20,548,696,8,8,7,5,3,2,�) l �1,10);"Rules :" v � i=0 � 19 �! �1,11+i);i+1;"." �& �4,11+i);rule$(num,i) � � � � � but=6: �! � *** curve menu *** �2 �Plinth(726,564,388,56,8,8,7,5,3,2,�) �- �47,13);"Return to curve menu." � � � but=7: �" � *** screen save *** �2 �Plinth(726,372,388,56,8,8,7,5,3,2,�) �' �49,19);"Screen save - "; , � screen_save � �"yes" � �" no" � but=8: ! � *** draw curve *** *2 �Plinth(726,308,388,56,8,8,7,5,3,2,�) 4" �53,21);"Draw curve" > H � but=9: R* � *** compact screen save *** \2 �Plinth(726,436,388,56,8,8,7,5,3,2,�) f+ �47,17);"Compact screens - "; p( � compact � �"yes" � �" no" z : � � �� �: ���SaveError(err,report$) � *CLOSE � � 0 � ȓȐ 0,512-200,1280,300 � � 128:� 8 �A �10,16);"The file '";filename$;"' has not been saved due" �7 �10,17);"to the following error - ";report$;"." �3 �10,18);"Press a mouse button to continue." � �MouseWait(-8) � �DisplaySelectScreen � : ��LoadError(err,report$) $ *CLOSE . � 0 8 ȓȐ 0,512-200,1280,300 B � 128:� 8 LB �10,16);"The file '";filename$;"' has not been loaded due" V7 �10,17);"to the following error - ";report$;"." `3 �10,18);"Press a mouse button to continue." j �MouseWait(-8) t �DisplaySelectScreen ~� �: ���Save(filename$) � � x,i,c,t �� � � � � � �SaveError(�,�$):� � x=�(filename$) � � i=0 � max-1 � � name$(i)<>"" � � t=�CountRules(i) �& �# x,name$(i),axiom$(i),t � � c=0 � 19 �2 � rule$(i,c)<>"" � �# x,rule$(i,c) � $ �# x,angles(i),level(i) � � ( �# x 2 < � � F� P: ZݤCountRules(num) d � i,t n t=0 x � i=0 � 19 �# � rule$(num,i)<>"" � t+=1 � � �=t �: ���Load(filename$) � � x,i,c,t �� � � � � � �LoadError(�,�$):� � �ArrayInit � x=�(filename$) �: � x=0 � � 102,"file '"+filename$+"' does not exist" � i=0 � ȕ (� �#(x) � i<=max) # �# x,name$(i),axiom$(i),t � c=0 � t-1 �# x,rule$(i,c) " � ,! �# x,angles(i),level(i) 6 i+=1 @ � J �# x T ^ � � h� r: |��L_PLOT(num) �� i � rule()=0 � TurtleDirN=angles(num) � maxlevel=level(num) � �SetAngles � � i=0 � 19 � � rule$(num,i)<>"" � �< �SetRule(�rule$(num,i),1),�rule$(num,i),3,100)) � � � � � � � 128 � � �InitialiseTurtle xmin=-200 xmax=200 & ymin=-200 0 ymax=200 :4 scale=�Min(1276/(xmax-xmin),1020/(ymax-ymin)) D xmin=0 N ymin=0 X xmax=0 b ymax=0 l � 8 vG �1,1);"Wait one moment while I work out the curve size........" �2 � scale*(TurtleX-xmin),scale*(TurtleY-ymin) � � i=1 � �(axiom$(num)) �( �Curve(�(�axiom$(num),i,1)),0) � � � � � � �InitialiseTurtle � � xmin=xmax � xmax=0.01 � � ymin=ymax � ymax=0.01 �4 scale=�Min(1276/(xmax-xmin),1020/(ymax-ymin)) �2 � scale*(TurtleX-xmin),scale*(TurtleY-ymin) � � i=1 � �(axiom$(num)) �( �Curve(�(�axiom$(num),i,1)),0) � " � screen_save � �ScreenSave �MouseWait(-8) *� 4: >"��ScreenSaveError(err,report$) H � 8:� 128 R+ �0,0);"Screen not saved - ";report$ \� f: p��ScreenSave z� fname$,type,num �� � �% � � � �ScreenSaveError(�,�$):� � num=1 � fname$="OL_Sys"+�(num) �$ ș "OS_File",17,fname$ � type � ȕ type<>0 � num+=1 � fname$="OL_Sys"+�(num) �' ș "OS_File",17,fname$ � type � � � � � compact=� � � �("SCRSAVE "+fname$) � ! �("SCREENSAVE "+fname$) � $ . � � 8� B: L��SetAngles V� i ` � i=0 � TurtleDirN j% cos(i)=��(360*i/TurtleDirN) t% sin(i)=��(360*i/TurtleDirN) ~ � �� �: ���SetRule(c$,output$) � � i,c � c=�(c$) � rule(c,0)=�(output$) � � i=1 � �(output$) �$ rule(c,i)=�(�output$,i,1)) � � �� �: ���Curve(c,level) � i � level<maxlevel � � rule(c,0)<>0 � � i=1 � rule(c,0) (& �Curve(rule(c,i),level+1) 2 � < � F � P �Turtle(c) Z � d� n �Turtle(c) x� �� �: ���Turtle(c) � Ȏ c � � � �("F"): �! TurtleX+=sin(TurtleDir) �! TurtleY+=cos(TurtleDir) � � 4+�(4) �5 � scale*(TurtleX-xmin),scale*(TurtleY-ymin) �' � TurtleX>xmax � xmax=TurtleX �' � TurtleX<xmin � xmin=TurtleX �' � TurtleY>ymax � ymax=TurtleY �' � TurtleY<ymin � ymin=TurtleY � �("f"): ! TurtleX+=sin(TurtleDir) ! TurtleY+=cos(TurtleDir) "5 � scale*(TurtleX-xmin),scale*(TurtleY-ymin) ,' � TurtleX>xmax � xmax=TurtleX 6' � TurtleX<xmin � xmin=TurtleX @' � TurtleY>ymax � ymax=TurtleY J' � TurtleY<ymin � ymin=TurtleY T � �("+"): ^ TurtleDir-=1 h0 � TurtleDir<0 � TurtleDir=TurtleDirN-1 r � �("-"): | TurtleDir+=1 �. � TurtleDir=TurtleDirN � TurtleDir=0 � � �("|"): �! TurtleDir+=TurtleDirN/2 �8 � TurtleDir>TurtleDirN � TurtleDir-=TurtleDirN � � �("["): �7 � TStackSize=TStackMax � � 100,"stack full":� �% TStackX(TStackSize)=TurtleX �% TStackY(TStackSize)=TurtleY �) TStackDir(TStackSize)=TurtleDir � TStackSize+=1 � � �("]"): �0 � TStackSize=0 � � 101,"stack empty":� � TStackSize-=1 % TurtleX=TStackX(TStackSize) % TurtleY=TStackY(TStackSize) ) TurtleDir=TStackDir(TStackSize) &5 � scale*(TurtleX-xmin),scale*(TurtleY-ymin) 0 : :� D� N: X ��StartUp b max=30 l � name$(max) v � axiom$(max) � � rule$(max,20) � � angles(max) � � level(max) � � buff% 100 � � � rule(255,30) � TStackMax=100 � � TStackX(TStackMax) � � TStackY(TStackMax) � � TStackDir(TStackMax) � � cos(360) � � sin(360) � filename$="Demo" compact=� screen_save=� angles()=1 *� 4: >��InitialiseTurtle H TurtleX=0 R TurtleY=0 \ TurtleDir=0 f TStackSize=0 p� z: � ��Colours �� i � � i=0 � 7 � � i,i*32,i*32,i*32 � � �! � 8 ,255,255,255 :� WHITE � � 9 ,255,0 ,0 :� RED �! � 10,0 ,255,0 :� GREEN �" � 11,255,255,0 :� YELLOW � � 12,0 ,0 ,255 :� BLUE �# � 13,255,0 ,255 :� MAGENTA � � 14,0 ,255,255 :� CYAN � ) � 15,255,255,255 :� WHITE (AGAIN) � : $��StarCommand .� C$ 8� � B � L � 7:� 128 V �0,32) ` � � � � �=17 � � � �:�' j � t �0,32); ~ �"*"C$ � �(C$) � � C$="" � � � � � �� �: �#� ***** INITIALISE ARRAYS ***** ���ArrayInit � name$()="" � axiom$()="" � rule$()="" � angles()=1 level()=1 � : /��Plinth(X,Y,WX,WY,W,C0,C1,C2,C3,C4,RAISED) ("� � RAISED � Ȕ C1,C3:Ȕ C0,C4 2� C1 <ȓȐ X,Y,WX,WY F� C3 PȓȐ X+W,Y,WX-2*W,W ZȓȐ X+WX-W,Y,W,WY-W d� X,Y:� X+W,Y n�85,X+W,Y+W:� X+WX-W,Y+WY-W x� X+WX,Y+WY-W ��85,X+WX,Y+WY:�85,X+WX,Y+WY �� C0 �� X,Y+WY,X+W,Y+WY-W �� C4 �� X+WX,Y,X+WX-W,Y+W �� C2 �ȓȐ X+W,Y+W,WX-2*W,WY-2*W �� �: �ݤMin(a,b) �� a<b � =a � =b �: �ݤMax(a,b) � a>b � =a � =b : ��MouseWait(N) "� ANYPRESS,inkey,M ,*FX 21,9 6 � N<0 � �MouseWait(0):N=�(N) @!� (N � 16)>0 � inkey=�:*FX 21 J� (N � 8)>0 � ANYPRESS=� TM=N � 7:W%=-1 ^� hȗ X%,Y%,Z% r� inkey � W%=�(0) |F� (Z%=M � � (N>7 � M=0)) � (ANYPRESS � (Z%>0)) � (inkey � (W%>-1)) �� �: �$ݤRectangle(x,xlo,xhi,y,ylo,yhi) �.=(x>=xlo) � (x<=xhi) � (y>=ylo) � (y<=yhi) �: �:ݤInput(len%,lochr%,hichr%,exclude$,paint$,echo%,num%) �& � n%,paint%,inputok%,quitinput% � quitinput%=� � inputok%=� �# input$="":n%=0:exitchoice%=0 � paint%=�(paint$) �# � �len%,paint$);�len%,�(8)); � � �MouseWait(-24) � Z%>0 � / � Z%=4 � inputok%=� � quitinput%=� & � 0 Ȏ � � :" � W%=13:inputok%=� D% � W%=127 � n%>0:n%-=1 N2 input$=�input$,n%):� 8,paint%,8 X? � W%>=lochr% � W%<=hichr% � �exclude$,�(W%))=0: b � n%>=len% � l � 7 v � �) input$+=�(W%):n%+=1 �* � echo% � � W% � � 9 � � � � � � � � quitinput% � inputok% � � quitinput% � input$="" � exitchoice%=Z%:�: � �MouseWait(0) � � num% � =�(input$) �=input$ �
00000000 0d 00 0a 10 f4 20 3e 21 52 75 6e 49 6d 61 67 65 |..... >!RunImage| 00000010 0d 00 14 05 3a 0d 00 1e 19 f4 20 54 69 74 6c 65 |....:..... Title| 00000020 20 20 20 3a 20 4f 4c 20 53 79 73 74 65 6d 0d 00 | : OL System..| 00000030 28 25 f4 20 55 73 65 20 20 20 20 20 3a 20 44 72 |(%. Use : Dr| 00000040 61 77 20 66 72 61 63 74 61 6c 20 70 69 63 74 75 |aw fractal pictu| 00000050 72 65 73 0d 00 32 1b f4 20 41 75 74 68 6f 72 20 |res..2.. Author | 00000060 20 3a 20 53 74 65 77 61 72 74 20 4d 61 79 0d 00 | : Stewart May..| 00000070 3c 23 f4 20 56 65 72 73 69 6f 6e 20 3a 20 31 2e |<#. Version : 1.| 00000080 31 30 20 20 33 72 64 20 4a 75 6c 79 20 31 39 39 |10 3rd July 199| 00000090 31 0d 00 41 2f f4 20 43 6f 70 79 72 69 67 68 74 |1..A/. Copyright| 000000a0 20 3a 20 41 72 63 68 69 6d 65 64 65 73 20 57 6f | : Archimedes Wo| 000000b0 72 6c 64 20 4f 63 74 6f 62 65 72 20 31 39 39 31 |rld October 1991| 000000c0 0d 00 46 05 3a 0d 00 50 0e de 20 73 70 20 32 35 |..F.:..P.. sp 25| 000000d0 30 30 30 0d 00 5a 26 73 70 21 30 3d 32 35 30 30 |000..Z&sp!0=2500| 000000e0 30 3a 73 70 21 34 3d 30 3a 73 70 21 38 3d 31 36 |0:sp!4=0:sp!8=16| 000000f0 3a 73 70 21 31 32 3d 31 36 0d 00 64 33 c8 99 20 |:sp!12=16..d3.. | 00000100 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c 31 30 |"OS_SpriteOp",10| 00000110 2b 32 35 36 2c 73 70 2c 22 3c 4f 62 65 79 24 44 |+256,sp,"<Obey$D| 00000120 69 72 3e 2e 53 70 72 69 74 65 73 22 0d 00 6e 05 |ir>.Sprites"..n.| 00000130 3a 0d 00 78 1d ff 28 22 44 49 52 20 3c 4f 62 65 |:..x..("DIR <Obe| 00000140 79 24 44 69 72 3e 2e 46 69 6c 65 73 22 29 0d 00 |y$Dir>.Files")..| 00000150 82 05 3a 0d 00 8c 0a eb 20 31 32 3a 87 0d 00 96 |..:..... 12:....| 00000160 08 c8 97 20 ee 0d 00 a0 0c f2 53 74 61 72 74 55 |... ......StartU| 00000170 70 0d 00 aa 0c f2 43 6f 6c 6f 75 72 73 0d 00 b4 |p.....Colours...| 00000180 04 0d 00 be 05 f5 0d 00 c8 1b 20 20 20 f2 44 69 |.......... .Di| 00000190 73 70 6c 61 79 53 65 6c 65 63 74 53 63 72 65 65 |splaySelectScree| 000001a0 6e 0d 00 d2 1a 20 20 20 f2 48 61 6e 64 6c 65 53 |n.... .HandleS| 000001b0 65 6c 65 63 74 53 63 72 65 65 6e 0d 00 dc 07 fd |electScreen.....| 000001c0 20 a3 0d 00 e6 05 e0 0d 00 f0 05 3a 0d 00 fa 19 | ..........:....| 000001d0 dd f2 44 69 73 70 6c 61 79 53 65 6c 65 63 74 53 |..DisplaySelectS| 000001e0 63 72 65 65 6e 0d 01 04 0e 20 20 20 fb 20 31 32 |creen.... . 12| 000001f0 38 2b 35 0d 01 0e 08 20 20 20 db 0d 01 18 08 20 |8+5.... ..... | 00000200 20 20 87 0d 01 22 10 20 20 20 e3 20 69 3d 31 20 | ...". . i=1 | 00000210 b8 20 36 0d 01 2c 1e 20 20 20 20 20 20 f2 44 72 |. 6..,. .Dr| 00000220 61 77 53 65 6c 65 63 74 4f 62 6a 65 63 74 28 69 |awSelectObject(i| 00000230 29 0d 01 36 08 20 20 20 ed 0d 01 40 05 e1 0d 01 |)..6. ...@....| 00000240 4a 05 3a 0d 01 54 1d dd f2 44 72 61 77 53 65 6c |J.:..T...DrawSel| 00000250 65 63 74 4f 62 6a 65 63 74 28 77 68 69 63 68 29 |ectObject(which)| 00000260 0d 01 5e 07 ea 20 69 0d 01 68 04 0d 01 72 12 20 |..^.. i..h...r. | 00000270 20 20 fb 20 39 3a fb 20 31 32 38 2b 35 0d 01 7c | . 9:. 128+5..|| 00000280 04 0d 01 86 11 20 20 20 c8 8e 20 77 68 69 63 68 |..... .. which| 00000290 20 ca 0d 01 90 0e 20 20 20 20 20 20 c9 20 31 3a | ..... . 1:| 000002a0 0d 01 9a 3a 20 20 20 20 20 20 20 20 20 f2 50 6c |...: .Pl| 000002b0 69 6e 74 68 28 36 38 30 2c 36 38 30 2c 34 34 30 |inth(680,680,440| 000002c0 2b 34 30 2c 32 34 30 2b 34 30 2c 38 2c 38 2c 37 |+40,240+40,8,8,7| 000002d0 2c 31 32 2c 33 2c 32 2c a3 29 0d 01 a4 39 20 20 |,12,3,2,.)...9 | 000002e0 20 20 20 20 20 20 20 c8 99 20 22 4f 53 5f 53 70 | .. "OS_Sp| 000002f0 72 69 74 65 4f 70 22 2c 33 34 2b 32 35 36 2c 73 |riteOp",34+256,s| 00000300 70 2c 22 54 69 74 6c 65 22 2c 37 30 30 2c 37 30 |p,"Title",700,70| 00000310 30 2c 38 0d 01 ae 04 0d 01 b8 0e 20 20 20 20 20 |0,8........ | 00000320 20 c9 20 32 3a 0d 01 c2 30 20 20 20 20 20 20 20 | . 2:...0 | 00000330 20 20 f2 50 6c 69 6e 74 68 28 36 2c 32 30 2c 35 | .Plinth(6,20,5| 00000340 34 38 2c 39 38 34 2c 38 2c 38 2c 37 2c 35 2c 33 |48,984,8,8,7,5,3| 00000350 2c 32 2c b9 29 0d 01 cc 10 20 20 20 20 20 20 20 |,2,.).... | 00000360 20 20 69 3d 30 0d 01 d6 15 20 20 20 20 20 20 20 | i=0.... | 00000370 20 20 c8 95 20 69 3c 6d 61 78 0d 01 e0 20 20 20 | .. i<max... | 00000380 20 20 20 20 20 20 20 20 20 20 f1 8a 31 2c 69 2b | ..1,i+| 00000390 31 29 3b 69 2b 31 3b 22 2e 22 0d 01 ea 1e 20 20 |1);i+1;".".... | 000003a0 20 20 20 20 20 20 20 20 20 20 e7 20 6e 61 6d 65 | . name| 000003b0 24 28 69 29 3c 3e 22 22 0d 01 f4 24 20 20 20 20 |$(i)<>""...$ | 000003c0 20 20 20 20 20 20 20 20 20 20 20 f1 8a 34 2c 69 | ..4,i| 000003d0 2b 31 29 3b 6e 61 6d 65 24 28 69 29 0d 01 fe 11 |+1);name$(i)....| 000003e0 20 20 20 20 20 20 20 20 20 20 20 20 cd 0d 02 08 | ....| 000003f0 14 20 20 20 20 20 20 20 20 20 20 20 20 69 2b 3d |. i+=| 00000400 31 0d 02 12 0e 20 20 20 20 20 20 20 20 20 ce 0d |1.... ..| 00000410 02 1c 04 0d 02 26 0e 20 20 20 20 20 20 c9 20 33 |.....&. . 3| 00000420 3a 0d 02 30 1b 20 20 20 20 20 20 20 20 20 f4 20 |:..0. . | 00000430 2a 2a 2a 20 73 61 76 65 20 2a 2a 2a 0d 02 3a 32 |*** save ***..:2| 00000440 20 20 20 20 20 20 20 20 20 f2 50 6c 69 6e 74 68 | .Plinth| 00000450 28 37 32 36 2c 32 34 34 2c 33 38 38 2c 35 36 2c |(726,244,388,56,| 00000460 38 2c 38 2c 37 2c 35 2c 33 2c 32 2c b9 29 0d 02 |8,8,7,5,3,2,.)..| 00000470 44 21 20 20 20 20 20 20 20 20 20 f1 8a 35 33 2c |D! ..53,| 00000480 32 33 29 3b 22 53 61 76 65 20 66 69 6c 65 22 0d |23);"Save file".| 00000490 02 4e 04 0d 02 58 0e 20 20 20 20 20 20 c9 20 34 |.N...X. . 4| 000004a0 3a 0d 02 62 1b 20 20 20 20 20 20 20 20 20 f4 20 |:..b. . | 000004b0 2a 2a 2a 20 6c 6f 61 64 20 2a 2a 2a 0d 02 6c 32 |*** load ***..l2| 000004c0 20 20 20 20 20 20 20 20 20 f2 50 6c 69 6e 74 68 | .Plinth| 000004d0 28 37 32 36 2c 31 38 30 2c 33 38 38 2c 35 36 2c |(726,180,388,56,| 000004e0 38 2c 38 2c 37 2c 35 2c 33 2c 32 2c b9 29 0d 02 |8,8,7,5,3,2,.)..| 000004f0 76 21 20 20 20 20 20 20 20 20 20 f1 8a 35 33 2c |v! ..53,| 00000500 32 35 29 3b 22 4c 6f 61 64 20 66 69 6c 65 22 0d |25);"Load file".| 00000510 02 80 04 0d 02 8a 0e 20 20 20 20 20 20 c9 20 35 |....... . 5| 00000520 3a 0d 02 94 1f 20 20 20 20 20 20 20 20 20 f4 20 |:.... . | 00000530 2a 2a 2a 20 66 69 6c 65 6e 61 6d 65 20 2a 2a 2a |*** filename ***| 00000540 0d 02 9e 31 20 20 20 20 20 20 20 20 20 f2 50 6c |...1 .Pl| 00000550 69 6e 74 68 28 37 32 36 2c 38 34 2c 33 38 38 2c |inth(726,84,388,| 00000560 38 38 2c 38 2c 38 2c 37 2c 35 2c 33 2c 32 2c b9 |88,8,8,7,5,3,2,.| 00000570 29 0d 02 a8 24 20 20 20 20 20 20 20 20 20 f1 8a |)...$ ..| 00000580 35 32 2c 32 37 29 3b 22 46 69 6c 65 20 6e 61 6d |52,27);"File nam| 00000590 65 20 69 73 22 0d 02 b2 36 20 20 20 20 20 20 20 |e is"...6 | 000005a0 20 20 f1 8a 35 37 2d a9 28 66 69 6c 65 6e 61 6d | ..57-.(filenam| 000005b0 65 24 29 2f 32 2c 32 38 29 3b 22 27 22 3b 66 69 |e$)/2,28);"'";fi| 000005c0 6c 65 6e 61 6d 65 24 3b 22 27 22 0d 02 bc 04 0d |lename$;"'".....| 000005d0 02 c6 0e 20 20 20 20 20 20 c9 20 36 3a 0d 02 d0 |... . 6:...| 000005e0 1f 20 20 20 20 20 20 20 20 20 f4 20 2a 2a 2a 20 |. . *** | 000005f0 2a 63 6f 6d 6d 61 6e 64 20 2a 2a 2a 0d 02 da 31 |*command ***...1| 00000600 20 20 20 20 20 20 20 20 20 f2 50 6c 69 6e 74 68 | .Plinth| 00000610 28 37 32 36 2c 32 30 2c 33 38 38 2c 35 36 2c 38 |(726,20,388,56,8| 00000620 2c 38 2c 37 2c 35 2c 33 2c 32 2c b9 29 0d 02 e4 |,8,7,5,3,2,.)...| 00000630 21 20 20 20 20 20 20 20 20 20 f1 8a 35 33 2c 33 |! ..53,3| 00000640 30 29 3b 22 2a 20 43 6f 6d 6d 61 6e 64 22 0d 02 |0);"* Command"..| 00000650 ee 08 20 20 20 cb 0d 02 f8 05 e1 0d 03 02 05 3a |.. ..........:| 00000660 0d 03 0c 18 dd f2 48 61 6e 64 6c 65 53 65 6c 65 |......HandleSele| 00000670 63 74 53 63 72 65 65 6e 0d 03 16 08 20 20 20 f5 |ctScreen.... .| 00000680 0d 03 20 18 20 20 20 20 20 20 f2 4d 6f 75 73 65 |.. . .Mouse| 00000690 57 61 69 74 28 2d 38 29 0d 03 2a 10 20 20 20 20 |Wait(-8)..*. | 000006a0 20 20 c8 8e 20 b9 20 ca 0d 03 34 2f 20 20 20 20 | .. . ...4/ | 000006b0 20 20 20 20 20 c9 20 a4 52 65 63 74 61 6e 67 6c | . .Rectangl| 000006c0 65 28 58 25 2c 36 2c 35 35 34 2c 59 25 2c 32 30 |e(X%,6,554,Y%,20| 000006d0 2c 31 30 30 34 29 3a 0d 03 3e 29 20 20 20 20 20 |,1004):..>) | 000006e0 20 20 20 20 20 20 20 f2 45 64 69 74 28 28 28 31 | .Edit(((1| 000006f0 30 32 34 2d 59 25 29 20 81 20 33 32 29 2d 31 29 |024-Y%) . 32)-1)| 00000700 0d 03 48 24 20 20 20 20 20 20 20 20 20 20 20 20 |..H$ | 00000710 f2 44 69 73 70 6c 61 79 53 65 6c 65 63 74 53 63 |.DisplaySelectSc| 00000720 72 65 65 6e 0d 03 52 04 0d 03 5c 31 20 20 20 20 |reen..R...\1 | 00000730 20 20 20 20 20 c9 20 a4 52 65 63 74 61 6e 67 6c | . .Rectangl| 00000740 65 28 58 25 2c 37 32 36 2c 31 31 31 34 2c 59 25 |e(X%,726,1114,Y%| 00000750 2c 32 34 34 2c 33 30 30 29 0d 03 66 20 20 20 20 |,244,300)..f | 00000760 20 20 20 20 20 20 20 20 20 f2 53 61 76 65 28 66 | .Save(f| 00000770 69 6c 65 6e 61 6d 65 24 29 0d 03 70 04 0d 03 7a |ilename$)..p...z| 00000780 31 20 20 20 20 20 20 20 20 20 c9 20 a4 52 65 63 |1 . .Rec| 00000790 74 61 6e 67 6c 65 28 58 25 2c 37 32 36 2c 31 31 |tangle(X%,726,11| 000007a0 31 34 2c 59 25 2c 31 38 30 2c 32 33 36 29 0d 03 |14,Y%,180,236)..| 000007b0 84 20 20 20 20 20 20 20 20 20 20 20 20 20 f2 4c |. .L| 000007c0 6f 61 64 28 66 69 6c 65 6e 61 6d 65 24 29 0d 03 |oad(filename$)..| 000007d0 8e 24 20 20 20 20 20 20 20 20 20 20 20 20 f2 44 |.$ .D| 000007e0 72 61 77 53 65 6c 65 63 74 4f 62 6a 65 63 74 28 |rawSelectObject(| 000007f0 32 29 0d 03 98 04 0d 03 a2 30 20 20 20 20 20 20 |2).......0 | 00000800 20 20 20 c9 20 a4 52 65 63 74 61 6e 67 6c 65 28 | . .Rectangle(| 00000810 58 25 2c 37 32 36 2c 31 31 31 34 2c 59 25 2c 38 |X%,726,1114,Y%,8| 00000820 34 2c 31 37 32 29 0d 03 ac 1b 20 20 20 20 20 20 |4,172).... | 00000830 20 20 20 20 20 20 fb 20 39 3a fb 20 31 32 38 2b | . 9:. 128+| 00000840 35 0d 03 b6 19 20 20 20 20 20 20 20 20 20 20 20 |5.... | 00000850 20 f1 8a 35 33 2c 32 38 29 3b 0d 03 c0 42 20 20 | ..53,28);...B | 00000860 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 6e 61 | filena| 00000870 6d 65 24 3d a4 49 6e 70 75 74 28 31 30 2c 34 38 |me$=.Input(10,48| 00000880 2c 31 32 32 2c 22 3a 3b 3c 3d 3e 3f 40 5b 5c 5d |,122,":;<=>?@[\]| 00000890 5e a3 22 2c 22 5f 22 2c b9 2c a3 29 0d 03 ca 36 |^.","_",.,.)...6| 000008a0 20 20 20 20 20 20 20 20 20 20 20 20 e7 20 66 69 | . fi| 000008b0 6c 65 6e 61 6d 65 24 3d 22 22 20 8c 20 66 69 6c |lename$="" . fil| 000008c0 65 6e 61 6d 65 24 3d 22 4c 53 59 53 5f 54 45 4d |ename$="LSYS_TEM| 000008d0 50 22 0d 03 d4 24 20 20 20 20 20 20 20 20 20 20 |P"...$ | 000008e0 20 20 f2 44 72 61 77 53 65 6c 65 63 74 4f 62 6a | .DrawSelectObj| 000008f0 65 63 74 28 35 29 0d 03 de 04 0d 03 e8 2f 20 20 |ect(5)......./ | 00000900 20 20 20 20 20 20 20 c9 20 a4 52 65 63 74 61 6e | . .Rectan| 00000910 67 6c 65 28 58 25 2c 37 32 36 2c 31 31 31 34 2c |gle(X%,726,1114,| 00000920 59 25 2c 32 30 2c 37 36 29 0d 03 f2 1c 20 20 20 |Y%,20,76).... | 00000930 20 20 20 20 20 20 20 20 20 f2 53 74 61 72 43 6f | .StarCo| 00000940 6d 6d 61 6e 64 0d 03 fc 16 20 20 20 20 20 20 20 |mmand.... | 00000950 20 20 20 20 20 c8 97 20 ee 3a 87 0d 04 06 24 20 | .. .:....$ | 00000960 20 20 20 20 20 20 20 20 20 20 20 f2 44 69 73 70 | .Disp| 00000970 6c 61 79 53 65 6c 65 63 74 53 63 72 65 65 6e 0d |laySelectScreen.| 00000980 04 10 0b 20 20 20 20 20 20 cb 0d 04 1a 0a 20 20 |... ..... | 00000990 20 fd 20 a3 0d 04 24 05 e1 0d 04 2e 05 3a 0d 04 | . ...$......:..| 000009a0 38 0f dd f2 45 64 69 74 28 6e 75 6d 29 0d 04 42 |8...Edit(num)..B| 000009b0 1e 20 20 20 f2 44 69 73 70 6c 61 79 45 64 69 74 |. .DisplayEdit| 000009c0 53 63 72 65 65 6e 28 6e 75 6d 29 0d 04 4c 1d 20 |Screen(num)..L. | 000009d0 20 20 f2 48 61 6e 64 6c 65 45 64 69 74 53 63 72 | .HandleEditScr| 000009e0 65 65 6e 28 6e 75 6d 29 0d 04 56 05 e1 0d 04 60 |een(num)..V....`| 000009f0 05 3a 0d 04 6a 1c dd f2 44 69 73 70 6c 61 79 45 |.:..j...DisplayE| 00000a00 64 69 74 53 63 72 65 65 6e 28 6e 75 6d 29 0d 04 |ditScreen(num)..| 00000a10 74 07 ea 20 62 0d 04 7e 0e 20 20 20 fb 20 31 32 |t.. b..~. . 12| 00000a20 38 2b 35 0d 04 88 08 20 20 20 db 0d 04 92 08 20 |8+5.... ..... | 00000a30 20 20 87 0d 04 9c 10 20 20 20 e3 20 62 3d 31 20 | ..... . b=1 | 00000a40 b8 20 39 0d 04 a6 20 20 20 20 20 20 20 f2 44 72 |. 9... .Dr| 00000a50 61 77 45 64 69 74 4f 62 6a 65 63 74 28 6e 75 6d |awEditObject(num| 00000a60 2c 62 29 0d 04 b0 08 20 20 20 ed 0d 04 ba 05 e1 |,b).... ......| 00000a70 0d 04 c4 05 3a 0d 04 ce 1b dd f2 48 61 6e 64 6c |....:......Handl| 00000a80 65 45 64 69 74 53 63 72 65 65 6e 28 6e 75 6d 29 |eEditScreen(num)| 00000a90 0d 04 d8 08 20 20 20 f5 0d 04 e2 18 20 20 20 20 |.... ..... | 00000aa0 20 20 f2 4d 6f 75 73 65 57 61 69 74 28 2d 38 29 | .MouseWait(-8)| 00000ab0 0d 04 ec 10 20 20 20 20 20 20 c8 8e 20 b9 20 ca |.... .. . .| 00000ac0 0d 04 f6 2f 20 20 20 20 20 20 20 20 20 c9 20 a4 |.../ . .| 00000ad0 52 65 63 74 61 6e 67 6c 65 28 58 25 2c 30 2c 36 |Rectangle(X%,0,6| 00000ae0 34 30 2c 59 25 2c 39 32 38 2c 39 36 30 29 3a 0d |40,Y%,928,960):.| 00000af0 05 00 17 20 20 20 20 20 20 20 20 20 20 20 20 f1 |... .| 00000b00 8a 34 2c 32 29 3b 0d 05 0a 37 20 20 20 20 20 20 |.4,2);...7 | 00000b10 20 20 20 20 20 20 6e 61 6d 65 24 28 6e 75 6d 29 | name$(num)| 00000b20 3d a4 49 6e 70 75 74 28 33 30 2c 33 32 2c 31 32 |=.Input(30,32,12| 00000b30 36 2c 22 22 2c 22 5f 22 2c b9 2c a3 29 0d 05 14 |6,"","_",.,.)...| 00000b40 26 20 20 20 20 20 20 20 20 20 20 20 20 f2 44 72 |& .Dr| 00000b50 61 77 45 64 69 74 4f 62 6a 65 63 74 28 6e 75 6d |awEditObject(num| 00000b60 2c 31 29 0d 05 1e 2f 20 20 20 20 20 20 20 20 20 |,1).../ | 00000b70 c9 20 a4 52 65 63 74 61 6e 67 6c 65 28 58 25 2c |. .Rectangle(X%,| 00000b80 30 2c 36 34 30 2c 59 25 2c 38 36 34 2c 38 39 36 |0,640,Y%,864,896| 00000b90 29 3a 0d 05 28 17 20 20 20 20 20 20 20 20 20 20 |):..(. | 00000ba0 20 20 f1 8a 39 2c 34 29 3b 0d 05 32 38 20 20 20 | ..9,4);..28 | 00000bb0 20 20 20 20 20 20 20 20 20 61 78 69 6f 6d 24 28 | axiom$(| 00000bc0 6e 75 6d 29 3d a4 49 6e 70 75 74 28 32 35 2c 33 |num)=.Input(25,3| 00000bd0 32 2c 31 32 36 2c 22 22 2c 22 5f 22 2c b9 2c a3 |2,126,"","_",.,.| 00000be0 29 0d 05 3c 26 20 20 20 20 20 20 20 20 20 20 20 |)..<& | 00000bf0 20 f2 44 72 61 77 45 64 69 74 4f 62 6a 65 63 74 | .DrawEditObject| 00000c00 28 6e 75 6d 2c 32 29 0d 05 46 2f 20 20 20 20 20 |(num,2)..F/ | 00000c10 20 20 20 20 c9 20 a4 52 65 63 74 61 6e 67 6c 65 | . .Rectangle| 00000c20 28 58 25 2c 30 2c 36 34 30 2c 59 25 2c 38 30 30 |(X%,0,640,Y%,800| 00000c30 2c 38 33 32 29 3a 0d 05 50 18 20 20 20 20 20 20 |,832):..P. | 00000c40 20 20 20 20 20 20 f1 8a 32 30 2c 36 29 3b 0d 05 | ..20,6);..| 00000c50 5a 36 20 20 20 20 20 20 20 20 20 20 20 20 61 6e |Z6 an| 00000c60 67 6c 65 73 28 6e 75 6d 29 3d a4 49 6e 70 75 74 |gles(num)=.Input| 00000c70 28 33 2c 34 38 2c 35 37 2c 22 22 2c 22 5f 22 2c |(3,48,57,"","_",| 00000c80 b9 2c b9 29 0d 05 64 2f 20 20 20 20 20 20 20 20 |.,.)..d/ | 00000c90 20 20 20 20 e7 20 61 6e 67 6c 65 73 28 6e 75 6d | . angles(num| 00000ca0 29 3d 30 20 8c 20 61 6e 67 6c 65 73 28 6e 75 6d |)=0 . angles(num| 00000cb0 29 3d 31 0d 05 6e 26 20 20 20 20 20 20 20 20 20 |)=1..n& | 00000cc0 20 20 20 f2 44 72 61 77 45 64 69 74 4f 62 6a 65 | .DrawEditObje| 00000cd0 63 74 28 6e 75 6d 2c 33 29 0d 05 78 2f 20 20 20 |ct(num,3)..x/ | 00000ce0 20 20 20 20 20 20 c9 20 a4 52 65 63 74 61 6e 67 | . .Rectang| 00000cf0 6c 65 28 58 25 2c 30 2c 36 34 30 2c 59 25 2c 37 |le(X%,0,640,Y%,7| 00000d00 33 36 2c 37 36 38 29 3a 0d 05 82 17 20 20 20 20 |36,768):.... | 00000d10 20 20 20 20 20 20 20 20 f1 8a 39 2c 38 29 3b 0d | ..9,8);.| 00000d20 05 8c 35 20 20 20 20 20 20 20 20 20 20 20 20 6c |..5 l| 00000d30 65 76 65 6c 28 6e 75 6d 29 3d a4 49 6e 70 75 74 |evel(num)=.Input| 00000d40 28 32 2c 34 38 2c 35 37 2c 22 22 2c 22 5f 22 2c |(2,48,57,"","_",| 00000d50 b9 2c b9 29 0d 05 96 26 20 20 20 20 20 20 20 20 |.,.)...& | 00000d60 20 20 20 20 f2 44 72 61 77 45 64 69 74 4f 62 6a | .DrawEditObj| 00000d70 65 63 74 28 6e 75 6d 2c 34 29 0d 05 a0 2e 20 20 |ect(num,4).... | 00000d80 20 20 20 20 20 20 20 c9 20 a4 52 65 63 74 61 6e | . .Rectan| 00000d90 67 6c 65 28 58 25 2c 30 2c 36 34 30 2c 59 25 2c |gle(X%,0,640,Y%,| 00000da0 33 32 2c 36 37 32 29 3a 0d 05 aa 25 20 20 20 20 |32,672):...% | 00000db0 20 20 20 20 20 20 20 20 72 3d 28 28 31 32 38 30 | r=((1280| 00000dc0 2d 59 25 29 20 81 20 33 32 29 2d 31 39 0d 05 b4 |-Y%) . 32)-19...| 00000dd0 1a 20 20 20 20 20 20 20 20 20 20 20 20 f1 8a 34 |. ..4| 00000de0 2c 31 31 2b 72 29 3b 0d 05 be 39 20 20 20 20 20 |,11+r);...9 | 00000df0 20 20 20 20 20 20 20 72 75 6c 65 24 28 6e 75 6d | rule$(num| 00000e00 2c 72 29 3d a4 49 6e 70 75 74 28 33 30 2c 33 32 |,r)=.Input(30,32| 00000e10 2c 31 32 36 2c 22 22 2c 22 5f 22 2c b9 2c a3 29 |,126,"","_",.,.)| 00000e20 0d 05 c8 26 20 20 20 20 20 20 20 20 20 20 20 20 |...& | 00000e30 f2 44 72 61 77 45 64 69 74 4f 62 6a 65 63 74 28 |.DrawEditObject(| 00000e40 6e 75 6d 2c 35 29 0d 05 d2 32 20 20 20 20 20 20 |num,5)...2 | 00000e50 20 20 20 c9 20 a4 52 65 63 74 61 6e 67 6c 65 28 | . .Rectangle(| 00000e60 58 25 2c 37 32 36 2c 31 31 31 34 2c 59 25 2c 33 |X%,726,1114,Y%,3| 00000e70 37 32 2c 34 32 38 29 3a 0d 05 dc 2b 20 20 20 20 |72,428):...+ | 00000e80 20 20 20 20 20 20 20 20 73 63 72 65 65 6e 5f 73 | screen_s| 00000e90 61 76 65 3d 28 ac 20 73 63 72 65 65 6e 5f 73 61 |ave=(. screen_sa| 00000ea0 76 65 29 0d 05 e6 26 20 20 20 20 20 20 20 20 20 |ve)...& | 00000eb0 20 20 20 f2 44 72 61 77 45 64 69 74 4f 62 6a 65 | .DrawEditObje| 00000ec0 63 74 28 6e 75 6d 2c 37 29 0d 05 f0 32 20 20 20 |ct(num,7)...2 | 00000ed0 20 20 20 20 20 20 c9 20 a4 52 65 63 74 61 6e 67 | . .Rectang| 00000ee0 6c 65 28 58 25 2c 37 32 36 2c 31 31 31 34 2c 59 |le(X%,726,1114,Y| 00000ef0 25 2c 34 33 36 2c 34 39 32 29 3a 0d 05 fa 23 20 |%,436,492):...# | 00000f00 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 70 61 | compa| 00000f10 63 74 3d 28 ac 20 63 6f 6d 70 61 63 74 29 0d 06 |ct=(. compact)..| 00000f20 04 26 20 20 20 20 20 20 20 20 20 20 20 20 f2 44 |.& .D| 00000f30 72 61 77 45 64 69 74 4f 62 6a 65 63 74 28 6e 75 |rawEditObject(nu| 00000f40 6d 2c 39 29 0d 06 0e 32 20 20 20 20 20 20 20 20 |m,9)...2 | 00000f50 20 c9 20 a4 52 65 63 74 61 6e 67 6c 65 28 58 25 | . .Rectangle(X%| 00000f60 2c 37 32 36 2c 31 31 31 34 2c 59 25 2c 33 30 38 |,726,1114,Y%,308| 00000f70 2c 33 36 34 29 3a 0d 06 18 1c 20 20 20 20 20 20 |,364):.... | 00000f80 20 20 20 20 20 20 f2 4c 5f 50 4c 4f 54 28 6e 75 | .L_PLOT(nu| 00000f90 6d 29 0d 06 22 27 20 20 20 20 20 20 20 20 20 20 |m).."' | 00000fa0 20 20 f2 44 69 73 70 6c 61 79 45 64 69 74 53 63 | .DisplayEditSc| 00000fb0 72 65 65 6e 28 6e 75 6d 29 0d 06 2c 0b 20 20 20 |reen(num)..,. | 00000fc0 20 20 20 cb 0d 06 36 2b 20 20 20 fd 20 a4 52 65 | ...6+ . .Re| 00000fd0 63 74 61 6e 67 6c 65 28 58 25 2c 37 32 36 2c 31 |ctangle(X%,726,1| 00000fe0 31 31 34 2c 59 25 2c 35 36 34 2c 36 32 30 29 0d |114,Y%,564,620).| 00000ff0 06 40 05 e1 0d 06 4a 05 3a 0d 06 54 1d dd f2 44 |.@....J.:..T...D| 00001000 72 61 77 45 64 69 74 4f 62 6a 65 63 74 28 6e 75 |rawEditObject(nu| 00001010 6d 2c 62 75 74 29 0d 06 5e 12 20 20 20 fb 20 39 |m,but)..^. . 9| 00001020 3a fb 20 31 32 38 2b 35 0d 06 68 04 0d 06 72 0d |:. 128+5..h...r.| 00001030 20 20 20 c8 8e 20 b9 20 ca 0d 06 7c 12 20 20 20 | .. . ...|. | 00001040 20 20 20 c9 20 62 75 74 3d 31 3a 0d 06 86 1b 20 | . but=1:.... | 00001050 20 20 20 20 20 20 20 20 f4 20 2a 2a 2a 20 6e 61 | . *** na| 00001060 6d 65 20 2a 2a 2a 0d 06 90 30 20 20 20 20 20 20 |me ***...0 | 00001070 20 20 20 f2 50 6c 69 6e 74 68 28 36 2c 39 31 36 | .Plinth(6,916| 00001080 2c 35 34 38 2c 35 36 2c 38 2c 38 2c 37 2c 35 2c |,548,56,8,8,7,5,| 00001090 33 2c 32 2c b9 29 0d 06 9a 1d 20 20 20 20 20 20 |3,2,.).... | 000010a0 20 20 20 f1 8a 31 2c 32 29 3b 6e 75 6d 2b 31 3b | ..1,2);num+1;| 000010b0 22 2e 22 0d 06 a4 1e 20 20 20 20 20 20 20 20 20 |".".... | 000010c0 f1 8a 34 2c 32 29 3b 6e 61 6d 65 24 28 6e 75 6d |..4,2);name$(num| 000010d0 29 0d 06 ae 04 0d 06 b8 12 20 20 20 20 20 20 c9 |)........ .| 000010e0 20 62 75 74 3d 32 3a 0d 06 c2 24 20 20 20 20 20 | but=2:...$ | 000010f0 20 20 20 20 f4 20 2a 2a 2a 20 64 65 66 61 75 6c | . *** defaul| 00001100 74 20 61 78 69 6f 6d 20 2a 2a 2a 0d 06 cc 30 20 |t axiom ***...0 | 00001110 20 20 20 20 20 20 20 20 f2 50 6c 69 6e 74 68 28 | .Plinth(| 00001120 36 2c 38 35 32 2c 35 34 38 2c 35 36 2c 38 2c 38 |6,852,548,56,8,8| 00001130 2c 37 2c 35 2c 33 2c 32 2c b9 29 0d 06 d6 2a 20 |,7,5,3,2,.)...* | 00001140 20 20 20 20 20 20 20 20 f1 8a 31 2c 34 29 3b 22 | ..1,4);"| 00001150 41 78 69 6f 6d 20 3a 20 22 3b 61 78 69 6f 6d 24 |Axiom : ";axiom$| 00001160 28 6e 75 6d 29 0d 06 e0 04 0d 06 ea 12 20 20 20 |(num)........ | 00001170 20 20 20 c9 20 62 75 74 3d 33 3a 0d 06 f4 1d 20 | . but=3:.... | 00001180 20 20 20 20 20 20 20 20 f4 20 2a 2a 2a 20 61 6e | . *** an| 00001190 67 6c 65 73 20 2a 2a 2a 0d 06 fe 30 20 20 20 20 |gles ***...0 | 000011a0 20 20 20 20 20 f2 50 6c 69 6e 74 68 28 36 2c 37 | .Plinth(6,7| 000011b0 38 38 2c 33 37 32 2c 35 36 2c 38 2c 38 2c 37 2c |88,372,56,8,8,7,| 000011c0 35 2c 33 2c 32 2c b9 29 0d 07 08 35 20 20 20 20 |5,3,2,.)...5 | 000011d0 20 20 20 20 20 f1 8a 31 2c 36 29 3b 22 4e 75 6d | ..1,6);"Num| 000011e0 62 65 72 20 6f 66 20 61 6e 67 6c 65 73 20 3a 20 |ber of angles : | 000011f0 22 3b 61 6e 67 6c 65 73 28 6e 75 6d 29 0d 07 12 |";angles(num)...| 00001200 04 0d 07 1c 12 20 20 20 20 20 20 c9 20 62 75 74 |..... . but| 00001210 3d 34 3a 0d 07 26 1c 20 20 20 20 20 20 20 20 20 |=4:..&. | 00001220 f4 20 2a 2a 2a 20 6c 65 76 65 6c 20 2a 2a 2a 0d |. *** level ***.| 00001230 07 30 30 20 20 20 20 20 20 20 20 20 f2 50 6c 69 |.00 .Pli| 00001240 6e 74 68 28 36 2c 37 32 34 2c 31 38 30 2c 35 36 |nth(6,724,180,56| 00001250 2c 38 2c 38 2c 37 2c 35 2c 33 2c 32 2c b9 29 0d |,8,8,7,5,3,2,.).| 00001260 07 3a 29 20 20 20 20 20 20 20 20 20 f1 8a 31 2c |.:) ..1,| 00001270 38 29 3b 22 4c 65 76 65 6c 20 3a 20 22 3b 6c 65 |8);"Level : ";le| 00001280 76 65 6c 28 6e 75 6d 29 0d 07 44 04 0d 07 4e 12 |vel(num)..D...N.| 00001290 20 20 20 20 20 20 c9 20 62 75 74 3d 35 3a 0d 07 | . but=5:..| 000012a0 58 1c 20 20 20 20 20 20 20 20 20 f4 20 2a 2a 2a |X. . ***| 000012b0 20 72 75 6c 65 73 20 2a 2a 2a 0d 07 62 30 20 20 | rules ***..b0 | 000012c0 20 20 20 20 20 20 20 f2 50 6c 69 6e 74 68 28 36 | .Plinth(6| 000012d0 2c 32 30 2c 35 34 38 2c 36 39 36 2c 38 2c 38 2c |,20,548,696,8,8,| 000012e0 37 2c 35 2c 33 2c 32 2c b9 29 0d 07 6c 1e 20 20 |7,5,3,2,.)..l. | 000012f0 20 20 20 20 20 20 20 f1 8a 31 2c 31 30 29 3b 22 | ..1,10);"| 00001300 52 75 6c 65 73 20 3a 22 0d 07 76 17 20 20 20 20 |Rules :"..v. | 00001310 20 20 20 20 20 e3 20 69 3d 30 20 b8 20 31 39 0d | . i=0 . 19.| 00001320 07 80 21 20 20 20 20 20 20 20 20 20 20 20 20 f1 |..! .| 00001330 8a 31 2c 31 31 2b 69 29 3b 69 2b 31 3b 22 2e 22 |.1,11+i);i+1;"."| 00001340 0d 07 8a 26 20 20 20 20 20 20 20 20 20 20 20 20 |...& | 00001350 f1 8a 34 2c 31 31 2b 69 29 3b 72 75 6c 65 24 28 |..4,11+i);rule$(| 00001360 6e 75 6d 2c 69 29 0d 07 94 0e 20 20 20 20 20 20 |num,i).... | 00001370 20 20 20 ed 0d 07 9e 04 0d 07 a8 12 20 20 20 20 | ......... | 00001380 20 20 c9 20 62 75 74 3d 36 3a 0d 07 b2 21 20 20 | . but=6:...! | 00001390 20 20 20 20 20 20 20 f4 20 2a 2a 2a 20 63 75 72 | . *** cur| 000013a0 76 65 20 6d 65 6e 75 20 2a 2a 2a 0d 07 bc 32 20 |ve menu ***...2 | 000013b0 20 20 20 20 20 20 20 20 f2 50 6c 69 6e 74 68 28 | .Plinth(| 000013c0 37 32 36 2c 35 36 34 2c 33 38 38 2c 35 36 2c 38 |726,564,388,56,8| 000013d0 2c 38 2c 37 2c 35 2c 33 2c 32 2c b9 29 0d 07 c6 |,8,7,5,3,2,.)...| 000013e0 2d 20 20 20 20 20 20 20 20 20 f1 8a 34 37 2c 31 |- ..47,1| 000013f0 33 29 3b 22 52 65 74 75 72 6e 20 74 6f 20 63 75 |3);"Return to cu| 00001400 72 76 65 20 6d 65 6e 75 2e 22 0d 07 d0 04 0d 07 |rve menu."......| 00001410 da 12 20 20 20 20 20 20 c9 20 62 75 74 3d 37 3a |.. . but=7:| 00001420 0d 07 e4 22 20 20 20 20 20 20 20 20 20 f4 20 2a |..." . *| 00001430 2a 2a 20 73 63 72 65 65 6e 20 73 61 76 65 20 2a |** screen save *| 00001440 2a 2a 0d 07 ee 32 20 20 20 20 20 20 20 20 20 f2 |**...2 .| 00001450 50 6c 69 6e 74 68 28 37 32 36 2c 33 37 32 2c 33 |Plinth(726,372,3| 00001460 38 38 2c 35 36 2c 38 2c 38 2c 37 2c 35 2c 33 2c |88,56,8,8,7,5,3,| 00001470 32 2c b9 29 0d 07 f8 27 20 20 20 20 20 20 20 20 |2,.)...' | 00001480 20 f1 8a 34 39 2c 31 39 29 3b 22 53 63 72 65 65 | ..49,19);"Scree| 00001490 6e 20 73 61 76 65 20 2d 20 22 3b 0d 08 02 2c 20 |n save - ";..., | 000014a0 20 20 20 20 20 20 20 20 e7 20 73 63 72 65 65 6e | . screen| 000014b0 5f 73 61 76 65 20 8c 20 f1 22 79 65 73 22 20 8b |_save . ."yes" .| 000014c0 20 f1 22 20 6e 6f 22 0d 08 0c 04 0d 08 16 12 20 | ." no"........ | 000014d0 20 20 20 20 20 c9 20 62 75 74 3d 38 3a 0d 08 20 | . but=8:.. | 000014e0 21 20 20 20 20 20 20 20 20 20 f4 20 2a 2a 2a 20 |! . *** | 000014f0 64 72 61 77 20 63 75 72 76 65 20 2a 2a 2a 0d 08 |draw curve ***..| 00001500 2a 32 20 20 20 20 20 20 20 20 20 f2 50 6c 69 6e |*2 .Plin| 00001510 74 68 28 37 32 36 2c 33 30 38 2c 33 38 38 2c 35 |th(726,308,388,5| 00001520 36 2c 38 2c 38 2c 37 2c 35 2c 33 2c 32 2c b9 29 |6,8,8,7,5,3,2,.)| 00001530 0d 08 34 22 20 20 20 20 20 20 20 20 20 f1 8a 35 |..4" ..5| 00001540 33 2c 32 31 29 3b 22 44 72 61 77 20 63 75 72 76 |3,21);"Draw curv| 00001550 65 22 0d 08 3e 04 0d 08 48 12 20 20 20 20 20 20 |e"..>...H. | 00001560 c9 20 62 75 74 3d 39 3a 0d 08 52 2a 20 20 20 20 |. but=9:..R* | 00001570 20 20 20 20 20 f4 20 2a 2a 2a 20 63 6f 6d 70 61 | . *** compa| 00001580 63 74 20 73 63 72 65 65 6e 20 73 61 76 65 20 2a |ct screen save *| 00001590 2a 2a 0d 08 5c 32 20 20 20 20 20 20 20 20 20 f2 |**..\2 .| 000015a0 50 6c 69 6e 74 68 28 37 32 36 2c 34 33 36 2c 33 |Plinth(726,436,3| 000015b0 38 38 2c 35 36 2c 38 2c 38 2c 37 2c 35 2c 33 2c |88,56,8,8,7,5,3,| 000015c0 32 2c b9 29 0d 08 66 2b 20 20 20 20 20 20 20 20 |2,.)..f+ | 000015d0 20 f1 8a 34 37 2c 31 37 29 3b 22 43 6f 6d 70 61 | ..47,17);"Compa| 000015e0 63 74 20 73 63 72 65 65 6e 73 20 2d 20 22 3b 0d |ct screens - ";.| 000015f0 08 70 28 20 20 20 20 20 20 20 20 20 e7 20 63 6f |.p( . co| 00001600 6d 70 61 63 74 20 8c 20 f1 22 79 65 73 22 20 8b |mpact . ."yes" .| 00001610 20 f1 22 20 6e 6f 22 0d 08 7a 0c 20 20 20 20 20 | ." no"..z. | 00001620 20 7f 3a 0d 08 84 08 20 20 20 cb 0d 08 8e 05 e1 | .:.... ......| 00001630 0d 08 98 05 3a 0d 08 a2 1c dd f2 53 61 76 65 45 |....:......SaveE| 00001640 72 72 6f 72 28 65 72 72 2c 72 65 70 6f 72 74 24 |rror(err,report$| 00001650 29 0d 08 ac 0d 20 20 20 2a 43 4c 4f 53 45 0d 08 |).... *CLOSE..| 00001660 b6 0a 20 20 20 e6 20 30 0d 08 c0 1e 20 20 20 c8 |.. . 0.... .| 00001670 93 c8 90 20 30 2c 35 31 32 2d 32 30 30 2c 31 32 |... 0,512-200,12| 00001680 38 30 2c 33 30 30 0d 08 ca 10 20 20 20 fb 20 31 |80,300.... . 1| 00001690 32 38 3a fb 20 38 0d 08 d4 41 20 20 20 f1 8a 31 |28:. 8...A ..1| 000016a0 30 2c 31 36 29 3b 22 54 68 65 20 66 69 6c 65 20 |0,16);"The file | 000016b0 27 22 3b 66 69 6c 65 6e 61 6d 65 24 3b 22 27 20 |'";filename$;"' | 000016c0 68 61 73 20 6e 6f 74 20 62 65 65 6e 20 73 61 76 |has not been sav| 000016d0 65 64 20 64 75 65 22 0d 08 de 37 20 20 20 f1 8a |ed due"...7 ..| 000016e0 31 30 2c 31 37 29 3b 22 74 6f 20 74 68 65 20 66 |10,17);"to the f| 000016f0 6f 6c 6c 6f 77 69 6e 67 20 65 72 72 6f 72 20 2d |ollowing error -| 00001700 20 22 3b 72 65 70 6f 72 74 24 3b 22 2e 22 0d 08 | ";report$;"."..| 00001710 e8 33 20 20 20 f1 8a 31 30 2c 31 38 29 3b 22 50 |.3 ..10,18);"P| 00001720 72 65 73 73 20 61 20 6d 6f 75 73 65 20 62 75 74 |ress a mouse but| 00001730 74 6f 6e 20 74 6f 20 63 6f 6e 74 69 6e 75 65 2e |ton to continue.| 00001740 22 0d 08 f2 15 20 20 20 f2 4d 6f 75 73 65 57 61 |".... .MouseWa| 00001750 69 74 28 2d 38 29 0d 08 fc 1b 20 20 20 f2 44 69 |it(-8).... .Di| 00001760 73 70 6c 61 79 53 65 6c 65 63 74 53 63 72 65 65 |splaySelectScree| 00001770 6e 0d 09 06 05 e1 0d 09 10 05 3a 0d 09 1a 1c dd |n.........:.....| 00001780 f2 4c 6f 61 64 45 72 72 6f 72 28 65 72 72 2c 72 |.LoadError(err,r| 00001790 65 70 6f 72 74 24 29 0d 09 24 0d 20 20 20 2a 43 |eport$)..$. *C| 000017a0 4c 4f 53 45 0d 09 2e 0a 20 20 20 e6 20 30 0d 09 |LOSE.... . 0..| 000017b0 38 1e 20 20 20 c8 93 c8 90 20 30 2c 35 31 32 2d |8. .... 0,512-| 000017c0 32 30 30 2c 31 32 38 30 2c 33 30 30 0d 09 42 10 |200,1280,300..B.| 000017d0 20 20 20 fb 20 31 32 38 3a fb 20 38 0d 09 4c 42 | . 128:. 8..LB| 000017e0 20 20 20 f1 8a 31 30 2c 31 36 29 3b 22 54 68 65 | ..10,16);"The| 000017f0 20 66 69 6c 65 20 27 22 3b 66 69 6c 65 6e 61 6d | file '";filenam| 00001800 65 24 3b 22 27 20 68 61 73 20 6e 6f 74 20 62 65 |e$;"' has not be| 00001810 65 6e 20 6c 6f 61 64 65 64 20 64 75 65 22 0d 09 |en loaded due"..| 00001820 56 37 20 20 20 f1 8a 31 30 2c 31 37 29 3b 22 74 |V7 ..10,17);"t| 00001830 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 |o the following | 00001840 65 72 72 6f 72 20 2d 20 22 3b 72 65 70 6f 72 74 |error - ";report| 00001850 24 3b 22 2e 22 0d 09 60 33 20 20 20 f1 8a 31 30 |$;"."..`3 ..10| 00001860 2c 31 38 29 3b 22 50 72 65 73 73 20 61 20 6d 6f |,18);"Press a mo| 00001870 75 73 65 20 62 75 74 74 6f 6e 20 74 6f 20 63 6f |use button to co| 00001880 6e 74 69 6e 75 65 2e 22 0d 09 6a 15 20 20 20 f2 |ntinue."..j. .| 00001890 4d 6f 75 73 65 57 61 69 74 28 2d 38 29 0d 09 74 |MouseWait(-8)..t| 000018a0 1b 20 20 20 f2 44 69 73 70 6c 61 79 53 65 6c 65 |. .DisplaySele| 000018b0 63 74 53 63 72 65 65 6e 0d 09 7e 05 e1 0d 09 88 |ctScreen..~.....| 000018c0 05 3a 0d 09 92 15 dd f2 53 61 76 65 28 66 69 6c |.:......Save(fil| 000018d0 65 6e 61 6d 65 24 29 0d 09 9c 0d ea 20 78 2c 69 |ename$)..... x,i| 000018e0 2c 63 2c 74 0d 09 a6 07 ea 20 85 0d 09 b0 1f 20 |,c,t..... ..... | 000018f0 20 20 ee 20 85 20 ea 20 f2 53 61 76 65 45 72 72 | . . . .SaveErr| 00001900 6f 72 28 9f 2c f6 24 29 3a e1 0d 09 ba 15 20 20 |or(.,.$):..... | 00001910 20 78 3d ae 28 66 69 6c 65 6e 61 6d 65 24 29 0d | x=.(filename$).| 00001920 09 c4 14 20 20 20 e3 20 69 3d 30 20 b8 20 6d 61 |... . i=0 . ma| 00001930 78 2d 31 0d 09 ce 1a 20 20 20 20 20 20 e7 20 6e |x-1.... . n| 00001940 61 6d 65 24 28 69 29 3c 3e 22 22 20 8c 0d 09 d8 |ame$(i)<>"" ....| 00001950 1d 20 20 20 20 20 20 20 20 20 74 3d a4 43 6f 75 |. t=.Cou| 00001960 6e 74 52 75 6c 65 73 28 69 29 0d 09 e2 26 20 20 |ntRules(i)...& | 00001970 20 20 20 20 20 20 20 f1 23 20 78 2c 6e 61 6d 65 | .# x,name| 00001980 24 28 69 29 2c 61 78 69 6f 6d 24 28 69 29 2c 74 |$(i),axiom$(i),t| 00001990 0d 09 ec 17 20 20 20 20 20 20 20 20 20 e3 20 63 |.... . c| 000019a0 3d 30 20 b8 20 31 39 0d 09 f6 32 20 20 20 20 20 |=0 . 19...2 | 000019b0 20 20 20 20 20 20 20 e7 20 72 75 6c 65 24 28 69 | . rule$(i| 000019c0 2c 63 29 3c 3e 22 22 20 8c 20 f1 23 20 78 2c 72 |,c)<>"" . .# x,r| 000019d0 75 6c 65 24 28 69 2c 63 29 0d 0a 00 0e 20 20 20 |ule$(i,c).... | 000019e0 20 20 20 20 20 20 ed 0d 0a 0a 24 20 20 20 20 20 | ....$ | 000019f0 20 20 20 20 f1 23 20 78 2c 61 6e 67 6c 65 73 28 | .# x,angles(| 00001a00 69 29 2c 6c 65 76 65 6c 28 69 29 0d 0a 14 0b 20 |i),level(i).... | 00001a10 20 20 20 20 20 cd 0d 0a 1e 08 20 20 20 ed 0d 0a | ..... ...| 00001a20 28 0b 20 20 20 d9 23 20 78 0d 0a 32 04 0d 0a 3c |(. .# x..2...<| 00001a30 0a 20 20 20 f7 20 85 0d 0a 46 05 e1 0d 0a 50 05 |. . ...F....P.| 00001a40 3a 0d 0a 5a 15 dd a4 43 6f 75 6e 74 52 75 6c 65 |:..Z...CountRule| 00001a50 73 28 6e 75 6d 29 0d 0a 64 09 ea 20 69 2c 74 0d |s(num)..d.. i,t.| 00001a60 0a 6e 0a 20 20 20 74 3d 30 0d 0a 78 11 20 20 20 |.n. t=0..x. | 00001a70 e3 20 69 3d 30 20 b8 20 31 39 0d 0a 82 23 20 20 |. i=0 . 19...# | 00001a80 20 20 20 20 e7 20 72 75 6c 65 24 28 6e 75 6d 2c | . rule$(num,| 00001a90 69 29 3c 3e 22 22 20 8c 20 74 2b 3d 31 0d 0a 8c |i)<>"" . t+=1...| 00001aa0 08 20 20 20 ed 0d 0a 96 06 3d 74 0d 0a a0 05 3a |. .....=t....:| 00001ab0 0d 0a aa 15 dd f2 4c 6f 61 64 28 66 69 6c 65 6e |......Load(filen| 00001ac0 61 6d 65 24 29 0d 0a b4 0d ea 20 78 2c 69 2c 63 |ame$)..... x,i,c| 00001ad0 2c 74 0d 0a be 07 ea 20 85 0d 0a c8 1f 20 20 20 |,t..... ..... | 00001ae0 ee 20 85 20 ea 20 f2 4c 6f 61 64 45 72 72 6f 72 |. . . .LoadError| 00001af0 28 9f 2c f6 24 29 3a e1 0d 0a d2 11 20 20 20 f2 |(.,.$):..... .| 00001b00 41 72 72 61 79 49 6e 69 74 0d 0a dc 15 20 20 20 |ArrayInit.... | 00001b10 78 3d 8e 28 66 69 6c 65 6e 61 6d 65 24 29 0d 0a |x=.(filename$)..| 00001b20 e6 3a 20 20 20 e7 20 78 3d 30 20 8c 20 85 20 31 |.: . x=0 . . 1| 00001b30 30 32 2c 22 66 69 6c 65 20 27 22 2b 66 69 6c 65 |02,"file '"+file| 00001b40 6e 61 6d 65 24 2b 22 27 20 64 6f 65 73 20 6e 6f |name$+"' does no| 00001b50 74 20 65 78 69 73 74 22 0d 0a f0 0a 20 20 20 69 |t exist".... i| 00001b60 3d 30 0d 0a fa 1c 20 20 20 c8 95 20 28 ac 20 c5 |=0.... .. (. .| 00001b70 23 28 78 29 20 80 20 69 3c 3d 6d 61 78 29 0d 0b |#(x) . i<=max)..| 00001b80 04 23 20 20 20 20 20 20 e8 23 20 78 2c 6e 61 6d |.# .# x,nam| 00001b90 65 24 28 69 29 2c 61 78 69 6f 6d 24 28 69 29 2c |e$(i),axiom$(i),| 00001ba0 74 0d 0b 0e 15 20 20 20 20 20 20 e3 20 63 3d 30 |t.... . c=0| 00001bb0 20 b8 20 74 2d 31 0d 0b 18 1c 20 20 20 20 20 20 | . t-1.... | 00001bc0 20 20 20 e8 23 20 78 2c 72 75 6c 65 24 28 69 2c | .# x,rule$(i,| 00001bd0 63 29 0d 0b 22 0b 20 20 20 20 20 20 ed 0d 0b 2c |c)..". ...,| 00001be0 21 20 20 20 20 20 20 e8 23 20 78 2c 61 6e 67 6c |! .# x,angl| 00001bf0 65 73 28 69 29 2c 6c 65 76 65 6c 28 69 29 0d 0b |es(i),level(i)..| 00001c00 36 0e 20 20 20 20 20 20 69 2b 3d 31 0d 0b 40 08 |6. i+=1..@.| 00001c10 20 20 20 ce 0d 0b 4a 0b 20 20 20 d9 23 20 78 0d | ...J. .# x.| 00001c20 0b 54 04 0d 0b 5e 0a 20 20 20 f7 20 85 0d 0b 68 |.T...^. . ...h| 00001c30 05 e1 0d 0b 72 05 3a 0d 0b 7c 11 dd f2 4c 5f 50 |....r.:..|...L_P| 00001c40 4c 4f 54 28 6e 75 6d 29 0d 0b 86 07 ea 20 69 0d |LOT(num)..... i.| 00001c50 0b 90 0f 20 20 20 72 75 6c 65 28 29 3d 30 0d 0b |... rule()=0..| 00001c60 9a 1d 20 20 20 54 75 72 74 6c 65 44 69 72 4e 3d |.. TurtleDirN=| 00001c70 61 6e 67 6c 65 73 28 6e 75 6d 29 0d 0b a4 1a 20 |angles(num).... | 00001c80 20 20 6d 61 78 6c 65 76 65 6c 3d 6c 65 76 65 6c | maxlevel=level| 00001c90 28 6e 75 6d 29 0d 0b ae 11 20 20 20 f2 53 65 74 |(num).... .Set| 00001ca0 41 6e 67 6c 65 73 0d 0b b8 11 20 20 20 e3 20 69 |Angles.... . i| 00001cb0 3d 30 20 b8 20 31 39 0d 0b c2 1e 20 20 20 20 20 |=0 . 19.... | 00001cc0 20 e7 20 72 75 6c 65 24 28 6e 75 6d 2c 69 29 3c | . rule$(num,i)<| 00001cd0 3e 22 22 20 8c 0d 0b cc 3c 20 20 20 20 20 20 20 |>"" ....< | 00001ce0 20 20 f2 53 65 74 52 75 6c 65 28 c0 72 75 6c 65 | .SetRule(.rule| 00001cf0 24 28 6e 75 6d 2c 69 29 2c 31 29 2c c1 72 75 6c |$(num,i),1),.rul| 00001d00 65 24 28 6e 75 6d 2c 69 29 2c 33 2c 31 30 30 29 |e$(num,i),3,100)| 00001d10 29 0d 0b d6 0b 20 20 20 20 20 20 cd 0d 0b e0 08 |).... .....| 00001d20 20 20 20 ed 0d 0b ea 04 0d 0b f4 0c 20 20 20 fb | ......... .| 00001d30 20 31 32 38 0d 0b fe 08 20 20 20 db 0d 0c 08 18 | 128.... .....| 00001d40 20 20 20 f2 49 6e 69 74 69 61 6c 69 73 65 54 75 | .InitialiseTu| 00001d50 72 74 6c 65 0d 0c 12 10 20 20 20 78 6d 69 6e 3d |rtle.... xmin=| 00001d60 2d 32 30 30 0d 0c 1c 0f 20 20 20 78 6d 61 78 3d |-200.... xmax=| 00001d70 32 30 30 0d 0c 26 10 20 20 20 79 6d 69 6e 3d 2d |200..&. ymin=-| 00001d80 32 30 30 0d 0c 30 0f 20 20 20 79 6d 61 78 3d 32 |200..0. ymax=2| 00001d90 30 30 0d 0c 3a 34 20 20 20 73 63 61 6c 65 3d a4 |00..:4 scale=.| 00001da0 4d 69 6e 28 31 32 37 36 2f 28 78 6d 61 78 2d 78 |Min(1276/(xmax-x| 00001db0 6d 69 6e 29 2c 31 30 32 30 2f 28 79 6d 61 78 2d |min),1020/(ymax-| 00001dc0 79 6d 69 6e 29 29 0d 0c 44 0d 20 20 20 78 6d 69 |ymin))..D. xmi| 00001dd0 6e 3d 30 0d 0c 4e 0d 20 20 20 79 6d 69 6e 3d 30 |n=0..N. ymin=0| 00001de0 0d 0c 58 0d 20 20 20 78 6d 61 78 3d 30 0d 0c 62 |..X. xmax=0..b| 00001df0 0d 20 20 20 79 6d 61 78 3d 30 0d 0c 6c 0a 20 20 |. ymax=0..l. | 00001e00 20 fb 20 38 0d 0c 76 47 20 20 20 f1 8a 31 2c 31 | . 8..vG ..1,1| 00001e10 29 3b 22 57 61 69 74 20 6f 6e 65 20 6d 6f 6d 65 |);"Wait one mome| 00001e20 6e 74 20 77 68 69 6c 65 20 49 20 77 6f 72 6b 20 |nt while I work | 00001e30 6f 75 74 20 74 68 65 20 63 75 72 76 65 20 73 69 |out the curve si| 00001e40 7a 65 2e 2e 2e 2e 2e 2e 2e 2e 22 0d 0c 80 32 20 |ze........"...2 | 00001e50 20 20 ec 20 73 63 61 6c 65 2a 28 54 75 72 74 6c | . scale*(Turtl| 00001e60 65 58 2d 78 6d 69 6e 29 2c 73 63 61 6c 65 2a 28 |eX-xmin),scale*(| 00001e70 54 75 72 74 6c 65 59 2d 79 6d 69 6e 29 0d 0c 8a |TurtleY-ymin)...| 00001e80 1d 20 20 20 e3 20 69 3d 31 20 b8 20 a9 28 61 78 |. . i=1 . .(ax| 00001e90 69 6f 6d 24 28 6e 75 6d 29 29 0d 0c 94 28 20 20 |iom$(num))...( | 00001ea0 20 20 20 20 f2 43 75 72 76 65 28 97 28 c1 61 78 | .Curve(.(.ax| 00001eb0 69 6f 6d 24 28 6e 75 6d 29 2c 69 2c 31 29 29 2c |iom$(num),i,1)),| 00001ec0 30 29 0d 0c 9e 08 20 20 20 ed 0d 0c a8 04 0d 0c |0).... .......| 00001ed0 b2 08 20 20 20 db 0d 0c bc 18 20 20 20 f2 49 6e |.. ..... .In| 00001ee0 69 74 69 61 6c 69 73 65 54 75 72 74 6c 65 0d 0c |itialiseTurtle..| 00001ef0 c6 1e 20 20 20 e7 20 78 6d 69 6e 3d 78 6d 61 78 |.. . xmin=xmax| 00001f00 20 8c 20 78 6d 61 78 3d 30 2e 30 31 0d 0c d0 1e | . xmax=0.01....| 00001f10 20 20 20 e7 20 79 6d 69 6e 3d 79 6d 61 78 20 8c | . ymin=ymax .| 00001f20 20 79 6d 61 78 3d 30 2e 30 31 0d 0c da 34 20 20 | ymax=0.01...4 | 00001f30 20 73 63 61 6c 65 3d a4 4d 69 6e 28 31 32 37 36 | scale=.Min(1276| 00001f40 2f 28 78 6d 61 78 2d 78 6d 69 6e 29 2c 31 30 32 |/(xmax-xmin),102| 00001f50 30 2f 28 79 6d 61 78 2d 79 6d 69 6e 29 29 0d 0c |0/(ymax-ymin))..| 00001f60 e4 32 20 20 20 ec 20 73 63 61 6c 65 2a 28 54 75 |.2 . scale*(Tu| 00001f70 72 74 6c 65 58 2d 78 6d 69 6e 29 2c 73 63 61 6c |rtleX-xmin),scal| 00001f80 65 2a 28 54 75 72 74 6c 65 59 2d 79 6d 69 6e 29 |e*(TurtleY-ymin)| 00001f90 0d 0c ee 1d 20 20 20 e3 20 69 3d 31 20 b8 20 a9 |.... . i=1 . .| 00001fa0 28 61 78 69 6f 6d 24 28 6e 75 6d 29 29 0d 0c f8 |(axiom$(num))...| 00001fb0 28 20 20 20 20 20 20 f2 43 75 72 76 65 28 97 28 |( .Curve(.(| 00001fc0 c1 61 78 69 6f 6d 24 28 6e 75 6d 29 2c 69 2c 31 |.axiom$(num),i,1| 00001fd0 29 29 2c 30 29 0d 0d 02 08 20 20 20 ed 0d 0d 0c |)),0).... ....| 00001fe0 22 20 20 20 e7 20 73 63 72 65 65 6e 5f 73 61 76 |" . screen_sav| 00001ff0 65 20 8c 20 f2 53 63 72 65 65 6e 53 61 76 65 0d |e . .ScreenSave.| 00002000 0d 16 04 0d 0d 20 15 20 20 20 f2 4d 6f 75 73 65 |..... . .Mouse| 00002010 57 61 69 74 28 2d 38 29 0d 0d 2a 05 e1 0d 0d 34 |Wait(-8)..*....4| 00002020 05 3a 0d 0d 3e 22 dd f2 53 63 72 65 65 6e 53 61 |.:..>"..ScreenSa| 00002030 76 65 45 72 72 6f 72 28 65 72 72 2c 72 65 70 6f |veError(err,repo| 00002040 72 74 24 29 0d 0d 48 10 20 20 20 fb 20 38 3a fb |rt$)..H. . 8:.| 00002050 20 31 32 38 0d 0d 52 2b 20 20 20 f1 8a 30 2c 30 | 128..R+ ..0,0| 00002060 29 3b 22 53 63 72 65 65 6e 20 6e 6f 74 20 73 61 |);"Screen not sa| 00002070 76 65 64 20 2d 20 22 3b 72 65 70 6f 72 74 24 0d |ved - ";report$.| 00002080 0d 5c 05 e1 0d 0d 66 05 3a 0d 0d 70 10 dd f2 53 |.\....f.:..p...S| 00002090 63 72 65 65 6e 53 61 76 65 0d 0d 7a 15 ea 20 66 |creenSave..z.. f| 000020a0 6e 61 6d 65 24 2c 74 79 70 65 2c 6e 75 6d 0d 0d |name$,type,num..| 000020b0 84 07 ea 20 85 0d 0d 8e 25 20 20 20 ee 20 85 20 |... ....% . . | 000020c0 ea 20 f2 53 63 72 65 65 6e 53 61 76 65 45 72 72 |. .ScreenSaveErr| 000020d0 6f 72 28 9f 2c f6 24 29 3a e1 0d 0d 98 0c 20 20 |or(.,.$):..... | 000020e0 20 6e 75 6d 3d 31 0d 0d a2 1d 20 20 20 66 6e 61 | num=1.... fna| 000020f0 6d 65 24 3d 22 4f 4c 5f 53 79 73 22 2b c3 28 6e |me$="OL_Sys"+.(n| 00002100 75 6d 29 0d 0d ac 24 20 20 20 c8 99 20 22 4f 53 |um)...$ .. "OS| 00002110 5f 46 69 6c 65 22 2c 31 37 2c 66 6e 61 6d 65 24 |_File",17,fname$| 00002120 20 b8 20 74 79 70 65 0d 0d b6 11 20 20 20 c8 95 | . type.... ..| 00002130 20 74 79 70 65 3c 3e 30 0d 0d c0 10 20 20 20 20 | type<>0.... | 00002140 20 20 6e 75 6d 2b 3d 31 0d 0d ca 20 20 20 20 20 | num+=1... | 00002150 20 20 66 6e 61 6d 65 24 3d 22 4f 4c 5f 53 79 73 | fname$="OL_Sys| 00002160 22 2b c3 28 6e 75 6d 29 0d 0d d4 27 20 20 20 20 |"+.(num)...' | 00002170 20 20 c8 99 20 22 4f 53 5f 46 69 6c 65 22 2c 31 | .. "OS_File",1| 00002180 37 2c 66 6e 61 6d 65 24 20 b8 20 74 79 70 65 0d |7,fname$ . type.| 00002190 0d de 08 20 20 20 ce 0d 0d e8 04 0d 0d f2 14 20 |... ......... | 000021a0 20 20 e7 20 63 6f 6d 70 61 63 74 3d b9 20 8c 0d | . compact=. ..| 000021b0 0d fc 1e 20 20 20 20 20 20 ff 28 22 53 43 52 53 |... .("SCRS| 000021c0 41 56 45 20 22 2b 66 6e 61 6d 65 24 29 0d 0e 06 |AVE "+fname$)...| 000021d0 08 20 20 20 cc 0d 0e 10 21 20 20 20 20 20 20 ff |. ....! .| 000021e0 28 22 53 43 52 45 45 4e 53 41 56 45 20 22 2b 66 |("SCREENSAVE "+f| 000021f0 6e 61 6d 65 24 29 0d 0e 1a 08 20 20 20 cd 0d 0e |name$).... ...| 00002200 24 04 0d 0e 2e 0a 20 20 20 f7 20 85 0d 0e 38 05 |$..... . ...8.| 00002210 e1 0d 0e 42 05 3a 0d 0e 4c 0f dd f2 53 65 74 41 |...B.:..L...SetA| 00002220 6e 67 6c 65 73 0d 0e 56 07 ea 20 69 0d 0e 60 19 |ngles..V.. i..`.| 00002230 20 20 20 e3 20 69 3d 30 20 b8 20 54 75 72 74 6c | . i=0 . Turtl| 00002240 65 44 69 72 4e 0d 0e 6a 25 20 20 20 20 20 20 63 |eDirN..j% c| 00002250 6f 73 28 69 29 3d 9b b2 28 33 36 30 2a 69 2f 54 |os(i)=..(360*i/T| 00002260 75 72 74 6c 65 44 69 72 4e 29 0d 0e 74 25 20 20 |urtleDirN)..t% | 00002270 20 20 20 20 73 69 6e 28 69 29 3d b5 b2 28 33 36 | sin(i)=..(36| 00002280 30 2a 69 2f 54 75 72 74 6c 65 44 69 72 4e 29 0d |0*i/TurtleDirN).| 00002290 0e 7e 08 20 20 20 ed 0d 0e 88 05 e1 0d 0e 92 05 |.~. ..........| 000022a0 3a 0d 0e 9c 19 dd f2 53 65 74 52 75 6c 65 28 63 |:......SetRule(c| 000022b0 24 2c 6f 75 74 70 75 74 24 29 0d 0e a6 09 ea 20 |$,output$)..... | 000022c0 69 2c 63 0d 0e b0 0e 20 20 20 63 3d 97 28 63 24 |i,c.... c=.(c$| 000022d0 29 0d 0e ba 1b 20 20 20 72 75 6c 65 28 63 2c 30 |).... rule(c,0| 000022e0 29 3d a9 28 6f 75 74 70 75 74 24 29 0d 0e c4 19 |)=.(output$)....| 000022f0 20 20 20 e3 20 69 3d 31 20 b8 20 a9 28 6f 75 74 | . i=1 . .(out| 00002300 70 75 74 24 29 0d 0e ce 24 20 20 20 20 20 20 72 |put$)...$ r| 00002310 75 6c 65 28 63 2c 69 29 3d 97 28 c1 6f 75 74 70 |ule(c,i)=.(.outp| 00002320 75 74 24 2c 69 2c 31 29 29 0d 0e d8 08 20 20 20 |ut$,i,1)).... | 00002330 ed 0d 0e e2 05 e1 0d 0e ec 05 3a 0d 0e f6 14 dd |..........:.....| 00002340 f2 43 75 72 76 65 28 63 2c 6c 65 76 65 6c 29 0d |.Curve(c,level).| 00002350 0f 00 07 ea 20 69 0d 0f 0a 16 e7 20 6c 65 76 65 |.... i..... leve| 00002360 6c 3c 6d 61 78 6c 65 76 65 6c 20 8c 0d 0f 14 17 |l<maxlevel .....| 00002370 20 20 20 e7 20 72 75 6c 65 28 63 2c 30 29 3c 3e | . rule(c,0)<>| 00002380 30 20 8c 0d 0f 1e 1b 20 20 20 20 20 20 e3 20 69 |0 ..... . i| 00002390 3d 31 20 b8 20 72 75 6c 65 28 63 2c 30 29 0d 0f |=1 . rule(c,0)..| 000023a0 28 26 20 20 20 20 20 20 20 20 20 f2 43 75 72 76 |(& .Curv| 000023b0 65 28 72 75 6c 65 28 63 2c 69 29 2c 6c 65 76 65 |e(rule(c,i),leve| 000023c0 6c 2b 31 29 0d 0f 32 0b 20 20 20 20 20 20 ed 0d |l+1)..2. ..| 000023d0 0f 3c 0b 20 20 20 20 20 20 e1 0d 0f 46 08 20 20 |.<. ...F. | 000023e0 20 cc 0d 0f 50 14 20 20 20 20 20 20 f2 54 75 72 | ...P. .Tur| 000023f0 74 6c 65 28 63 29 0d 0f 5a 08 20 20 20 cd 0d 0f |tle(c)..Z. ...| 00002400 64 05 cc 0d 0f 6e 11 20 20 20 f2 54 75 72 74 6c |d....n. .Turtl| 00002410 65 28 63 29 0d 0f 78 05 cd 0d 0f 82 05 e1 0d 0f |e(c)..x.........| 00002420 8c 05 3a 0d 0f 96 0f dd f2 54 75 72 74 6c 65 28 |..:......Turtle(| 00002430 63 29 0d 0f a0 0a c8 8e 20 63 20 ca 0d 0f aa 10 |c)...... c .....| 00002440 20 20 20 c9 20 97 28 22 46 22 29 3a 0d 0f b4 21 | . .("F"):...!| 00002450 20 20 20 20 20 20 54 75 72 74 6c 65 58 2b 3d 73 | TurtleX+=s| 00002460 69 6e 28 54 75 72 74 6c 65 44 69 72 29 0d 0f be |in(TurtleDir)...| 00002470 21 20 20 20 20 20 20 54 75 72 74 6c 65 59 2b 3d |! TurtleY+=| 00002480 63 6f 73 28 54 75 72 74 6c 65 44 69 72 29 0d 0f |cos(TurtleDir)..| 00002490 c8 12 20 20 20 20 20 20 e6 20 34 2b b3 28 34 29 |.. . 4+.(4)| 000024a0 0d 0f d2 35 20 20 20 20 20 20 df 20 73 63 61 6c |...5 . scal| 000024b0 65 2a 28 54 75 72 74 6c 65 58 2d 78 6d 69 6e 29 |e*(TurtleX-xmin)| 000024c0 2c 73 63 61 6c 65 2a 28 54 75 72 74 6c 65 59 2d |,scale*(TurtleY-| 000024d0 79 6d 69 6e 29 0d 0f dc 27 20 20 20 20 20 20 e7 |ymin)...' .| 000024e0 20 54 75 72 74 6c 65 58 3e 78 6d 61 78 20 8c 20 | TurtleX>xmax . | 000024f0 78 6d 61 78 3d 54 75 72 74 6c 65 58 0d 0f e6 27 |xmax=TurtleX...'| 00002500 20 20 20 20 20 20 e7 20 54 75 72 74 6c 65 58 3c | . TurtleX<| 00002510 78 6d 69 6e 20 8c 20 78 6d 69 6e 3d 54 75 72 74 |xmin . xmin=Turt| 00002520 6c 65 58 0d 0f f0 27 20 20 20 20 20 20 e7 20 54 |leX...' . T| 00002530 75 72 74 6c 65 59 3e 79 6d 61 78 20 8c 20 79 6d |urtleY>ymax . ym| 00002540 61 78 3d 54 75 72 74 6c 65 59 0d 0f fa 27 20 20 |ax=TurtleY...' | 00002550 20 20 20 20 e7 20 54 75 72 74 6c 65 59 3c 79 6d | . TurtleY<ym| 00002560 69 6e 20 8c 20 79 6d 69 6e 3d 54 75 72 74 6c 65 |in . ymin=Turtle| 00002570 59 0d 10 04 10 20 20 20 c9 20 97 28 22 66 22 29 |Y.... . .("f")| 00002580 3a 0d 10 0e 21 20 20 20 20 20 20 54 75 72 74 6c |:...! Turtl| 00002590 65 58 2b 3d 73 69 6e 28 54 75 72 74 6c 65 44 69 |eX+=sin(TurtleDi| 000025a0 72 29 0d 10 18 21 20 20 20 20 20 20 54 75 72 74 |r)...! Turt| 000025b0 6c 65 59 2b 3d 63 6f 73 28 54 75 72 74 6c 65 44 |leY+=cos(TurtleD| 000025c0 69 72 29 0d 10 22 35 20 20 20 20 20 20 ec 20 73 |ir).."5 . s| 000025d0 63 61 6c 65 2a 28 54 75 72 74 6c 65 58 2d 78 6d |cale*(TurtleX-xm| 000025e0 69 6e 29 2c 73 63 61 6c 65 2a 28 54 75 72 74 6c |in),scale*(Turtl| 000025f0 65 59 2d 79 6d 69 6e 29 0d 10 2c 27 20 20 20 20 |eY-ymin)..,' | 00002600 20 20 e7 20 54 75 72 74 6c 65 58 3e 78 6d 61 78 | . TurtleX>xmax| 00002610 20 8c 20 78 6d 61 78 3d 54 75 72 74 6c 65 58 0d | . xmax=TurtleX.| 00002620 10 36 27 20 20 20 20 20 20 e7 20 54 75 72 74 6c |.6' . Turtl| 00002630 65 58 3c 78 6d 69 6e 20 8c 20 78 6d 69 6e 3d 54 |eX<xmin . xmin=T| 00002640 75 72 74 6c 65 58 0d 10 40 27 20 20 20 20 20 20 |urtleX..@' | 00002650 e7 20 54 75 72 74 6c 65 59 3e 79 6d 61 78 20 8c |. TurtleY>ymax .| 00002660 20 79 6d 61 78 3d 54 75 72 74 6c 65 59 0d 10 4a | ymax=TurtleY..J| 00002670 27 20 20 20 20 20 20 e7 20 54 75 72 74 6c 65 59 |' . TurtleY| 00002680 3c 79 6d 69 6e 20 8c 20 79 6d 69 6e 3d 54 75 72 |<ymin . ymin=Tur| 00002690 74 6c 65 59 0d 10 54 10 20 20 20 c9 20 97 28 22 |tleY..T. . .("| 000026a0 2b 22 29 3a 0d 10 5e 16 20 20 20 20 20 20 54 75 |+"):..^. Tu| 000026b0 72 74 6c 65 44 69 72 2d 3d 31 0d 10 68 30 20 20 |rtleDir-=1..h0 | 000026c0 20 20 20 20 e7 20 54 75 72 74 6c 65 44 69 72 3c | . TurtleDir<| 000026d0 30 20 8c 20 54 75 72 74 6c 65 44 69 72 3d 54 75 |0 . TurtleDir=Tu| 000026e0 72 74 6c 65 44 69 72 4e 2d 31 0d 10 72 10 20 20 |rtleDirN-1..r. | 000026f0 20 c9 20 97 28 22 2d 22 29 3a 0d 10 7c 16 20 20 | . .("-"):..|. | 00002700 20 20 20 20 54 75 72 74 6c 65 44 69 72 2b 3d 31 | TurtleDir+=1| 00002710 0d 10 86 2e 20 20 20 20 20 20 e7 20 54 75 72 74 |.... . Turt| 00002720 6c 65 44 69 72 3d 54 75 72 74 6c 65 44 69 72 4e |leDir=TurtleDirN| 00002730 20 8c 20 54 75 72 74 6c 65 44 69 72 3d 30 0d 10 | . TurtleDir=0..| 00002740 90 10 20 20 20 c9 20 97 28 22 7c 22 29 3a 0d 10 |.. . .("|"):..| 00002750 9a 21 20 20 20 20 20 20 54 75 72 74 6c 65 44 69 |.! TurtleDi| 00002760 72 2b 3d 54 75 72 74 6c 65 44 69 72 4e 2f 32 0d |r+=TurtleDirN/2.| 00002770 10 a4 38 20 20 20 20 20 20 e7 20 54 75 72 74 6c |..8 . Turtl| 00002780 65 44 69 72 3e 54 75 72 74 6c 65 44 69 72 4e 20 |eDir>TurtleDirN | 00002790 8c 20 54 75 72 74 6c 65 44 69 72 2d 3d 54 75 72 |. TurtleDir-=Tur| 000027a0 74 6c 65 44 69 72 4e 0d 10 ae 10 20 20 20 c9 20 |tleDirN.... . | 000027b0 97 28 22 5b 22 29 3a 0d 10 b8 37 20 20 20 20 20 |.("["):...7 | 000027c0 20 e7 20 54 53 74 61 63 6b 53 69 7a 65 3d 54 53 | . TStackSize=TS| 000027d0 74 61 63 6b 4d 61 78 20 8c 20 85 20 31 30 30 2c |tackMax . . 100,| 000027e0 22 73 74 61 63 6b 20 66 75 6c 6c 22 3a e0 0d 10 |"stack full":...| 000027f0 c2 25 20 20 20 20 20 20 54 53 74 61 63 6b 58 28 |.% TStackX(| 00002800 54 53 74 61 63 6b 53 69 7a 65 29 3d 54 75 72 74 |TStackSize)=Turt| 00002810 6c 65 58 0d 10 cc 25 20 20 20 20 20 20 54 53 74 |leX...% TSt| 00002820 61 63 6b 59 28 54 53 74 61 63 6b 53 69 7a 65 29 |ackY(TStackSize)| 00002830 3d 54 75 72 74 6c 65 59 0d 10 d6 29 20 20 20 20 |=TurtleY...) | 00002840 20 20 54 53 74 61 63 6b 44 69 72 28 54 53 74 61 | TStackDir(TSta| 00002850 63 6b 53 69 7a 65 29 3d 54 75 72 74 6c 65 44 69 |ckSize)=TurtleDi| 00002860 72 0d 10 e0 17 20 20 20 20 20 20 54 53 74 61 63 |r.... TStac| 00002870 6b 53 69 7a 65 2b 3d 31 0d 10 ea 10 20 20 20 c9 |kSize+=1.... .| 00002880 20 97 28 22 5d 22 29 3a 0d 10 f4 30 20 20 20 20 | .("]"):...0 | 00002890 20 20 e7 20 54 53 74 61 63 6b 53 69 7a 65 3d 30 | . TStackSize=0| 000028a0 20 8c 20 85 20 31 30 31 2c 22 73 74 61 63 6b 20 | . . 101,"stack | 000028b0 65 6d 70 74 79 22 3a e0 0d 10 fe 17 20 20 20 20 |empty":..... | 000028c0 20 20 54 53 74 61 63 6b 53 69 7a 65 2d 3d 31 0d | TStackSize-=1.| 000028d0 11 08 25 20 20 20 20 20 20 54 75 72 74 6c 65 58 |..% TurtleX| 000028e0 3d 54 53 74 61 63 6b 58 28 54 53 74 61 63 6b 53 |=TStackX(TStackS| 000028f0 69 7a 65 29 0d 11 12 25 20 20 20 20 20 20 54 75 |ize)...% Tu| 00002900 72 74 6c 65 59 3d 54 53 74 61 63 6b 59 28 54 53 |rtleY=TStackY(TS| 00002910 74 61 63 6b 53 69 7a 65 29 0d 11 1c 29 20 20 20 |tackSize)...) | 00002920 20 20 20 54 75 72 74 6c 65 44 69 72 3d 54 53 74 | TurtleDir=TSt| 00002930 61 63 6b 44 69 72 28 54 53 74 61 63 6b 53 69 7a |ackDir(TStackSiz| 00002940 65 29 0d 11 26 35 20 20 20 20 20 20 ec 20 73 63 |e)..&5 . sc| 00002950 61 6c 65 2a 28 54 75 72 74 6c 65 58 2d 78 6d 69 |ale*(TurtleX-xmi| 00002960 6e 29 2c 73 63 61 6c 65 2a 28 54 75 72 74 6c 65 |n),scale*(Turtle| 00002970 59 2d 79 6d 69 6e 29 0d 11 30 09 20 20 20 7f 3a |Y-ymin)..0. .:| 00002980 0d 11 3a 05 cb 0d 11 44 05 e1 0d 11 4e 05 3a 0d |..:....D....N.:.| 00002990 11 58 0d dd f2 53 74 61 72 74 55 70 0d 11 62 0d |.X...StartUp..b.| 000029a0 20 20 20 6d 61 78 3d 33 30 0d 11 6c 13 20 20 20 | max=30..l. | 000029b0 de 20 6e 61 6d 65 24 28 6d 61 78 29 0d 11 76 14 |. name$(max)..v.| 000029c0 20 20 20 de 20 61 78 69 6f 6d 24 28 6d 61 78 29 | . axiom$(max)| 000029d0 0d 11 80 16 20 20 20 de 20 72 75 6c 65 24 28 6d |.... . rule$(m| 000029e0 61 78 2c 32 30 29 0d 11 8a 14 20 20 20 de 20 61 |ax,20).... . a| 000029f0 6e 67 6c 65 73 28 6d 61 78 29 0d 11 94 13 20 20 |ngles(max).... | 00002a00 20 de 20 6c 65 76 65 6c 28 6d 61 78 29 0d 11 9e | . level(max)...| 00002a10 12 20 20 20 de 20 62 75 66 66 25 20 31 30 30 0d |. . buff% 100.| 00002a20 11 a8 04 0d 11 b2 15 20 20 20 de 20 72 75 6c 65 |....... . rule| 00002a30 28 32 35 35 2c 33 30 29 0d 11 bc 14 20 20 20 54 |(255,30).... T| 00002a40 53 74 61 63 6b 4d 61 78 3d 31 30 30 0d 11 c6 1b |StackMax=100....| 00002a50 20 20 20 de 20 54 53 74 61 63 6b 58 28 54 53 74 | . TStackX(TSt| 00002a60 61 63 6b 4d 61 78 29 0d 11 d0 1b 20 20 20 de 20 |ackMax).... . | 00002a70 54 53 74 61 63 6b 59 28 54 53 74 61 63 6b 4d 61 |TStackY(TStackMa| 00002a80 78 29 0d 11 da 1d 20 20 20 de 20 54 53 74 61 63 |x).... . TStac| 00002a90 6b 44 69 72 28 54 53 74 61 63 6b 4d 61 78 29 0d |kDir(TStackMax).| 00002aa0 11 e4 11 20 20 20 de 20 63 6f 73 28 33 36 30 29 |... . cos(360)| 00002ab0 0d 11 ee 11 20 20 20 de 20 73 69 6e 28 33 36 30 |.... . sin(360| 00002ac0 29 0d 11 f8 04 0d 12 02 17 20 20 20 66 69 6c 65 |)........ file| 00002ad0 6e 61 6d 65 24 3d 22 44 65 6d 6f 22 0d 12 0c 10 |name$="Demo"....| 00002ae0 20 20 20 63 6f 6d 70 61 63 74 3d b9 0d 12 16 14 | compact=.....| 00002af0 20 20 20 73 63 72 65 65 6e 5f 73 61 76 65 3d a3 | screen_save=.| 00002b00 0d 12 20 11 20 20 20 61 6e 67 6c 65 73 28 29 3d |.. . angles()=| 00002b10 31 0d 12 2a 05 e1 0d 12 34 05 3a 0d 12 3e 16 dd |1..*....4.:..>..| 00002b20 f2 49 6e 69 74 69 61 6c 69 73 65 54 75 72 74 6c |.InitialiseTurtl| 00002b30 65 0d 12 48 10 20 20 20 54 75 72 74 6c 65 58 3d |e..H. TurtleX=| 00002b40 30 0d 12 52 10 20 20 20 54 75 72 74 6c 65 59 3d |0..R. TurtleY=| 00002b50 30 0d 12 5c 12 20 20 20 54 75 72 74 6c 65 44 69 |0..\. TurtleDi| 00002b60 72 3d 30 0d 12 66 13 20 20 20 54 53 74 61 63 6b |r=0..f. TStack| 00002b70 53 69 7a 65 3d 30 0d 12 70 05 e1 0d 12 7a 05 3a |Size=0..p....z.:| 00002b80 0d 12 84 0d dd f2 43 6f 6c 6f 75 72 73 0d 12 8e |......Colours...| 00002b90 07 ea 20 69 0d 12 98 10 20 20 20 e3 20 69 3d 30 |.. i.... . i=0| 00002ba0 20 b8 20 37 0d 12 a2 1c 20 20 20 20 20 20 fb 20 | . 7.... . | 00002bb0 69 2c 69 2a 33 32 2c 69 2a 33 32 2c 69 2a 33 32 |i,i*32,i*32,i*32| 00002bc0 0d 12 ac 08 20 20 20 ed 0d 12 b6 21 20 20 20 fb |.... ....! .| 00002bd0 20 38 20 2c 32 35 35 2c 32 35 35 2c 32 35 35 20 | 8 ,255,255,255 | 00002be0 20 3a f4 20 57 48 49 54 45 0d 12 c0 1f 20 20 20 | :. WHITE.... | 00002bf0 fb 20 39 20 2c 32 35 35 2c 30 20 20 2c 30 20 20 |. 9 ,255,0 ,0 | 00002c00 20 20 3a f4 20 52 45 44 0d 12 ca 21 20 20 20 fb | :. RED...! .| 00002c10 20 31 30 2c 30 20 20 2c 32 35 35 2c 30 20 20 20 | 10,0 ,255,0 | 00002c20 20 3a f4 20 47 52 45 45 4e 0d 12 d4 22 20 20 20 | :. GREEN..." | 00002c30 fb 20 31 31 2c 32 35 35 2c 32 35 35 2c 30 20 20 |. 11,255,255,0 | 00002c40 20 20 3a f4 20 59 45 4c 4c 4f 57 0d 12 de 20 20 | :. YELLOW... | 00002c50 20 20 fb 20 31 32 2c 30 20 20 2c 30 20 20 2c 32 | . 12,0 ,0 ,2| 00002c60 35 35 20 20 3a f4 20 42 4c 55 45 0d 12 e8 23 20 |55 :. BLUE...# | 00002c70 20 20 fb 20 31 33 2c 32 35 35 2c 30 20 20 2c 32 | . 13,255,0 ,2| 00002c80 35 35 20 20 3a f4 20 4d 41 47 45 4e 54 41 0d 12 |55 :. MAGENTA..| 00002c90 f2 20 20 20 20 fb 20 31 34 2c 30 20 20 2c 32 35 |. . 14,0 ,25| 00002ca0 35 2c 32 35 35 20 20 3a f4 20 43 59 41 4e 0d 12 |5,255 :. CYAN..| 00002cb0 fc 04 0d 13 06 29 20 20 20 fb 20 31 35 2c 32 35 |.....) . 15,25| 00002cc0 35 2c 32 35 35 2c 32 35 35 20 20 3a f4 20 57 48 |5,255,255 :. WH| 00002cd0 49 54 45 20 28 41 47 41 49 4e 29 0d 13 10 05 e1 |ITE (AGAIN).....| 00002ce0 0d 13 1a 05 3a 0d 13 24 11 dd f2 53 74 61 72 43 |....:..$...StarC| 00002cf0 6f 6d 6d 61 6e 64 0d 13 2e 08 ea 20 43 24 0d 13 |ommand..... C$..| 00002d00 38 07 ea 20 85 0d 13 42 08 20 20 20 ee 0d 13 4c |8.. ...B. ...L| 00002d10 10 20 20 20 fb 20 37 3a fb 20 31 32 38 0d 13 56 |. . 7:. 128..V| 00002d20 0e 20 20 20 f1 8a 30 2c 33 32 29 0d 13 60 1e 20 |. ..0,32)..`. | 00002d30 20 20 ee 20 85 20 ea 20 e7 20 9f 3d 31 37 20 8c | . . . . .=17 .| 00002d40 20 e1 20 8b 20 f6 3a f1 27 0d 13 6a 08 20 20 20 | . . .:.'..j. | 00002d50 f5 0d 13 74 12 20 20 20 20 20 20 f1 8a 30 2c 33 |...t. ..0,3| 00002d60 32 29 3b 0d 13 7e 10 20 20 20 20 20 20 e8 22 2a |2);..~. ."*| 00002d70 22 43 24 0d 13 88 0f 20 20 20 20 20 20 ff 28 43 |"C$.... .(C| 00002d80 24 29 0d 13 92 0e 20 20 20 fd 20 43 24 3d 22 22 |$).... . C$=""| 00002d90 0d 13 9c 08 20 20 20 87 0d 13 a6 0a 20 20 20 f7 |.... ..... .| 00002da0 20 85 0d 13 b0 05 e1 0d 13 ba 05 3a 0d 13 c4 23 | ..........:...#| 00002db0 f4 20 2a 2a 2a 2a 2a 20 49 4e 49 54 49 41 4c 49 |. ***** INITIALI| 00002dc0 53 45 20 41 52 52 41 59 53 20 2a 2a 2a 2a 2a 0d |SE ARRAYS *****.| 00002dd0 13 ce 0f dd f2 41 72 72 61 79 49 6e 69 74 0d 13 |.....ArrayInit..| 00002de0 d8 11 20 20 20 6e 61 6d 65 24 28 29 3d 22 22 0d |.. name$()="".| 00002df0 13 e2 12 20 20 20 61 78 69 6f 6d 24 28 29 3d 22 |... axiom$()="| 00002e00 22 0d 13 ec 11 20 20 20 72 75 6c 65 24 28 29 3d |".... rule$()=| 00002e10 22 22 0d 13 f6 11 20 20 20 61 6e 67 6c 65 73 28 |"".... angles(| 00002e20 29 3d 31 0d 14 00 10 20 20 20 6c 65 76 65 6c 28 |)=1.... level(| 00002e30 29 3d 31 0d 14 0a 05 e1 0d 14 14 05 3a 0d 14 1e |)=1.........:...| 00002e40 2f dd f2 50 6c 69 6e 74 68 28 58 2c 59 2c 57 58 |/..Plinth(X,Y,WX| 00002e50 2c 57 59 2c 57 2c 43 30 2c 43 31 2c 43 32 2c 43 |,WY,W,C0,C1,C2,C| 00002e60 33 2c 43 34 2c 52 41 49 53 45 44 29 0d 14 28 22 |3,C4,RAISED)..("| 00002e70 e7 20 ac 20 52 41 49 53 45 44 20 8c 20 c8 94 20 |. . RAISED . .. | 00002e80 43 31 2c 43 33 3a c8 94 20 43 30 2c 43 34 0d 14 |C1,C3:.. C0,C4..| 00002e90 32 08 e6 20 43 31 0d 14 3c 12 c8 93 c8 90 20 58 |2.. C1..<..... X| 00002ea0 2c 59 2c 57 58 2c 57 59 0d 14 46 08 e6 20 43 33 |,Y,WX,WY..F.. C3| 00002eb0 0d 14 50 17 c8 93 c8 90 20 58 2b 57 2c 59 2c 57 |..P..... X+W,Y,W| 00002ec0 58 2d 32 2a 57 2c 57 0d 14 5a 18 c8 93 c8 90 20 |X-2*W,W..Z..... | 00002ed0 58 2b 57 58 2d 57 2c 59 2c 57 2c 57 59 2d 57 0d |X+WX-W,Y,W,WY-W.| 00002ee0 14 64 11 ec 20 58 2c 59 3a ec 20 58 2b 57 2c 59 |.d.. X,Y:. X+W,Y| 00002ef0 0d 14 6e 1f f0 38 35 2c 58 2b 57 2c 59 2b 57 3a |..n..85,X+W,Y+W:| 00002f00 ec 20 58 2b 57 58 2d 57 2c 59 2b 57 59 2d 57 0d |. X+WX-W,Y+WY-W.| 00002f10 14 78 11 ec 20 58 2b 57 58 2c 59 2b 57 59 2d 57 |.x.. X+WX,Y+WY-W| 00002f20 0d 14 82 1f f0 38 35 2c 58 2b 57 58 2c 59 2b 57 |.....85,X+WX,Y+W| 00002f30 59 3a f0 38 35 2c 58 2b 57 58 2c 59 2b 57 59 0d |Y:.85,X+WX,Y+WY.| 00002f40 14 8c 08 e6 20 43 30 0d 14 96 17 86 20 58 2c 59 |.... C0..... X,Y| 00002f50 2b 57 59 2c 58 2b 57 2c 59 2b 57 59 2d 57 0d 14 |+WY,X+W,Y+WY-W..| 00002f60 a0 08 e6 20 43 34 0d 14 aa 17 86 20 58 2b 57 58 |... C4..... X+WX| 00002f70 2c 59 2c 58 2b 57 58 2d 57 2c 59 2b 57 0d 14 b4 |,Y,X+WX-W,Y+W...| 00002f80 08 e6 20 43 32 0d 14 be 1e c8 93 c8 90 20 58 2b |.. C2........ X+| 00002f90 57 2c 59 2b 57 2c 57 58 2d 32 2a 57 2c 57 59 2d |W,Y+W,WX-2*W,WY-| 00002fa0 32 2a 57 0d 14 c8 05 e1 0d 14 d2 05 3a 0d 14 dc |2*W.........:...| 00002fb0 0e dd a4 4d 69 6e 28 61 2c 62 29 0d 14 e6 13 e7 |...Min(a,b).....| 00002fc0 20 61 3c 62 20 8c 20 3d 61 20 8b 20 3d 62 0d 14 | a<b . =a . =b..| 00002fd0 f0 05 3a 0d 14 fa 0e dd a4 4d 61 78 28 61 2c 62 |..:......Max(a,b| 00002fe0 29 0d 15 04 13 e7 20 61 3e 62 20 8c 20 3d 61 20 |)..... a>b . =a | 00002ff0 8b 20 3d 62 0d 15 0e 05 3a 0d 15 18 12 dd f2 4d |. =b....:......M| 00003000 6f 75 73 65 57 61 69 74 28 4e 29 0d 15 22 16 ea |ouseWait(N).."..| 00003010 20 41 4e 59 50 52 45 53 53 2c 69 6e 6b 65 79 2c | ANYPRESS,inkey,| 00003020 4d 0d 15 2c 0c 2a 46 58 20 32 31 2c 39 0d 15 36 |M..,.*FX 21,9..6| 00003030 20 e7 20 4e 3c 30 20 8c 20 f2 4d 6f 75 73 65 57 | . N<0 . .MouseW| 00003040 61 69 74 28 30 29 3a 4e 3d 94 28 4e 29 0d 15 40 |ait(0):N=.(N)..@| 00003050 21 e7 20 28 4e 20 80 20 31 36 29 3e 30 20 8c 20 |!. (N . 16)>0 . | 00003060 69 6e 6b 65 79 3d b9 3a 2a 46 58 20 32 31 0d 15 |inkey=.:*FX 21..| 00003070 4a 1c e7 20 28 4e 20 80 20 38 29 3e 30 20 8c 20 |J.. (N . 8)>0 . | 00003080 41 4e 59 50 52 45 53 53 3d b9 0d 15 54 11 4d 3d |ANYPRESS=...T.M=| 00003090 4e 20 80 20 37 3a 57 25 3d 2d 31 0d 15 5e 05 f5 |N . 7:W%=-1..^..| 000030a0 0d 15 68 0f c8 97 20 58 25 2c 59 25 2c 5a 25 0d |..h... X%,Y%,Z%.| 000030b0 15 72 15 e7 20 69 6e 6b 65 79 20 8c 20 57 25 3d |.r.. inkey . W%=| 000030c0 a6 28 30 29 0d 15 7c 46 fd 20 28 5a 25 3d 4d 20 |.(0)..|F. (Z%=M | 000030d0 80 20 ac 20 28 4e 3e 37 20 80 20 4d 3d 30 29 29 |. . (N>7 . M=0))| 000030e0 20 84 20 28 41 4e 59 50 52 45 53 53 20 80 20 28 | . (ANYPRESS . (| 000030f0 5a 25 3e 30 29 29 20 84 20 28 69 6e 6b 65 79 20 |Z%>0)) . (inkey | 00003100 80 20 28 57 25 3e 2d 31 29 29 0d 15 86 05 e1 0d |. (W%>-1))......| 00003110 15 90 05 3a 0d 15 9a 24 dd a4 52 65 63 74 61 6e |...:...$..Rectan| 00003120 67 6c 65 28 78 2c 78 6c 6f 2c 78 68 69 2c 79 2c |gle(x,xlo,xhi,y,| 00003130 79 6c 6f 2c 79 68 69 29 0d 15 a4 2e 3d 28 78 3e |ylo,yhi)....=(x>| 00003140 3d 78 6c 6f 29 20 80 20 28 78 3c 3d 78 68 69 29 |=xlo) . (x<=xhi)| 00003150 20 80 20 28 79 3e 3d 79 6c 6f 29 20 80 20 28 79 | . (y>=ylo) . (y| 00003160 3c 3d 79 68 69 29 0d 15 ae 05 3a 0d 15 b8 3a dd |<=yhi)....:...:.| 00003170 a4 49 6e 70 75 74 28 6c 65 6e 25 2c 6c 6f 63 68 |.Input(len%,loch| 00003180 72 25 2c 68 69 63 68 72 25 2c 65 78 63 6c 75 64 |r%,hichr%,exclud| 00003190 65 24 2c 70 61 69 6e 74 24 2c 65 63 68 6f 25 2c |e$,paint$,echo%,| 000031a0 6e 75 6d 25 29 0d 15 c2 26 20 20 20 ea 20 6e 25 |num%)...& . n%| 000031b0 2c 70 61 69 6e 74 25 2c 69 6e 70 75 74 6f 6b 25 |,paint%,inputok%| 000031c0 2c 71 75 69 74 69 6e 70 75 74 25 0d 15 cc 13 20 |,quitinput%.... | 000031d0 20 20 71 75 69 74 69 6e 70 75 74 25 3d a3 0d 15 | quitinput%=...| 000031e0 d6 11 20 20 20 69 6e 70 75 74 6f 6b 25 3d a3 0d |.. inputok%=..| 000031f0 15 e0 23 20 20 20 69 6e 70 75 74 24 3d 22 22 3a |..# input$="":| 00003200 6e 25 3d 30 3a 65 78 69 74 63 68 6f 69 63 65 25 |n%=0:exitchoice%| 00003210 3d 30 0d 15 ea 17 20 20 20 70 61 69 6e 74 25 3d |=0.... paint%=| 00003220 97 28 70 61 69 6e 74 24 29 0d 15 f4 23 20 20 20 |.(paint$)...# | 00003230 f1 20 c4 6c 65 6e 25 2c 70 61 69 6e 74 24 29 3b |. .len%,paint$);| 00003240 c4 6c 65 6e 25 2c bd 28 38 29 29 3b 0d 15 fe 08 |.len%,.(8));....| 00003250 20 20 20 f5 0d 16 08 19 20 20 20 20 20 20 f2 4d | ..... .M| 00003260 6f 75 73 65 57 61 69 74 28 2d 32 34 29 0d 16 12 |ouseWait(-24)...| 00003270 12 20 20 20 20 20 20 e7 20 5a 25 3e 30 20 8c 0d |. . Z%>0 ..| 00003280 16 1c 2f 20 20 20 20 20 20 20 20 20 e7 20 5a 25 |../ . Z%| 00003290 3d 34 20 8c 20 69 6e 70 75 74 6f 6b 25 3d b9 20 |=4 . inputok%=. | 000032a0 8b 20 71 75 69 74 69 6e 70 75 74 25 3d b9 0d 16 |. quitinput%=...| 000032b0 26 0b 20 20 20 20 20 20 cc 0d 16 30 13 20 20 20 |&. ...0. | 000032c0 20 20 20 20 20 20 c8 8e 20 b9 20 ca 0d 16 3a 22 | .. . ...:"| 000032d0 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 57 25 | . W%| 000032e0 3d 31 33 3a 69 6e 70 75 74 6f 6b 25 3d b9 0d 16 |=13:inputok%=...| 000032f0 44 25 20 20 20 20 20 20 20 20 20 20 20 20 c9 20 |D% . | 00003300 57 25 3d 31 32 37 20 80 20 6e 25 3e 30 3a 6e 25 |W%=127 . n%>0:n%| 00003310 2d 3d 31 0d 16 4e 32 20 20 20 20 20 20 20 20 20 |-=1..N2 | 00003320 20 20 20 20 20 20 69 6e 70 75 74 24 3d c0 69 6e | input$=.in| 00003330 70 75 74 24 2c 6e 25 29 3a ef 20 38 2c 70 61 69 |put$,n%):. 8,pai| 00003340 6e 74 25 2c 38 0d 16 58 3f 20 20 20 20 20 20 20 |nt%,8..X? | 00003350 20 20 20 20 20 c9 20 57 25 3e 3d 6c 6f 63 68 72 | . W%>=lochr| 00003360 25 20 80 20 57 25 3c 3d 68 69 63 68 72 25 20 80 |% . W%<=hichr% .| 00003370 20 a7 65 78 63 6c 75 64 65 24 2c bd 28 57 25 29 | .exclude$,.(W%)| 00003380 29 3d 30 3a 0d 16 62 1f 20 20 20 20 20 20 20 20 |)=0:..b. | 00003390 20 20 20 20 20 20 20 e7 20 6e 25 3e 3d 6c 65 6e | . n%>=len| 000033a0 25 20 8c 0d 16 6c 19 20 20 20 20 20 20 20 20 20 |% ...l. | 000033b0 20 20 20 20 20 20 20 20 20 ef 20 37 0d 16 76 14 | . 7..v.| 000033c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cc | .| 000033d0 0d 16 80 29 20 20 20 20 20 20 20 20 20 20 20 20 |...) | 000033e0 20 20 20 20 20 20 69 6e 70 75 74 24 2b 3d bd 28 | input$+=.(| 000033f0 57 25 29 3a 6e 25 2b 3d 31 0d 16 8a 2a 20 20 20 |W%):n%+=1...* | 00003400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e7 | .| 00003410 20 65 63 68 6f 25 20 8c 20 ef 20 57 25 20 8b 20 | echo% . . W% . | 00003420 ef 20 39 0d 16 94 14 20 20 20 20 20 20 20 20 20 |. 9.... | 00003430 20 20 20 20 20 20 cd 0d 16 9e 0e 20 20 20 20 20 | ..... | 00003440 20 20 20 20 cb 0d 16 a8 0b 20 20 20 20 20 20 cd | ..... .| 00003450 0d 16 b2 1e 20 20 20 fd 20 71 75 69 74 69 6e 70 |.... . quitinp| 00003460 75 74 25 20 84 20 69 6e 70 75 74 6f 6b 25 0d 16 |ut% . inputok%..| 00003470 bc 1f 20 20 20 e7 20 71 75 69 74 69 6e 70 75 74 |.. . quitinput| 00003480 25 20 8c 20 69 6e 70 75 74 24 3d 22 22 0d 16 c6 |% . input$=""...| 00003490 18 20 20 20 65 78 69 74 63 68 6f 69 63 65 25 3d |. exitchoice%=| 000034a0 5a 25 3a f1 3a 0d 16 d0 14 20 20 20 f2 4d 6f 75 |Z%:.:.... .Mou| 000034b0 73 65 57 61 69 74 28 30 29 0d 16 da 1a 20 20 20 |seWait(0).... | 000034c0 e7 20 6e 75 6d 25 20 8c 20 3d bb 28 69 6e 70 75 |. num% . =.(inpu| 000034d0 74 24 29 0d 16 e4 0b 3d 69 6e 70 75 74 24 0d ff |t$)....=input$..| 000034e0