Home » Archimedes archive » Acorn User » AU 1995-03.adf » !StarInfo_StarInfo » Bower/CircleFit
Bower/CircleFit
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 1995-03.adf » !StarInfo_StarInfo |
Filename: | Bower/CircleFit |
Read OK: | ✔ |
File size: | 394E bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >CircleFit 20REM By Andrew Bower 30REM 24th August 1994 40REM Version 0.50 (21 Sep 1994) 50: 60*FX4,1 70fh%=0:sym%=0:black%=FALSE 80path%=0:buff%=0:object%=0 90ON ERROR PROCerror 100OFF 110PROCbank(1) 120CLS 130b%=0:f%=&FFFFFF00 140modevar%=&35:REM "OS_ReadModeVariable" ......... 150SYS modevar%,-1,9 TO ,,log2bpp% 160SYS modevar%,-1,4 TO ,,xeig% 170SYS modevar%,-1,5 TO ,,yeig% 180SYS modevar%,-1,11 TO,,xpix%:xpix%+=1:xos%=xpix%<<xeig% 190SYS modevar%,-1,12 TO,,ypix%:ypix%+=1:yos%=ypix%<<yeig% 200CASE log2bpp% OF 210WHEN 2 220SYS "Font_SetPalette",,0, 1,2,b%,&FFFFFF00,&65757254:REM white 230SYS "Font_SetPalette",,0, 4,2,b%,&FFFF0000,&65757254:REM cyan 240SYS "Font_SetPalette",,0, 7,3,b%,&00FFFF00,&65757254:REM yellow 250SYS "Font_SetPalette",,0,11,2,b%,&00AAFF00,&65757254:REM orange 260SYS "Font_SetPalette",,0,14,1,b%,&00FF1100,&65757254:REM green 270WHEN 1 280COLOUR 0,&00,&00,&00 290COLOUR 1,&FF,&FF,&FF 300COLOUR 2,&FF,&FF,&00 310COLOUR 3,&00,&FF,&FF 320ENDCASE 330SYS "ColourTrans_InvalidateCache" 340z=&7FFFFFFF 350SYS "ColourTrans_SetGCOL",b%,,,%01<<7:CLG 360SYS "ColourTrans_SetGCOL",f% 370SYS "ColourTrans_SetTextColour",f% 380PROCsetupmenu 390edit%=TRUE 400quit%=FALSE 410CLG:row%=yos% 420DIM ans% 256 430DIM coord% 16*4 440DIM T% 6*4,tempbuff% 256,capjoin% 32 450DIM _font% 128,_size% 32,_text% 256,_angle% 32,_radius% 32 460$_font%="Trinity.Medium"+CHR$0 470$_size%="48"+CHR$0 480$_text%="The quick brown fox!"+CHR$0 490$_angle%="180�"+CHR$0 500$_radius%="1.8"""+CHR$0 510 520WHILE NOT quit% 530WHILE edit% 540row%=yos% 550SYS "Font_FindFont",,"Homerton.Medium",18*16,18*16,0,0 TO fh% 560SYS "ColourTrans_SetFontColours",fh%,b%,f%,14 570goodfont%=FALSE 580WHILE NOT goodfont% 590 font$=FNget("Font: ",_font%,128) 600 SYS "XFont_FindFont",,font$,1,1,0,0 TO temp%;flags% 610 IF flags% AND 1 THEN 620 SYS "ColourTrans_SetFontColours",fh%,b%,&FFFF0000,14 630 PROCwrite(" *** Font not found ***") 640 IF GET 650 CLG:row%=yos% 660 SYS "ColourTrans_SetFontColours",fh%,b%,f%,14 670 ELSE 680 SYS "Font_LoseFont",temp% 690 goodfont%=TRUE 700 ENDIF 710ENDWHILE 720size$=FNget("Font size: ",_size%,31) 730colon%=INSTR(size$,":") 740comma%=INSTR(size$,",") 750size%=16*VAL(size$) 760height%=size% 770IF comma% THEN height%=16*VAL(MID$(size$,comma%+1)) 780IF colon% THEN height%=16*VAL(MID$(size$,colon%+1)) 790text$=FNget("Text: ",_text%,256) 800r=VAL(FNget("Radius: ",_radius%,31)) 810a=VAL(FNget("Start: ",_angle%,31)) 820$_size%=STR$(size%DIV16)+":"+STR$(height%DIV16)+CHR$0 830$_radius%=STR$(VAL(FN0(_radius%)))+""""+CHR$0 840$_angle%=STR$(VAL(FN0(_angle%)))+"�"+CHR$0 850SYS "Font_LoseFont",fh% 860r=r*72000 870edit%=FALSE 880ENDWHILE 890PROCbank(2) 900: 910IF path% THEN 920 screen%=TRUE:title%=TRUE:PROCgo 930 screen%=FALSE 940 title%=FALSE 950 SYS "Font_SwitchOutputToBuffer",%10001,32 960 PROCgo 970 SYS "Font_SwitchOutputToBuffer" TO ,inc% 980 inc%+=1024 :REM reserve space for circle paths 990 IF buff% THEN 1000 optr%=buffptr%-buff% 1010 SYS "XOS_Module",13,,buff%,inc% TO ,,buff% ;flags 1020 IF flags AND 1 THEN buff%=0:SYS "XFont_SwitchOutputToBuffer",0,0:VDU 7:tick%(sel%)=FALSE:path%=FALSE:=0 1030 buffptr%=optr%+buff%:buffsize%+=inc%:buffend%=buff%+buffsize%-4 1040 ELSE 1050 SYS "XOS_Module",6,,,inc% TO ,,buff% ;flags 1060 IF flags AND 1 THEN buff%=0:SYS "XFont_SwitchOutputToBuffer",0,0:VDU 7:tick%(sel%)=FALSE:path%=FALSE:=0 1070 buffptr%=FNheader(buff%):buffsize%=inc%+buff%-buffptr%:buffend%=buff%+buffsize% 1080 ENDIF 1090 screen%=FALSE:black%=TRUE:draw%=TRUE:circles%=TRUE 1100 PROCgo 1110 !buffptr%=0 1120 buffptr%!4=buffsize%-16 1130 SYS "Font_SwitchOutputToBuffer",%1<<4,buffptr% 1140 screen%=FALSE:black%=TRUE:draw%=FALSE:circles%=FALSE 1150 PROCgo 1160 screen%=TRUE:black%=FALSE 1170 PROCbank(1) 1180 SYS "Font_SwitchOutputToBuffer",0,0 TO ,buffptr% 1190 SYS "ColourTrans_SetTextColour",f% 1200ELSE 1210IF object%=0 THEN screen%=TRUE:title%=TRUE:draw%=FALSE:circles%=TRUE 1220PROCgo 1230ENDIF 1240IF object% THEN 1250 inc%=131072 1260 IF buff% THEN 1270 optr%=buffptr%-buff% 1280 SYS "XOS_Module",13,,buff%,inc% TO ,,buff% ;flags 1290 IF flags AND 1 THEN buff%=0:VDU 7:tick%(sel%)=FALSE:object%=FALSE:=0 1300 buffptr%=optr%+buff%:buffsize%+=inc%:buffend%=buff%+buffsize%-4 1310 ELSE 1320 SYS "XOS_Module",6,,,inc% TO ,,buff% ;flags 1330 IF flags AND 1 THEN buff%=0:VDU 7:tick(sel%)=FALSE:object%=FALSE:=0 1340 buffptr%=FNheader(buff%):buffsize%=inc%+buff-buffptr%:buffend%=buff%+buffsize% 1350 ENDIF 1360screen%=FALSE:title%=FALSE:black%=TRUE:circles%=TRUE 1370PROCgo:screen%=TRUE:title%=TRUE:black%=FALSE 1380ENDIF 1390PROCbank(1) 1400SYS "Font_FindFont",,"Homerton.Medium",18*16,18*16,0,0 TO fh% 1410SYS "ColourTrans_SetFontColours",fh%,b%,f%,14 1420PROCmenu 1430SYS "Font_LoseFont",fh% 1440ENDWHILE 1450SYS "Font_LoseFont",sym% 1460*FX4,0 1470PROCfinishpath 1480*SHADOW 1 1490END 1500: 1510DEF PROCgo 1520b%=0:f%=&FFFFFF00 1530IF path% AND buff% THEN f%=0:b%=&FFFFFF00 1540a=VAL(FN0(_angle%)) 1550SYS "Font_ConverttoOS",,r TO ,R 1560OX=xos%DIV2 1570OY=yos%DIV2-48 1580text%=_text% 1590T%!16=0 1600T%!20=0 1610SYS "Font_Converttopoints",,OX,OY TO ,ox,oy 1620IF screen% AND overlay%=0 THEN CLG 1630IF circles% THEN PROCcircle(ox,oy,r,f%) 1640IF title% AND overlay%=0 THEN 1650 SYS "Font_FindFont",,font$,24*16,24*16,0,0 TO fh% 1660 SYS "ColourTrans_SetFontColours",fh%,b%,&FFFF0000,14 1670 SYS "Font_Paint",fh%,CHR$25+CHR$-16+CHR$16+text$,%110001<<4,0,yos%-96 1680 SYS "Font_LoseFont",fh% 1690ENDIF 1700 1710SYS "Font_FindFont",,font$,size%,height%,0,0 TO fh% 1720SYS "ColourTrans_SetFontColours",fh%,b%,&00FFFF00,14 1730 1740!coord%=0 1750coord%!4=0 1760coord%!8=0 1770coord%!12=0 1780coord%!16=-1 1790SYS "Font_ScanString",fh%,text%,(1<<18)+(1<<5),z,z,coord% 1800hy=coord%!32 1810SYS "Font_ConverttoOS",,,hy TO ,,hy% 1820IF circles% THEN 1830 IF move THEN 1840 PROCcircle(ox,oy,r+hy*move+SGN(move)*hy,&66666600) 1850 ELSE 1860 PROCcircle(ox,oy,r+hy,&AAAAAA00) 1870 ENDIF 1880ENDIF 1890rr=r+move*hy 1900FOR ptr%=0 TO LEN(text$)-1 1910SYS "Hourglass_On" 1920SYS "Font_ScanString",fh%,text%+ptr%,(reverse%<<10)+(1<<20)+(%11100<<5),z,z,,T%,1 TO ,,,W%,H% 1930B%=W% 1940IF ptr%=0 THEN a-=DEG(ATN(clock%*B%/(2*r))) 1950b=(a+DEG(ATN(clock%*B%/(2*r)))) 1960T=rot+RAD(90-b):REM ***** 1970!T% =&10000*COST :T%!4 =&10000*-SINT 1980T%!8=&10000*SINT :T%!12=&10000*COST 1990b=RAD(a+DEG(ATN(clock%*B%/(r)))) 2000X%=rr*COSb+ox 2010Y%=rr*SINb+oy 2020IF NOT draw% THEN 2030 IF black% THEN SYS "ColourTrans_SetFontColours",&FFFFFF00,&00000000,14 2040 SYS "Font_Paint",fh%,text%+ptr%,(reverse%<<10)+(%11110<<5),X%,Y%,,T%,1 2050ENDIF 2060a+=DEG(ATN(clock%*B%/r)) 2070SYS "Hourglass_Off" 2080NEXT ptr% 2090SYS "Font_LoseFont",fh% 2100IF path%=0 THEN OFF:G=GET 2110b%=0:f%=&FFFFFF00 2120ENDPROC 2130: 2140DEF PROCwrite(str$) 2150SYS "Font_ReadInfo",fh% TO ,,ly%,,hy% 2160gap%=(1.1*(hy%-ly%)+(1<<yeig%)-1) AND NOT ((1<<yeig%)-1) 2170row%-=gap% 2180SYS "Font_Paint",fh%,str$,(%11<<8)+(1<<4),0,row% 2190ENDPROC 2200: 2210DEF FNget(dis$,ans%,max%) 2220LOCAL done% 2230PROCwrite(dis$) 2240SYS "Font_ScanString",fh%,dis$,(1<<20)+%1110000000,z,z,,,LEN(dis$) TO ,,,x% 2250SYS "ColourTrans_SetFontColours",fh%,b%,&00AAFF00,14 2260SYS "ColourTrans_ReturnColourNumber",&00FFFF00 TO colour% 2270SYS "Font_ReadInfo",fh% TO ,,ly%,,hy% 2280ch%=hy%-ly% 2290SYS "Font_Converttopoints",,hy%,ly% TO ,hy%,ly% 2300ptr%=LEN(FN0(ans%)) 2310SYS "Font_Converttopoints",,,row% TO ,,y% 2320ddone%=FALSE 2330!coord%=0 2340coord%!4=0 2350coord%!8=0 2360coord%!12=0 2370coord%!16=0 2380coord%!20=0 2390coord%!24=0 2400coord%!28=0 2410WHILE NOT done% 2420WAIT:SYS "Font_Paint",fh%,ans%,%1100100010,x%,y%,coord% 2430SYS "Font_ScanString",fh%,ans%,(%11<<8),z,z TO ,,,w% 2440coord%!16=x%-6000 2450coord%!20=y%+ly%-6000 2460coord%!24=x%+w%+6000 2470coord%!28=y%+hy%+3000 2480SYS "Font_ScanString",fh%,ans%,(1<<20)+(%111<<7),z,z,,,ptr% TO ,,,cx%,cy% 2490SYS "Font_Caret",colour%,ch%,0,x%+cx%,y%+ly% 2500k%=GET 2510CASE k% OF 2520WHEN 21:?ans%=0:ptr%=0 2530WHEN 13 2540 SYS "ColourTrans_SetFontColours",fh%,b%,&00FFFF00,14 2550 SYS "Font_Paint",fh%,ans%,%1100100010,x%,y%,coord% 2560 done%=TRUE 2570WHEN 136:ptr%-=1 2580WHEN 137:ptr%+=1 2590WHEN 138:ptr%=LEN(FN0(ans%)) 2600WHEN 139:ptr%=0 2610WHEN 127,8:IF ptr%>0 THEN PROCdelchar 2620WHEN 135:IF ptr%<LEN(FN0(ans%)) THEN ptr%+=1:PROCdelchar 2630OTHERWISE 2640IF k%>=32 AND k%<>127 THEN PROCinschar 2650ENDCASE 2660IF ptr%<0 THEN ptr%=0 2670IF ptr%>LEN(FN0(ans%)) THEN ptr%=LEN(FN0(ans%)) 2680IF NOT done% THEN SYS "Font_Caret",colour%,ch%,0,x%+cx%,y%+ly% 2690ENDWHILE 2700SYS "ColourTrans_SetFontColours",fh%,b%,f%,14 2710=FN0(ans%) 2720: 2730DEF PROCdelchar 2740LOCAL n% 2750FOR n%=ans%+ptr% TO ans%+LEN(FN0(ans%)):?(n%-1)=?n%:NEXT n% 2760ptr%-=1 2770ENDPROC 2780: 2790DEF PROCinschar 2800IF LEN(FN0(ans%))>=max% THEN VDU7:ENDPROC 2810LOCAL n% 2820FOR n%=ans%+LEN(FN0(ans%)) TO ans%+ptr% STEP -1:?(n%+1)=?n%:NEXT n% 2830?(ans%+ptr%)=k% 2840ptr%+=1 2850ENDPROC 2860: 2870DEF FN0(s%) 2880LOCAL s$ 2890s$="" 2900WHILE ?s%<>0 2910s$+=CHR$(?s%) 2920s%+=1 2930ENDWHILE 2940=s$ 2950: 2960DEF PROCbank(bank) 2970SYS "OS_Byte",112,bank 2980SYS "OS_Byte",113,bank 2990ENDPROC 3000: 3010DEF PROCerror 3020IF path% THEN PROCfinishpath 3030IF object% THEN PROCfinishobj 3040IF buff% THEN SYS "XOS_Module",7,,buff% 3050SYS "Hourglass_Smash" 3060PRINT REPORT$+" at line "+STR$ERL 3070IF fh% THEN SYS "XFont_LoseFont",fh% 3080IF sym% THEN SYS "XFont_LoseFont",sym% 3090SYS6,4,0 3100*SHADOW 1 3110END 3120: 3130DEF PROCmenu 3140grow%=row% 3150edit%=FALSE 3160SYS "Font_ReadInfo",fh% TO ,,ly%,,hy% 3170gap%=(1*(hy%-ly%)+(1<<yeig%)-1) AND NOT ((1<<yeig%)-1) 3180row%-=gap% 3190SYS "Font_Converttopoints",,gap%,row% TO ,gapp%,rowp% 3200SYS "Font_Converttopoints",,xos% TO ,scr_w% 3210SYS "Font_Converttopoints",,ly%,hy% TO ,ly,hy 3220SYS "Font_ScanString",fh%,"Menu",%11<<8,z,z TO ,,,str_w% 3230SYS "Font_Paint",fh%,CHR$25+CHR$-16+CHR$16+" Menu ",%11<<8,150000,rowp% 3240REM row%-=.5*gap%:rowp%-=.5*gapp% 3250sel%=1 3260FOR n=1 TO items% 3270PROCmenuitem(n) 3280NEXT n 3290menudone%=FALSE 3300WHILE menudone%=FALSE 3310osel%=sel% 3320k%=GET 3330CASE k% OF 3340WHEN 13:IF EVAL(fns$(sel%)) 3350WHEN 138:sel%+=1 3360WHEN 139:sel%-=1 3370ENDCASE 3380IF sel%<1 THEN sel%=1 3390IF sel%>items% THEN sel%=items% 3400PROCmenuitem(osel%) 3410PROCmenuitem(sel%) 3420ENDWHILE 3430row%=grow% 3440ENDPROC 3450: 3460DEF PROCmenuitem(n) 3470!coord%=0 3480coord%!4=0 3490coord%!8=0 3500coord%!12=0 3510coord%!16=0 3520coord%!20=rowp%-n*gapp%+ly 3530coord%!24=scr_w% 3540coord%!28=rowp%-n*gapp%+hy 3550SYS "ColourTrans_SetFontColours",sym%,b%,f%,14 3560CASE sel% OF 3570 WHEN n :IF log2bpp%<1 THEN SYS "ColourTrans_SetFontColours",fh%,&00FFFF00,b%,14:ELSE SYS "ColourTrans_SetFontColours",fh%,b%,f%,14 3580 OTHERWISE:SYS "ColourTrans_SetFontColours",fh%,b%,f%,14 3590ENDCASE 3600SYS "Font_Paint",sym%,"b",%1110100010,110000,rowp%-n*gapp%,coord%,,ABS(SGN(tick%(n))) 3610CASE sel% OF 3620 WHEN n :IF log2bpp%<1 THEN SYS "ColourTrans_SetFontColours",fh%,&00FFFF00,b%,14:ELSE SYS "ColourTrans_SetFontColours",fh%,b%,&00FFFF00,14 3630 OTHERWISE:SYS "ColourTrans_SetFontColours",fh%,b%,&00FF0000,14 3640ENDCASE 3650SYS "Font_Paint",fh%,menu$(n),%11<<8,136000,rowp%-n*gapp% 3660ENDPROC 3670: 3680DEF PROCsetupmenu 3690LOCAL n 3700RESTORE 3910 3710READ items% 3720DIM menu$(items%),fns$(items%),tick%(items%) 3730FOR n=1 TO items% 3740READ menu$(n),fns$(n),tick%(n) 3750NEXT n 3760SYS "Font_FindFont",,"Selwyn",18*16,18*16,0,0 TO sym% 3770reverse%=1 3780overlay%=FALSE 3790clock%=1 3800path%=FALSE 3810buff%=0 3820rot=0 3830move=0 3840def_move=0 3850shot=1 3860path=1 3870objn=1 3880object%=FALSE 3890ENDPROC 3900: 3910DATA 9 3920DATA "Draw","FNdraw",0 3930DATA "Edit & Draw","FNedit",0 3940DATA "Make Draw path","FNpath",0 3950REM "Make Draw object","FNobject",0 :REM ******** Not working ** 3960DATA "Overlay","FNoverlay",0 3970DATA "Reverse writing","FNreverse",0 3980DATA "Anti-clockwise","FNanticlock",0 3990DATA "Move","FNmove",0 4000DATA "Screen shot","FNscreenshot",0 4010DATA "Quit","FNquit",0 4020: 4030DEF FNdraw 4040menudone%=TRUE 4050=0 4060DEF FNedit 4070edit%=TRUE 4080menudone%=TRUE 4090=0 4100DEF FNpath 4110tick%(sel%)=NOT tick%(sel%) 4120IF tick%(sel%) THEN 4130 path%=TRUE 4140 pn$="@.Path" 4150 menu$(sel%)="Make Draw path ("+pn$+STR$path+")" 4160 PROCmenuitem(sel%) 4170ELSE 4180 PROCfinishpath 4190 path+=1 4200 buff%=0 4210 menu$(sel%)="Make Draw path" 4220ENDIF 4230=0 4240DEF FNobject 4250tick%(sel%)=NOT tick%(sel%) 4260IF tick%(sel%) THEN 4270 object%=TRUE 4280 on$="@.Draw" 4290 menu$(sel%)="Make Draw object ("+on$+STR$objn+")" 4300 PROCmenuitem(sel%) 4310ELSE 4320 PROCfinishobj 4330 objn+=1 4340 buff%=0 4350 menu$(sel%)="Make Draw object" 4360ENDIF 4370=0 4380DEF FNanticlock 4390tick%(sel%)=NOT tick%(sel%) 4400reverse%=1-reverse% 4410=0 4420DEF FNreverse 4430tick%(sel%)=NOT tick%(sel%) 4440clock%=-clock% 4450IF tick%(sel%) THEN move=def_move+0.9:ELSE move=def_move 4460IF tick%(sel%) THEN rot=PI :ELSE rot=0 4470=0 4480DEF FNmove 4490A%=@% 4500@%="+F10.2" 4510LOCAL k% 4520tick%(sel%)=NOT tick%(sel%) 4530IF tick%(sel%) THEN 4540 move=def_move 4550 movedone%=FALSE 4560 WHILE movedone%=0 4570 menu$(sel%)="Move (Height � "+CHR$19+CHR$0+CHR$0+CHR$0+CHR$&FF+CHR$&FF+CHR$&FF+CHR$14+STR$(move)+CHR$19+CHR$0+CHR$0+CHR$0+CHR$&11+CHR$255+CHR$0+CHR$14+")" 4580 PROCmenuitem(sel%) 4590 k%=GET 4600 CASE k% OF 4610 WHEN 13:tick%(sel%)=FALSE:movedone%=TRUE 4620 WHEN 32:movedone%=TRUE 4630 WHEN 139:move+=0.05 4640 WHEN 138:move-=0.05 4650 WHEN 136:move-=0.5 4660 WHEN 137:move+=0.5 4670 ENDCASE 4680 def_move=move 4690 ENDWHILE 4700 menu$(sel%)="Move (Height � "+STR$(move)+")" 4710 PROCmenuitem(sel%) 4720ENDIF 4730IF tick%(sel%)=0 THEN move=0:menu$(sel%)="Move" 4740@%=A% 4750=0 4760DEF FNoverlay 4770tick%(sel%)=NOT tick%(sel%) 4780overlay%=NOT overlay% 4790=0 4800DEF FNscreenshot 4810tick%(sel%)=TRUE 4820fn$="@.Screen"+STR$shot 4830menu$(sel%)="Screen shot ("+fn$+")" 4840PROCmenuitem(sel%) 4850REPEATG=GET:UNTILG=32 OR G=13 4860IFG=32 THEN 4870 PROCbank(2) 4880 OSCLI "ScreenSave "+fn$ 4890 PROCbank(1) 4900ENDIF 4910shot+=1 4920tick%(sel%)=FALSE 4930menu$(sel%)="Screen shot" 4940=0 4950DEF FNquit 4960menudone%=TRUE 4970quit%=TRUE 4980=0 4990: 5000DEF FNheader(buff%) 5010$buff%="Draw" 5020buff%!4=201 5030buff%!8=0 5040$(buff%+12)="AU FitC " 5050buff%!20=0 5060buff%!24=&7FFFFFFF 5070buff%!28=&7FFFFFFF 5080buff%!32=0 5090buff%!36=0 5100=buff%+40 5110: 5120DEF PROCfinishpath 5130 IF path% THEN 5140 SYS "Font_SwitchOutputToBuffer",0,0 5150 path%=FALSE 5160 IF buff% THEN PROCcalcBB(buff%,buffptr%) 5170 IF buff% THEN OSCLI "Save "+pn$+STR$path+" "+STR$~buff%+" "+STR$~buffptr%:OSCLI "SetType "+pn$+STR$path+" AFF" 5180 IF buff% THEN SYS "XOS_Module",7,,buff% 5190 buff%=0 5200ENDIF 5210ENDPROC 5220: 5230DEF PROCfinishobj 5240 IF object% AND buff% THEN 5250 PROCcalcBB(buff%,buffptr%) 5260 OSLI "Save "+on$+STR$objn%+" "+STR$~buff%+" "+STR$~buffptr%:OSCLI "SetType "+on$+STR$objn%+" AFF" 5270 SYS "XOS_Module",7,,buff%:buff%=0 5280ENDIF 5290 5300: 5310DEF PROCcalcBB(base%,end%) 5320LOCAL ptr%,done% 5330ptr%=base%+40 5340done%=FALSE 5350WHILE NOT done% 5360IF !ptr%=2 THEN 5370 IF ptr%!8<base%!24 THEN base%!24=ptr%!8 5380 IF ptr%!12<base%!28 THEN base%!28=ptr%!12 5390 IF ptr%!16>base%!32 THEN base%!32=ptr%!16 5400 IF ptr%!20>base%!36 THEN base%!36=ptr%!20 5410ENDIF 5420ptr%+=ptr%!4 5430IF ptr%>=end% THEN done%=TRUE 5440ENDWHILE 5450ENDPROC 5460: 5470DEF PROCadd(val%) 5480!buffptr%=val% 5490buffptr%+=4 5500ENDPROC 5510: 5520DEF PROCxy(x%,y%) 5530!buffptr%=x% 5540buffptr%!4=y% 5550buffptr%+=8 5560ENDPROC 5570: 5580DEF FNcircle_object(buffptr%,ox,oy,r,col) 5590LOCAL _buff%,path% 5600_buff%=buffptr% 5610PROCadd(2) :REM path 5620buffptr%+=5*4 5630PROCadd(-1) :PROCadd(col) :PROCadd(0) :PROCadd(0) 5640path%=buffptr% 5650buffptr%=FNcircle_path(buffptr%,ox,oy,r,buffend%) 5660SYS "Draw_ProcessPath",path%,3<<28,,,0,,,(1<<31)+_buff%+8 5670buffptr%-=4 5680_buff%!4=buffptr%-_buff% 5690=buffptr% 5700: 5710DEF FNcircle_path(buffptr%,ox,oy,r,buffend%) 5720LOCAL f,n:f=1.5625 5730ox=ox/f :oy=oy/f :r=r/f 5740n=r/1.8 5750PROCadd(2):PROCxy(ox,oy+r) 5760PROCadd(6):PROCxy(ox+n,oy+r):PROCxy(ox+r,oy+n):PROCxy(ox+r,oy) 5770PROCadd(6):PROCxy(ox+r,oy-n):PROCxy(ox+n,oy-r):PROCxy(ox,oy-r) 5780PROCadd(6):PROCxy(ox-n,oy-r):PROCxy(ox-r,oy-n):PROCxy(ox-r,oy) 5790PROCadd(6):PROCxy(ox-r,oy+n):PROCxy(ox-n,oy+r):PROCxy(ox,oy+r) 5800PROCadd(5):PROCadd(0) 5810IF buffend% THEN PROCadd(buffend%-buffptr%-16):ELSE PROCadd(0) 5820=buffptr% 5830: 5840DEF PROCcircle(ox,oy,r,col) 5850IF path% AND buff% THEN buffptr%=FNcircle_object(buffptr%,ox,oy,r,col):!buffptr%=0:buffsize%=buffend%-buffptr%-8:buffptr%!4=buffsize%:ENDPROC 5860IF screen%=0 THEN ENDPROC 5870SYS "ColourTrans_SetGCOL",col 5880IF FNcircle_path(tempbuff%,ox,oy,r,0) 5890!capjoin%=2:capjoin%!4=0:capjoin%!8=0:capjoin%!12=0 5900SYS "Draw_Stroke",tempbuff%,,,,1024,capjoin%,0 5910ENDPROC
� >CircleFit � By Andrew Bower � 24th August 1994 ( � Version 0.50 (21 Sep 1994) 2: < *FX4,1 Ffh%=0:sym%=0:black%=� Ppath%=0:buff%=0:object%=0 Z� � �error d� n�bank(1) x� �b%=0:f%=&FFFFFF00 �2modevar%=&35:� "OS_ReadModeVariable" ......... �!ș modevar%,-1,9 � ,,log2bpp% �ș modevar%,-1,4 � ,,xeig% �ș modevar%,-1,5 � ,,yeig% �9ș modevar%,-1,11 �,,xpix%:xpix%+=1:xos%=xpix%<<xeig% �9ș modevar%,-1,12 �,,ypix%:ypix%+=1:yos%=ypix%<<yeig% �Ȏ log2bpp% � �� 2 �?ș "Font_SetPalette",,0, 1,2,b%,&FFFFFF00,&65757254:� white �>ș "Font_SetPalette",,0, 4,2,b%,&FFFF0000,&65757254:� cyan �@ș "Font_SetPalette",,0, 7,3,b%,&00FFFF00,&65757254:� yellow �@ș "Font_SetPalette",,0,11,2,b%,&00AAFF00,&65757254:� orange ?ș "Font_SetPalette",,0,14,1,b%,&00FF1100,&65757254:� green � 1 � 0,&00,&00,&00 "� 1,&FF,&FF,&FF ,� 2,&FF,&FF,&00 6� 3,&00,&FF,&FF @� J$ș "ColourTrans_InvalidateCache" Tz=&7FFFFFFF ^*ș "ColourTrans_SetGCOL",b%,,,%01<<7:� hș "ColourTrans_SetGCOL",f% r%ș "ColourTrans_SetTextColour",f% |�setupmenu �edit%=� �quit%=� ��:row%=yos% �� ans% 256 �� coord% 16*4 �&� T% 6*4,tempbuff% 256,capjoin% 32 �<� _font% 128,_size% 32,_text% 256,_angle% 32,_radius% 32 �$_font%="Trinity.Medium"+�0 �$_size%="48"+�0 �%$_text%="The quick brown fox!"+�0 �$_angle%="180�"+�0 �$_radius%="1.8"""+�0 � ȕ � quit% ȕ edit% row%=yos% &?ș "Font_FindFont",,"Homerton.Medium",18*16,18*16,0,0 � fh% 00ș "ColourTrans_SetFontColours",fh%,b%,f%,14 :goodfont%=� Dȕ � goodfont% N% font$=�get("Font: ",_font%,128) X7 ș "XFont_FindFont",,font$,1,1,0,0 � temp%;flags% b � flags% � 1 � l; ș "ColourTrans_SetFontColours",fh%,b%,&FFFF0000,14 vA �write(" *** Font not found ***") � � � � �:row%=yos% �4 ș "ColourTrans_SetFontColours",fh%,b%,f%,14 � � � ș "Font_LoseFont",temp% � goodfont%=� � � �� �'size$=�get("Font size: ",_size%,31) �colon%=�size$,":") �comma%=�size$,",") �size%=16*�(size$) �height%=size% -� comma% � height%=16*�(�size$,comma%+1)) -� colon% � height%=16*�(�size$,colon%+1)) #text$=�get("Text: ",_text%,256) %r=�(�get("Radius: ",_radius%,31)) *#a=�(�get("Start: ",_angle%,31)) 4,$_size%=�(size%�16)+":"+�(height%�16)+�0 >($_radius%=�(�(�0(_radius%)))+""""+�0 H%$_angle%=�(�(�0(_angle%)))+"�"+�0 Rș "Font_LoseFont",fh% \ r=r*72000 fedit%=� p� z�bank(2) �: � � path% � � screen%=�:title%=�:�go � screen%=� � title%=� �. ș "Font_SwitchOutputToBuffer",%10001,32 � �go �, ș "Font_SwitchOutputToBuffer" � ,inc% �2 inc%+=1024 :� reserve space for circle paths � � buff% � � optr%=buffptr%-buff% �7 ș "XOS_Module",13,,buff%,inc% � ,,buff% ;flags �^ � flags � 1 � buff%=0:ș "XFont_SwitchOutputToBuffer",0,0:� 7:tick%(sel%)=�:path%=�:=0 G buffptr%=optr%+buff%:buffsize%+=inc%:buffend%=buff%+buffsize%-4 � 1 ș "XOS_Module",6,,,inc% � ,,buff% ;flags $^ � flags � 1 � buff%=0:ș "XFont_SwitchOutputToBuffer",0,0:� 7:tick%(sel%)=�:path%=�:=0 .V buffptr%=�header(buff%):buffsize%=inc%+buff%-buffptr%:buffend%=buff%+buffsize% 8 � B+ screen%=�:black%=�:draw%=�:circles%=� L �go V !buffptr%=0 ` buffptr%!4=buffsize%-16 j3 ș "Font_SwitchOutputToBuffer",%1<<4,buffptr% t+ screen%=�:black%=�:draw%=�:circles%=� ~ �go � screen%=�:black%=� � �bank(1) �4 ș "Font_SwitchOutputToBuffer",0,0 � ,buffptr% �' ș "ColourTrans_SetTextColour",f% �� �7� object%=0 � screen%=�:title%=�:draw%=�:circles%=� ��go �� �� object% � � inc%=131072 � � buff% � � optr%=buffptr%-buff% 7 ș "XOS_Module",13,,buff%,inc% � ,,buff% ;flags < � flags � 1 � buff%=0:� 7:tick%(sel%)=�:object%=�:=0 G buffptr%=optr%+buff%:buffsize%+=inc%:buffend%=buff%+buffsize%-4 � (1 ș "XOS_Module",6,,,inc% � ,,buff% ;flags 2; � flags � 1 � buff%=0:� 7:tick(sel%)=�:object%=�:=0 <U buffptr%=�header(buff%):buffsize%=inc%+buff-buffptr%:buffend%=buff%+buffsize% F � P*screen%=�:title%=�:black%=�:circles%=� Z#�go:screen%=�:title%=�:black%=� d� n�bank(1) x?ș "Font_FindFont",,"Homerton.Medium",18*16,18*16,0,0 � fh% �0ș "ColourTrans_SetFontColours",fh%,b%,f%,14 � �menu �ș "Font_LoseFont",fh% �� �ș "Font_LoseFont",sym% � *FX4,0 ��finishpath � *SHADOW 1 �� �: � � �go �b%=0:f%=&FFFFFF00 �'� path% � buff% � f%=0:b%=&FFFFFF00 a=�(�0(_angle%)) !ș "Font_ConverttoOS",,r � ,R OX=xos%�2 "OY=yos%�2-48 ,text%=_text% 6T%!16=0 @T%!20=0 J-ș "Font_Converttopoints",,OX,OY � ,ox,oy T� screen% � overlay%=0 � � ^$� circles% � �circle(ox,oy,r,f%) h� title% � overlay%=0 � r5 ș "Font_FindFont",,font$,24*16,24*16,0,0 � fh% |9 ș "ColourTrans_SetFontColours",fh%,b%,&FFFF0000,14 �A ș "Font_Paint",fh%,�25+�-16+�16+text$,%110001<<4,0,yos%-96 � ș "Font_LoseFont",fh% �� � �5ș "Font_FindFont",,font$,size%,height%,0,0 � fh% �7ș "ColourTrans_SetFontColours",fh%,b%,&00FFFF00,14 � � !coord%=0 �coord%!4=0 �coord%!8=0 �coord%!12=0 �coord%!16=-1 �<ș "Font_ScanString",fh%,text%,(1<<18)+(1<<5),z,z,coord% hy=coord%!32 &ș "Font_ConverttoOS",,,hy � ,,hy% � circles% � & � move � 05 �circle(ox,oy,r+hy*move+�(move)*hy,&66666600) : � D% �circle(ox,oy,r+hy,&AAAAAA00) N � X� brr=r+move*hy l� ptr%=0 � �(text$)-1 vș "Hourglass_On" �_ș "Font_ScanString",fh%,text%+ptr%,(reverse%<<10)+(1<<20)+(%11100<<5),z,z,,T%,1 � ,,,W%,H% � B%=W% �'� ptr%=0 � a-=�(�(clock%*B%/(2*r))) �b=(a+�(�(clock%*B%/(2*r)))) �T=rot+�(90-b):� ***** �$!T% =&10000*�T :T%!4 =&10000*-�T �#T%!8=&10000*�T :T%!12=&10000*�T �b=�(a+�(�(clock%*B%/(r)))) �X%=rr*�b+ox �Y%=rr*�b+oy �� � draw% � �G � black% � ș "ColourTrans_SetFontColours",&FFFFFF00,&00000000,14 �K ș "Font_Paint",fh%,text%+ptr%,(reverse%<<10)+(%11110<<5),X%,Y%,,T%,1 � a+=�(�(clock%*B%/r)) ș "Hourglass_Off" � ptr% *ș "Font_LoseFont",fh% 4� path%=0 � �:G=� >b%=0:f%=&FFFFFF00 H� R: \� �write(str$) f'ș "Font_ReadInfo",fh% � ,,ly%,,hy% p8gap%=(1.1*(hy%-ly%)+(1<<yeig%)-1) � � ((1<<yeig%)-1) zrow%-=gap% �3ș "Font_Paint",fh%,str$,(%11<<8)+(1<<4),0,row% �� �: �� �get(dis$,ans%,max%) �� done% ��write(dis$) �Kș "Font_ScanString",fh%,dis$,(1<<20)+%1110000000,z,z,,,�(dis$) � ,,,x% �7ș "ColourTrans_SetFontColours",fh%,b%,&00AAFF00,14 �;ș "ColourTrans_ReturnColourNumber",&00FFFF00 � colour% �'ș "Font_ReadInfo",fh% � ,,ly%,,hy% �ch%=hy%-ly% �1ș "Font_Converttopoints",,hy%,ly% � ,hy%,ly% �ptr%=�(�0(ans%)) +ș "Font_Converttopoints",,,row% � ,,y% ddone%=� !coord%=0 $coord%!4=0 .coord%!8=0 8coord%!12=0 Bcoord%!16=0 Lcoord%!20=0 Vcoord%!24=0 `coord%!28=0 jȕ � done% t8Ȗ:ș "Font_Paint",fh%,ans%,%1100100010,x%,y%,coord% ~6ș "Font_ScanString",fh%,ans%,(%11<<8),z,z � ,,,w% �coord%!16=x%-6000 �coord%!20=y%+ly%-6000 �coord%!24=x%+w%+6000 �coord%!28=y%+hy%+3000 �Kș "Font_ScanString",fh%,ans%,(1<<20)+(%111<<7),z,z,,,ptr% � ,,,cx%,cy% �/ș "Font_Caret",colour%,ch%,0,x%+cx%,y%+ly% �k%=� �Ȏ k% � �� 21:?ans%=0:ptr%=0 �� 13 �9 ș "ColourTrans_SetFontColours",fh%,b%,&00FFFF00,14 �7 ș "Font_Paint",fh%,ans%,%1100100010,x%,y%,coord% done%=� � 136:ptr%-=1 � 137:ptr%+=1 � 138:ptr%=�(�0(ans%)) (� 139:ptr%=0 2� 127,8:� ptr%>0 � �delchar </� 135:� ptr%<�(�0(ans%)) � ptr%+=1:�delchar F P!� k%>=32 � k%<>127 � �inschar Z� d� ptr%<0 � ptr%=0 n)� ptr%>�(�0(ans%)) � ptr%=�(�0(ans%)) x;� � done% � ș "Font_Caret",colour%,ch%,0,x%+cx%,y%+ly% �� �0ș "ColourTrans_SetFontColours",fh%,b%,f%,14 � =�0(ans%) �: �� �delchar �� n% �6� n%=ans%+ptr% � ans%+�(�0(ans%)):?(n%-1)=?n%:� n% �ptr%-=1 �� �: �� �inschar �� �(�0(ans%))>=max% � �7:� �� n% ;� n%=ans%+�(�0(ans%)) � ans%+ptr% � -1:?(n%+1)=?n%:� n% ?(ans%+ptr%)=k% ptr%+=1 "� ,: 6� �0(s%) @� s$ J s$="" T ȕ ?s%<>0 ^s$+=�(?s%) h s%+=1 r� |=s$ �: �� �bank(bank) �ș "OS_Byte",112,bank �ș "OS_Byte",113,bank �� �: �� �error �� path% � �finishpath �� object% � �finishobj �&� buff% � ș "XOS_Module",7,,buff% �ș "Hourglass_Smash" �� �$+" at line "+Þ �#� fh% � ș "XFont_LoseFont",fh% %� sym% � ș "XFont_LoseFont",sym% ș6,4,0 *SHADOW 1 &� 0: :� �menu Dgrow%=row% Nedit%=� X'ș "Font_ReadInfo",fh% � ,,ly%,,hy% b6gap%=(1*(hy%-ly%)+(1<<yeig%)-1) � � ((1<<yeig%)-1) lrow%-=gap% v7ș "Font_Converttopoints",,gap%,row% � ,gapp%,rowp% �-ș "Font_Converttopoints",,xos% � ,scr_w% �/ș "Font_Converttopoints",,ly%,hy% � ,ly,hy �:ș "Font_ScanString",fh%,"Menu",%11<<8,z,z � ,,,str_w% �Aș "Font_Paint",fh%,�25+�-16+�16+" Menu ",%11<<8,150000,rowp% �#� row%-=.5*gap%:rowp%-=.5*gapp% � sel%=1 �� n=1 � items% ��menuitem(n) �� n �menudone%=� �ȕ menudone%=� �osel%=sel% �k%=� Ȏ k% � � 13:� �(fns$(sel%)) � 138:sel%+=1 � 139:sel%-=1 *� 4� sel%<1 � sel%=1 >� sel%>items% � sel%=items% H�menuitem(osel%) R�menuitem(sel%) \� frow%=grow% p� z: �� �menuitem(n) � !coord%=0 �coord%!4=0 �coord%!8=0 �coord%!12=0 �coord%!16=0 �coord%!20=rowp%-n*gapp%+ly �coord%!24=scr_w% �coord%!28=rowp%-n*gapp%+hy �1ș "ColourTrans_SetFontColours",sym%,b%,f%,14 � Ȏ sel% � �~ � n :� log2bpp%<1 � ș "ColourTrans_SetFontColours",fh%,&00FFFF00,b%,14:� ș "ColourTrans_SetFontColours",fh%,b%,f%,14 �4 :ș "ColourTrans_SetFontColours",fh%,b%,f%,14 � Tș "Font_Paint",sym%,"b",%1110100010,110000,rowp%-n*gapp%,coord%,,�(�(tick%(n))) Ȏ sel% � $� � n :� log2bpp%<1 � ș "ColourTrans_SetFontColours",fh%,&00FFFF00,b%,14:� ș "ColourTrans_SetFontColours",fh%,b%,&00FFFF00,14 .; :ș "ColourTrans_SetFontColours",fh%,b%,&00FF0000,14 8� B<ș "Font_Paint",fh%,menu$(n),%11<<8,136000,rowp%-n*gapp% L� V: `� �setupmenu j� n t � �DFO ~� items% �.� menu$(items%),fns$(items%),tick%(items%) �� n=1 � items% �� menu$(n),fns$(n),tick%(n) �� n �7ș "Font_FindFont",,"Selwyn",18*16,18*16,0,0 � sym% �reverse%=1 �overlay%=� �clock%=1 �path%=� �buff%=0 � rot=0 � move=0 def_move=0 shot=1 path=1 objn=1 ( object%=� 2� <: F� 9 P� "Draw","FNdraw",0 Z� "Edit & Draw","FNedit",0 d!� "Make Draw path","FNpath",0 nC� "Make Draw object","FNobject",0 :REM ******** Not working ** x� "Overlay","FNoverlay",0 �%� "Reverse writing","FNreverse",0 �&� "Anti-clockwise","FNanticlock",0 �� "Move","FNmove",0 �$� "Screen shot","FNscreenshot",0 �� "Quit","FNquit",0 �: �� �draw �menudone%=� �=0 �� �edit �edit%=� �menudone%=� �=0 � �path tick%(sel%)=� tick%(sel%) � tick%(sel%) � " path%=� , pn$="@.Path" 62 menu$(sel%)="Make Draw path ("+pn$+�path+")" @ �menuitem(sel%) J� T �finishpath ^ path+=1 h buff%=0 r" menu$(sel%)="Make Draw path" |� �=0 � � �object �tick%(sel%)=� tick%(sel%) �� tick%(sel%) � � object%=� � on$="@.Draw" �4 menu$(sel%)="Make Draw object ("+on$+�objn+")" � �menuitem(sel%) �� � �finishobj � objn+=1 � buff%=0 �$ menu$(sel%)="Make Draw object" � =0 � �anticlock &tick%(sel%)=� tick%(sel%) 0reverse%=1-reverse% :=0 D� �reverse Ntick%(sel%)=� tick%(sel%) Xclock%=-clock% b5� tick%(sel%) � move=def_move+0.9:� move=def_move l#� tick%(sel%) � rot=� :� rot=0 v=0 �� �move � A%=@% �@%="+F10.2" �� k% �tick%(sel%)=� tick%(sel%) �� tick%(sel%) � � move=def_move � movedone%=� � ȕ movedone%=0 �m menu$(sel%)="Move (Height � "+�19+�0+�0+�0+�&FF+�&FF+�&FF+�14+�(move)+�19+�0+�0+�0+�&11+�255+�0+�14+")" � �menuitem(sel%) � k%=� � Ȏ k% � $ � 13:tick%(sel%)=�:movedone%=� � 32:movedone%=� � 139:move+=0.05 � 138:move-=0.05 * � 136:move-=0.5 4 � 137:move+=0.5 > � H def_move=move R � \/ menu$(sel%)="Move (Height � "+�(move)+")" f �menuitem(sel%) p� z/� tick%(sel%)=0 � move=0:menu$(sel%)="Move" � @%=A% �=0 �� �overlay �tick%(sel%)=� tick%(sel%) �overlay%=� overlay% �=0 �� �screenshot �tick%(sel%)=� �fn$="@.Screen"+�shot �'menu$(sel%)="Screen shot ("+fn$+")" ��menuitem(sel%) ��G=�:�G=32 � G=13 ��G=32 � �bank(2) � "ScreenSave "+fn$ �bank(1) $� .shot+=1 8tick%(sel%)=� Bmenu$(sel%)="Screen shot" L=0 V� �quit `menudone%=� jquit%=� t=0 ~: �� �header(buff%) �$buff%="Draw" �buff%!4=201 � buff%!8=0 �$(buff%+12)="AU FitC " �buff%!20=0 �buff%!24=&7FFFFFFF �buff%!28=&7FFFFFFF �buff%!32=0 �buff%!36=0 � =buff%+40 �: � �finishpath � path% � ( ș "Font_SwitchOutputToBuffer",0,0 path%=� (' � buff% � �calcBB(buff%,buffptr%) 2\ � buff% � � "Save "+pn$+�path+" "+�~buff%+" "+�~buffptr%:� "SetType "+pn$+�path+" AFF" <( � buff% � ș "XOS_Module",7,,buff% F buff%=0 P� Z� d: n� �finishobj x � object% � buff% � � �calcBB(buff%,buffptr%) �W OSLI "Save "+on$+�objn%+" "+�~buff%+" "+�~buffptr%:� "SetType "+on$+�objn%+" AFF" �& ș "XOS_Module",7,,buff%:buff%=0 �� � �: �� �calcBB(base%,end%) �� ptr%,done% �ptr%=base%+40 �done%=� �ȕ � done% �� !ptr%=2 � �) � ptr%!8<base%!24 � base%!24=ptr%!8 + � ptr%!12<base%!28 � base%!28=ptr%!12 + � ptr%!16>base%!32 � base%!32=ptr%!16 + � ptr%!20>base%!36 � base%!36=ptr%!20 "� ,ptr%+=ptr%!4 6� ptr%>=end% � done%=� @� J� T: ^� �add(val%) h!buffptr%=val% rbuffptr%+=4 |� �: �� �xy(x%,y%) �!buffptr%=x% �buffptr%!4=y% �buffptr%+=8 �� �: �*� �circle_object(buffptr%,ox,oy,r,col) �� _buff%,path% �_buff%=buffptr% ��add(2) :� path �buffptr%+=5*4 �)�add(-1) :�add(col) :�add(0) :�add(0) path%=buffptr% 4buffptr%=�circle_path(buffptr%,ox,oy,r,buffend%) <ș "Draw_ProcessPath",path%,3<<28,,,0,,,(1<<31)+_buff%+8 &buffptr%-=4 0_buff%!4=buffptr%-_buff% : =buffptr% D: N-� �circle_path(buffptr%,ox,oy,r,buffend%) X� f,n:f=1.5625 box=ox/f :oy=oy/f :r=r/f ln=r/1.8 v�add(2):�xy(ox,oy+r) �6�add(6):�xy(ox+n,oy+r):�xy(ox+r,oy+n):�xy(ox+r,oy) �6�add(6):�xy(ox+r,oy-n):�xy(ox+n,oy-r):�xy(ox,oy-r) �6�add(6):�xy(ox-n,oy-r):�xy(ox-r,oy-n):�xy(ox-r,oy) �6�add(6):�xy(ox-r,oy+n):�xy(ox-n,oy+r):�xy(ox,oy+r) ��add(5):�add(0) �5� buffend% � �add(buffend%-buffptr%-16):� �add(0) � =buffptr% �: �� �circle(ox,oy,r,col) ڄ� path% � buff% � buffptr%=�circle_object(buffptr%,ox,oy,r,col):!buffptr%=0:buffsize%=buffend%-buffptr%-8:buffptr%!4=buffsize%:� �� screen%=0 � � � ș "ColourTrans_SetGCOL",col �'� �circle_path(tempbuff%,ox,oy,r,0) 7!capjoin%=2:capjoin%!4=0:capjoin%!8=0:capjoin%!12=0 1ș "Draw_Stroke",tempbuff%,,,,1024,capjoin%,0 � �
00000000 0d 00 0a 10 f4 20 3e 43 69 72 63 6c 65 46 69 74 |..... >CircleFit| 00000010 0d 00 14 15 f4 20 42 79 20 41 6e 64 72 65 77 20 |..... By Andrew | 00000020 42 6f 77 65 72 0d 00 1e 16 f4 20 32 34 74 68 20 |Bower..... 24th | 00000030 41 75 67 75 73 74 20 31 39 39 34 0d 00 28 20 f4 |August 1994..( .| 00000040 20 56 65 72 73 69 6f 6e 20 30 2e 35 30 20 28 32 | Version 0.50 (2| 00000050 31 20 53 65 70 20 31 39 39 34 29 0d 00 32 05 3a |1 Sep 1994)..2.:| 00000060 0d 00 3c 0a 2a 46 58 34 2c 31 0d 00 46 19 66 68 |..<.*FX4,1..F.fh| 00000070 25 3d 30 3a 73 79 6d 25 3d 30 3a 62 6c 61 63 6b |%=0:sym%=0:black| 00000080 25 3d a3 0d 00 50 1d 70 61 74 68 25 3d 30 3a 62 |%=...P.path%=0:b| 00000090 75 66 66 25 3d 30 3a 6f 62 6a 65 63 74 25 3d 30 |uff%=0:object%=0| 000000a0 0d 00 5a 0e ee 20 85 20 f2 65 72 72 6f 72 0d 00 |..Z.. . .error..| 000000b0 64 05 87 0d 00 6e 0c f2 62 61 6e 6b 28 31 29 0d |d....n..bank(1).| 000000c0 00 78 05 db 0d 00 82 15 62 25 3d 30 3a 66 25 3d |.x......b%=0:f%=| 000000d0 26 46 46 46 46 46 46 30 30 0d 00 8c 32 6d 6f 64 |&FFFFFF00...2mod| 000000e0 65 76 61 72 25 3d 26 33 35 3a f4 20 22 4f 53 5f |evar%=&35:. "OS_| 000000f0 52 65 61 64 4d 6f 64 65 56 61 72 69 61 62 6c 65 |ReadModeVariable| 00000100 22 20 2e 2e 2e 2e 2e 2e 2e 2e 2e 0d 00 96 21 c8 |" ............!.| 00000110 99 20 6d 6f 64 65 76 61 72 25 2c 2d 31 2c 39 20 |. modevar%,-1,9 | 00000120 b8 20 2c 2c 6c 6f 67 32 62 70 70 25 0d 00 a0 1e |. ,,log2bpp%....| 00000130 c8 99 20 6d 6f 64 65 76 61 72 25 2c 2d 31 2c 34 |.. modevar%,-1,4| 00000140 20 b8 20 2c 2c 78 65 69 67 25 0d 00 aa 1e c8 99 | . ,,xeig%......| 00000150 20 6d 6f 64 65 76 61 72 25 2c 2d 31 2c 35 20 b8 | modevar%,-1,5 .| 00000160 20 2c 2c 79 65 69 67 25 0d 00 b4 39 c8 99 20 6d | ,,yeig%...9.. m| 00000170 6f 64 65 76 61 72 25 2c 2d 31 2c 31 31 20 b8 2c |odevar%,-1,11 .,| 00000180 2c 78 70 69 78 25 3a 78 70 69 78 25 2b 3d 31 3a |,xpix%:xpix%+=1:| 00000190 78 6f 73 25 3d 78 70 69 78 25 3c 3c 78 65 69 67 |xos%=xpix%<<xeig| 000001a0 25 0d 00 be 39 c8 99 20 6d 6f 64 65 76 61 72 25 |%...9.. modevar%| 000001b0 2c 2d 31 2c 31 32 20 b8 2c 2c 79 70 69 78 25 3a |,-1,12 .,,ypix%:| 000001c0 79 70 69 78 25 2b 3d 31 3a 79 6f 73 25 3d 79 70 |ypix%+=1:yos%=yp| 000001d0 69 78 25 3c 3c 79 65 69 67 25 0d 00 c8 11 c8 8e |ix%<<yeig%......| 000001e0 20 6c 6f 67 32 62 70 70 25 20 ca 0d 00 d2 07 c9 | log2bpp% ......| 000001f0 20 32 0d 00 dc 3f c8 99 20 22 46 6f 6e 74 5f 53 | 2...?.. "Font_S| 00000200 65 74 50 61 6c 65 74 74 65 22 2c 2c 30 2c 20 31 |etPalette",,0, 1| 00000210 2c 32 2c 62 25 2c 26 46 46 46 46 46 46 30 30 2c |,2,b%,&FFFFFF00,| 00000220 26 36 35 37 35 37 32 35 34 3a f4 20 77 68 69 74 |&65757254:. whit| 00000230 65 0d 00 e6 3e c8 99 20 22 46 6f 6e 74 5f 53 65 |e...>.. "Font_Se| 00000240 74 50 61 6c 65 74 74 65 22 2c 2c 30 2c 20 34 2c |tPalette",,0, 4,| 00000250 32 2c 62 25 2c 26 46 46 46 46 30 30 30 30 2c 26 |2,b%,&FFFF0000,&| 00000260 36 35 37 35 37 32 35 34 3a f4 20 63 79 61 6e 0d |65757254:. cyan.| 00000270 00 f0 40 c8 99 20 22 46 6f 6e 74 5f 53 65 74 50 |..@.. "Font_SetP| 00000280 61 6c 65 74 74 65 22 2c 2c 30 2c 20 37 2c 33 2c |alette",,0, 7,3,| 00000290 62 25 2c 26 30 30 46 46 46 46 30 30 2c 26 36 35 |b%,&00FFFF00,&65| 000002a0 37 35 37 32 35 34 3a f4 20 79 65 6c 6c 6f 77 0d |757254:. yellow.| 000002b0 00 fa 40 c8 99 20 22 46 6f 6e 74 5f 53 65 74 50 |..@.. "Font_SetP| 000002c0 61 6c 65 74 74 65 22 2c 2c 30 2c 31 31 2c 32 2c |alette",,0,11,2,| 000002d0 62 25 2c 26 30 30 41 41 46 46 30 30 2c 26 36 35 |b%,&00AAFF00,&65| 000002e0 37 35 37 32 35 34 3a f4 20 6f 72 61 6e 67 65 0d |757254:. orange.| 000002f0 01 04 3f c8 99 20 22 46 6f 6e 74 5f 53 65 74 50 |..?.. "Font_SetP| 00000300 61 6c 65 74 74 65 22 2c 2c 30 2c 31 34 2c 31 2c |alette",,0,14,1,| 00000310 62 25 2c 26 30 30 46 46 31 31 30 30 2c 26 36 35 |b%,&00FF1100,&65| 00000320 37 35 37 32 35 34 3a f4 20 67 72 65 65 6e 0d 01 |757254:. green..| 00000330 0e 07 c9 20 31 0d 01 18 13 fb 20 30 2c 26 30 30 |... 1..... 0,&00| 00000340 2c 26 30 30 2c 26 30 30 0d 01 22 13 fb 20 31 2c |,&00,&00..".. 1,| 00000350 26 46 46 2c 26 46 46 2c 26 46 46 0d 01 2c 13 fb |&FF,&FF,&FF..,..| 00000360 20 32 2c 26 46 46 2c 26 46 46 2c 26 30 30 0d 01 | 2,&FF,&FF,&00..| 00000370 36 13 fb 20 33 2c 26 30 30 2c 26 46 46 2c 26 46 |6.. 3,&00,&FF,&F| 00000380 46 0d 01 40 05 cb 0d 01 4a 24 c8 99 20 22 43 6f |F..@....J$.. "Co| 00000390 6c 6f 75 72 54 72 61 6e 73 5f 49 6e 76 61 6c 69 |lourTrans_Invali| 000003a0 64 61 74 65 43 61 63 68 65 22 0d 01 54 0f 7a 3d |dateCache"..T.z=| 000003b0 26 37 46 46 46 46 46 46 46 0d 01 5e 2a c8 99 20 |&7FFFFFFF..^*.. | 000003c0 22 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 |"ColourTrans_Set| 000003d0 47 43 4f 4c 22 2c 62 25 2c 2c 2c 25 30 31 3c 3c |GCOL",b%,,,%01<<| 000003e0 37 3a da 0d 01 68 1f c8 99 20 22 43 6f 6c 6f 75 |7:...h... "Colou| 000003f0 72 54 72 61 6e 73 5f 53 65 74 47 43 4f 4c 22 2c |rTrans_SetGCOL",| 00000400 66 25 0d 01 72 25 c8 99 20 22 43 6f 6c 6f 75 72 |f%..r%.. "Colour| 00000410 54 72 61 6e 73 5f 53 65 74 54 65 78 74 43 6f 6c |Trans_SetTextCol| 00000420 6f 75 72 22 2c 66 25 0d 01 7c 0e f2 73 65 74 75 |our",f%..|..setu| 00000430 70 6d 65 6e 75 0d 01 86 0b 65 64 69 74 25 3d b9 |pmenu....edit%=.| 00000440 0d 01 90 0b 71 75 69 74 25 3d a3 0d 01 9a 0f da |....quit%=......| 00000450 3a 72 6f 77 25 3d 79 6f 73 25 0d 01 a4 0e de 20 |:row%=yos%..... | 00000460 61 6e 73 25 20 32 35 36 0d 01 ae 11 de 20 63 6f |ans% 256..... co| 00000470 6f 72 64 25 20 31 36 2a 34 0d 01 b8 26 de 20 54 |ord% 16*4...&. T| 00000480 25 20 36 2a 34 2c 74 65 6d 70 62 75 66 66 25 20 |% 6*4,tempbuff% | 00000490 32 35 36 2c 63 61 70 6a 6f 69 6e 25 20 33 32 0d |256,capjoin% 32.| 000004a0 01 c2 3c de 20 5f 66 6f 6e 74 25 20 31 32 38 2c |..<. _font% 128,| 000004b0 5f 73 69 7a 65 25 20 33 32 2c 5f 74 65 78 74 25 |_size% 32,_text%| 000004c0 20 32 35 36 2c 5f 61 6e 67 6c 65 25 20 33 32 2c | 256,_angle% 32,| 000004d0 5f 72 61 64 69 75 73 25 20 33 32 0d 01 cc 1f 24 |_radius% 32....$| 000004e0 5f 66 6f 6e 74 25 3d 22 54 72 69 6e 69 74 79 2e |_font%="Trinity.| 000004f0 4d 65 64 69 75 6d 22 2b bd 30 0d 01 d6 13 24 5f |Medium"+.0....$_| 00000500 73 69 7a 65 25 3d 22 34 38 22 2b bd 30 0d 01 e0 |size%="48"+.0...| 00000510 25 24 5f 74 65 78 74 25 3d 22 54 68 65 20 71 75 |%$_text%="The qu| 00000520 69 63 6b 20 62 72 6f 77 6e 20 66 6f 78 21 22 2b |ick brown fox!"+| 00000530 bd 30 0d 01 ea 16 24 5f 61 6e 67 6c 65 25 3d 22 |.0....$_angle%="| 00000540 31 38 30 b0 22 2b bd 30 0d 01 f4 18 24 5f 72 61 |180."+.0....$_ra| 00000550 64 69 75 73 25 3d 22 31 2e 38 22 22 22 2b bd 30 |dius%="1.8"""+.0| 00000560 0d 01 fe 04 0d 02 08 0e c8 95 20 ac 20 71 75 69 |.......... . qui| 00000570 74 25 0d 02 12 0c c8 95 20 65 64 69 74 25 0d 02 |t%...... edit%..| 00000580 1c 0d 72 6f 77 25 3d 79 6f 73 25 0d 02 26 3f c8 |..row%=yos%..&?.| 00000590 99 20 22 46 6f 6e 74 5f 46 69 6e 64 46 6f 6e 74 |. "Font_FindFont| 000005a0 22 2c 2c 22 48 6f 6d 65 72 74 6f 6e 2e 4d 65 64 |",,"Homerton.Med| 000005b0 69 75 6d 22 2c 31 38 2a 31 36 2c 31 38 2a 31 36 |ium",18*16,18*16| 000005c0 2c 30 2c 30 20 b8 20 66 68 25 0d 02 30 30 c8 99 |,0,0 . fh%..00..| 000005d0 20 22 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 | "ColourTrans_Se| 000005e0 74 46 6f 6e 74 43 6f 6c 6f 75 72 73 22 2c 66 68 |tFontColours",fh| 000005f0 25 2c 62 25 2c 66 25 2c 31 34 0d 02 3a 0f 67 6f |%,b%,f%,14..:.go| 00000600 6f 64 66 6f 6e 74 25 3d a3 0d 02 44 12 c8 95 20 |odfont%=...D... | 00000610 ac 20 67 6f 6f 64 66 6f 6e 74 25 0d 02 4e 25 20 |. goodfont%..N% | 00000620 20 66 6f 6e 74 24 3d a4 67 65 74 28 22 46 6f 6e | font$=.get("Fon| 00000630 74 3a 20 22 2c 5f 66 6f 6e 74 25 2c 31 32 38 29 |t: ",_font%,128)| 00000640 0d 02 58 37 20 20 c8 99 20 22 58 46 6f 6e 74 5f |..X7 .. "XFont_| 00000650 46 69 6e 64 46 6f 6e 74 22 2c 2c 66 6f 6e 74 24 |FindFont",,font$| 00000660 2c 31 2c 31 2c 30 2c 30 20 b8 20 74 65 6d 70 25 |,1,1,0,0 . temp%| 00000670 3b 66 6c 61 67 73 25 0d 02 62 14 20 20 e7 20 66 |;flags%..b. . f| 00000680 6c 61 67 73 25 20 80 20 31 20 8c 0d 02 6c 3b 20 |lags% . 1 ...l; | 00000690 20 20 20 c8 99 20 22 43 6f 6c 6f 75 72 54 72 61 | .. "ColourTra| 000006a0 6e 73 5f 53 65 74 46 6f 6e 74 43 6f 6c 6f 75 72 |ns_SetFontColour| 000006b0 73 22 2c 66 68 25 2c 62 25 2c 26 46 46 46 46 30 |s",fh%,b%,&FFFF0| 000006c0 30 30 30 2c 31 34 0d 02 76 41 20 20 20 20 f2 77 |000,14..vA .w| 000006d0 72 69 74 65 28 22 20 20 20 20 20 20 20 20 20 20 |rite(" | 000006e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a | *| 000006f0 2a 2a 20 46 6f 6e 74 20 6e 6f 74 20 66 6f 75 6e |** Font not foun| 00000700 64 20 2a 2a 2a 22 29 0d 02 80 0b 20 20 20 20 e7 |d ***").... .| 00000710 20 a5 0d 02 8a 13 20 20 20 20 da 3a 72 6f 77 25 | ..... .:row%| 00000720 3d 79 6f 73 25 0d 02 94 34 20 20 20 20 c8 99 20 |=yos%...4 .. | 00000730 22 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 |"ColourTrans_Set| 00000740 46 6f 6e 74 43 6f 6c 6f 75 72 73 22 2c 66 68 25 |FontColours",fh%| 00000750 2c 62 25 2c 66 25 2c 31 34 0d 02 9e 07 20 20 cc |,b%,f%,14.... .| 00000760 0d 02 a8 20 20 20 20 20 c8 99 20 22 46 6f 6e 74 |... .. "Font| 00000770 5f 4c 6f 73 65 46 6f 6e 74 22 2c 74 65 6d 70 25 |_LoseFont",temp%| 00000780 0d 02 b2 13 20 20 20 20 67 6f 6f 64 66 6f 6e 74 |.... goodfont| 00000790 25 3d b9 0d 02 bc 07 20 20 cd 0d 02 c6 05 ce 0d |%=..... .......| 000007a0 02 d0 27 73 69 7a 65 24 3d a4 67 65 74 28 22 46 |..'size$=.get("F| 000007b0 6f 6e 74 20 73 69 7a 65 3a 20 22 2c 5f 73 69 7a |ont size: ",_siz| 000007c0 65 25 2c 33 31 29 0d 02 da 16 63 6f 6c 6f 6e 25 |e%,31)....colon%| 000007d0 3d a7 73 69 7a 65 24 2c 22 3a 22 29 0d 02 e4 16 |=.size$,":")....| 000007e0 63 6f 6d 6d 61 25 3d a7 73 69 7a 65 24 2c 22 2c |comma%=.size$,",| 000007f0 22 29 0d 02 ee 15 73 69 7a 65 25 3d 31 36 2a bb |")....size%=16*.| 00000800 28 73 69 7a 65 24 29 0d 02 f8 11 68 65 69 67 68 |(size$)....heigh| 00000810 74 25 3d 73 69 7a 65 25 0d 03 02 2d e7 20 63 6f |t%=size%...-. co| 00000820 6d 6d 61 25 20 8c 20 68 65 69 67 68 74 25 3d 31 |mma% . height%=1| 00000830 36 2a bb 28 c1 73 69 7a 65 24 2c 63 6f 6d 6d 61 |6*.(.size$,comma| 00000840 25 2b 31 29 29 0d 03 0c 2d e7 20 63 6f 6c 6f 6e |%+1))...-. colon| 00000850 25 20 8c 20 68 65 69 67 68 74 25 3d 31 36 2a bb |% . height%=16*.| 00000860 28 c1 73 69 7a 65 24 2c 63 6f 6c 6f 6e 25 2b 31 |(.size$,colon%+1| 00000870 29 29 0d 03 16 23 74 65 78 74 24 3d a4 67 65 74 |))...#text$=.get| 00000880 28 22 54 65 78 74 3a 20 22 2c 5f 74 65 78 74 25 |("Text: ",_text%| 00000890 2c 32 35 36 29 0d 03 20 25 72 3d bb 28 a4 67 65 |,256).. %r=.(.ge| 000008a0 74 28 22 52 61 64 69 75 73 3a 20 22 2c 5f 72 61 |t("Radius: ",_ra| 000008b0 64 69 75 73 25 2c 33 31 29 29 0d 03 2a 23 61 3d |dius%,31))..*#a=| 000008c0 bb 28 a4 67 65 74 28 22 53 74 61 72 74 3a 20 22 |.(.get("Start: "| 000008d0 2c 5f 61 6e 67 6c 65 25 2c 33 31 29 29 0d 03 34 |,_angle%,31))..4| 000008e0 2c 24 5f 73 69 7a 65 25 3d c3 28 73 69 7a 65 25 |,$_size%=.(size%| 000008f0 81 31 36 29 2b 22 3a 22 2b c3 28 68 65 69 67 68 |.16)+":"+.(heigh| 00000900 74 25 81 31 36 29 2b bd 30 0d 03 3e 28 24 5f 72 |t%.16)+.0..>($_r| 00000910 61 64 69 75 73 25 3d c3 28 bb 28 a4 30 28 5f 72 |adius%=.(.(.0(_r| 00000920 61 64 69 75 73 25 29 29 29 2b 22 22 22 22 2b bd |adius%)))+""""+.| 00000930 30 0d 03 48 25 24 5f 61 6e 67 6c 65 25 3d c3 28 |0..H%$_angle%=.(| 00000940 bb 28 a4 30 28 5f 61 6e 67 6c 65 25 29 29 29 2b |.(.0(_angle%)))+| 00000950 22 b0 22 2b bd 30 0d 03 52 1a c8 99 20 22 46 6f |"."+.0..R... "Fo| 00000960 6e 74 5f 4c 6f 73 65 46 6f 6e 74 22 2c 66 68 25 |nt_LoseFont",fh%| 00000970 0d 03 5c 0d 72 3d 72 2a 37 32 30 30 30 0d 03 66 |..\.r=r*72000..f| 00000980 0b 65 64 69 74 25 3d a3 0d 03 70 05 ce 0d 03 7a |.edit%=...p....z| 00000990 0c f2 62 61 6e 6b 28 32 29 0d 03 84 05 3a 0d 03 |..bank(2)....:..| 000009a0 8e 0d e7 20 70 61 74 68 25 20 8c 0d 03 98 1c 20 |... path% ..... | 000009b0 20 73 63 72 65 65 6e 25 3d b9 3a 74 69 74 6c 65 | screen%=.:title| 000009c0 25 3d b9 3a f2 67 6f 0d 03 a2 0f 20 20 73 63 72 |%=.:.go.... scr| 000009d0 65 65 6e 25 3d a3 0d 03 ac 0e 20 20 74 69 74 6c |een%=..... titl| 000009e0 65 25 3d a3 0d 03 b6 2e 20 20 c8 99 20 22 46 6f |e%=..... .. "Fo| 000009f0 6e 74 5f 53 77 69 74 63 68 4f 75 74 70 75 74 54 |nt_SwitchOutputT| 00000a00 6f 42 75 66 66 65 72 22 2c 25 31 30 30 30 31 2c |oBuffer",%10001,| 00000a10 33 32 0d 03 c0 09 20 20 f2 67 6f 0d 03 ca 2c 20 |32.... .go..., | 00000a20 20 c8 99 20 22 46 6f 6e 74 5f 53 77 69 74 63 68 | .. "Font_Switch| 00000a30 4f 75 74 70 75 74 54 6f 42 75 66 66 65 72 22 20 |OutputToBuffer" | 00000a40 b8 20 2c 69 6e 63 25 0d 03 d4 32 20 20 69 6e 63 |. ,inc%...2 inc| 00000a50 25 2b 3d 31 30 32 34 20 3a f4 20 72 65 73 65 72 |%+=1024 :. reser| 00000a60 76 65 20 73 70 61 63 65 20 66 6f 72 20 63 69 72 |ve space for cir| 00000a70 63 6c 65 20 70 61 74 68 73 0d 03 de 0f 20 20 e7 |cle paths.... .| 00000a80 20 62 75 66 66 25 20 8c 0d 03 e8 1c 20 20 20 20 | buff% ..... | 00000a90 6f 70 74 72 25 3d 62 75 66 66 70 74 72 25 2d 62 |optr%=buffptr%-b| 00000aa0 75 66 66 25 0d 03 f2 37 20 20 20 20 c8 99 20 22 |uff%...7 .. "| 00000ab0 58 4f 53 5f 4d 6f 64 75 6c 65 22 2c 31 33 2c 2c |XOS_Module",13,,| 00000ac0 62 75 66 66 25 2c 69 6e 63 25 20 b8 20 2c 2c 62 |buff%,inc% . ,,b| 00000ad0 75 66 66 25 20 3b 66 6c 61 67 73 0d 03 fc 5e 20 |uff% ;flags...^ | 00000ae0 20 20 20 e7 20 66 6c 61 67 73 20 80 20 31 20 8c | . flags . 1 .| 00000af0 20 62 75 66 66 25 3d 30 3a c8 99 20 22 58 46 6f | buff%=0:.. "XFo| 00000b00 6e 74 5f 53 77 69 74 63 68 4f 75 74 70 75 74 54 |nt_SwitchOutputT| 00000b10 6f 42 75 66 66 65 72 22 2c 30 2c 30 3a ef 20 37 |oBuffer",0,0:. 7| 00000b20 3a 74 69 63 6b 25 28 73 65 6c 25 29 3d a3 3a 70 |:tick%(sel%)=.:p| 00000b30 61 74 68 25 3d a3 3a 3d 30 0d 04 06 47 20 20 20 |ath%=.:=0...G | 00000b40 20 62 75 66 66 70 74 72 25 3d 6f 70 74 72 25 2b | buffptr%=optr%+| 00000b50 62 75 66 66 25 3a 62 75 66 66 73 69 7a 65 25 2b |buff%:buffsize%+| 00000b60 3d 69 6e 63 25 3a 62 75 66 66 65 6e 64 25 3d 62 |=inc%:buffend%=b| 00000b70 75 66 66 25 2b 62 75 66 66 73 69 7a 65 25 2d 34 |uff%+buffsize%-4| 00000b80 0d 04 10 07 20 20 cc 0d 04 1a 31 20 20 20 20 c8 |.... ....1 .| 00000b90 99 20 22 58 4f 53 5f 4d 6f 64 75 6c 65 22 2c 36 |. "XOS_Module",6| 00000ba0 2c 2c 2c 69 6e 63 25 20 b8 20 2c 2c 62 75 66 66 |,,,inc% . ,,buff| 00000bb0 25 20 3b 66 6c 61 67 73 0d 04 24 5e 20 20 20 20 |% ;flags..$^ | 00000bc0 e7 20 66 6c 61 67 73 20 80 20 31 20 8c 20 62 75 |. flags . 1 . bu| 00000bd0 66 66 25 3d 30 3a c8 99 20 22 58 46 6f 6e 74 5f |ff%=0:.. "XFont_| 00000be0 53 77 69 74 63 68 4f 75 74 70 75 74 54 6f 42 75 |SwitchOutputToBu| 00000bf0 66 66 65 72 22 2c 30 2c 30 3a ef 20 37 3a 74 69 |ffer",0,0:. 7:ti| 00000c00 63 6b 25 28 73 65 6c 25 29 3d a3 3a 70 61 74 68 |ck%(sel%)=.:path| 00000c10 25 3d a3 3a 3d 30 0d 04 2e 56 20 20 20 20 62 75 |%=.:=0...V bu| 00000c20 66 66 70 74 72 25 3d a4 68 65 61 64 65 72 28 62 |ffptr%=.header(b| 00000c30 75 66 66 25 29 3a 62 75 66 66 73 69 7a 65 25 3d |uff%):buffsize%=| 00000c40 69 6e 63 25 2b 62 75 66 66 25 2d 62 75 66 66 70 |inc%+buff%-buffp| 00000c50 74 72 25 3a 62 75 66 66 65 6e 64 25 3d 62 75 66 |tr%:buffend%=buf| 00000c60 66 25 2b 62 75 66 66 73 69 7a 65 25 0d 04 38 07 |f%+buffsize%..8.| 00000c70 20 20 cd 0d 04 42 2b 20 20 73 63 72 65 65 6e 25 | ...B+ screen%| 00000c80 3d a3 3a 62 6c 61 63 6b 25 3d b9 3a 64 72 61 77 |=.:black%=.:draw| 00000c90 25 3d b9 3a 63 69 72 63 6c 65 73 25 3d b9 0d 04 |%=.:circles%=...| 00000ca0 4c 09 20 20 f2 67 6f 0d 04 56 11 20 20 21 62 75 |L. .go..V. !bu| 00000cb0 66 66 70 74 72 25 3d 30 0d 04 60 1d 20 20 62 75 |ffptr%=0..`. bu| 00000cc0 66 66 70 74 72 25 21 34 3d 62 75 66 66 73 69 7a |ffptr%!4=buffsiz| 00000cd0 65 25 2d 31 36 0d 04 6a 33 20 20 c8 99 20 22 46 |e%-16..j3 .. "F| 00000ce0 6f 6e 74 5f 53 77 69 74 63 68 4f 75 74 70 75 74 |ont_SwitchOutput| 00000cf0 54 6f 42 75 66 66 65 72 22 2c 25 31 3c 3c 34 2c |ToBuffer",%1<<4,| 00000d00 62 75 66 66 70 74 72 25 0d 04 74 2b 20 20 73 63 |buffptr%..t+ sc| 00000d10 72 65 65 6e 25 3d a3 3a 62 6c 61 63 6b 25 3d b9 |reen%=.:black%=.| 00000d20 3a 64 72 61 77 25 3d a3 3a 63 69 72 63 6c 65 73 |:draw%=.:circles| 00000d30 25 3d a3 0d 04 7e 09 20 20 f2 67 6f 0d 04 88 18 |%=...~. .go....| 00000d40 20 20 73 63 72 65 65 6e 25 3d b9 3a 62 6c 61 63 | screen%=.:blac| 00000d50 6b 25 3d a3 0d 04 92 0e 20 20 f2 62 61 6e 6b 28 |k%=..... .bank(| 00000d60 31 29 0d 04 9c 34 20 20 c8 99 20 22 46 6f 6e 74 |1)...4 .. "Font| 00000d70 5f 53 77 69 74 63 68 4f 75 74 70 75 74 54 6f 42 |_SwitchOutputToB| 00000d80 75 66 66 65 72 22 2c 30 2c 30 20 b8 20 2c 62 75 |uffer",0,0 . ,bu| 00000d90 66 66 70 74 72 25 0d 04 a6 27 20 20 c8 99 20 22 |ffptr%...' .. "| 00000da0 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 54 |ColourTrans_SetT| 00000db0 65 78 74 43 6f 6c 6f 75 72 22 2c 66 25 0d 04 b0 |extColour",f%...| 00000dc0 05 cc 0d 04 ba 37 e7 20 6f 62 6a 65 63 74 25 3d |.....7. object%=| 00000dd0 30 20 8c 20 73 63 72 65 65 6e 25 3d b9 3a 74 69 |0 . screen%=.:ti| 00000de0 74 6c 65 25 3d b9 3a 64 72 61 77 25 3d a3 3a 63 |tle%=.:draw%=.:c| 00000df0 69 72 63 6c 65 73 25 3d b9 0d 04 c4 07 f2 67 6f |ircles%=......go| 00000e00 0d 04 ce 05 cd 0d 04 d8 0f e7 20 6f 62 6a 65 63 |.......... objec| 00000e10 74 25 20 8c 0d 04 e2 11 20 20 69 6e 63 25 3d 31 |t% ..... inc%=1| 00000e20 33 31 30 37 32 0d 04 ec 0f 20 20 e7 20 62 75 66 |31072.... . buf| 00000e30 66 25 20 8c 0d 04 f6 1c 20 20 20 20 6f 70 74 72 |f% ..... optr| 00000e40 25 3d 62 75 66 66 70 74 72 25 2d 62 75 66 66 25 |%=buffptr%-buff%| 00000e50 0d 05 00 37 20 20 20 20 c8 99 20 22 58 4f 53 5f |...7 .. "XOS_| 00000e60 4d 6f 64 75 6c 65 22 2c 31 33 2c 2c 62 75 66 66 |Module",13,,buff| 00000e70 25 2c 69 6e 63 25 20 b8 20 2c 2c 62 75 66 66 25 |%,inc% . ,,buff%| 00000e80 20 3b 66 6c 61 67 73 0d 05 0a 3c 20 20 20 20 e7 | ;flags...< .| 00000e90 20 66 6c 61 67 73 20 80 20 31 20 8c 20 62 75 66 | flags . 1 . buf| 00000ea0 66 25 3d 30 3a ef 20 37 3a 74 69 63 6b 25 28 73 |f%=0:. 7:tick%(s| 00000eb0 65 6c 25 29 3d a3 3a 6f 62 6a 65 63 74 25 3d a3 |el%)=.:object%=.| 00000ec0 3a 3d 30 0d 05 14 47 20 20 20 20 62 75 66 66 70 |:=0...G buffp| 00000ed0 74 72 25 3d 6f 70 74 72 25 2b 62 75 66 66 25 3a |tr%=optr%+buff%:| 00000ee0 62 75 66 66 73 69 7a 65 25 2b 3d 69 6e 63 25 3a |buffsize%+=inc%:| 00000ef0 62 75 66 66 65 6e 64 25 3d 62 75 66 66 25 2b 62 |buffend%=buff%+b| 00000f00 75 66 66 73 69 7a 65 25 2d 34 0d 05 1e 07 20 20 |uffsize%-4.... | 00000f10 cc 0d 05 28 31 20 20 20 20 c8 99 20 22 58 4f 53 |...(1 .. "XOS| 00000f20 5f 4d 6f 64 75 6c 65 22 2c 36 2c 2c 2c 69 6e 63 |_Module",6,,,inc| 00000f30 25 20 b8 20 2c 2c 62 75 66 66 25 20 3b 66 6c 61 |% . ,,buff% ;fla| 00000f40 67 73 0d 05 32 3b 20 20 20 20 e7 20 66 6c 61 67 |gs..2; . flag| 00000f50 73 20 80 20 31 20 8c 20 62 75 66 66 25 3d 30 3a |s . 1 . buff%=0:| 00000f60 ef 20 37 3a 74 69 63 6b 28 73 65 6c 25 29 3d a3 |. 7:tick(sel%)=.| 00000f70 3a 6f 62 6a 65 63 74 25 3d a3 3a 3d 30 0d 05 3c |:object%=.:=0..<| 00000f80 55 20 20 20 20 62 75 66 66 70 74 72 25 3d a4 68 |U buffptr%=.h| 00000f90 65 61 64 65 72 28 62 75 66 66 25 29 3a 62 75 66 |eader(buff%):buf| 00000fa0 66 73 69 7a 65 25 3d 69 6e 63 25 2b 62 75 66 66 |fsize%=inc%+buff| 00000fb0 2d 62 75 66 66 70 74 72 25 3a 62 75 66 66 65 6e |-buffptr%:buffen| 00000fc0 64 25 3d 62 75 66 66 25 2b 62 75 66 66 73 69 7a |d%=buff%+buffsiz| 00000fd0 65 25 0d 05 46 07 20 20 cd 0d 05 50 2a 73 63 72 |e%..F. ...P*scr| 00000fe0 65 65 6e 25 3d a3 3a 74 69 74 6c 65 25 3d a3 3a |een%=.:title%=.:| 00000ff0 62 6c 61 63 6b 25 3d b9 3a 63 69 72 63 6c 65 73 |black%=.:circles| 00001000 25 3d b9 0d 05 5a 23 f2 67 6f 3a 73 63 72 65 65 |%=...Z#.go:scree| 00001010 6e 25 3d b9 3a 74 69 74 6c 65 25 3d b9 3a 62 6c |n%=.:title%=.:bl| 00001020 61 63 6b 25 3d a3 0d 05 64 05 cd 0d 05 6e 0c f2 |ack%=...d....n..| 00001030 62 61 6e 6b 28 31 29 0d 05 78 3f c8 99 20 22 46 |bank(1)..x?.. "F| 00001040 6f 6e 74 5f 46 69 6e 64 46 6f 6e 74 22 2c 2c 22 |ont_FindFont",,"| 00001050 48 6f 6d 65 72 74 6f 6e 2e 4d 65 64 69 75 6d 22 |Homerton.Medium"| 00001060 2c 31 38 2a 31 36 2c 31 38 2a 31 36 2c 30 2c 30 |,18*16,18*16,0,0| 00001070 20 b8 20 66 68 25 0d 05 82 30 c8 99 20 22 43 6f | . fh%...0.. "Co| 00001080 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 46 6f 6e |lourTrans_SetFon| 00001090 74 43 6f 6c 6f 75 72 73 22 2c 66 68 25 2c 62 25 |tColours",fh%,b%| 000010a0 2c 66 25 2c 31 34 0d 05 8c 09 f2 6d 65 6e 75 0d |,f%,14.....menu.| 000010b0 05 96 1a c8 99 20 22 46 6f 6e 74 5f 4c 6f 73 65 |..... "Font_Lose| 000010c0 46 6f 6e 74 22 2c 66 68 25 0d 05 a0 05 ce 0d 05 |Font",fh%.......| 000010d0 aa 1b c8 99 20 22 46 6f 6e 74 5f 4c 6f 73 65 46 |.... "Font_LoseF| 000010e0 6f 6e 74 22 2c 73 79 6d 25 0d 05 b4 0a 2a 46 58 |ont",sym%....*FX| 000010f0 34 2c 30 0d 05 be 0f f2 66 69 6e 69 73 68 70 61 |4,0.....finishpa| 00001100 74 68 0d 05 c8 0d 2a 53 48 41 44 4f 57 20 31 0d |th....*SHADOW 1.| 00001110 05 d2 05 e0 0d 05 dc 05 3a 0d 05 e6 09 dd 20 f2 |........:..... .| 00001120 67 6f 0d 05 f0 15 62 25 3d 30 3a 66 25 3d 26 46 |go....b%=0:f%=&F| 00001130 46 46 46 46 46 30 30 0d 05 fa 27 e7 20 70 61 74 |FFFFF00...'. pat| 00001140 68 25 20 80 20 62 75 66 66 25 20 8c 20 66 25 3d |h% . buff% . f%=| 00001150 30 3a 62 25 3d 26 46 46 46 46 46 46 30 30 0d 06 |0:b%=&FFFFFF00..| 00001160 04 14 61 3d bb 28 a4 30 28 5f 61 6e 67 6c 65 25 |..a=.(.0(_angle%| 00001170 29 29 0d 06 0e 21 c8 99 20 22 46 6f 6e 74 5f 43 |))...!.. "Font_C| 00001180 6f 6e 76 65 72 74 74 6f 4f 53 22 2c 2c 72 20 b8 |onverttoOS",,r .| 00001190 20 2c 52 0d 06 18 0d 4f 58 3d 78 6f 73 25 81 32 | ,R....OX=xos%.2| 000011a0 0d 06 22 10 4f 59 3d 79 6f 73 25 81 32 2d 34 38 |..".OY=yos%.2-48| 000011b0 0d 06 2c 10 74 65 78 74 25 3d 5f 74 65 78 74 25 |..,.text%=_text%| 000011c0 0d 06 36 0b 54 25 21 31 36 3d 30 0d 06 40 0b 54 |..6.T%!16=0..@.T| 000011d0 25 21 32 30 3d 30 0d 06 4a 2d c8 99 20 22 46 6f |%!20=0..J-.. "Fo| 000011e0 6e 74 5f 43 6f 6e 76 65 72 74 74 6f 70 6f 69 6e |nt_Converttopoin| 000011f0 74 73 22 2c 2c 4f 58 2c 4f 59 20 b8 20 2c 6f 78 |ts",,OX,OY . ,ox| 00001200 2c 6f 79 0d 06 54 1e e7 20 73 63 72 65 65 6e 25 |,oy..T.. screen%| 00001210 20 80 20 6f 76 65 72 6c 61 79 25 3d 30 20 8c 20 | . overlay%=0 . | 00001220 da 0d 06 5e 24 e7 20 63 69 72 63 6c 65 73 25 20 |...^$. circles% | 00001230 8c 20 f2 63 69 72 63 6c 65 28 6f 78 2c 6f 79 2c |. .circle(ox,oy,| 00001240 72 2c 66 25 29 0d 06 68 1b e7 20 74 69 74 6c 65 |r,f%)..h.. title| 00001250 25 20 80 20 6f 76 65 72 6c 61 79 25 3d 30 20 8c |% . overlay%=0 .| 00001260 0d 06 72 35 20 20 c8 99 20 22 46 6f 6e 74 5f 46 |..r5 .. "Font_F| 00001270 69 6e 64 46 6f 6e 74 22 2c 2c 66 6f 6e 74 24 2c |indFont",,font$,| 00001280 32 34 2a 31 36 2c 32 34 2a 31 36 2c 30 2c 30 20 |24*16,24*16,0,0 | 00001290 b8 20 66 68 25 0d 06 7c 39 20 20 c8 99 20 22 43 |. fh%..|9 .. "C| 000012a0 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 46 6f |olourTrans_SetFo| 000012b0 6e 74 43 6f 6c 6f 75 72 73 22 2c 66 68 25 2c 62 |ntColours",fh%,b| 000012c0 25 2c 26 46 46 46 46 30 30 30 30 2c 31 34 0d 06 |%,&FFFF0000,14..| 000012d0 86 41 20 20 c8 99 20 22 46 6f 6e 74 5f 50 61 69 |.A .. "Font_Pai| 000012e0 6e 74 22 2c 66 68 25 2c bd 32 35 2b bd 2d 31 36 |nt",fh%,.25+.-16| 000012f0 2b bd 31 36 2b 74 65 78 74 24 2c 25 31 31 30 30 |+.16+text$,%1100| 00001300 30 31 3c 3c 34 2c 30 2c 79 6f 73 25 2d 39 36 0d |01<<4,0,yos%-96.| 00001310 06 90 1c 20 20 c8 99 20 22 46 6f 6e 74 5f 4c 6f |... .. "Font_Lo| 00001320 73 65 46 6f 6e 74 22 2c 66 68 25 0d 06 9a 05 cd |seFont",fh%.....| 00001330 0d 06 a4 04 0d 06 ae 35 c8 99 20 22 46 6f 6e 74 |.......5.. "Font| 00001340 5f 46 69 6e 64 46 6f 6e 74 22 2c 2c 66 6f 6e 74 |_FindFont",,font| 00001350 24 2c 73 69 7a 65 25 2c 68 65 69 67 68 74 25 2c |$,size%,height%,| 00001360 30 2c 30 20 b8 20 66 68 25 0d 06 b8 37 c8 99 20 |0,0 . fh%...7.. | 00001370 22 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 |"ColourTrans_Set| 00001380 46 6f 6e 74 43 6f 6c 6f 75 72 73 22 2c 66 68 25 |FontColours",fh%| 00001390 2c 62 25 2c 26 30 30 46 46 46 46 30 30 2c 31 34 |,b%,&00FFFF00,14| 000013a0 0d 06 c2 04 0d 06 cc 0d 21 63 6f 6f 72 64 25 3d |........!coord%=| 000013b0 30 0d 06 d6 0e 63 6f 6f 72 64 25 21 34 3d 30 0d |0....coord%!4=0.| 000013c0 06 e0 0e 63 6f 6f 72 64 25 21 38 3d 30 0d 06 ea |...coord%!8=0...| 000013d0 0f 63 6f 6f 72 64 25 21 31 32 3d 30 0d 06 f4 10 |.coord%!12=0....| 000013e0 63 6f 6f 72 64 25 21 31 36 3d 2d 31 0d 06 fe 3c |coord%!16=-1...<| 000013f0 c8 99 20 22 46 6f 6e 74 5f 53 63 61 6e 53 74 72 |.. "Font_ScanStr| 00001400 69 6e 67 22 2c 66 68 25 2c 74 65 78 74 25 2c 28 |ing",fh%,text%,(| 00001410 31 3c 3c 31 38 29 2b 28 31 3c 3c 35 29 2c 7a 2c |1<<18)+(1<<5),z,| 00001420 7a 2c 63 6f 6f 72 64 25 0d 07 08 10 68 79 3d 63 |z,coord%....hy=c| 00001430 6f 6f 72 64 25 21 33 32 0d 07 12 26 c8 99 20 22 |oord%!32...&.. "| 00001440 46 6f 6e 74 5f 43 6f 6e 76 65 72 74 74 6f 4f 53 |Font_ConverttoOS| 00001450 22 2c 2c 2c 68 79 20 b8 20 2c 2c 68 79 25 0d 07 |",,,hy . ,,hy%..| 00001460 1c 10 e7 20 63 69 72 63 6c 65 73 25 20 8c 0d 07 |... circles% ...| 00001470 26 0e 20 20 e7 20 6d 6f 76 65 20 8c 0d 07 30 35 |&. . move ...05| 00001480 20 20 20 20 f2 63 69 72 63 6c 65 28 6f 78 2c 6f | .circle(ox,o| 00001490 79 2c 72 2b 68 79 2a 6d 6f 76 65 2b b4 28 6d 6f |y,r+hy*move+.(mo| 000014a0 76 65 29 2a 68 79 2c 26 36 36 36 36 36 36 30 30 |ve)*hy,&66666600| 000014b0 29 0d 07 3a 07 20 20 cc 0d 07 44 25 20 20 20 20 |)..:. ...D% | 000014c0 f2 63 69 72 63 6c 65 28 6f 78 2c 6f 79 2c 72 2b |.circle(ox,oy,r+| 000014d0 68 79 2c 26 41 41 41 41 41 41 30 30 29 0d 07 4e |hy,&AAAAAA00)..N| 000014e0 07 20 20 cd 0d 07 58 05 cd 0d 07 62 10 72 72 3d |. ...X....b.rr=| 000014f0 72 2b 6d 6f 76 65 2a 68 79 0d 07 6c 19 e3 20 70 |r+move*hy..l.. p| 00001500 74 72 25 3d 30 20 b8 20 a9 28 74 65 78 74 24 29 |tr%=0 . .(text$)| 00001510 2d 31 0d 07 76 15 c8 99 20 22 48 6f 75 72 67 6c |-1..v... "Hourgl| 00001520 61 73 73 5f 4f 6e 22 0d 07 80 5f c8 99 20 22 46 |ass_On"..._.. "F| 00001530 6f 6e 74 5f 53 63 61 6e 53 74 72 69 6e 67 22 2c |ont_ScanString",| 00001540 66 68 25 2c 74 65 78 74 25 2b 70 74 72 25 2c 28 |fh%,text%+ptr%,(| 00001550 72 65 76 65 72 73 65 25 3c 3c 31 30 29 2b 28 31 |reverse%<<10)+(1| 00001560 3c 3c 32 30 29 2b 28 25 31 31 31 30 30 3c 3c 35 |<<20)+(%11100<<5| 00001570 29 2c 7a 2c 7a 2c 2c 54 25 2c 31 20 b8 20 2c 2c |),z,z,,T%,1 . ,,| 00001580 2c 57 25 2c 48 25 0d 07 8a 09 42 25 3d 57 25 0d |,W%,H%....B%=W%.| 00001590 07 94 27 e7 20 70 74 72 25 3d 30 20 8c 20 61 2d |..'. ptr%=0 . a-| 000015a0 3d 9d 28 99 28 63 6c 6f 63 6b 25 2a 42 25 2f 28 |=.(.(clock%*B%/(| 000015b0 32 2a 72 29 29 29 0d 07 9e 1f 62 3d 28 61 2b 9d |2*r)))....b=(a+.| 000015c0 28 99 28 63 6c 6f 63 6b 25 2a 42 25 2f 28 32 2a |(.(clock%*B%/(2*| 000015d0 72 29 29 29 29 0d 07 a8 19 54 3d 72 6f 74 2b b2 |r))))....T=rot+.| 000015e0 28 39 30 2d 62 29 3a f4 20 2a 2a 2a 2a 2a 0d 07 |(90-b):. *****..| 000015f0 b2 24 21 54 25 20 3d 26 31 30 30 30 30 2a 9b 54 |.$!T% =&10000*.T| 00001600 20 3a 54 25 21 34 20 3d 26 31 30 30 30 30 2a 2d | :T%!4 =&10000*-| 00001610 b5 54 0d 07 bc 23 54 25 21 38 3d 26 31 30 30 30 |.T...#T%!8=&1000| 00001620 30 2a b5 54 20 3a 54 25 21 31 32 3d 26 31 30 30 |0*.T :T%!12=&100| 00001630 30 30 2a 9b 54 0d 07 c6 1e 62 3d b2 28 61 2b 9d |00*.T....b=.(a+.| 00001640 28 99 28 63 6c 6f 63 6b 25 2a 42 25 2f 28 72 29 |(.(clock%*B%/(r)| 00001650 29 29 29 0d 07 d0 0f 58 25 3d 72 72 2a 9b 62 2b |)))....X%=rr*.b+| 00001660 6f 78 0d 07 da 0f 59 25 3d 72 72 2a b5 62 2b 6f |ox....Y%=rr*.b+o| 00001670 79 0d 07 e4 0f e7 20 ac 20 64 72 61 77 25 20 8c |y..... . draw% .| 00001680 0d 07 ee 47 20 20 e7 20 62 6c 61 63 6b 25 20 8c |...G . black% .| 00001690 20 c8 99 20 22 43 6f 6c 6f 75 72 54 72 61 6e 73 | .. "ColourTrans| 000016a0 5f 53 65 74 46 6f 6e 74 43 6f 6c 6f 75 72 73 22 |_SetFontColours"| 000016b0 2c 26 46 46 46 46 46 46 30 30 2c 26 30 30 30 30 |,&FFFFFF00,&0000| 000016c0 30 30 30 30 2c 31 34 0d 07 f8 4b 20 20 c8 99 20 |0000,14...K .. | 000016d0 22 46 6f 6e 74 5f 50 61 69 6e 74 22 2c 66 68 25 |"Font_Paint",fh%| 000016e0 2c 74 65 78 74 25 2b 70 74 72 25 2c 28 72 65 76 |,text%+ptr%,(rev| 000016f0 65 72 73 65 25 3c 3c 31 30 29 2b 28 25 31 31 31 |erse%<<10)+(%111| 00001700 31 30 3c 3c 35 29 2c 58 25 2c 59 25 2c 2c 54 25 |10<<5),X%,Y%,,T%| 00001710 2c 31 0d 08 02 05 cd 0d 08 0c 18 61 2b 3d 9d 28 |,1.........a+=.(| 00001720 99 28 63 6c 6f 63 6b 25 2a 42 25 2f 72 29 29 0d |.(clock%*B%/r)).| 00001730 08 16 16 c8 99 20 22 48 6f 75 72 67 6c 61 73 73 |..... "Hourglass| 00001740 5f 4f 66 66 22 0d 08 20 0a ed 20 70 74 72 25 0d |_Off".. .. ptr%.| 00001750 08 2a 1a c8 99 20 22 46 6f 6e 74 5f 4c 6f 73 65 |.*... "Font_Lose| 00001760 46 6f 6e 74 22 2c 66 68 25 0d 08 34 15 e7 20 70 |Font",fh%..4.. p| 00001770 61 74 68 25 3d 30 20 8c 20 87 3a 47 3d a5 0d 08 |ath%=0 . .:G=...| 00001780 3e 15 62 25 3d 30 3a 66 25 3d 26 46 46 46 46 46 |>.b%=0:f%=&FFFFF| 00001790 46 30 30 0d 08 48 05 e1 0d 08 52 05 3a 0d 08 5c |F00..H....R.:..\| 000017a0 12 dd 20 f2 77 72 69 74 65 28 73 74 72 24 29 0d |.. .write(str$).| 000017b0 08 66 27 c8 99 20 22 46 6f 6e 74 5f 52 65 61 64 |.f'.. "Font_Read| 000017c0 49 6e 66 6f 22 2c 66 68 25 20 b8 20 2c 2c 6c 79 |Info",fh% . ,,ly| 000017d0 25 2c 2c 68 79 25 0d 08 70 38 67 61 70 25 3d 28 |%,,hy%..p8gap%=(| 000017e0 31 2e 31 2a 28 68 79 25 2d 6c 79 25 29 2b 28 31 |1.1*(hy%-ly%)+(1| 000017f0 3c 3c 79 65 69 67 25 29 2d 31 29 20 80 20 ac 20 |<<yeig%)-1) . . | 00001800 28 28 31 3c 3c 79 65 69 67 25 29 2d 31 29 0d 08 |((1<<yeig%)-1)..| 00001810 7a 0e 72 6f 77 25 2d 3d 67 61 70 25 0d 08 84 33 |z.row%-=gap%...3| 00001820 c8 99 20 22 46 6f 6e 74 5f 50 61 69 6e 74 22 2c |.. "Font_Paint",| 00001830 66 68 25 2c 73 74 72 24 2c 28 25 31 31 3c 3c 38 |fh%,str$,(%11<<8| 00001840 29 2b 28 31 3c 3c 34 29 2c 30 2c 72 6f 77 25 0d |)+(1<<4),0,row%.| 00001850 08 8e 05 e1 0d 08 98 05 3a 0d 08 a2 1a dd 20 a4 |........:..... .| 00001860 67 65 74 28 64 69 73 24 2c 61 6e 73 25 2c 6d 61 |get(dis$,ans%,ma| 00001870 78 25 29 0d 08 ac 0b ea 20 64 6f 6e 65 25 0d 08 |x%)..... done%..| 00001880 b6 10 f2 77 72 69 74 65 28 64 69 73 24 29 0d 08 |...write(dis$)..| 00001890 c0 4b c8 99 20 22 46 6f 6e 74 5f 53 63 61 6e 53 |.K.. "Font_ScanS| 000018a0 74 72 69 6e 67 22 2c 66 68 25 2c 64 69 73 24 2c |tring",fh%,dis$,| 000018b0 28 31 3c 3c 32 30 29 2b 25 31 31 31 30 30 30 30 |(1<<20)+%1110000| 000018c0 30 30 30 2c 7a 2c 7a 2c 2c 2c a9 28 64 69 73 24 |000,z,z,,,.(dis$| 000018d0 29 20 b8 20 2c 2c 2c 78 25 0d 08 ca 37 c8 99 20 |) . ,,,x%...7.. | 000018e0 22 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 |"ColourTrans_Set| 000018f0 46 6f 6e 74 43 6f 6c 6f 75 72 73 22 2c 66 68 25 |FontColours",fh%| 00001900 2c 62 25 2c 26 30 30 41 41 46 46 30 30 2c 31 34 |,b%,&00AAFF00,14| 00001910 0d 08 d4 3b c8 99 20 22 43 6f 6c 6f 75 72 54 72 |...;.. "ColourTr| 00001920 61 6e 73 5f 52 65 74 75 72 6e 43 6f 6c 6f 75 72 |ans_ReturnColour| 00001930 4e 75 6d 62 65 72 22 2c 26 30 30 46 46 46 46 30 |Number",&00FFFF0| 00001940 30 20 b8 20 63 6f 6c 6f 75 72 25 0d 08 de 27 c8 |0 . colour%...'.| 00001950 99 20 22 46 6f 6e 74 5f 52 65 61 64 49 6e 66 6f |. "Font_ReadInfo| 00001960 22 2c 66 68 25 20 b8 20 2c 2c 6c 79 25 2c 2c 68 |",fh% . ,,ly%,,h| 00001970 79 25 0d 08 e8 0f 63 68 25 3d 68 79 25 2d 6c 79 |y%....ch%=hy%-ly| 00001980 25 0d 08 f2 31 c8 99 20 22 46 6f 6e 74 5f 43 6f |%...1.. "Font_Co| 00001990 6e 76 65 72 74 74 6f 70 6f 69 6e 74 73 22 2c 2c |nverttopoints",,| 000019a0 68 79 25 2c 6c 79 25 20 b8 20 2c 68 79 25 2c 6c |hy%,ly% . ,hy%,l| 000019b0 79 25 0d 08 fc 14 70 74 72 25 3d a9 28 a4 30 28 |y%....ptr%=.(.0(| 000019c0 61 6e 73 25 29 29 0d 09 06 2b c8 99 20 22 46 6f |ans%))...+.. "Fo| 000019d0 6e 74 5f 43 6f 6e 76 65 72 74 74 6f 70 6f 69 6e |nt_Converttopoin| 000019e0 74 73 22 2c 2c 2c 72 6f 77 25 20 b8 20 2c 2c 79 |ts",,,row% . ,,y| 000019f0 25 0d 09 10 0c 64 64 6f 6e 65 25 3d a3 0d 09 1a |%....ddone%=....| 00001a00 0d 21 63 6f 6f 72 64 25 3d 30 0d 09 24 0e 63 6f |.!coord%=0..$.co| 00001a10 6f 72 64 25 21 34 3d 30 0d 09 2e 0e 63 6f 6f 72 |ord%!4=0....coor| 00001a20 64 25 21 38 3d 30 0d 09 38 0f 63 6f 6f 72 64 25 |d%!8=0..8.coord%| 00001a30 21 31 32 3d 30 0d 09 42 0f 63 6f 6f 72 64 25 21 |!12=0..B.coord%!| 00001a40 31 36 3d 30 0d 09 4c 0f 63 6f 6f 72 64 25 21 32 |16=0..L.coord%!2| 00001a50 30 3d 30 0d 09 56 0f 63 6f 6f 72 64 25 21 32 34 |0=0..V.coord%!24| 00001a60 3d 30 0d 09 60 0f 63 6f 6f 72 64 25 21 32 38 3d |=0..`.coord%!28=| 00001a70 30 0d 09 6a 0e c8 95 20 ac 20 64 6f 6e 65 25 0d |0..j... . done%.| 00001a80 09 74 38 c8 96 3a c8 99 20 22 46 6f 6e 74 5f 50 |.t8..:.. "Font_P| 00001a90 61 69 6e 74 22 2c 66 68 25 2c 61 6e 73 25 2c 25 |aint",fh%,ans%,%| 00001aa0 31 31 30 30 31 30 30 30 31 30 2c 78 25 2c 79 25 |1100100010,x%,y%| 00001ab0 2c 63 6f 6f 72 64 25 0d 09 7e 36 c8 99 20 22 46 |,coord%..~6.. "F| 00001ac0 6f 6e 74 5f 53 63 61 6e 53 74 72 69 6e 67 22 2c |ont_ScanString",| 00001ad0 66 68 25 2c 61 6e 73 25 2c 28 25 31 31 3c 3c 38 |fh%,ans%,(%11<<8| 00001ae0 29 2c 7a 2c 7a 20 b8 20 2c 2c 2c 77 25 0d 09 88 |),z,z . ,,,w%...| 00001af0 15 63 6f 6f 72 64 25 21 31 36 3d 78 25 2d 36 30 |.coord%!16=x%-60| 00001b00 30 30 0d 09 92 19 63 6f 6f 72 64 25 21 32 30 3d |00....coord%!20=| 00001b10 79 25 2b 6c 79 25 2d 36 30 30 30 0d 09 9c 18 63 |y%+ly%-6000....c| 00001b20 6f 6f 72 64 25 21 32 34 3d 78 25 2b 77 25 2b 36 |oord%!24=x%+w%+6| 00001b30 30 30 30 0d 09 a6 19 63 6f 6f 72 64 25 21 32 38 |000....coord%!28| 00001b40 3d 79 25 2b 68 79 25 2b 33 30 30 30 0d 09 b0 4b |=y%+hy%+3000...K| 00001b50 c8 99 20 22 46 6f 6e 74 5f 53 63 61 6e 53 74 72 |.. "Font_ScanStr| 00001b60 69 6e 67 22 2c 66 68 25 2c 61 6e 73 25 2c 28 31 |ing",fh%,ans%,(1| 00001b70 3c 3c 32 30 29 2b 28 25 31 31 31 3c 3c 37 29 2c |<<20)+(%111<<7),| 00001b80 7a 2c 7a 2c 2c 2c 70 74 72 25 20 b8 20 2c 2c 2c |z,z,,,ptr% . ,,,| 00001b90 63 78 25 2c 63 79 25 0d 09 ba 2f c8 99 20 22 46 |cx%,cy%.../.. "F| 00001ba0 6f 6e 74 5f 43 61 72 65 74 22 2c 63 6f 6c 6f 75 |ont_Caret",colou| 00001bb0 72 25 2c 63 68 25 2c 30 2c 78 25 2b 63 78 25 2c |r%,ch%,0,x%+cx%,| 00001bc0 79 25 2b 6c 79 25 0d 09 c4 08 6b 25 3d a5 0d 09 |y%+ly%....k%=...| 00001bd0 ce 0b c8 8e 20 6b 25 20 ca 0d 09 d8 17 c9 20 32 |.... k% ...... 2| 00001be0 31 3a 3f 61 6e 73 25 3d 30 3a 70 74 72 25 3d 30 |1:?ans%=0:ptr%=0| 00001bf0 0d 09 e2 08 c9 20 31 33 0d 09 ec 39 20 20 c8 99 |..... 13...9 ..| 00001c00 20 22 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 | "ColourTrans_Se| 00001c10 74 46 6f 6e 74 43 6f 6c 6f 75 72 73 22 2c 66 68 |tFontColours",fh| 00001c20 25 2c 62 25 2c 26 30 30 46 46 46 46 30 30 2c 31 |%,b%,&00FFFF00,1| 00001c30 34 0d 09 f6 37 20 20 c8 99 20 22 46 6f 6e 74 5f |4...7 .. "Font_| 00001c40 50 61 69 6e 74 22 2c 66 68 25 2c 61 6e 73 25 2c |Paint",fh%,ans%,| 00001c50 25 31 31 30 30 31 30 30 30 31 30 2c 78 25 2c 79 |%1100100010,x%,y| 00001c60 25 2c 63 6f 6f 72 64 25 0d 0a 00 0d 20 20 64 6f |%,coord%.... do| 00001c70 6e 65 25 3d b9 0d 0a 0a 11 c9 20 31 33 36 3a 70 |ne%=...... 136:p| 00001c80 74 72 25 2d 3d 31 0d 0a 14 11 c9 20 31 33 37 3a |tr%-=1..... 137:| 00001c90 70 74 72 25 2b 3d 31 0d 0a 1e 1a c9 20 31 33 38 |ptr%+=1..... 138| 00001ca0 3a 70 74 72 25 3d a9 28 a4 30 28 61 6e 73 25 29 |:ptr%=.(.0(ans%)| 00001cb0 29 0d 0a 28 10 c9 20 31 33 39 3a 70 74 72 25 3d |)..(.. 139:ptr%=| 00001cc0 30 0d 0a 32 1f c9 20 31 32 37 2c 38 3a e7 20 70 |0..2.. 127,8:. p| 00001cd0 74 72 25 3e 30 20 8c 20 f2 64 65 6c 63 68 61 72 |tr%>0 . .delchar| 00001ce0 0d 0a 3c 2f c9 20 31 33 35 3a e7 20 70 74 72 25 |..</. 135:. ptr%| 00001cf0 3c a9 28 a4 30 28 61 6e 73 25 29 29 20 8c 20 70 |<.(.0(ans%)) . p| 00001d00 74 72 25 2b 3d 31 3a f2 64 65 6c 63 68 61 72 0d |tr%+=1:.delchar.| 00001d10 0a 46 05 7f 0d 0a 50 21 e7 20 6b 25 3e 3d 33 32 |.F....P!. k%>=32| 00001d20 20 80 20 6b 25 3c 3e 31 32 37 20 8c 20 f2 69 6e | . k%<>127 . .in| 00001d30 73 63 68 61 72 0d 0a 5a 05 cb 0d 0a 64 15 e7 20 |schar..Z....d.. | 00001d40 70 74 72 25 3c 30 20 8c 20 70 74 72 25 3d 30 0d |ptr%<0 . ptr%=0.| 00001d50 0a 6e 29 e7 20 70 74 72 25 3e a9 28 a4 30 28 61 |.n). ptr%>.(.0(a| 00001d60 6e 73 25 29 29 20 8c 20 70 74 72 25 3d a9 28 a4 |ns%)) . ptr%=.(.| 00001d70 30 28 61 6e 73 25 29 29 0d 0a 78 3b e7 20 ac 20 |0(ans%))..x;. . | 00001d80 64 6f 6e 65 25 20 8c 20 c8 99 20 22 46 6f 6e 74 |done% . .. "Font| 00001d90 5f 43 61 72 65 74 22 2c 63 6f 6c 6f 75 72 25 2c |_Caret",colour%,| 00001da0 63 68 25 2c 30 2c 78 25 2b 63 78 25 2c 79 25 2b |ch%,0,x%+cx%,y%+| 00001db0 6c 79 25 0d 0a 82 05 ce 0d 0a 8c 30 c8 99 20 22 |ly%........0.. "| 00001dc0 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 46 |ColourTrans_SetF| 00001dd0 6f 6e 74 43 6f 6c 6f 75 72 73 22 2c 66 68 25 2c |ontColours",fh%,| 00001de0 62 25 2c 66 25 2c 31 34 0d 0a 96 0d 3d a4 30 28 |b%,f%,14....=.0(| 00001df0 61 6e 73 25 29 0d 0a a0 05 3a 0d 0a aa 0e dd 20 |ans%)....:..... | 00001e00 f2 64 65 6c 63 68 61 72 0d 0a b4 08 ea 20 6e 25 |.delchar..... n%| 00001e10 0d 0a be 36 e3 20 6e 25 3d 61 6e 73 25 2b 70 74 |...6. n%=ans%+pt| 00001e20 72 25 20 b8 20 61 6e 73 25 2b a9 28 a4 30 28 61 |r% . ans%+.(.0(a| 00001e30 6e 73 25 29 29 3a 3f 28 6e 25 2d 31 29 3d 3f 6e |ns%)):?(n%-1)=?n| 00001e40 25 3a ed 20 6e 25 0d 0a c8 0b 70 74 72 25 2d 3d |%:. n%....ptr%-=| 00001e50 31 0d 0a d2 05 e1 0d 0a dc 05 3a 0d 0a e6 0e dd |1.........:.....| 00001e60 20 f2 69 6e 73 63 68 61 72 0d 0a f0 1e e7 20 a9 | .inschar..... .| 00001e70 28 a4 30 28 61 6e 73 25 29 29 3e 3d 6d 61 78 25 |(.0(ans%))>=max%| 00001e80 20 8c 20 ef 37 3a e1 0d 0a fa 08 ea 20 6e 25 0d | . .7:...... n%.| 00001e90 0b 04 3b e3 20 6e 25 3d 61 6e 73 25 2b a9 28 a4 |..;. n%=ans%+.(.| 00001ea0 30 28 61 6e 73 25 29 29 20 b8 20 61 6e 73 25 2b |0(ans%)) . ans%+| 00001eb0 70 74 72 25 20 88 20 2d 31 3a 3f 28 6e 25 2b 31 |ptr% . -1:?(n%+1| 00001ec0 29 3d 3f 6e 25 3a ed 20 6e 25 0d 0b 0e 13 3f 28 |)=?n%:. n%....?(| 00001ed0 61 6e 73 25 2b 70 74 72 25 29 3d 6b 25 0d 0b 18 |ans%+ptr%)=k%...| 00001ee0 0b 70 74 72 25 2b 3d 31 0d 0b 22 05 e1 0d 0b 2c |.ptr%+=1.."....,| 00001ef0 05 3a 0d 0b 36 0c dd 20 a4 30 28 73 25 29 0d 0b |.:..6.. .0(s%)..| 00001f00 40 08 ea 20 73 24 0d 0b 4a 09 73 24 3d 22 22 0d |@.. s$..J.s$="".| 00001f10 0b 54 0d c8 95 20 3f 73 25 3c 3e 30 0d 0b 5e 0e |.T... ?s%<>0..^.| 00001f20 73 24 2b 3d bd 28 3f 73 25 29 0d 0b 68 09 73 25 |s$+=.(?s%)..h.s%| 00001f30 2b 3d 31 0d 0b 72 05 ce 0d 0b 7c 07 3d 73 24 0d |+=1..r....|.=s$.| 00001f40 0b 86 05 3a 0d 0b 90 11 dd 20 f2 62 61 6e 6b 28 |...:..... .bank(| 00001f50 62 61 6e 6b 29 0d 0b 9a 19 c8 99 20 22 4f 53 5f |bank)...... "OS_| 00001f60 42 79 74 65 22 2c 31 31 32 2c 62 61 6e 6b 0d 0b |Byte",112,bank..| 00001f70 a4 19 c8 99 20 22 4f 53 5f 42 79 74 65 22 2c 31 |.... "OS_Byte",1| 00001f80 31 33 2c 62 61 6e 6b 0d 0b ae 05 e1 0d 0b b8 05 |13,bank.........| 00001f90 3a 0d 0b c2 0c dd 20 f2 65 72 72 6f 72 0d 0b cc |:..... .error...| 00001fa0 19 e7 20 70 61 74 68 25 20 8c 20 f2 66 69 6e 69 |.. path% . .fini| 00001fb0 73 68 70 61 74 68 0d 0b d6 1a e7 20 6f 62 6a 65 |shpath..... obje| 00001fc0 63 74 25 20 8c 20 f2 66 69 6e 69 73 68 6f 62 6a |ct% . .finishobj| 00001fd0 0d 0b e0 26 e7 20 62 75 66 66 25 20 8c 20 c8 99 |...&. buff% . ..| 00001fe0 20 22 58 4f 53 5f 4d 6f 64 75 6c 65 22 2c 37 2c | "XOS_Module",7,| 00001ff0 2c 62 75 66 66 25 0d 0b ea 18 c8 99 20 22 48 6f |,buff%...... "Ho| 00002000 75 72 67 6c 61 73 73 5f 53 6d 61 73 68 22 0d 0b |urglass_Smash"..| 00002010 f4 17 f1 20 f6 24 2b 22 20 61 74 20 6c 69 6e 65 |... .$+" at line| 00002020 20 22 2b c3 9e 0d 0b fe 23 e7 20 66 68 25 20 8c | "+.....#. fh% .| 00002030 20 c8 99 20 22 58 46 6f 6e 74 5f 4c 6f 73 65 46 | .. "XFont_LoseF| 00002040 6f 6e 74 22 2c 66 68 25 0d 0c 08 25 e7 20 73 79 |ont",fh%...%. sy| 00002050 6d 25 20 8c 20 c8 99 20 22 58 46 6f 6e 74 5f 4c |m% . .. "XFont_L| 00002060 6f 73 65 46 6f 6e 74 22 2c 73 79 6d 25 0d 0c 12 |oseFont",sym%...| 00002070 0b c8 99 36 2c 34 2c 30 0d 0c 1c 0d 2a 53 48 41 |...6,4,0....*SHA| 00002080 44 4f 57 20 31 0d 0c 26 05 e0 0d 0c 30 05 3a 0d |DOW 1..&....0.:.| 00002090 0c 3a 0b dd 20 f2 6d 65 6e 75 0d 0c 44 0e 67 72 |.:.. .menu..D.gr| 000020a0 6f 77 25 3d 72 6f 77 25 0d 0c 4e 0b 65 64 69 74 |ow%=row%..N.edit| 000020b0 25 3d a3 0d 0c 58 27 c8 99 20 22 46 6f 6e 74 5f |%=...X'.. "Font_| 000020c0 52 65 61 64 49 6e 66 6f 22 2c 66 68 25 20 b8 20 |ReadInfo",fh% . | 000020d0 2c 2c 6c 79 25 2c 2c 68 79 25 0d 0c 62 36 67 61 |,,ly%,,hy%..b6ga| 000020e0 70 25 3d 28 31 2a 28 68 79 25 2d 6c 79 25 29 2b |p%=(1*(hy%-ly%)+| 000020f0 28 31 3c 3c 79 65 69 67 25 29 2d 31 29 20 80 20 |(1<<yeig%)-1) . | 00002100 ac 20 28 28 31 3c 3c 79 65 69 67 25 29 2d 31 29 |. ((1<<yeig%)-1)| 00002110 0d 0c 6c 0e 72 6f 77 25 2d 3d 67 61 70 25 0d 0c |..l.row%-=gap%..| 00002120 76 37 c8 99 20 22 46 6f 6e 74 5f 43 6f 6e 76 65 |v7.. "Font_Conve| 00002130 72 74 74 6f 70 6f 69 6e 74 73 22 2c 2c 67 61 70 |rttopoints",,gap| 00002140 25 2c 72 6f 77 25 20 b8 20 2c 67 61 70 70 25 2c |%,row% . ,gapp%,| 00002150 72 6f 77 70 25 0d 0c 80 2d c8 99 20 22 46 6f 6e |rowp%...-.. "Fon| 00002160 74 5f 43 6f 6e 76 65 72 74 74 6f 70 6f 69 6e 74 |t_Converttopoint| 00002170 73 22 2c 2c 78 6f 73 25 20 b8 20 2c 73 63 72 5f |s",,xos% . ,scr_| 00002180 77 25 0d 0c 8a 2f c8 99 20 22 46 6f 6e 74 5f 43 |w%.../.. "Font_C| 00002190 6f 6e 76 65 72 74 74 6f 70 6f 69 6e 74 73 22 2c |onverttopoints",| 000021a0 2c 6c 79 25 2c 68 79 25 20 b8 20 2c 6c 79 2c 68 |,ly%,hy% . ,ly,h| 000021b0 79 0d 0c 94 3a c8 99 20 22 46 6f 6e 74 5f 53 63 |y...:.. "Font_Sc| 000021c0 61 6e 53 74 72 69 6e 67 22 2c 66 68 25 2c 22 4d |anString",fh%,"M| 000021d0 65 6e 75 22 2c 25 31 31 3c 3c 38 2c 7a 2c 7a 20 |enu",%11<<8,z,z | 000021e0 b8 20 2c 2c 2c 73 74 72 5f 77 25 0d 0c 9e 41 c8 |. ,,,str_w%...A.| 000021f0 99 20 22 46 6f 6e 74 5f 50 61 69 6e 74 22 2c 66 |. "Font_Paint",f| 00002200 68 25 2c bd 32 35 2b bd 2d 31 36 2b bd 31 36 2b |h%,.25+.-16+.16+| 00002210 22 20 4d 65 6e 75 20 22 2c 25 31 31 3c 3c 38 2c |" Menu ",%11<<8,| 00002220 31 35 30 30 30 30 2c 72 6f 77 70 25 0d 0c a8 23 |150000,rowp%...#| 00002230 f4 20 72 6f 77 25 2d 3d 2e 35 2a 67 61 70 25 3a |. row%-=.5*gap%:| 00002240 72 6f 77 70 25 2d 3d 2e 35 2a 67 61 70 70 25 0d |rowp%-=.5*gapp%.| 00002250 0c b2 0a 73 65 6c 25 3d 31 0d 0c bc 12 e3 20 6e |...sel%=1..... n| 00002260 3d 31 20 b8 20 69 74 65 6d 73 25 0d 0c c6 10 f2 |=1 . items%.....| 00002270 6d 65 6e 75 69 74 65 6d 28 6e 29 0d 0c d0 07 ed |menuitem(n).....| 00002280 20 6e 0d 0c da 0f 6d 65 6e 75 64 6f 6e 65 25 3d | n....menudone%=| 00002290 a3 0d 0c e4 12 c8 95 20 6d 65 6e 75 64 6f 6e 65 |....... menudone| 000022a0 25 3d a3 0d 0c ee 0e 6f 73 65 6c 25 3d 73 65 6c |%=.....osel%=sel| 000022b0 25 0d 0c f8 08 6b 25 3d a5 0d 0d 02 0b c8 8e 20 |%....k%=....... | 000022c0 6b 25 20 ca 0d 0d 0c 18 c9 20 31 33 3a e7 20 a0 |k% ...... 13:. .| 000022d0 28 66 6e 73 24 28 73 65 6c 25 29 29 0d 0d 16 11 |(fns$(sel%))....| 000022e0 c9 20 31 33 38 3a 73 65 6c 25 2b 3d 31 0d 0d 20 |. 138:sel%+=1.. | 000022f0 11 c9 20 31 33 39 3a 73 65 6c 25 2d 3d 31 0d 0d |.. 139:sel%-=1..| 00002300 2a 05 cb 0d 0d 34 15 e7 20 73 65 6c 25 3c 31 20 |*....4.. sel%<1 | 00002310 8c 20 73 65 6c 25 3d 31 0d 0d 3e 1f e7 20 73 65 |. sel%=1..>.. se| 00002320 6c 25 3e 69 74 65 6d 73 25 20 8c 20 73 65 6c 25 |l%>items% . sel%| 00002330 3d 69 74 65 6d 73 25 0d 0d 48 14 f2 6d 65 6e 75 |=items%..H..menu| 00002340 69 74 65 6d 28 6f 73 65 6c 25 29 0d 0d 52 13 f2 |item(osel%)..R..| 00002350 6d 65 6e 75 69 74 65 6d 28 73 65 6c 25 29 0d 0d |menuitem(sel%)..| 00002360 5c 05 ce 0d 0d 66 0e 72 6f 77 25 3d 67 72 6f 77 |\....f.row%=grow| 00002370 25 0d 0d 70 05 e1 0d 0d 7a 05 3a 0d 0d 84 12 dd |%..p....z.:.....| 00002380 20 f2 6d 65 6e 75 69 74 65 6d 28 6e 29 0d 0d 8e | .menuitem(n)...| 00002390 0d 21 63 6f 6f 72 64 25 3d 30 0d 0d 98 0e 63 6f |.!coord%=0....co| 000023a0 6f 72 64 25 21 34 3d 30 0d 0d a2 0e 63 6f 6f 72 |ord%!4=0....coor| 000023b0 64 25 21 38 3d 30 0d 0d ac 0f 63 6f 6f 72 64 25 |d%!8=0....coord%| 000023c0 21 31 32 3d 30 0d 0d b6 0f 63 6f 6f 72 64 25 21 |!12=0....coord%!| 000023d0 31 36 3d 30 0d 0d c0 1e 63 6f 6f 72 64 25 21 32 |16=0....coord%!2| 000023e0 30 3d 72 6f 77 70 25 2d 6e 2a 67 61 70 70 25 2b |0=rowp%-n*gapp%+| 000023f0 6c 79 0d 0d ca 14 63 6f 6f 72 64 25 21 32 34 3d |ly....coord%!24=| 00002400 73 63 72 5f 77 25 0d 0d d4 1e 63 6f 6f 72 64 25 |scr_w%....coord%| 00002410 21 32 38 3d 72 6f 77 70 25 2d 6e 2a 67 61 70 70 |!28=rowp%-n*gapp| 00002420 25 2b 68 79 0d 0d de 31 c8 99 20 22 43 6f 6c 6f |%+hy...1.. "Colo| 00002430 75 72 54 72 61 6e 73 5f 53 65 74 46 6f 6e 74 43 |urTrans_SetFontC| 00002440 6f 6c 6f 75 72 73 22 2c 73 79 6d 25 2c 62 25 2c |olours",sym%,b%,| 00002450 66 25 2c 31 34 0d 0d e8 0d c8 8e 20 73 65 6c 25 |f%,14...... sel%| 00002460 20 ca 0d 0d f2 7e 20 20 c9 20 6e 20 20 20 3a e7 | ....~ . n :.| 00002470 20 6c 6f 67 32 62 70 70 25 3c 31 20 8c 20 c8 99 | log2bpp%<1 . ..| 00002480 20 22 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 | "ColourTrans_Se| 00002490 74 46 6f 6e 74 43 6f 6c 6f 75 72 73 22 2c 66 68 |tFontColours",fh| 000024a0 25 2c 26 30 30 46 46 46 46 30 30 2c 62 25 2c 31 |%,&00FFFF00,b%,1| 000024b0 34 3a 8b 20 c8 99 20 22 43 6f 6c 6f 75 72 54 72 |4:. .. "ColourTr| 000024c0 61 6e 73 5f 53 65 74 46 6f 6e 74 43 6f 6c 6f 75 |ans_SetFontColou| 000024d0 72 73 22 2c 66 68 25 2c 62 25 2c 66 25 2c 31 34 |rs",fh%,b%,f%,14| 000024e0 0d 0d fc 34 20 20 7f 3a c8 99 20 22 43 6f 6c 6f |...4 .:.. "Colo| 000024f0 75 72 54 72 61 6e 73 5f 53 65 74 46 6f 6e 74 43 |urTrans_SetFontC| 00002500 6f 6c 6f 75 72 73 22 2c 66 68 25 2c 62 25 2c 66 |olours",fh%,b%,f| 00002510 25 2c 31 34 0d 0e 06 05 cb 0d 0e 10 54 c8 99 20 |%,14........T.. | 00002520 22 46 6f 6e 74 5f 50 61 69 6e 74 22 2c 73 79 6d |"Font_Paint",sym| 00002530 25 2c 22 62 22 2c 25 31 31 31 30 31 30 30 30 31 |%,"b",%111010001| 00002540 30 2c 31 31 30 30 30 30 2c 72 6f 77 70 25 2d 6e |0,110000,rowp%-n| 00002550 2a 67 61 70 70 25 2c 63 6f 6f 72 64 25 2c 2c 94 |*gapp%,coord%,,.| 00002560 28 b4 28 74 69 63 6b 25 28 6e 29 29 29 0d 0e 1a |(.(tick%(n)))...| 00002570 0d c8 8e 20 73 65 6c 25 20 ca 0d 0e 24 85 20 20 |... sel% ...$. | 00002580 c9 20 6e 20 20 20 3a e7 20 6c 6f 67 32 62 70 70 |. n :. log2bpp| 00002590 25 3c 31 20 8c 20 c8 99 20 22 43 6f 6c 6f 75 72 |%<1 . .. "Colour| 000025a0 54 72 61 6e 73 5f 53 65 74 46 6f 6e 74 43 6f 6c |Trans_SetFontCol| 000025b0 6f 75 72 73 22 2c 66 68 25 2c 26 30 30 46 46 46 |ours",fh%,&00FFF| 000025c0 46 30 30 2c 62 25 2c 31 34 3a 8b 20 c8 99 20 22 |F00,b%,14:. .. "| 000025d0 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 46 |ColourTrans_SetF| 000025e0 6f 6e 74 43 6f 6c 6f 75 72 73 22 2c 66 68 25 2c |ontColours",fh%,| 000025f0 62 25 2c 26 30 30 46 46 46 46 30 30 2c 31 34 0d |b%,&00FFFF00,14.| 00002600 0e 2e 3b 20 20 7f 3a c8 99 20 22 43 6f 6c 6f 75 |..; .:.. "Colou| 00002610 72 54 72 61 6e 73 5f 53 65 74 46 6f 6e 74 43 6f |rTrans_SetFontCo| 00002620 6c 6f 75 72 73 22 2c 66 68 25 2c 62 25 2c 26 30 |lours",fh%,b%,&0| 00002630 30 46 46 30 30 30 30 2c 31 34 0d 0e 38 05 cb 0d |0FF0000,14..8...| 00002640 0e 42 3c c8 99 20 22 46 6f 6e 74 5f 50 61 69 6e |.B<.. "Font_Pain| 00002650 74 22 2c 66 68 25 2c 6d 65 6e 75 24 28 6e 29 2c |t",fh%,menu$(n),| 00002660 25 31 31 3c 3c 38 2c 31 33 36 30 30 30 2c 72 6f |%11<<8,136000,ro| 00002670 77 70 25 2d 6e 2a 67 61 70 70 25 0d 0e 4c 05 e1 |wp%-n*gapp%..L..| 00002680 0d 0e 56 05 3a 0d 0e 60 10 dd 20 f2 73 65 74 75 |..V.:..`.. .setu| 00002690 70 6d 65 6e 75 0d 0e 6a 07 ea 20 6e 0d 0e 74 0a |pmenu..j.. n..t.| 000026a0 f7 20 8d 44 46 4f 0d 0e 7e 0c f3 20 69 74 65 6d |. .DFO..~.. item| 000026b0 73 25 0d 0e 88 2e de 20 6d 65 6e 75 24 28 69 74 |s%..... menu$(it| 000026c0 65 6d 73 25 29 2c 66 6e 73 24 28 69 74 65 6d 73 |ems%),fns$(items| 000026d0 25 29 2c 74 69 63 6b 25 28 69 74 65 6d 73 25 29 |%),tick%(items%)| 000026e0 0d 0e 92 12 e3 20 6e 3d 31 20 b8 20 69 74 65 6d |..... n=1 . item| 000026f0 73 25 0d 0e 9c 1f f3 20 6d 65 6e 75 24 28 6e 29 |s%..... menu$(n)| 00002700 2c 66 6e 73 24 28 6e 29 2c 74 69 63 6b 25 28 6e |,fns$(n),tick%(n| 00002710 29 0d 0e a6 07 ed 20 6e 0d 0e b0 37 c8 99 20 22 |)..... n...7.. "| 00002720 46 6f 6e 74 5f 46 69 6e 64 46 6f 6e 74 22 2c 2c |Font_FindFont",,| 00002730 22 53 65 6c 77 79 6e 22 2c 31 38 2a 31 36 2c 31 |"Selwyn",18*16,1| 00002740 38 2a 31 36 2c 30 2c 30 20 b8 20 73 79 6d 25 0d |8*16,0,0 . sym%.| 00002750 0e ba 0e 72 65 76 65 72 73 65 25 3d 31 0d 0e c4 |...reverse%=1...| 00002760 0e 6f 76 65 72 6c 61 79 25 3d a3 0d 0e ce 0c 63 |.overlay%=.....c| 00002770 6c 6f 63 6b 25 3d 31 0d 0e d8 0b 70 61 74 68 25 |lock%=1....path%| 00002780 3d a3 0d 0e e2 0b 62 75 66 66 25 3d 30 0d 0e ec |=.....buff%=0...| 00002790 09 72 6f 74 3d 30 0d 0e f6 0a 6d 6f 76 65 3d 30 |.rot=0....move=0| 000027a0 0d 0f 00 0e 64 65 66 5f 6d 6f 76 65 3d 30 0d 0f |....def_move=0..| 000027b0 0a 0a 73 68 6f 74 3d 31 0d 0f 14 0a 70 61 74 68 |..shot=1....path| 000027c0 3d 31 0d 0f 1e 0a 6f 62 6a 6e 3d 31 0d 0f 28 0d |=1....objn=1..(.| 000027d0 6f 62 6a 65 63 74 25 3d a3 0d 0f 32 05 e1 0d 0f |object%=...2....| 000027e0 3c 05 3a 0d 0f 46 07 dc 20 39 0d 0f 50 17 dc 20 |<.:..F.. 9..P.. | 000027f0 22 44 72 61 77 22 2c 22 46 4e 64 72 61 77 22 2c |"Draw","FNdraw",| 00002800 30 0d 0f 5a 1e dc 20 22 45 64 69 74 20 26 20 44 |0..Z.. "Edit & D| 00002810 72 61 77 22 2c 22 46 4e 65 64 69 74 22 2c 30 0d |raw","FNedit",0.| 00002820 0f 64 21 dc 20 22 4d 61 6b 65 20 44 72 61 77 20 |.d!. "Make Draw | 00002830 70 61 74 68 22 2c 22 46 4e 70 61 74 68 22 2c 30 |path","FNpath",0| 00002840 0d 0f 6e 43 f4 20 20 22 4d 61 6b 65 20 44 72 61 |..nC. "Make Dra| 00002850 77 20 6f 62 6a 65 63 74 22 2c 22 46 4e 6f 62 6a |w object","FNobj| 00002860 65 63 74 22 2c 30 20 3a 52 45 4d 20 2a 2a 2a 2a |ect",0 :REM ****| 00002870 2a 2a 2a 2a 20 4e 6f 74 20 77 6f 72 6b 69 6e 67 |**** Not working| 00002880 20 2a 2a 0d 0f 78 1d dc 20 22 4f 76 65 72 6c 61 | **..x.. "Overla| 00002890 79 22 2c 22 46 4e 6f 76 65 72 6c 61 79 22 2c 30 |y","FNoverlay",0| 000028a0 0d 0f 82 25 dc 20 22 52 65 76 65 72 73 65 20 77 |...%. "Reverse w| 000028b0 72 69 74 69 6e 67 22 2c 22 46 4e 72 65 76 65 72 |riting","FNrever| 000028c0 73 65 22 2c 30 0d 0f 8c 26 dc 20 22 41 6e 74 69 |se",0...&. "Anti| 000028d0 2d 63 6c 6f 63 6b 77 69 73 65 22 2c 22 46 4e 61 |-clockwise","FNa| 000028e0 6e 74 69 63 6c 6f 63 6b 22 2c 30 0d 0f 96 17 dc |nticlock",0.....| 000028f0 20 22 4d 6f 76 65 22 2c 22 46 4e 6d 6f 76 65 22 | "Move","FNmove"| 00002900 2c 30 0d 0f a0 24 dc 20 22 53 63 72 65 65 6e 20 |,0...$. "Screen | 00002910 73 68 6f 74 22 2c 22 46 4e 73 63 72 65 65 6e 73 |shot","FNscreens| 00002920 68 6f 74 22 2c 30 0d 0f aa 17 dc 20 22 51 75 69 |hot",0..... "Qui| 00002930 74 22 2c 22 46 4e 71 75 69 74 22 2c 30 0d 0f b4 |t","FNquit",0...| 00002940 05 3a 0d 0f be 0b dd 20 a4 64 72 61 77 0d 0f c8 |.:..... .draw...| 00002950 0f 6d 65 6e 75 64 6f 6e 65 25 3d b9 0d 0f d2 06 |.menudone%=.....| 00002960 3d 30 0d 0f dc 0b dd 20 a4 65 64 69 74 0d 0f e6 |=0..... .edit...| 00002970 0b 65 64 69 74 25 3d b9 0d 0f f0 0f 6d 65 6e 75 |.edit%=.....menu| 00002980 64 6f 6e 65 25 3d b9 0d 0f fa 06 3d 30 0d 10 04 |done%=.....=0...| 00002990 0b dd 20 a4 70 61 74 68 0d 10 0e 1d 74 69 63 6b |.. .path....tick| 000029a0 25 28 73 65 6c 25 29 3d ac 20 74 69 63 6b 25 28 |%(sel%)=. tick%(| 000029b0 73 65 6c 25 29 0d 10 18 13 e7 20 74 69 63 6b 25 |sel%)..... tick%| 000029c0 28 73 65 6c 25 29 20 8c 0d 10 22 0d 20 20 70 61 |(sel%) ...". pa| 000029d0 74 68 25 3d b9 0d 10 2c 12 20 20 70 6e 24 3d 22 |th%=...,. pn$="| 000029e0 40 2e 50 61 74 68 22 0d 10 36 32 20 20 6d 65 6e |@.Path"..62 men| 000029f0 75 24 28 73 65 6c 25 29 3d 22 4d 61 6b 65 20 44 |u$(sel%)="Make D| 00002a00 72 61 77 20 70 61 74 68 20 28 22 2b 70 6e 24 2b |raw path ("+pn$+| 00002a10 c3 70 61 74 68 2b 22 29 22 0d 10 40 15 20 20 f2 |.path+")"..@. .| 00002a20 6d 65 6e 75 69 74 65 6d 28 73 65 6c 25 29 0d 10 |menuitem(sel%)..| 00002a30 4a 05 cc 0d 10 54 11 20 20 f2 66 69 6e 69 73 68 |J....T. .finish| 00002a40 70 61 74 68 0d 10 5e 0d 20 20 70 61 74 68 2b 3d |path..^. path+=| 00002a50 31 0d 10 68 0d 20 20 62 75 66 66 25 3d 30 0d 10 |1..h. buff%=0..| 00002a60 72 22 20 20 6d 65 6e 75 24 28 73 65 6c 25 29 3d |r" menu$(sel%)=| 00002a70 22 4d 61 6b 65 20 44 72 61 77 20 70 61 74 68 22 |"Make Draw path"| 00002a80 0d 10 7c 05 cd 0d 10 86 06 3d 30 0d 10 90 0d dd |..|......=0.....| 00002a90 20 a4 6f 62 6a 65 63 74 0d 10 9a 1d 74 69 63 6b | .object....tick| 00002aa0 25 28 73 65 6c 25 29 3d ac 20 74 69 63 6b 25 28 |%(sel%)=. tick%(| 00002ab0 73 65 6c 25 29 0d 10 a4 13 e7 20 74 69 63 6b 25 |sel%)..... tick%| 00002ac0 28 73 65 6c 25 29 20 8c 0d 10 ae 0f 20 20 6f 62 |(sel%) ..... ob| 00002ad0 6a 65 63 74 25 3d b9 0d 10 b8 12 20 20 6f 6e 24 |ject%=..... on$| 00002ae0 3d 22 40 2e 44 72 61 77 22 0d 10 c2 34 20 20 6d |="@.Draw"...4 m| 00002af0 65 6e 75 24 28 73 65 6c 25 29 3d 22 4d 61 6b 65 |enu$(sel%)="Make| 00002b00 20 44 72 61 77 20 6f 62 6a 65 63 74 20 28 22 2b | Draw object ("+| 00002b10 6f 6e 24 2b c3 6f 62 6a 6e 2b 22 29 22 0d 10 cc |on$+.objn+")"...| 00002b20 15 20 20 f2 6d 65 6e 75 69 74 65 6d 28 73 65 6c |. .menuitem(sel| 00002b30 25 29 0d 10 d6 05 cc 0d 10 e0 10 20 20 f2 66 69 |%)......... .fi| 00002b40 6e 69 73 68 6f 62 6a 0d 10 ea 0d 20 20 6f 62 6a |nishobj.... obj| 00002b50 6e 2b 3d 31 0d 10 f4 0d 20 20 62 75 66 66 25 3d |n+=1.... buff%=| 00002b60 30 0d 10 fe 24 20 20 6d 65 6e 75 24 28 73 65 6c |0...$ menu$(sel| 00002b70 25 29 3d 22 4d 61 6b 65 20 44 72 61 77 20 6f 62 |%)="Make Draw ob| 00002b80 6a 65 63 74 22 0d 11 08 05 cd 0d 11 12 06 3d 30 |ject".........=0| 00002b90 0d 11 1c 10 dd 20 a4 61 6e 74 69 63 6c 6f 63 6b |..... .anticlock| 00002ba0 0d 11 26 1d 74 69 63 6b 25 28 73 65 6c 25 29 3d |..&.tick%(sel%)=| 00002bb0 ac 20 74 69 63 6b 25 28 73 65 6c 25 29 0d 11 30 |. tick%(sel%)..0| 00002bc0 17 72 65 76 65 72 73 65 25 3d 31 2d 72 65 76 65 |.reverse%=1-reve| 00002bd0 72 73 65 25 0d 11 3a 06 3d 30 0d 11 44 0e dd 20 |rse%..:.=0..D.. | 00002be0 a4 72 65 76 65 72 73 65 0d 11 4e 1d 74 69 63 6b |.reverse..N.tick| 00002bf0 25 28 73 65 6c 25 29 3d ac 20 74 69 63 6b 25 28 |%(sel%)=. tick%(| 00002c00 73 65 6c 25 29 0d 11 58 12 63 6c 6f 63 6b 25 3d |sel%)..X.clock%=| 00002c10 2d 63 6c 6f 63 6b 25 0d 11 62 35 e7 20 74 69 63 |-clock%..b5. tic| 00002c20 6b 25 28 73 65 6c 25 29 20 8c 20 6d 6f 76 65 3d |k%(sel%) . move=| 00002c30 64 65 66 5f 6d 6f 76 65 2b 30 2e 39 3a 8b 20 6d |def_move+0.9:. m| 00002c40 6f 76 65 3d 64 65 66 5f 6d 6f 76 65 0d 11 6c 23 |ove=def_move..l#| 00002c50 e7 20 74 69 63 6b 25 28 73 65 6c 25 29 20 8c 20 |. tick%(sel%) . | 00002c60 72 6f 74 3d af 20 20 3a 8b 20 72 6f 74 3d 30 0d |rot=. :. rot=0.| 00002c70 11 76 06 3d 30 0d 11 80 0b dd 20 a4 6d 6f 76 65 |.v.=0..... .move| 00002c80 0d 11 8a 09 41 25 3d 40 25 0d 11 94 0f 40 25 3d |....A%=@%....@%=| 00002c90 22 2b 46 31 30 2e 32 22 0d 11 9e 08 ea 20 6b 25 |"+F10.2"..... k%| 00002ca0 0d 11 a8 1d 74 69 63 6b 25 28 73 65 6c 25 29 3d |....tick%(sel%)=| 00002cb0 ac 20 74 69 63 6b 25 28 73 65 6c 25 29 0d 11 b2 |. tick%(sel%)...| 00002cc0 13 e7 20 74 69 63 6b 25 28 73 65 6c 25 29 20 8c |.. tick%(sel%) .| 00002cd0 0d 11 bc 13 20 20 6d 6f 76 65 3d 64 65 66 5f 6d |.... move=def_m| 00002ce0 6f 76 65 0d 11 c6 11 20 20 6d 6f 76 65 64 6f 6e |ove.... movedon| 00002cf0 65 25 3d a3 0d 11 d0 14 20 20 c8 95 20 6d 6f 76 |e%=..... .. mov| 00002d00 65 64 6f 6e 65 25 3d 30 0d 11 da 6d 20 20 6d 65 |edone%=0...m me| 00002d10 6e 75 24 28 73 65 6c 25 29 3d 22 4d 6f 76 65 20 |nu$(sel%)="Move | 00002d20 28 48 65 69 67 68 74 20 d7 20 22 2b bd 31 39 2b |(Height . "+.19+| 00002d30 bd 30 2b bd 30 2b bd 30 2b bd 26 46 46 2b bd 26 |.0+.0+.0+.&FF+.&| 00002d40 46 46 2b bd 26 46 46 2b bd 31 34 2b c3 28 6d 6f |FF+.&FF+.14+.(mo| 00002d50 76 65 29 2b bd 31 39 2b bd 30 2b bd 30 2b bd 30 |ve)+.19+.0+.0+.0| 00002d60 2b bd 26 31 31 2b bd 32 35 35 2b bd 30 2b bd 31 |+.&11+.255+.0+.1| 00002d70 34 2b 22 29 22 0d 11 e4 15 20 20 f2 6d 65 6e 75 |4+")".... .menu| 00002d80 69 74 65 6d 28 73 65 6c 25 29 0d 11 ee 0a 20 20 |item(sel%).... | 00002d90 6b 25 3d a5 0d 11 f8 0d 20 20 c8 8e 20 6b 25 20 |k%=..... .. k% | 00002da0 ca 0d 12 02 24 20 20 c9 20 31 33 3a 74 69 63 6b |....$ . 13:tick| 00002db0 25 28 73 65 6c 25 29 3d a3 3a 6d 6f 76 65 64 6f |%(sel%)=.:movedo| 00002dc0 6e 65 25 3d b9 0d 12 0c 16 20 20 c9 20 33 32 3a |ne%=..... . 32:| 00002dd0 6d 6f 76 65 64 6f 6e 65 25 3d b9 0d 12 16 16 20 |movedone%=..... | 00002de0 20 c9 20 31 33 39 3a 6d 6f 76 65 2b 3d 30 2e 30 | . 139:move+=0.0| 00002df0 35 0d 12 20 16 20 20 c9 20 31 33 38 3a 6d 6f 76 |5.. . . 138:mov| 00002e00 65 2d 3d 30 2e 30 35 0d 12 2a 15 20 20 c9 20 31 |e-=0.05..*. . 1| 00002e10 33 36 3a 6d 6f 76 65 2d 3d 30 2e 35 0d 12 34 15 |36:move-=0.5..4.| 00002e20 20 20 c9 20 31 33 37 3a 6d 6f 76 65 2b 3d 30 2e | . 137:move+=0.| 00002e30 35 0d 12 3e 07 20 20 cb 0d 12 48 13 20 20 64 65 |5..>. ...H. de| 00002e40 66 5f 6d 6f 76 65 3d 6d 6f 76 65 0d 12 52 07 20 |f_move=move..R. | 00002e50 20 ce 0d 12 5c 2f 20 20 6d 65 6e 75 24 28 73 65 | ...\/ menu$(se| 00002e60 6c 25 29 3d 22 4d 6f 76 65 20 28 48 65 69 67 68 |l%)="Move (Heigh| 00002e70 74 20 d7 20 22 2b c3 28 6d 6f 76 65 29 2b 22 29 |t . "+.(move)+")| 00002e80 22 0d 12 66 15 20 20 f2 6d 65 6e 75 69 74 65 6d |"..f. .menuitem| 00002e90 28 73 65 6c 25 29 0d 12 70 05 cd 0d 12 7a 2f e7 |(sel%)..p....z/.| 00002ea0 20 74 69 63 6b 25 28 73 65 6c 25 29 3d 30 20 8c | tick%(sel%)=0 .| 00002eb0 20 6d 6f 76 65 3d 30 3a 6d 65 6e 75 24 28 73 65 | move=0:menu$(se| 00002ec0 6c 25 29 3d 22 4d 6f 76 65 22 0d 12 84 09 40 25 |l%)="Move"....@%| 00002ed0 3d 41 25 0d 12 8e 06 3d 30 0d 12 98 0e dd 20 a4 |=A%....=0..... .| 00002ee0 6f 76 65 72 6c 61 79 0d 12 a2 1d 74 69 63 6b 25 |overlay....tick%| 00002ef0 28 73 65 6c 25 29 3d ac 20 74 69 63 6b 25 28 73 |(sel%)=. tick%(s| 00002f00 65 6c 25 29 0d 12 ac 17 6f 76 65 72 6c 61 79 25 |el%)....overlay%| 00002f10 3d ac 20 6f 76 65 72 6c 61 79 25 0d 12 b6 06 3d |=. overlay%....=| 00002f20 30 0d 12 c0 11 dd 20 a4 73 63 72 65 65 6e 73 68 |0..... .screensh| 00002f30 6f 74 0d 12 ca 11 74 69 63 6b 25 28 73 65 6c 25 |ot....tick%(sel%| 00002f40 29 3d b9 0d 12 d4 18 66 6e 24 3d 22 40 2e 53 63 |)=.....fn$="@.Sc| 00002f50 72 65 65 6e 22 2b c3 73 68 6f 74 0d 12 de 27 6d |reen"+.shot...'m| 00002f60 65 6e 75 24 28 73 65 6c 25 29 3d 22 53 63 72 65 |enu$(sel%)="Scre| 00002f70 65 6e 20 73 68 6f 74 20 28 22 2b 66 6e 24 2b 22 |en shot ("+fn$+"| 00002f80 29 22 0d 12 e8 13 f2 6d 65 6e 75 69 74 65 6d 28 |)".....menuitem(| 00002f90 73 65 6c 25 29 0d 12 f2 15 f5 47 3d a5 3a fd 47 |sel%).....G=.:.G| 00002fa0 3d 33 32 20 84 20 47 3d 31 33 0d 12 fc 0b e7 47 |=32 . G=13.....G| 00002fb0 3d 33 32 20 8c 0d 13 06 0e 20 20 f2 62 61 6e 6b |=32 ..... .bank| 00002fc0 28 32 29 0d 13 10 19 20 20 ff 20 22 53 63 72 65 |(2).... . "Scre| 00002fd0 65 6e 53 61 76 65 20 22 2b 66 6e 24 0d 13 1a 0e |enSave "+fn$....| 00002fe0 20 20 f2 62 61 6e 6b 28 31 29 0d 13 24 05 cd 0d | .bank(1)..$...| 00002ff0 13 2e 0b 73 68 6f 74 2b 3d 31 0d 13 38 11 74 69 |...shot+=1..8.ti| 00003000 63 6b 25 28 73 65 6c 25 29 3d a3 0d 13 42 1d 6d |ck%(sel%)=...B.m| 00003010 65 6e 75 24 28 73 65 6c 25 29 3d 22 53 63 72 65 |enu$(sel%)="Scre| 00003020 65 6e 20 73 68 6f 74 22 0d 13 4c 06 3d 30 0d 13 |en shot"..L.=0..| 00003030 56 0b dd 20 a4 71 75 69 74 0d 13 60 0f 6d 65 6e |V.. .quit..`.men| 00003040 75 64 6f 6e 65 25 3d b9 0d 13 6a 0b 71 75 69 74 |udone%=...j.quit| 00003050 25 3d b9 0d 13 74 06 3d 30 0d 13 7e 05 3a 0d 13 |%=...t.=0..~.:..| 00003060 88 14 dd 20 a4 68 65 61 64 65 72 28 62 75 66 66 |... .header(buff| 00003070 25 29 0d 13 92 11 24 62 75 66 66 25 3d 22 44 72 |%)....$buff%="Dr| 00003080 61 77 22 0d 13 9c 0f 62 75 66 66 25 21 34 3d 32 |aw"....buff%!4=2| 00003090 30 31 0d 13 a6 0d 62 75 66 66 25 21 38 3d 30 0d |01....buff%!8=0.| 000030a0 13 b0 1a 24 28 62 75 66 66 25 2b 31 32 29 3d 22 |...$(buff%+12)="| 000030b0 41 55 20 46 69 74 43 20 22 0d 13 ba 0e 62 75 66 |AU FitC "....buf| 000030c0 66 25 21 32 30 3d 30 0d 13 c4 16 62 75 66 66 25 |f%!20=0....buff%| 000030d0 21 32 34 3d 26 37 46 46 46 46 46 46 46 0d 13 ce |!24=&7FFFFFFF...| 000030e0 16 62 75 66 66 25 21 32 38 3d 26 37 46 46 46 46 |.buff%!28=&7FFFF| 000030f0 46 46 46 0d 13 d8 0e 62 75 66 66 25 21 33 32 3d |FFF....buff%!32=| 00003100 30 0d 13 e2 0e 62 75 66 66 25 21 33 36 3d 30 0d |0....buff%!36=0.| 00003110 13 ec 0d 3d 62 75 66 66 25 2b 34 30 0d 13 f6 05 |...=buff%+40....| 00003120 3a 0d 14 00 11 dd 20 f2 66 69 6e 69 73 68 70 61 |:..... .finishpa| 00003130 74 68 0d 14 0a 0f 20 20 e7 20 70 61 74 68 25 20 |th.... . path% | 00003140 8c 0d 14 14 28 20 20 c8 99 20 22 46 6f 6e 74 5f |....( .. "Font_| 00003150 53 77 69 74 63 68 4f 75 74 70 75 74 54 6f 42 75 |SwitchOutputToBu| 00003160 66 66 65 72 22 2c 30 2c 30 0d 14 1e 0d 20 20 70 |ffer",0,0.... p| 00003170 61 74 68 25 3d a3 0d 14 28 27 20 20 e7 20 62 75 |ath%=...(' . bu| 00003180 66 66 25 20 8c 20 f2 63 61 6c 63 42 42 28 62 75 |ff% . .calcBB(bu| 00003190 66 66 25 2c 62 75 66 66 70 74 72 25 29 0d 14 32 |ff%,buffptr%)..2| 000031a0 5c 20 20 e7 20 62 75 66 66 25 20 8c 20 ff 20 22 |\ . buff% . . "| 000031b0 53 61 76 65 20 22 2b 70 6e 24 2b c3 70 61 74 68 |Save "+pn$+.path| 000031c0 2b 22 20 22 2b c3 7e 62 75 66 66 25 2b 22 20 22 |+" "+.~buff%+" "| 000031d0 2b c3 7e 62 75 66 66 70 74 72 25 3a ff 20 22 53 |+.~buffptr%:. "S| 000031e0 65 74 54 79 70 65 20 22 2b 70 6e 24 2b c3 70 61 |etType "+pn$+.pa| 000031f0 74 68 2b 22 20 41 46 46 22 0d 14 3c 28 20 20 e7 |th+" AFF"..<( .| 00003200 20 62 75 66 66 25 20 8c 20 c8 99 20 22 58 4f 53 | buff% . .. "XOS| 00003210 5f 4d 6f 64 75 6c 65 22 2c 37 2c 2c 62 75 66 66 |_Module",7,,buff| 00003220 25 0d 14 46 0d 20 20 62 75 66 66 25 3d 30 0d 14 |%..F. buff%=0..| 00003230 50 05 cd 0d 14 5a 05 e1 0d 14 64 05 3a 0d 14 6e |P....Z....d.:..n| 00003240 10 dd 20 f2 66 69 6e 69 73 68 6f 62 6a 0d 14 78 |.. .finishobj..x| 00003250 19 20 20 e7 20 6f 62 6a 65 63 74 25 20 80 20 62 |. . object% . b| 00003260 75 66 66 25 20 8c 0d 14 82 1d 20 20 f2 63 61 6c |uff% ..... .cal| 00003270 63 42 42 28 62 75 66 66 25 2c 62 75 66 66 70 74 |cBB(buff%,buffpt| 00003280 72 25 29 0d 14 8c 57 20 20 4f 53 4c 49 20 22 53 |r%)...W OSLI "S| 00003290 61 76 65 20 22 2b 6f 6e 24 2b c3 6f 62 6a 6e 25 |ave "+on$+.objn%| 000032a0 2b 22 20 22 2b c3 7e 62 75 66 66 25 2b 22 20 22 |+" "+.~buff%+" "| 000032b0 2b c3 7e 62 75 66 66 70 74 72 25 3a ff 20 22 53 |+.~buffptr%:. "S| 000032c0 65 74 54 79 70 65 20 22 2b 6f 6e 24 2b c3 6f 62 |etType "+on$+.ob| 000032d0 6a 6e 25 2b 22 20 41 46 46 22 0d 14 96 26 20 20 |jn%+" AFF"...& | 000032e0 c8 99 20 22 58 4f 53 5f 4d 6f 64 75 6c 65 22 2c |.. "XOS_Module",| 000032f0 37 2c 2c 62 75 66 66 25 3a 62 75 66 66 25 3d 30 |7,,buff%:buff%=0| 00003300 0d 14 a0 05 cd 0d 14 aa 04 0d 14 b4 05 3a 0d 14 |.............:..| 00003310 be 19 dd 20 f2 63 61 6c 63 42 42 28 62 61 73 65 |... .calcBB(base| 00003320 25 2c 65 6e 64 25 29 0d 14 c8 10 ea 20 70 74 72 |%,end%)..... ptr| 00003330 25 2c 64 6f 6e 65 25 0d 14 d2 11 70 74 72 25 3d |%,done%....ptr%=| 00003340 62 61 73 65 25 2b 34 30 0d 14 dc 0b 64 6f 6e 65 |base%+40....done| 00003350 25 3d a3 0d 14 e6 0e c8 95 20 ac 20 64 6f 6e 65 |%=....... . done| 00003360 25 0d 14 f0 0f e7 20 21 70 74 72 25 3d 32 20 8c |%..... !ptr%=2 .| 00003370 0d 14 fa 29 20 20 e7 20 70 74 72 25 21 38 3c 62 |...) . ptr%!8<b| 00003380 61 73 65 25 21 32 34 20 8c 20 62 61 73 65 25 21 |ase%!24 . base%!| 00003390 32 34 3d 70 74 72 25 21 38 0d 15 04 2b 20 20 e7 |24=ptr%!8...+ .| 000033a0 20 70 74 72 25 21 31 32 3c 62 61 73 65 25 21 32 | ptr%!12<base%!2| 000033b0 38 20 8c 20 62 61 73 65 25 21 32 38 3d 70 74 72 |8 . base%!28=ptr| 000033c0 25 21 31 32 0d 15 0e 2b 20 20 e7 20 70 74 72 25 |%!12...+ . ptr%| 000033d0 21 31 36 3e 62 61 73 65 25 21 33 32 20 8c 20 62 |!16>base%!32 . b| 000033e0 61 73 65 25 21 33 32 3d 70 74 72 25 21 31 36 0d |ase%!32=ptr%!16.| 000033f0 15 18 2b 20 20 e7 20 70 74 72 25 21 32 30 3e 62 |..+ . ptr%!20>b| 00003400 61 73 65 25 21 33 36 20 8c 20 62 61 73 65 25 21 |ase%!36 . base%!| 00003410 33 36 3d 70 74 72 25 21 32 30 0d 15 22 05 cd 0d |36=ptr%!20.."...| 00003420 15 2c 10 70 74 72 25 2b 3d 70 74 72 25 21 34 0d |.,.ptr%+=ptr%!4.| 00003430 15 36 1a e7 20 70 74 72 25 3e 3d 65 6e 64 25 20 |.6.. ptr%>=end% | 00003440 8c 20 64 6f 6e 65 25 3d b9 0d 15 40 05 ce 0d 15 |. done%=...@....| 00003450 4a 05 e1 0d 15 54 05 3a 0d 15 5e 10 dd 20 f2 61 |J....T.:..^.. .a| 00003460 64 64 28 76 61 6c 25 29 0d 15 68 12 21 62 75 66 |dd(val%)..h.!buf| 00003470 66 70 74 72 25 3d 76 61 6c 25 0d 15 72 0f 62 75 |fptr%=val%..r.bu| 00003480 66 66 70 74 72 25 2b 3d 34 0d 15 7c 05 e1 0d 15 |ffptr%+=4..|....| 00003490 86 05 3a 0d 15 90 10 dd 20 f2 78 79 28 78 25 2c |..:..... .xy(x%,| 000034a0 79 25 29 0d 15 9a 10 21 62 75 66 66 70 74 72 25 |y%)....!buffptr%| 000034b0 3d 78 25 0d 15 a4 11 62 75 66 66 70 74 72 25 21 |=x%....buffptr%!| 000034c0 34 3d 79 25 0d 15 ae 0f 62 75 66 66 70 74 72 25 |4=y%....buffptr%| 000034d0 2b 3d 38 0d 15 b8 05 e1 0d 15 c2 05 3a 0d 15 cc |+=8.........:...| 000034e0 2a dd 20 a4 63 69 72 63 6c 65 5f 6f 62 6a 65 63 |*. .circle_objec| 000034f0 74 28 62 75 66 66 70 74 72 25 2c 6f 78 2c 6f 79 |t(buffptr%,ox,oy| 00003500 2c 72 2c 63 6f 6c 29 0d 15 d6 12 ea 20 5f 62 75 |,r,col)..... _bu| 00003510 66 66 25 2c 70 61 74 68 25 0d 15 e0 13 5f 62 75 |ff%,path%...._bu| 00003520 66 66 25 3d 62 75 66 66 70 74 72 25 0d 15 ea 13 |ff%=buffptr%....| 00003530 f2 61 64 64 28 32 29 20 3a f4 20 70 61 74 68 0d |.add(2) :. path.| 00003540 15 f4 11 62 75 66 66 70 74 72 25 2b 3d 35 2a 34 |...buffptr%+=5*4| 00003550 0d 15 fe 29 f2 61 64 64 28 2d 31 29 20 3a f2 61 |...).add(-1) :.a| 00003560 64 64 28 63 6f 6c 29 20 3a f2 61 64 64 28 30 29 |dd(col) :.add(0)| 00003570 20 3a f2 61 64 64 28 30 29 0d 16 08 12 70 61 74 | :.add(0)....pat| 00003580 68 25 3d 62 75 66 66 70 74 72 25 0d 16 12 34 62 |h%=buffptr%...4b| 00003590 75 66 66 70 74 72 25 3d a4 63 69 72 63 6c 65 5f |uffptr%=.circle_| 000035a0 70 61 74 68 28 62 75 66 66 70 74 72 25 2c 6f 78 |path(buffptr%,ox| 000035b0 2c 6f 79 2c 72 2c 62 75 66 66 65 6e 64 25 29 0d |,oy,r,buffend%).| 000035c0 16 1c 3c c8 99 20 22 44 72 61 77 5f 50 72 6f 63 |..<.. "Draw_Proc| 000035d0 65 73 73 50 61 74 68 22 2c 70 61 74 68 25 2c 33 |essPath",path%,3| 000035e0 3c 3c 32 38 2c 2c 2c 30 2c 2c 2c 28 31 3c 3c 33 |<<28,,,0,,,(1<<3| 000035f0 31 29 2b 5f 62 75 66 66 25 2b 38 0d 16 26 0f 62 |1)+_buff%+8..&.b| 00003600 75 66 66 70 74 72 25 2d 3d 34 0d 16 30 1c 5f 62 |uffptr%-=4..0._b| 00003610 75 66 66 25 21 34 3d 62 75 66 66 70 74 72 25 2d |uff%!4=buffptr%-| 00003620 5f 62 75 66 66 25 0d 16 3a 0d 3d 62 75 66 66 70 |_buff%..:.=buffp| 00003630 74 72 25 0d 16 44 05 3a 0d 16 4e 2d dd 20 a4 63 |tr%..D.:..N-. .c| 00003640 69 72 63 6c 65 5f 70 61 74 68 28 62 75 66 66 70 |ircle_path(buffp| 00003650 74 72 25 2c 6f 78 2c 6f 79 2c 72 2c 62 75 66 66 |tr%,ox,oy,r,buff| 00003660 65 6e 64 25 29 0d 16 58 12 ea 20 66 2c 6e 3a 66 |end%)..X.. f,n:f| 00003670 3d 31 2e 35 36 32 35 0d 16 62 1b 6f 78 3d 6f 78 |=1.5625..b.ox=ox| 00003680 2f 66 20 3a 6f 79 3d 6f 79 2f 66 20 3a 72 3d 72 |/f :oy=oy/f :r=r| 00003690 2f 66 0d 16 6c 0b 6e 3d 72 2f 31 2e 38 0d 16 76 |/f..l.n=r/1.8..v| 000036a0 18 f2 61 64 64 28 32 29 3a f2 78 79 28 6f 78 2c |..add(2):.xy(ox,| 000036b0 6f 79 2b 72 29 0d 16 80 36 f2 61 64 64 28 36 29 |oy+r)...6.add(6)| 000036c0 3a f2 78 79 28 6f 78 2b 6e 2c 6f 79 2b 72 29 3a |:.xy(ox+n,oy+r):| 000036d0 f2 78 79 28 6f 78 2b 72 2c 6f 79 2b 6e 29 3a f2 |.xy(ox+r,oy+n):.| 000036e0 78 79 28 6f 78 2b 72 2c 6f 79 29 0d 16 8a 36 f2 |xy(ox+r,oy)...6.| 000036f0 61 64 64 28 36 29 3a f2 78 79 28 6f 78 2b 72 2c |add(6):.xy(ox+r,| 00003700 6f 79 2d 6e 29 3a f2 78 79 28 6f 78 2b 6e 2c 6f |oy-n):.xy(ox+n,o| 00003710 79 2d 72 29 3a f2 78 79 28 6f 78 2c 6f 79 2d 72 |y-r):.xy(ox,oy-r| 00003720 29 0d 16 94 36 f2 61 64 64 28 36 29 3a f2 78 79 |)...6.add(6):.xy| 00003730 28 6f 78 2d 6e 2c 6f 79 2d 72 29 3a f2 78 79 28 |(ox-n,oy-r):.xy(| 00003740 6f 78 2d 72 2c 6f 79 2d 6e 29 3a f2 78 79 28 6f |ox-r,oy-n):.xy(o| 00003750 78 2d 72 2c 6f 79 29 0d 16 9e 36 f2 61 64 64 28 |x-r,oy)...6.add(| 00003760 36 29 3a f2 78 79 28 6f 78 2d 72 2c 6f 79 2b 6e |6):.xy(ox-r,oy+n| 00003770 29 3a f2 78 79 28 6f 78 2d 6e 2c 6f 79 2b 72 29 |):.xy(ox-n,oy+r)| 00003780 3a f2 78 79 28 6f 78 2c 6f 79 2b 72 29 0d 16 a8 |:.xy(ox,oy+r)...| 00003790 13 f2 61 64 64 28 35 29 3a f2 61 64 64 28 30 29 |..add(5):.add(0)| 000037a0 0d 16 b2 35 e7 20 62 75 66 66 65 6e 64 25 20 8c |...5. buffend% .| 000037b0 20 f2 61 64 64 28 62 75 66 66 65 6e 64 25 2d 62 | .add(buffend%-b| 000037c0 75 66 66 70 74 72 25 2d 31 36 29 3a 8b 20 f2 61 |uffptr%-16):. .a| 000037d0 64 64 28 30 29 0d 16 bc 0d 3d 62 75 66 66 70 74 |dd(0)....=buffpt| 000037e0 72 25 0d 16 c6 05 3a 0d 16 d0 1a dd 20 f2 63 69 |r%....:..... .ci| 000037f0 72 63 6c 65 28 6f 78 2c 6f 79 2c 72 2c 63 6f 6c |rcle(ox,oy,r,col| 00003800 29 0d 16 da 84 e7 20 70 61 74 68 25 20 80 20 62 |)..... path% . b| 00003810 75 66 66 25 20 8c 20 62 75 66 66 70 74 72 25 3d |uff% . buffptr%=| 00003820 a4 63 69 72 63 6c 65 5f 6f 62 6a 65 63 74 28 62 |.circle_object(b| 00003830 75 66 66 70 74 72 25 2c 6f 78 2c 6f 79 2c 72 2c |uffptr%,ox,oy,r,| 00003840 63 6f 6c 29 3a 21 62 75 66 66 70 74 72 25 3d 30 |col):!buffptr%=0| 00003850 3a 62 75 66 66 73 69 7a 65 25 3d 62 75 66 66 65 |:buffsize%=buffe| 00003860 6e 64 25 2d 62 75 66 66 70 74 72 25 2d 38 3a 62 |nd%-buffptr%-8:b| 00003870 75 66 66 70 74 72 25 21 34 3d 62 75 66 66 73 69 |uffptr%!4=buffsi| 00003880 7a 65 25 3a e1 0d 16 e4 13 e7 20 73 63 72 65 65 |ze%:...... scree| 00003890 6e 25 3d 30 20 8c 20 e1 0d 16 ee 20 c8 99 20 22 |n%=0 . .... .. "| 000038a0 43 6f 6c 6f 75 72 54 72 61 6e 73 5f 53 65 74 47 |ColourTrans_SetG| 000038b0 43 4f 4c 22 2c 63 6f 6c 0d 16 f8 27 e7 20 a4 63 |COL",col...'. .c| 000038c0 69 72 63 6c 65 5f 70 61 74 68 28 74 65 6d 70 62 |ircle_path(tempb| 000038d0 75 66 66 25 2c 6f 78 2c 6f 79 2c 72 2c 30 29 0d |uff%,ox,oy,r,0).| 000038e0 17 02 37 21 63 61 70 6a 6f 69 6e 25 3d 32 3a 63 |..7!capjoin%=2:c| 000038f0 61 70 6a 6f 69 6e 25 21 34 3d 30 3a 63 61 70 6a |apjoin%!4=0:capj| 00003900 6f 69 6e 25 21 38 3d 30 3a 63 61 70 6a 6f 69 6e |oin%!8=0:capjoin| 00003910 25 21 31 32 3d 30 0d 17 0c 31 c8 99 20 22 44 72 |%!12=0...1.. "Dr| 00003920 61 77 5f 53 74 72 6f 6b 65 22 2c 74 65 6d 70 62 |aw_Stroke",tempb| 00003930 75 66 66 25 2c 2c 2c 2c 31 30 32 34 2c 63 61 70 |uff%,,,,1024,cap| 00003940 6a 6f 69 6e 25 2c 30 0d 17 16 05 e1 0d ff |join%,0.......| 0000394e