10
20
30 :
40 FOR M%=0 TO 15
50 FOR clip%=0 TO 1
60 MODE M%
70 REPEAT:H%=VPOS+1:PRINT:UNTILVPOS+1=H%:PRINTCHR$8;:W%=POS+1:CLS
80 gX%=W%*8:gY%=H%*(8-2*(M%=3 OR M%=6)):REPEAT:gX%=gX%*2:UNTILgX%>=&400:REPEAT:gY%=gY%*2:UNTILgY%>=&300
90 :
100 IF clip%:VDU 24,gX%*(1/16);gY%*(1/16);gX%*(15/16);gY%*(15/16);
110 GCOL 0,7:MOVE 0,0:IF clip%:MOVE gX%*(1/16),gY%*(1/16)
120 FOR A%=1 TO 7
130 x%=VALMID$("1100101",A%,1)*(gX%-1):IF clip%:x%=(x%+1)*(14/16)+gX%*(1/16)
140 y%=VALMID$("0110110",A%,1)*(gY%-1):IF clip%:y%=(y%+1)*(14/16)+gY%*(1/16)
150 DRAW x%,y%
160 NEXT A%
170 FOR offX%=-1 TO 1
180 FOR offY%=-1 TO 1
190 MOVE gX%*((offX%*7+6 )/16),gY%*((offY%*7+6 )/16)
200 DRAW gX%*((offX%*7+10)/16),gY%*((offY%*7+6 )/16)
210 DRAW gX%*((offX%*7+8 )/16),gY%*((offY%*7+10)/16)
220 DRAW gX%*((offX%*7+6 )/16),gY%*((offY%*7+6 )/16)
230 NEXT
240 NEXT
250 PRINT TAB(W%DIV2-3,H%DIV2-3);"MODE ";M%
260 IF clip%:PRINT TAB(W%DIV2-8,VPOS);"Graphics window"
270 PRINT TAB(W%DIV2-9,VPOS);"In graphics MODEs"
280 PRINT TAB(W%DIV2-10,VPOS);"there should be nine";CHR$8
290 PRINT TAB(W%DIV2-9,VPOS);"triangles, clipped"
300 PRINT TAB(W%DIV2-10,VPOS);"to the visible area."
310 IF INKEY(500)=8:M%=M%-2
320 NEXT clip%
330 NEXT M%