Specifications
Apple IIGS
#69: The Ins and Outs of Slot Arbitration 1 of 7
Apple II
Technical Notes
Developer Technical Support
®
Apple IIGS
#69: The Ins and Outs of Slot Arbitration
Revised by: Matt Deatherage May 1990
Written by: Matt Deatherage September 1989
This Technical Note discusses the concept of a 14-slot Apple IIGS system through dynamic
software slot arbitration. It presents concepts of which all IIGS programmers should be aware for
full compatibility.
Changes since September 1989: Removed the section which stated that this Note showed how
to switch slots in a way that does not interfere with slot arbitration and replaced it with the proper
description, which is how to search a 14-slot system for peripherals and their identification bytes.
History
The Apple II has always had seven slots. In some cases (e.g., IIe), one of the slots was handled
specially by the hardware, or (e.g., IIc) there was no hardware present for peripheral cards at all.
But there have always been seven “slots” with firmware at location $Cn00 (where n is the slot
number). If there was no firmware, there was no peripheral connected.
With the introduction of the Apple IIGS, the Apple II family saw its first 14-slot system. Seven
hardware slots are provided for peripheral cards (like on the IIe), and seven internal “ports” with
connectors on the back panel are provided by the system (like on the IIc). Since $C800 and
above cannot be used for additional slots (that space is shared between all interface cards), each
of the seven internal ports is matched with one of the slots, and either the port or the slot is
enabled at any given time. The IIGS hardware allows switching between the two, so all fourteen
slots could be used more or less simultaneously.
This situation posed a problem—the Apple II had only a disk operating system, not an overall
operating system. Access to non-disk devices (i.e., character devices, like a serial card) was not
arbitrated by the system in any way. The world was used to seven, and only seven, slots.
Attempting to use more in a shared system such as the IIGS resulted in somebody jumping to slot
firmware that somebody else had switched out. This tended to crash the system.
Then came GS/OS. With its centralized mechanism for dispatching to all devices connected to a
system, GS/OS provides hope (for the first time) that a central routing mechanism can
dynamically arbitrate between slots and ports, allowing the use of all 14 at one time. This is
called dynamic slot arbitration, and is handled by a portion of GS/OS referred to as the Slot
Arbiter.










