Macintosh Quadra Built-In Video

This article discusses a number of general Quadra video topics, details how
to wire the video connector sense pins to access all the Quadra's supported
video modes, and describes the memory configurations necessary to support
each of the video modes at specific pixel depths.

[Note: You may want to use a mono-spaced, 10-point font to ensure that that
that tables in the following sections are formatted correctly.]


General Quadra Video Design Philosophy
--------------------------------------
The Quadras were designed with a flexible video hardware section in order to
support a wide variety of displays.  Since the purchaser of one of these CPUs
is paying for a frame buffer on the motherboard (whether (s)he wants it or
not), and since the Quadras were designed to be high performance machines,
the frame buffer was designed to be both very flexible (to support most
displays a user may want to use) and to be relatively high performance (to
match the computer's capabilities).

Obviously every display made by every 3rd party monitor vendor can't be
supported by the onboard video, but the Quadras do support a much wider range
of displays at a higher level of performance than any previous Macintosh.
The Quadra 700 and 900 support pixel depths ranging from 1 to 32 bits per
pixel (bpp), Apple displays ranging from the 512 x 384 12-inch color monitor
through the 1152 x 870 21-inch color monitor, pixel clocks ranging from 12 to
100 MHz, and a variety of industry standards such as VGA, SVGA, NTSC, and
PAL.  The Mac Quadra video port produces RS-343 RGB, and also provides
horizontal, vertical and composite sync outputs.  Composite or S-video output
is not provided, but can be accomplished by use of an external
RGB-to-composite encoder.  The Quadra 700 and 900 also support Apple
convolution for flicker-reduction on interlaced displays (i.e., NTSC and PAL)
at up to 8 bpp.  The Mac Quadras automatically detect the type of display
attached to the video connector via 3 'sense' pins on the video connector.
Depending on the wiring of these 3 pins, software in ROM configures the video
hardware for one the supported display types.  (A full description of sense
pin wiring and supported display types follows later in this article.)

The Quadra 700/900 provide the highest built-in video performance of any
Macintosh CPU to date.  In a (very) simplified graphics model, we could say
that performance depends on two main factors: processor horsepower and the
bandwidth the processor has into frame  buffer memory.   These machines
already have a fast processor - the 68040 - which runs standard 32-bit
QuickDraw.  To provide high bandwidth into frame buffer memory, dedicated
video RAM (VRAM) was used for the frame buffer, and that VRAM was placed
directly on the 68040 processor's local bus.  This provides the 68040 the
same access time into frame buffer memory that it has into main system RAM.
(The Quadra frame buffer can support transfer rates in excess of 40
MBytes/sec.)  In addition, memory options such as fast page mode are
supported, which can improve graphics performance for operations such as
scrolling, offscreen-to-onscreen pixmap transfers, etc.

In a number of cases the design was optimized for high performance over low
cost.  A good example of this is 32 bpp operation on Apple's standard 13-inch
RGB monitor at 640 x 480 resolution (and this also applies to VGA and NTSC),
which is probably the most common color monitor in use on the Macintosh.  The
actual number of memory bytes needed to support 24 bpp is 640 x 480 x 3 =
921,600.  This would seem to fit within 1 MByte of memory (as is the case
with the Apple 8*24 video card), but the Quadras actually require 2 MBytes of
VRAM for this mode.  The 8*24 card supports 24 bpp at 640 x 480 by using a
storage mode called 'chunky planar' to fully utilize all its 1 MByte of VRAM.
However, this results in having to perform 3 separate memory accesses for
each 24-bit pixel read from or written to the frame buffer.  (This is done in
hardware so software only performs a single read or write.)  On a NuBus video
card, this inefficiency is partially masked by the synchronization delays
which occur at the processor-bus/NuBus interface.  However, when frame buffer
memory is placed directly on the processor bus, this approach results in a
nearly 3X performance degradation.  This was judged unacceptable for the
Quadras.  Each 24-bit pixel occupies one longword (4-bytes) in VRAM, so the
Quadras actually provide 32 bpp for the 640 x 480 resolution.  This pushes
the memory requirement for this mode over the 1 MByte boundary (640 x 480 x 4
= 1,228,800 bytes).  Performance is improved still more by another frame
buffer architectural feature.  Video memory in the Quadras is organized into
4 'banks' of 512 KBytes per bank.  As mentioned earlier, Quadra VRAM can
operate in fast page mode.  In addition, each bank of VRAM operates in fast
page mode independently of the other 3 banks.  This causes the number of
in-page 'hits' to increase, and thus improves the effective bandwidth into
the frame buffer.  Also, at 32 bpp, 640 x 480 resolution, each row is set to
4096 bytes, or 1024 32-bit pixels.  Each successive row is assigned to a
different VRAM bank (modulo 4, of course).  This memory organization
improves performance during commonly performed graphics operations such as
vertical scrolling.

In any design there are a number of tradeoffs to be made, and this is
certainly true for the frame buffer in the Mac Quadra machines.  While the
video does operate at 32 bpp on up to 16-inch displays, it does not support
21-inch displays at this pixel depth since this would have significantly
raised the cost of the motherboard.  (Memory capacity and bus bandwidths
would essentially have to double, and this would be expensive.)  It does
support NTSC and PAL timing, but does not provide a composite video output.
While it is much faster than any non-accelerated video card, there are
accelerated video cards that are faster (and much more expensive, too, by the
way).  A separate graphics processor was not added primarily for cost
reasons.  However, a graphics processor such as the 29000 RISC chip on the
8*24GC card can only speed up the graphics operations that it was designed to
know about.  If an application program bypasses QuickDraw (which is what most
Mac graphics processors are designed to accelerate), a graphics accelerator
will not improve performance, and can actually cause a performance
degradation.

Overall, the Macintosh Quadra video provides a reasonable compromise of cost,
performance, and features, which provides the video needed by the majority of
Macintosh users at a reasonable price.



Supported Display Configurations and Monitor ID Codes
-----------------------------------------------------
The Quadra frame buffer determines what type of display is attached to the
video connector by examining the state of 3 sense line pins.  The following
chart details how these three pins must be wired for each of the supported
display types.  For each supported display, the screen resolution (horiz.
pixels  X  vertical pixels), dot clock frequency, and the vertical and
horizontal scan rates are listed.

Basically, the Quadra 700 & 900 support any display, whether from Apple or
from another vendor, that meets one of the following specifications:

STANDARD SENSE CODES:
 
                       Sense pins       Hor x Vert    Dot      Vert     Horiz
Display                10   7    4      Pixels        Clock    Refrsh   Refrsh
-----------            -----------      ----------    -----    ------   -----