10
20
30 :
40 A%=0:X%=1:os%=((USR&FFF4)AND&FF00)DIV256:noBGD%=(os%=28)
50 IF os%<8 THEN setFL%=8:setBR%=16 ELSE setFL%=16:setBR%=8
60 M$="||":IFos%<6:M$="MODE ":ON ERROR M$="|"+M$:IF ERR<>220:M$="||"
70 IF ASCM$<>124:OSCLIM$
80 M$=MID$(M$,2):ON ERROR OFF
90 :
100 FOR M%=-1 TO 127:IF M%=0:MODE 128
110 IF M%>=0:VDU 22,128+M%:OSCLI M$+STR$(128+M%)
120 PRINT ''CHR$8;:W%=POS+1:SM%=W%<32 AND W%>1:WD%=31+16*SM%:IF POS:PRINT'CHR$11;CHR$11;
130 A$="MODE "+STR$M%+" "+LEFT$("- &"+RIGHT$("0"+STR$~(M% AND -8),2)+"+"+STR$(M% AND 7),M%>7)
140 IF M%>=0:PRINT SPC(WD%/2-LENA$/2+1);A$
150 FOR rgb%=0 TO 31
160 C%=(rgb% AND 7)-setBR%*((rgb%AND8)<>0)-setFL%*((rgb%AND16)<>0)
170 IF noBGD%:COLOUR C% ELSE COLOUR C% EOR 7:COLOUR 128+C%
180 PRINT MID$(" "+RIGHT$("0"+STR$C%,2)+" ",1-SM%,4+2*SM%);
190 IF (C% AND 7)=7:COLOUR 128:COLOUR 7:IF SM%:PRINT CHR$8
200 IF (C% AND 7)=7:IF W%>39:IF rgb%>7:PRINT " ";MID$("BrightFlash Br+Fl ",(rgb% DIV 8)*6-5,6);
210 IF (C% AND 7)=7:PRINT CHR$8
220 NEXT:FOR C%=32 TO 127
230 COLOUR C% AND 7:IF noBGD%=0:COLOUR 135-(C% AND 7)
240 IF C%<>127:VDU C% ELSE VDU 32
250 IF (C% AND WD%)=WD%:COLOUR 128:PRINT CHR$8
260 NEXT:FOR C%=0 TO 31
270 IF (C% AND 7)=0:RESTORE:IF SM%:FOR B%=1 TO 8:READ A$:NEXT
280 IF noBGD%:COLOUR C% ELSE COLOUR C% EOR 7:COLOUR 128+C%
290 READ A$:PRINTA$;
300 IF (C% AND 7)=7:COLOUR 128:PRINT CHR$8
310 NEXT:IF M%>=0:VDU 20 ELSE COLOUR 128:COLOUR 7
320 A$=" G R A Y S C A L E "
330 IF SM%:A$=" GRAY SCALE "
340 B%=(WD%+1)/4:FOR A%=0 TO 3
350 IF noBGD%=0:COLOUR 7-(A%AND2)*3.5:COLOUR 128+(A%AND1)*8+(A%AND2)*3.5
360 IF noBGD%=0:PRINT MID$(A$,A%*B%+1,(WD%+1)/8);MID$(A$,A%*B%+B%/2+1,(WD%+1)/8);
370 NEXT:IF noBGD%=0:COLOUR 128:COLOUR 7:PRINT
380 IF SM%:IF noBGD%=0:PRINT"Backgd should be"CHR$8'" named colour"
390 IF NOT SM%:PRINT SPC2"Where 8+ colours supported,"'LEFT$("backg'nd",noBGD%=0);SPC(noBGD%AND3);" should be named colour."
400 IF NOT SM%:IF M%>=0:PRINT SPC3"If COLOUR &C0+n supported,"'SPC3"border should be colour ";M% AND 31;"."
410 IF SM%:IF M%>=0:PRINT "Border colour=";M% AND 31;"."
420 IF M%>=0:COLOUR 192+M%:COLOUR 128
430 IF M%=7:PRINT'" If supported this should be teletext"'CHR$147;STRING$(38,",")'SPC2;
440 IF M%=7:FOR C%=1 TO 7:PRINT CHR$(128+C%);MID$("RED GRN YELWBLUEMGNTCYANWHTE",C%*4-3,4);:NEXT:PRINT'CHR$149;STRING$(38,",")
450 REPEATUNTILGET<33:IF M%=31:M%=95
460 NEXT
470 DATA Black,Red,Grn,Yel,Blue,Magen,Cyan,White
480 DATA Bk,Rd,Gn,Yl,Bl,Mg,Cy,Wt