10
20 REPEATINPUT"Mode: "m%
30 ON m%+1 GOSUB 110,140,160,180,230,260,290,320 ELSE GOSUB 320
40 REPEATy%=VPOS:PRINT:UNTILVPOS=y%:VDU8:x%=POS+1:y%=y%+1:CLS
50 PRINTTAB(x%DIV6,y%-5);"MODE ";m%;"/";FNfx(135,0)DIV256
60 PRINTSPC(x%DIV6+1);x%;"x";y%
70 PRINTSPC(x%DIV6);x%*dx%;"x";y%*32;"px"
80 MOVE 32,32:DRAW 32,255-32:DRAW 383-32,255-32:DRAW 383-32,32:DRAW 32,32
90 VDU30:UNTIL0
100 :
110 MODE0:VDU28;31,23,22,12, 24,0;0;383;319; :
120 COLOUR0:COLOUR255:GCOL0,0:CLS:dx%=16:RETURN
130 :
140 CLS:RETURN :
150 :
160 MODE4:VDU28;31,15,22,12, 24,0;0;383;319; :
161 COLOUR0:COLOUR255:GCOL0,0:CLS:dx%=32:RETURN
170 :
180 MODE3:VDU23;4,38;0;0;0, 23;7,30;0;0;0, 23;9,7;0;0;0 :
190 IF HIMEM=&3000:?&361=7
200 VDU28;24,23,17,12 :
210 COLOUR0:COLOUR255:GCOL0,0:CLS:dx%=16:RETURN
220 :
230 MODE4:VDU28;31,11,22,12, 24,0;0;383;319; :
240 COLOUR0:COLOUR255:GCOL0,0:CLS:dx%=32:RETURN
250 :
260 MODE4:VDU28;31,15,24,12, 24,0;0;383;319; :
270 COLOUR0:COLOUR255:GCOL0,0:CLS:dx%=32:RETURN
280 :
290 MODE4:VDU28;31,11,24,12, 24,0;0;383;255; :
300 COLOUR0:COLOUR255:GCOL0,0:CLS:dx%=32:RETURN
310 :
320 CLS:RETURN :
330 :
340 :
350 DEFFNbyte(A%,X%,Y%)=((USR&FFF4)AND&FF00)DIV256
360 DEFFNfx(A%,X%):LOCAL Y%:Y%=X%DIV256:=((USR&FFF4)AND&FFFF00)DIV256