10MODE 1 20PROC_set_colour(1,2,2,1) 21PROC_circle(1024,511,511) 22PROC_set_colour(1,2,3,2) 30PROC_circle(512,511,511) 40END 50 60DEFPROC_circle(scale,cx,cy):RESTORE 100 70DIMP%63:FORI%=0TO15:READP%!(I%*4):NEXT:FORQ%=0TO2STEP2:R%=1023*-SGN(Q%<2):F%=512:G%=R%:MOVEcx,(R%-511)*scale DIV 1024+511:MOVEcx,(R%-511)*scale DIV 1024+511:FORS%=0TO1:FORA%=0TO63:IFS%THENZ%=P%?(63-A%)ELSEZ%=P%?A% 80X%=Z%DIV16:Y%=Z%MOD16:Y%=Y%+(16*((Y%AND8)<>0)):Z%=X%:X%=(1-S%)*X%-S%*Y%:Y%=(1-S%)*Y%-S%*Z%:G%=G%+Y%*SGN((Q%>1)+.5):F%=F%+X%*SGN((Q%=1ORQ%=2)+.5) 90PLOT 85,((F%-511)*scale DIV 1024)+cx,((G%-511)*scale DIV1024)+cy:PLOT 85,cx-((F%-511)*scale DIV 1024),((G%-511)*scale DIV1024)+cy:NEXT,, 100DATA &60606F60,&606F6070,&6F606F7F,&6F6F6F7F,&6F6F7E6F,&6E6E6F6E,&6E6E6F6E,&6E6E6D6E,&6D6E6D5E,&5D6D6E5D,&5D6D5D6D,&6D5D5C6D,&5C5C5D5C,&5C4C6C5D,&5C5C5C5C,&4C5B5C4C 110ENDPROC 120 130DEFPROC_set_colour(Colour1,Colour2,Colour3,Colour4) 140 VDU 18,0,64 150 160 pair0 = (Colour1 AND 2) OR ((Colour2 AND 2) DIV 2) 170 pair0 = pair0 * 4 + pair0 180 pair1 = ((Colour1 AND 1)*2) OR (Colour2 AND 1) 190 pair1 = pair1 * 4 + pair1 200 pair2 = (Colour3 AND 2) OR ((Colour4 AND 2) DIV 2) 210 pair2 = pair2 * 4 + pair2 220 pair3 = ((Colour3 AND 1)*2) OR (Colour4 AND 1) 230 pair3 = pair3 * 4 + pair3 240 250 VDU pair0*16 OR pair1 260 VDU pair2*16 OR pair3 270 VDU pair0*16 OR pair1 280 VDU pair2*16 OR pair3 290ENDPROC