10
20
30 :
40 PRINT "Screen mode: ";MODE
50 PRINT "Number of colours: ";VDU(96)+1
60 PRINT "Text window width: ";VDU(10)-VDU(8)+1
70 PRINT "Text window height: ";VDU(9)-VDU(11)+1
80 PRINT "Text foreground colour: ";(VDU(87)DIV8)ANDVDU(96)
90 PRINT "Text background colour: ";(VDU(88)DIV8)ANDVDU(96)
100 PRINT "Left colour mask: &";~VDU(98)
110 PRINT "Right colour mask: &";~VDU(99)
120 PRINT "Graphics window width: ";VDU(4)+256*VDU(5)-VDU(0)-256*VDU(1)+1
130 PRINT "Graphics window height: ";VDU(6)+256*VDU(7)-VDU(2)-256*VDU(3)+1
140 PRINT "Graphics X origin: ";VDU(12)+256*VDU(13)
150 PRINT "Graphics Y origin: ";VDU(14)+256*VDU(15)
160 PRINT "Graphics foreground (BBC): ";(VDU(89)DIV8)ANDVDU(96)
170 PRINT "Graphics background (BBC): ";(VDU(90)DIV8)ANDVDU(96)
180 PRINT "Graphics foreground (Other): ";VDU(109)
190 PRINT "Graphics background (Other): ";VDU(110)
200 PRINT "Foreground GCOL mode: ";VDU(91)
210 PRINT "Background GCOL mode: ";VDU(92)
220 PRINT "Cursor address: &";~VDU(74)+256*VDU(75)
230 PRINT "Screen start address: &";~256*VDU(78)
240 PRINT "Screen display address: &";~VDU(80)+256*VDU(81)
250 PRINT "Screen size: &";~256*VDU(84)
260 PRINT "Press SPACE";:A%=GET
270 :
280
290 A%=0:X%=1:os%=((USR&FFF4)AND&FF00)DIV256
300 FOR mode%=0 TO 7
310 MODE mode%
320 FOR colour%=0 TO 15
330 COLOUR colour%:PRINT "COLOUR ";
340 value%=FNcolour
350 COLOUR 7:PRINT;colour%;" ";value%
360 NEXT colour%
370 PRINT "Press SPACE";:A%=GET
380 NEXT mode%:PRINT
390 END
400 :
410 DEFFNcolour
420 IFos%>31:=(VDU(87)DIV8)ANDVDU(96)
430 col%=VDU(87)
440 FOR loop%=1 TO 3-INTSQR((VDU(96)+1)/4)
450 col%=4*INTSQR((col%DIV16)+1)+SQR((col%AND15)+1)-5
460 NEXT loop%
470 =col%