Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Hardware - <b> 6845 - motorola crt controller</b> http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
                       6845 - Motorola 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/write)       00   --   --   --
        0F - Cursor address (LSB) (read/write)       00   --   --   --
        10 - Light pen (MSB)   (read only)           --   --   --   --
        11 - Light pen (LSB)   (read only)           --   --   --   --

        - Registers 00-0D are write only, registers 0E-0F are read/write and
          registers 10-11 are read only
        - Cursor address is calculated with using the following (row*80)+col

                        6845 - Port 3B8 (Monochrome)

        |7|6|5|4|3|2|1|0|  3B8 CRT Control Port
         | | | | | | | +---- 1 = 80x25 text
         | | | | | +------- unused
         | | | | +-------- 1 = enable video signal
         | | | +--------- unused
         | | +---------- 1 = blinking on
         +------------- unused

                          6845 - Port 3D8 (Color)

        |7|6|5|4|3|2|1|0|  3D8 Mode Select Register
         | | | | | | | +---- 1 = 80x25 text, 0 = 40x25 text
         | | | | | | +----- 1 = 320x200 graphics, 0 = text
         | | | | | +------ 1 = B/W, 0 = color
         | | | | +------- 1 = enable video signal
         | | | +-------- 1 = 640x200 B/W graphics
         | | +--------- 1 = blink, 0 = no blink
         +------------ unused

                      6845 - Port 3D9 Color Text Modes

        |7|6|5|4|3|2|1|0|  3D9 Color Select Register (3B9 not used)
         | | | | | +-------- screen/border RGB
         | | | | +--------- select intensity setting
         | | | +---------- background intensity
         +--------------- unused

                    6845 - Port 3D9 Color Graphics Modes

        |7|6|5|4|3|2|1|0|  3D9 Color Select Register (3B9 not used)
         | | | | | +-------- RGB for background
         | | | | +--------- intensity
         | | | +---------- unused
         | | +----------- 1 = palette 1, 0=palette 0 (see below)
         +-------------- unused

          Palette 0 = green, red, brown
          Palette 1 = cyan, magenta, white

                      6845 - Port 3DA  Status Register

        |7|6|5|4|3|2|1|0|  3DA Status Register
         | | | | | | | +---- 1 = display enable, RAM access is OK
         | | | | | | +----- 1 = light pen trigger set
         | | | | | +------ 0 = light pen on, 1 = light pen off
         | | | | +------- 1 = vertical retrace, RAM access OK for next 1.25ms
         +-------------- unused

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson