Computers Overview
Commodore PET
Sinclair ZX80
Sinclair ZX81
BBC Micro
Sinclair Spectrum
Memotech MTX
    About
    Library
        Adverts
        Memotech
        Miscellaneous
        Program Code
        Reviews
        Technical

            Component Data

            Data Books
            Data Sheets
            Design Guides
            Tutorials

            MTX Specific

            Firmware
            Tech Notes
    Manuals
    Options
    Photos
    Projects
    Repairs
    Software
    Tools
    User Groups
    Video Wall
Memotech CP/M
Atari ST
Commodore Amiga
PDAs
DEC 3000 AXP
OpenVMS
Raspberry Pi

 

 
 
 

The Memotech MTX Series

The FDX 80 Column Graphics Card

Generic 6845 Based Graphics Card

 

The Motorola MC6845 CRTC

Overview

The details on these pages are intended to provide an overview of the 8645 operation with specific reference to its use in the Memotech 80 Column board, for an in depth discussion of the chip, refer to the MC 8645 datasheet.

None of the published Memotech documentation includes a schematic of the 80 Column board but Peter Kretzschmar has supplied a photocopy of a very early drawing of the 80 Column board originally designed for the SM1 computer. As far as I can tell, the schematic is an accurate representation of the FDX 80 Column card, I used this drawing during my fault finding of a faulty 80 Column card, and decided that it was worth spending the time to produce a decent copy of the schematic. My KiCad version is available for download from the Manuals page.

The following pages contain references to my KiCad schematic, signal names defined on the schematic are indicated like this (SRLD) and the locations of the ICs on the 80C PCB like this (A1). Signal names were taken from the original Memotech sketch, and in most cases, the function of the interconnections is clear, but in a few cases, I have tried to infer the function of some of the signals from their names.

 

Mnemonic Meaning
6116OE Refresh RAMs Output Enable (Read Mode)
A0 .. A7 Z80 Address bus low order byte
ANENBL Alpha Numeric Character ROM Enable
ASCWE ASCII RAM Write Enable
ATRCK Attribute Clock (1.875 MHz pulse with dot clock period)
ATRWE Attribute RAM Write Enable
BLINK  80C Blink Attribute is set 
CRTCCS CRTC Chip Select
CRTCCK CRTC Clock (1.875 MHz)
CRTCE CRTC Enable
CURSOR  Indicates a valid cursor address 
D0 .. D7 Z80 Data bus
DO0 .. DO7 CRTC "Private" data bus
DEN  Display Enable (CRTC is providing addressing in the active display area) 
DISEN  Display Enable Latch (CRTC is providing addressing in the active display area)
DROE Display RAM Output Enable (Read)
GRENBL Graphics Character ROM Enable
HSy Horizontal Sync
RSTRB Read Strobe (Read Strobe for Alpha/Graphics or Attribute Code)
SRCK Shift Register Clock (15 MHz)
SRLD Shift Register Load
Sy Composite Sync
VCLK Video Clock (Dot Clock) (15 Mhz)
VSy Vertical Sync
   

The 80C board design is very similar to the video adapters used in early IBM PCs. In terms of its capabilities, it sits somewhere between the Monochrome Display Adapter (MDA) and the Colour Graphics Adapter (CGA).

The FDX 80C card has much the same architecture as the IBM MDA design, like the MDA, the 80C includes a 2K character memory and a 2K attribute memory.

The MDA did not have any pixel addressable graphics modes, it had only a single text mode and all screen characters were generated from the 256 characters available in the character generator PROM.

Although not featuring colour, the MDA used a number of text attributes, e.g., underline, bright, reverse video and blink to provide some differentiation between the characters.

The 80C board supports additional attributes for RGB colour and incorporates an additional character generator ROM for graphics characters.

The block diagram for the MC6845 is shown below : (click the image to maximise it).

As the diagram shows, the 6845 has 18 internal, 8 bit, registers that are programmed by the CPU and used to control all of the video timing attributes etc. Depending on the individual register, it may be read-only (ro), write-only (wo) or read-write (rw), and is accessed via the system data bus.

The functions of these internal registers is fully described in the MC6845 datasheet and won't be discussed in detail on this page but the table summarises the registers and their function.

Register

Register File

Units
R0  (wo) Horizontal Total Chars
R1  (wo) Horizontal Displayed Chars
R2  (wo) Horizontal Sync Pos. Chars
R3  (wo) Horizontal Sync Width Chars
R4  (wo) Vertical Total Char Rows
R5  (wo) Vertical Total Adjust Scan Line
R6  (wo) Vertical Displayed Char Row
R7  (wo) Vertical Sync Pos. Char Row
R8  (wo) Interlace Mode  - - - - - -
R9  (wo) Maximum Scan Line Address Scan Line
R10  (wo) Cursor Start Scan Line
R11  (wo) Cursor End Scan Line
R12  (wo) Start Address (H)  - - - - - -
R13  (wo) Start Address (L)  - - - - - -
R14  (rw) Cursor (H)  - - - - - -
R15  (rw) Cursor (L)  - - - - - -
R16  (ro) Light Pen (H)  - - - - - -
R17  (ro) Light Pen (L)  - - - - - -

 

Motorola MC6845 Memory Usage

As shown in the block diagram at the top of the page, the 6845 uses data from both RAM and ROM in order to generate and refresh the display :

Video Display Memory (Refresh RAM)
Is used to store a character code for each character position on the screen. The Refresh RAM is repeatedly accessed by the CRTC when it is required to repaint the scan lines during each frame display and by the CPU to change the character displayed. Since the refresh RAM must be accessed by both the CPU and the CRTC, access to it must be multiplexed using logic external to the CRTC.

The FDX 80 column card, having 80 x 24 character positions, requires 1920 storage locations to buffer the data used for screen refresh. Each of the 1920 character locations has one 16-bit data word associated with it, provided by two Toshiba TMM2016AP-15 (2K x 8-bit) SRAM chips.

The most significant byte of the character word stores the address of the shape in the character generator PROM and the least significant word, called the attribute byte, controls the way in which the character is displayed and which PROM is selected. The effect of the bits in the attribute byte depends on whether a colour or monochrome monitor is being used.

 

Character Generator (ROM)
Is used to convert character codes from Video Display Memory into dot patterns for video generation.

All of the characters that can be generated by the 80 column card are defined in two character generator (CG) PROMs, one for ALPHA characters and one for for bit-mapped GRAPHICS characters, each PROM containing 256 characters or shapes.

80C Attribute Byte

The effect of the bits in the Attribute byte is different depending on whether a colour or monochrome display is being used.

 

The bits in the Attribute byte can be combined, for example, to produce an alpha-character in white text on a blue background with no blink, the attribute byte would be 00100111

Bit

Monochrome Display

Colour Display

0

Underline

Red foreground

1

(no effect)

Green foreground

2

Bright Up

Blue foreground

3

(no effect)

Red background

4

Reverse Video

Green background

5

Background

Blue background

6

Blink

7

Graphics Mode

80C Character Matrix

As described earlier, a character set for raster scanning could be formed using an 8 x 8 matrix, with all letters in upper case, the example text shown below is very readable.

However, to display lower case characters using the same matrix, letters with tails, such as "g", "j", "q", etc. would need to be displayed with an offset from the baseline - for example :

As illustrated above, this would result in ugly screen output which would be tiring to read. To display these lower case letters correctly when using a mixed upper & lower case graphics set, the descenders need to be displayed below the normal character baseline. In order for the 80 Column card to be able to display true descenders, characters are formed using a 7 x 10 matrix.

 

80C ALPHA PROM
The ALPHA character generator contains 3 sets of characters, the "standard" set of 96 ASCII symbols, an alternate set of 96 slightly different ASCII symbols, and a set of 64 "special" graphics characters, such as direction arrows, chess symbols, etc.

For example, the standard ALPHA character set is as shown.

The alternative character sets are chosen by setting the appropriate high order bits in the ASCII Byte.
80C GRAPHICS PROM
The 80C 80 x 24 character screen can be used to display very low resolution "graphics", with each character position capable of displaying 8 individual pixels, giving  a screen resolution of 160 x 96 pixels.

The GRAPHICS character generator PROM contains the 256 permutations of 8 pixels per character. Bits D0..D7 represent the pixels in the the graphics character block.

Graphics Block 00000001 00000010 10011001

 

 

Raster Scan Displays  <  Previous Page   Goto   Next Page  >  MC6845 Display Generation

mailto: Webmaster

 Terms & Conditions