Difference between revisions of "Mode 7 Character Set"

From BeebWiki
Jump to: navigation, search
(Create page with adapation of table from ASCII, and outline how character errors can be used to diagnose RAM faults)
 
m (Top-bit-set characters are untranslated.)
 
Line 7: Line 7:
 
! 00
 
! 00
 
| ''[[VDU 0|NUL]]'' || ''[[VDU 16|DLE]]'' ||   (Space) || 0 || @ || P || £ || p
 
| ''[[VDU 0|NUL]]'' || ''[[VDU 16|DLE]]'' ||   (Space) || 0 || @ || P || £ || p
| ''[[VDU 0|NUL]]'' || ''Nothing'' ||   (Space) || 0 || @ || P || £ || p
+
| ''[[VDU 0|NUL]]'' || ''Nothing'' ||   (Space) || 0 || @ || P || – || p
 
|- style="text-align:center;vertical-align:top"
 
|- style="text-align:center;vertical-align:top"
 
! 01
 
! 01
Line 19: Line 19:
 
! 03
 
! 03
 
| ''[[VDU 3|ETX]]'' || ''[[VDU 19|DC3]]'' || # || 3 || C || S || c || s
 
| ''[[VDU 3|ETX]]'' || ''[[VDU 19|DC3]]'' || # || 3 || C || S || c || s
| ''Alpha Yellow'' || ''Graphic Yellow'' || # || 3 || C || S || c || s
+
| ''Alpha Yellow'' || ''Graphic Yellow'' || £ || 3 || C || S || c || s
 
|- style="text-align:center;vertical-align:top"
 
|- style="text-align:center;vertical-align:top"
 
! 04
 
! 04
Line 67: Line 67:
 
! 0F
 
! 0F
 
| ''[[VDU 15|SI]]'' || ''[[VDU 31|US]]''  || / || ? || O || – || o || ''[[VDU 127|DEL]]''
 
| ''[[VDU 15|SI]]'' || ''[[VDU 31|US]]''  || / || ? || O || – || o || ''[[VDU 127|DEL]]''
| ''Nothing'' || ''Release Graphics''  || / || ? || O || – || o || █
+
| ''Nothing'' || ''Release Graphics''  || / || ? || O || # || o || █
 
|}
 
|}
 
The above table lists the character set used in MODE 7, along with the hexadecimal value associated with each character. Items listed in italic are control codes: they are not printed verbatim on screen, but may affect the display. The lower and upper halves of the character set are very similar; the main difference is that characters 0x00 - 0x1F are the same control characters as used in MODEs 0-6, and characters 0x80-0x9F are Teletext control characters that change how other characters are displayed in MODE 7.
 
The above table lists the character set used in MODE 7, along with the hexadecimal value associated with each character. Items listed in italic are control codes: they are not printed verbatim on screen, but may affect the display. The lower and upper halves of the character set are very similar; the main difference is that characters 0x00 - 0x1F are the same control characters as used in MODEs 0-6, and characters 0x80-0x9F are Teletext control characters that change how other characters are displayed in MODE 7.
 
  
 
==Diagnosing RAM Faults==
 
==Diagnosing RAM Faults==
Line 90: Line 89:
 
:RQSYS
 
:RQSYS
 
The difference between 'B' (0x42) and 'R' (0x52) is sixteen characters. 16=2<sup>4</sup>, so the RAM chip(s) that store bit 4 may be at fault. Alternatively, comparing the binary values (0b010'''0'''0010 and 0b010'''1'''0010) we see that the fourth bit is incorrect.
 
The difference between 'B' (0x42) and 'R' (0x52) is sixteen characters. 16=2<sup>4</sup>, so the RAM chip(s) that store bit 4 may be at fault. Alternatively, comparing the binary values (0b010'''0'''0010 and 0b010'''1'''0010) we see that the fourth bit is incorrect.
 
  
 
[[Category:Display]][[Category:Repair]]
 
[[Category:Display]][[Category:Repair]]

Latest revision as of 00:52, 28 October 2019

MODE 7 character set
00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
00 NUL DLE   (Space) 0 @ P £ p NUL Nothing   (Space) 0 @ P p
01 SOH DC1  ! 1 A Q a q Alpha Red Graphic Red  ! 1 A Q a q
02 STX DC2 " 2 B R b r Alpha Green Graphic Green " 2 B R b r
03 ETX DC3 # 3 C S c s Alpha Yellow Graphic Yellow £ 3 C S c s
04 EOT DC4 $ 4 D T d t Alpha Blue Graphic Blue $ 4 D T d t
05 ENQ NAK  % 5 E U e u Alpha Magenta Graphic Magenta  % 5 E U e u
06 ACK SYN & 6 F V f v Alpha Cyan Graphic Cyan & 6 F V f v
07 BEL ETB ' 7 G W g w Alpha White Graphic White ' 7 G W g w
08 BS CAN ( 8 H X h x Flash Conceal Display ( 8 H X h x
09 HT EM ) 9 I Y i y Steady Contiguous Graphics ) 9 I Y i y
0A LF SUB *  : J Z j z Nothing Separated Graphics *  : J Z j z
0B VT ESC +  ; K k ¼ Nothing Nothing +  ; K k ¼
0C FF FS , < L ½ l Normal Height Black Background , < L ½ l
0D CR GS - = M m ¾ Double Height New Background - = M m ¾
0E SO RS . > N n ÷ Nothing Hold Graphics . > N n ÷
0F SI US /  ? O o DEL Nothing Release Graphics /  ? O # o

The above table lists the character set used in MODE 7, along with the hexadecimal value associated with each character. Items listed in italic are control codes: they are not printed verbatim on screen, but may affect the display. The lower and upper halves of the character set are very similar; the main difference is that characters 0x00 - 0x1F are the same control characters as used in MODEs 0-6, and characters 0x80-0x9F are Teletext control characters that change how other characters are displayed in MODE 7.

Diagnosing RAM Faults

If incorrect characters are displayed in a MODE 7 screen (such as the default boot screen), a regular pattern may indicate a fault in a particular RAM chip. The RAM chips in BBC Microcomputers each store one bit for every address, so eight are needed to store a byte of data in a particular address. (Some such as the Model B use sixteen chips in two banks of 8). Because MODE 7 uses one byte to select a character from the above character set, a fault in one bit will cause an incorrect character to be displayed.

For example, if the text:

BBC Computer 32K
Acorn DFS
BASIC

is displayed as

CCC Comptuds 32K
@bnrn DFS
CASIC

Every incorrect character is one character code away from the correct character: 'B' (0x42) is displayed as 'C' (0x43), 'A' (0x41) is displayed as '@' (0x40), and 'o' (0x6F) is displayed as 'n' (0x6E). 1 is 20 (2 to the power of 0), so the RAM chip(s) that store bit 0 may be at fault. Alternatively, comparing the binary values for 'B' (0b01000010) and 'C' (0b01000011) shows that it is the least significant bit (bit 0) that is incorrect.

If the text:

BASIC

is displayed as

RQSYS

The difference between 'B' (0x42) and 'R' (0x52) is sixteen characters. 16=24, so the RAM chip(s) that store bit 4 may be at fault. Alternatively, comparing the binary values (0b01000010 and 0b01010010) we see that the fourth bit is incorrect.