amiga-bootcamp/01_hardware/ecs_a600_a3000/gary_system_controller.md
2026-04-26 14:46:18 -04:00

2.7 KiB

← Home · Hardware · ECS

Gary — A3000 System Controller

Overview

Gary is the custom system controller chip in the Amiga 3000. It consolidates functions that are discrete ICs on the A2000 into a single gate array:

  • Bus controller: Manages interaction between 68030/68882, chip bus, and Zorro III
  • Auto-config controller: Runs Zorro expansion enumeration at boot
  • DMA arbitration: Between 68030, custom chips, and Zorro III DMA masters
  • SCSI interface glue: Works with the A3000's built-in WD33C93 SCSI controller
  • ROM decode: Maps Kickstart ROM into the address space

Gary is not directly programmable by user software; its configuration is set by hardware strapping and the ROM initialization sequence.

Bus Arbitration

Gary manages three bus masters:

Master Priority Description
Custom chips (DMA) Highest Agnus DMA for display, audio, disk — must never stall
68030 CPU Normal Program execution
Zorro III cards Lowest Expansion bus-mastering DMA

When a custom chip DMA cycle occurs, Gary holds the 68030 off the bus until the cycle completes. This is the fundamental source of "DMA contention" slowdown on all Amiga models.

A3000 SCSI Integration

The A3000 includes a built-in WD33C93A SCSI controller. Gary provides the glue logic between the SCSI chip and the system bus:

Feature Details
SCSI chip WD33C93A (SBIC)
DMA SDMAC — dedicated SCSI DMA controller (separate from the CDTV-style DMAC)
Interface A3000 uses a dedicated SDMAC chip, not the A2091-style DMAC
AmigaOS driver scsi.device in Kickstart ROM

Note

The A3000's SDMAC is a different chip from the A2091/CDTV DMAC, despite both interfacing with WD33C93 SCSI controllers. The register layouts are incompatible.

Machines Using Gary

Model Gary variant Notes
A3000 Original Gary 68030, Zorro III, WD33C93 SCSI
A3000T Gary (tower variant) Same chip; tower form factor with more drive bays

The A4000 does not use Gary — it uses a different system controller chip called Ramsey along with Budgie and Buster for bus management.

References

  • Commodore A3000 Technical Reference Manual
  • ADCD 2.1 — Hardware Manual, A3000 chapter
  • NDK39: hardware headers (community-documented Gary behavior)

See Also