
LM1276 Address Map
(Continued)
CHARACTER ROM
The 512 font characters from 0x0000 to 0x7FFF can be read from ROM by addressing the individual pixel rows of the desired
character. Since the characters have 12 columns, it takes two bytes to read a given row of pixels within one character. Since the
characters have 18 rows, a total of 36 bytes are needed to read the entire character. The 16-bit address for reading a row of pixels
is formed as follows:
Address = (N * 0x1000) + (I * 0x40) + (R * 0x02) + H
where: N = bank number (0x0
≤
N
≤
0x7)
I = Character Index within its respective bank (0x00
≤
I
≤
0x3F)
R = row of pixels within the character (0x00
≤
R
≤
0x11)
H = 0 for low byte, 1 for high byte
Note that bit 0 of the Character Font Access Register, 0x8402, needs to be set to 0 to read the 2-color fonts. In order to read the
four-color fonts, two complete reads are needed. Set bit 0 of the Character Font Access Register, 0x8402, to a 0 to read the least
significant plane and to a 1 to read the most significant plane. See
Table 3
.
TABLE 3. Character ROM Addressing
Address Range
0x0000–0x2FFF
R/W
R
Description
0x8402[0]
0
N
These are the first 3 banks of two-color, read-only ROM character
fonts. There are 192 total characters in this range.
0x0
0x1
0x2
0x3
0x3000–0x3FFF
R
This is bank 3 of four-color, read-only ROM character fonts. There
are 64 total characters in this range.
These are banks 4, 5 and 6 of two-color, read-only ROM character
fonts. There are 192 characters in this range.
0/1
0x4000–0x6FFF
R
0
0x4
0x5
0x6
0x7
0x7000–0x7FFF
R
This is bank 7 of four-color, read-only ROM character fonts. There
are 64 total characters in this range.
0/1
When read back, the low byte will contain the first eight pixels of the row with data bit 0 corresponding to the left most bit in the
pixel row. The high byte will contain the remaining four pixels in the least significant nibble. The remaining 4 bits, shown as “X”,
are “don’t care” bits, and should be discarded. Bit 3 of the high byte corresponds to the right most pixel in the pixel row. This is
shown in
Table 4
.
TABLE 4. Character ROM Read Data
Register
Fonts - 2 Color
Address
0x0000–0x2FFE
+1
0x3000–0x3FFE
+1
0x4000–0x6FFE
+1
0x7000–0x7FFE
+1
D7
D6
D5
D4
PIXEL[7:0]
X
PIXEL[7:0]
X
PIXEL[7:0]
X
PIXEL[7:0]
X
D3
D2
D1
D0
X
X
X
PIXEL[11:8]
Fonts - 4 Color
X
X
X
PIXEL[11:8]
Fonts - 2 Color
X
X
X
PIXEL[11:8]
Fonts - 4 Color
X
X
X
PIXEL[11:8]
CHAR_CODE[3:0] or
ATTR_CODE
Display Page
0x8000–0x83FF
X
CHAR_CODE[7:4] or
reserved
DISPLAY PAGE RAM
Full 512 Displayable Character Access
This address range (0x8000–0x81FF) contains the 512 characters, which comprise the displayable OSD screens. There must be
at least one End-Of-Screen code (0x00) in this range to prevent unpredictable behavior.
NOTE:
To avoid any unpredictable
behavior, this range should be cleared by writing a 0 to bit 3 of the FRMCTRL1 Register, 0x8400, immediately after power up.
There may also be one or more pairs of End-Of-Line and Skip Line codes. The character code is 9 bits long. The codes and
characters are written as 8-bit bytes, but are stored with their attributes in groups of 13 bits. When writing, one byte describes a
displayed character (CC), Attribute Code (AC), End-Of-Screen (EOS), End-Of-Line (EOL) or Skip Line (SL) code.
When reading characters from RAM, bit 1 of the Character Font Access Register (0x8402) determines whether the lower 8 bits
or upper 5 bits of the Page RAM are returned.
Table 5
gives the lower byte read, which is the first 8 character code bits when bit
1 of the Character Font Access Register is a 0.
Table 6
gives the upper byte read, which is the 9th character code bit and 4
attribute code bits when this bit is set to a 1.
L
www.national.com
26