Mac II, SE
Volume Number: 3
Issue Number: 5
Column Tag: Macintosh II
Programming the New Macs
By Sue Goodin, Apple Computer & Dave Wilson, Personal Concepts
Sue Goodin is a Technical Communications Engineer for Apple Computer. Dave
Wilson is President of Personal Concepts, a consulting firm specializing in training
courses for the Macintosh. He is currently teaching Apple's MacApp programming
course. In this article, Sue and Dave review the new Apple product offerings and the
new ROM calls behind the new features.
Figure 1 summarizes the latest results of Apple's increased R & D spending, and
certainly indicates that the folks in Cupertino have been busy. In this article, we want
to review and preview information about some of these new products, emphasizing
details of interest to programmers. Apple's new computers represent new market
opportunities, and new programming challenges, so we should discuss both areas.
The evolutionary Macintosh SE should be an even more popular machine than the
successful Macintosh Plus, since it offers somewhat better performance and an
expansion slot for adding a peripheral board. Its 256K ROM offers some new features,
as discussed below, but is primarily focused at retaining compatibility with present
Macintosh software, so there are no earthshaking changes for programmers to worry
about.
The revolutionary Macintosh II, on the other hand, is a very well-designed and
powerful machine that will open up completely new markets and opportunities for us
all. The only catch is that the Macintosh II is even more sophisticated and complicated
than earlier Macintoshes, so we have a lot more to learn before our software can really
shine. Will our present programs work on the II? They should. Apple believes that
more than 2/3 of the present software will run unchanged, and almost all software
that follows the compatibility guidelines should work fine.
The Macintosh SE
The Macintosh SE (stands for System Expansion) still has an 8 MHz 68000, but
has new 256K ROMs, and one expansion slot. It has the standard built-in 9-inch
monochrome monitor, but you can, of course, add other monitors using the expansion
port. You can put up to 4 MB of RAM in an SE.
A tricky point is that both the Macintosh SE and the Macintosh II have 256K
ROMs, but they are not the same. The Macintosh II's ROM has Color QuickDraw and
other goodies that are not in the SE. The SE was designed for software compatibility,
and over 90% of existing applications should run on it. The Macintosh II is less
compatible, with over 60% of the software running unchanged. Macintosh II ROMs are
complete, and its system software is in the final testing stages, while the SEs are in the
stores now.
The SE provides somewhat improved performance over the Macintosh Plus, as we
shall see. Apple still intends to sell both the Macintosh Plus and the 512K Enhanced,
because they provide a lower-priced entry point in the product line.
The Macintosh II
The Macintosh II offers a 68020 microprocessor with a 68881 floating point
coprocessor, 1M or more of RAM, and 6 NuBus expansion slots. The Macintosh II
supports color and gray-scale display, and has four-voice sound capability. The
Macintosh II includes:
• 68020 microprocessor, clocked at 16 MHz
• 68881 floating point coprocessor (always there - not an option)
• 1M RAM (expandable to 2, 5, or 8M on the logic board)
• 256K ROM
• 6 NuBus slots
• general memory management unit (or optional 68851 PMMU)
• Two Apple Desktop Bus (ADB) ports for the mouse, keyboard, tablets, etc.
• One or two internal 800K floppy drives
• Room for a 20, 40, or 80M internal SCSI hard disk
The Motorola 68020 microprocessor has a 32-bit data bus, which can speed up
Macintosh Plus software by a factor of 4. Other properties of the 68020 add to that
speed advantage, and with the inclusion of the 68881 floating-point coprocessor,
certain types of Macintosh code may now run as much as 200 times faster on the
Macintosh II than on existing members of the Macintosh family.
The ROM in the Macintosh II has been completely rewritten, and now includes
Color Quickdraw, which supports the definition of as many as 248 colors (about 200
trillion). The Macintosh II Video Card with its Expansion Kit can display 256 colors
(or shades of gray) on the screen at once.
The six NuBus slots provide a flexible means of expanding the architecture for
such products as processor cards, video output, non-Apple Desktop Bus input devices,
storage devices, and network cards.
NuBus, Texas Instruments' synchronous bus definition, allows any device to
become master of the system. Therefore, 80286 cards, EtherNet cards, and other
intelligent interfaces may, at times, gain control of the CPU. With this architecture,
the Macintosh II could run MS-DOS software, act as a smart terminal, or drive a
variety of output devices. Apple's NuBus implementation includes interrupt lines from
each of the slots, and has changed the size of the interface card to conform to the
Macintosh II case size.
The addition of 4-voice sound is also supported by the Macintosh II hardware. The
firmware now contains synthesizers for MIDI, note, wave table, and sampled sound
production.
Although a number of the external ports on the Macintosh II are similar to those
on previous Apple equipment, the logic board of this computer is significantly
different than other members of the Macintosh family.
Memory management chores are handled by a general memory management unit,
which allows the 68020 to devote its processing time to other tasks. A paged memory
management unit (PMMU), the Motorola 68851, is available to support paged virtual
memory management, and is required to run Apple A/UX, Apple's version of the UNIX
operating system.
Eight SIMM sockets, organized into two groups, provide a starting configuration
of 1M memory. Apple will offer RAM upgrades to increase available memory on the
Macintosh II to 8M. As SIMM technology advances, the Macintosh II will be able to take
advantage of up to 128M RAM on the logic board.
The 256K Macintosh II ROM has been written to support all of the previously
mentioned devices and features. The ROM also includes all packages available on the
Macintosh Plus. The following features are among those that have been added to the
ROM:
• Color Quickdraw, and color support in other Managers
• Apple Desktop Bus support
• More fonts - Monaco 9, Chicago 12, Geneva 9 and 12
• Slot Manager to handle NuBus card communication
• 4 Voice Sound Manager
• SCSI Driver
The Macintosh II has two lithium batteries, with a lifetime rated at 7 years,
soldered on the logic board. These replace the removable dry cell battery found on
earlier Macintosh computers. If your program crashes and writes garbage into
Parameter RAM, you may have up to seven years of bad luck, so be sure to write
perfect programs! Actually, Macintosh II users may continue to use ParmBlaster
-type programs to erase parameter RAM, should it become irretrievably corrupted.
Six Macintosh II slots follow Texas Instruments' NuBus standard, with Apple
modifications. The NuBus definition allows any NuBus device (of which the 68020 is
one) to become the "system master". With its open architecture, the Macintosh II will
encourage developers to sell processor cards, graphic interfaces, memory devices, and
drive interface cards.
One of the NuBus slots will normally be used by a video card, since the Macintosh
II does not contain video signals on the logic board. Apple has a Macintosh II Video Card
available for use with the Apple High Resolution Monochrome Monitor and the
AppleColor High Resolution RGB Monitor. The card's factory-installed memory can
allocate up to 4 bits per pixel, for a maximum display of 16 colors or shades of gray.
With the optional 8-Bit Expansion Kit, as many as 256 colors and gray-scales may be
shown.
Macintosh II Video Card
The Macintosh II graphics plug-in video card provides color capability for
simultaneous display of up to 256 colors on the Apple High Resolution Color Monitor.
This capability is further enhanced by its three 8 bit digital to analog converters
(RGB) providing more than 16 million possible colors to choose from. Color modes
range from one bit per pixel (2 colors) to an optional eight bits per pixel (256
colors).
On the same card, using the Macintosh II control panel desk accessory options,
you may select true grey scaling. With the Macintosh II Video Card , the grey shading
is intensified or diminished by hue and brightness values. The user no longer has to
rely on the spaced dot patterns of previous grey schemes. When grey scaling is
selected from the control panel, each of the presently available colors is translated
into a shade of grey.
PMMU
A Motorola MC68851 co-processor is used by the Macintosh II to implement
paged memory management. This chip replaces the standard memory management chip
in the Macintosh II, and is used by systems programmers to implement advanced and
multi-user operating systems, like Apple's A/UX. While the standard MMU simply
offers two modes of translation (a 32 to 24 bit mode for software compatibility with
programs for older Macintoshes, and a straight-through 32 bit mode), the PMMU
offers such features as:
• 32 bit logical to physical address translation with 4-bit function codes.
• memory protection by access level and access type.
• hardware maintenance of address translation, and address translation cache
(ATC).
• 16 extensions to the 68000 family that provide control for:
- loading and storing of MMU registers.
- testing access rights, and conditionals based on the results of this test.
- MMU control functions.
Expansion through NuBus
The 68020 communicates through the memory management unit with each of the
six synchronous NuBus slots through a full 32-bit address/data transfer between each
slot and the 68020. Each slot is identified to the microprocessor by 4 ID lines, which
the bus master uses to determine the source of the communication. Power, timing, and
acknowledge lines are also implemented. Apple has changed Texas Instruments' NuBus
definition by adding an interrupt line from each slot, so that each card can generate an
interrupt to the on-board logic.
The 32-bit address space (equating to 4G bytes) available for all NuBus slots is
partitioned to provide space for each slot. First, the top 256M of address space is
divided into 16 "slots". This allows each physical slot to "own" 16M, which is referred
to as its Slot Space. Each NuBus slot is also allocated 256M (although it may request
more!) of "SuperSlot Space" from the portion of memory remaining in the 4G of
address space.