| |
Motorola 6845 CRT Controller
3B0-3BB Monochrome Monitor Adapter
3D0-3DC Color Graphics Adapter (mapped similarly)
3B0/3D0 port address decodes to 3B4/3D4
3B1/3D1 port address decodes to 3B5/3D5
3B2/3D2 port address decodes to 3B4/3D4
3B3/3D3 port address decodes to 3B5/3D5
3B4/3D4 6845 index register, selects which register [0-11h]
is to be accessed through port 3B5/3D5
3B5/3D5 6845 data register [0-11h] selected by port 3B4/3D4,
registers 0C-0F may be read. If a read occurs
without the adapter installed, FFh is returned.
3B6/3D6 port address decodes to 3B4/3D4
3B7/3D7 port address decodes to 3B5/3D5
3B8/3D8 6845 Mode control register
3B9/3D9 color select register on color adapter
3BA/3DA status register (read only)
3BB/3DB light pen strobe reset
3DC Preset Light pen latch
3DF CRT/CPU page register (PCjr only)
Registers: Accessed through ports 3B5 & 3D5 VALID VALUES
MONO CO40 CO80 GRPH
00 - Horiz. total characters 61 38 71 38
01 - Horiz. displayed characters per line 50 28 50 28
02 - Horiz. synch position 52 2D 5A 2D
03 - Horiz. synch width in characters 0F 0A 0A 0A
04 - Vert. total lines 19 1F 1F 7F
05 - Vert. total adjust (scan lines) 06 06 06 06
06 - Vert. displayed rows 19 19 19 64
07 - Vert. Synch position (character rows) 19 1C 1C 70
08 - Interlace mode 02 02 02 02
09 - Maximum scan line address 0D 07 07 01
0A - Cursor start (scan line) 0B 06 06 06
0B - Cursor end (scan line) 0C 07 07 07
0C - Start address (MSB) 00 00 00 00
0D - Start address (LSB) 00 00 00 00
0E - Cursor address (MSB) (read only) 00 -- -- --
0F - Cursor address (LSB) (read only) 00 -- -- --
10 - Light pen (MSB) (read only) -- -- -- --
11 - Light pen (LSB) (read only) -- -- -- --
Registers 00-0B are write only, registers 0C-11 are read only
Port 3B8 (Monochrome) (6845 Crt controller)
Port
3B8 |
Bit |
Dec |
Hex |
Description |
0 |
1 |
01h |
1 = 80x25 text |
1 |
2 |
02h |
not used |
2 |
4 |
04h |
not used |
3 |
8 |
08h |
1 = enable video signal |
4 |
16 |
10h |
not used |
5 |
32 |
20h |
1 = blinking on |
6 |
64 |
40h |
not used |
7 |
128 |
80h |
not used |
Port
3D8 |
Bit |
Dec |
Hex |
Description |
0 |
1 |
01h |
1 = 80x25 text, 0 =
40x25 text |
1 |
2 |
02h |
1 = 320x200 graphics,
0 = text |
2 |
4 |
04h |
1 = B/W, 0 = color |
3 |
8 |
08h |
1 = enable video signal |
4 |
16 |
10h |
1 = 640x200 B/W
graphics |
5 |
32 |
20h |
1 = blink, 0 = no blink |
6 |
64 |
40h |
not used |
7 |
128 |
80h |
not used |
Port
3D9 |
Bit |
Dec |
Hex |
Description |
0 |
1 |
01h |
screen/boarder
RGB |
1 |
2 |
02h |
2 |
4 |
04h |
3 |
8 |
08h |
select intensity
setting |
4 |
16 |
10h |
background intensity |
5 |
32 |
20h |
not used |
6 |
64 |
40h |
7 |
128 |
80h |
Port
3D9 |
Bit |
Dec |
Hex |
Description |
0 |
1 |
01h |
RGB for
background |
1 |
2 |
02h |
2 |
4 |
04h |
3 |
8 |
08h |
intensity |
4 |
16 |
10h |
not used |
5 |
32 |
20h |
1 = palette 1,
0=palette 0 (see below) |
6 |
64 |
40h |
not used |
7 |
128 |
80h |
Palette 0 = green, red, brown
Palette 1 = cyan, magenta, white
Port
3DA |
Bit |
Dec |
Hex |
Description |
0 |
1 |
01h |
1 = display enable,
RAM access is OK |
1 |
2 |
02h |
1 = light pen trigger
set |
2 |
4 |
04h |
0 = light pen on, 1 =
light pen off |
3 |
8 |
08h |
1 = vertical retrace,
RAM access is OK |
4 |
16 |
10h |
not used |
5 |
32 |
20h |
6 |
64 |
40h |
7 |
128 |
80h |
|