10MODE 1 20PROC_set_colour(1,2,2,1) 30PROC_circle 40END 50 60DEFPROC_circle 70DIMP%63:FORI%=0TO15:READP%!(I%*4):NEXT:FORQ%=0TO2STEP2:R%=1023*-SGN(Q%<2):F%=512:G%=R%:MOVE511,R%:MOVE511,R%: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):PLOT 85,1024-F%,G%:PLOT85,F%,G%:NEXT,, 90DATA &60606F60,&606F6070,&6F606F7F,&6F6F6F7F,&6F6F7E6F,&6E6E6F6E,&6E6E6F6E,&6E6E6D6E,&6D6E6D5E,&5D6D6E5D,&5D6D5D6D,&6D5D5C6D,&5C5C5D5C,&5C4C6C5D,&5C5C5C5C,&4C5B5C4C 100ENDPROC 110 120DEFPROC_set_colour(Colour1,Colour2,Colour3,Colour4) 130 VDU 18,0,64 140 150 pair0 = (Colour1 AND 2) OR ((Colour2 AND 2) DIV 2) 160 pair0 = pair0 * 4 + pair0 170 pair1 = ((Colour1 AND 1)*2) OR (Colour2 AND 1) 180 pair1 = pair1 * 4 + pair1 190 pair2 = (Colour3 AND 2) OR ((Colour4 AND 2) DIV 2) 200 pair2 = pair2 * 4 + pair2 210 pair3 = ((Colour3 AND 1)*2) OR (Colour4 AND 1) 220 pair3 = pair3 * 4 + pair3 230 240 VDU pair0*16 OR pair1 250 VDU pair2*16 OR pair3 260 VDU pair0*16 OR pair1 270 VDU pair2*16 OR pair3 280ENDPROC