Specifications

Apple II Technical Notes
Apple IIGS
2 of 7 #69: The Ins and Outs of Slot Arbitration
Although the Slot Arbiter does not function in System Software 5.0 or earlier, it may function in
the future. A skeleton is present in version 5.0 and later that accepts Slot Arbiter calls, but the
skeleton does not actually switch any slots. This Note details the Slot Arbiter functionality and
shows how to search a 14-slot system for peripherals and their identification bytes.
Note: The Slot Arbiter must not be used unless GS/OS is the current operating system.
The Slot Arbiter
The Slot Arbiter is accessed through the GS/OS system service call vector
DYN_SLOT_ARBITER ($01FCBC). On ROM 03 and later, the vector is duplicated at $E10208.
Entry to the Slot Arbiter is via a JSL instruction, and exit is via RTL. The parameters are as
follows:
Entry:
A = Slot to be selected (defined below)
X = Undefined (or Bit Encoded Slot Configuration)
Y = Undefined
B = Undefined
D = Undefined
P = N V M X D I Z C E
x x 0 0 0 x x x 0
Exit:
A = Error Code
X = Bit Encoded Slot Configuration
Y = Undefined
B = Unchanged
D = Undefined
P = N V M X D I Z C E
x x 0 0 0 x x 0 0 If A = $0000 (no error)
x x 0 0 0 x x 1 0 If A = $0010 (slot not available)
The slot number in the A register tells the Slot Arbiter what you are requesting. Bits 0-2 are the
slot number in the range 0 through 7. Bit 3 is set if you are requesting an external slot and clear
if you are requesting an internal port. Taken together, bits 0-3 give slot numbers of $0-$7 for
internal ports and $9-$F for external slots. This is the same way that slot numbers are returned
by the GS/OS DInfo command.
Bits 8 and 9 of the slot number indicate the action you wish the Slot Arbiter to take. A value in
these two bits of 00 asks the Slot Arbiter to switch in the slot identified in bits 0 through 3. If
both bits are set to 11, the Slot Arbiter restores all the slots to match the Bit Encoded Slot
Configuration present in the X register. Bit Encoded Slot Configurations are discussed in the
next section of this Note. Values other than 00 or 11 in bits 8 and 9 are reserved and must not
be used by applications.
Bit 15 of the slot number is set if the slot selection has no slot dependencies. When the Slot
Arbiter is asked to switch in a slot with no slot dependencies, it does no actual switching,
although it returns a Bit Encoded Slot Configuration in the X register. The slot number and the
definitions of the individual bits are illustrated in Figure 1.