Macintosh IIci: Causes for IIci Incompatibilities (Part 3 of 4)


This is part three of a four part article detailing the changes which
caused the compatibility problems the Macintosh IIci faced. A significant
number of Macintosh IIci compatibility problems were related to the
improvements outlined below. Keep in mind that the majority of
applications were not affected by these changes and that most of those
that were have been updated.

Leading Causes for Macintosh IIci Incompatibilities (Con't)

3) 32 bit QuickDraw in ROM

The Macintosh IIci is the first CPU to incorporate 32-bit QuickDraw in
ROM. With previous systems users had the option of installing 32-bit
QuickDraw in RAM through the addition of an INIT file to their system
folder. Although 32-bit QuickDraw was engineered for high compatibility
with the original QuickDraw and Color QuickDraw programmer's interfaces,
certain programming practices could lead to problems with this new
software. Users of the 32-bit QuickDraw INIT could optionally deactivate
the software if there proved to be a compatibility problem. Because 32-
bit QuickDraw is in ROM on the Macintosh IIci, it cannot be defeated.

- Video card problems

Generally, existing video cards have no compatibility problems with 32-
bit QuickDraw. However, newer cards designed to take advantage of 32- bit
QuickDraw's features such as 16 and 32-bit direct color pixels and large
frame buffers need to follow a special initialization sequence at startup
to allow the card's special features to be activated after the 32-bit
QuickDraw INIT has been loaded. On the Macintosh IIci, 32-bit QuickDraw
(and the new Slot Manager) are in ROM, so a simpler, but different,
startup sequence needs to be executed. Some third-party developers unaware
of this alternate sequence were incompatible with the Macintosh IIci when
it was first introduced.

- Software Problem

One major change in 32-bit QuickDraw is that the frame buffer memory is
always accessed in 32-bit addressing mode rather than the 24-bit
addressing mode used by previous versions of QuickDraw. This allows the
applications to access frame buffers up to 16MB in length, as opposed to
1MB with non-32-bit versions of color QuickDraw. This additional frame
buffer address space is becoming increasingly important as the use of
24-bit color becomes more prevalent.

For a user to benefit from this 32-bit addressing mode they must install
a video card capable of taking advantage of it. In turn, a video card
possessing these capabilities must test the system to determine if 32-bit
QuickDraw is present or not. If it is present then 32-bit QuickDraw
capabilities of the card will be enabled, which means, among other things,
the card will expect to be accessed in a 32-bit addressing mode. If 32-bit
QD is not present most cards will default to the 24-bit addressing mode.
In this way, a new card possesses the flexibility to adjust to whichever
QuickDraw environment it finds itself in.

In a system where 32-bit QuickDraw is present and there is a 32-bit
QuickDraw capable card installed, there is the potential for
incompatibilities with certain applications that directly address, (i.e.
bypassing QuickDraw) the video frame buffer. A number of paint
applications fall into this category. Previously, these applications could
directly access all frame buffers in 24-bit addressing mode and know that
they would work. However if an application is running on a system with
32-bit QD installed and a 32-bit QuickDraw capable video card is also
installed and the application attempts to directly address the frame
buffer a problem occurs. The application is attempting to access a 24-bit
address in 32-bit addressing environment. In this case, the address
request will be redirected to the 24-bit alias of the 32-bit buffer and
you end up with garbled screen data or a system that hangs.

Keep in mind this situation can occur on any machine with 32-bit
Quickdraw and a 32- bit QuickDraw capable card installed. The difference
is that on a machine with 32-bit QuickDraw as an INIT in RAM, the INIT can
be deactivated and the system will revert to 24-bit addressing for the
frame buffer (although it will lose new features). Because on a Macintosh
IIci, 32-Bit QuickDraw is in ROM, it cannot be defeated, so these
applications will not work correctly, and require revision. Once again,
this problem occurs only with new video cards that expect 32-bit
QuickDraw.

IMPORTANT NOTE: The revision to HyperCard from 1.2.2 to 1.2.5 was
required to address this issue.

4) Built-in video

One of the features of the Macintosh IIci's built-in video design is the
fact that it is self configuring, which means that all the user has to do
is plug the monitor into the video port and the system automatically
recognizes what monitor is attached and configures itself accordingly.
Offering this feature required that there be some type of monitor
identification scheme included in the design. The scheme used in the
Macintosh IIci is to designate three of the 15 pins within the video
connector for monitor identification. This gives the system a 3 bit value
(3 pins pulled high or low, where high = 1 and low = 0) for identifying up
to 8 different conditions, (7 different monitors + 1 no-monitor
condition).

It is significant to note that this scheme originated with the
introduction of the revised 4*8 bit video card introduced in the spring of
1989. It is also important to note that it is utilized on both the 8*24
and 8*24GC cards, and in the future it will be utilized in all future
systems which incorporate built-in video and in all future video card
designs from Apple.


Published Date: Feb 18, 2012