2.7 KiB
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
- Gayle — IDE & PCMCIA — A600/A1200 storage controller (different chip, different function)
- Zorro Bus — Zorro II/III expansion managed by Gary
- ECS Chipset — Super Agnus + ECS Denise (A3000)