Custom Chip Register List
This is a listing of the Amiga custom registers housed inside the Agnus that control the various custom chips in the OCS, ECS, and AGA chipsets.This is the basis of hardware programming - you use these registers (and the CIA registers) to control all of the computer hardware. Click a register description to read more.
How to access the registers
Most of the registers are write-only - they control the chips' behavior. For a few of them, there are corresponding read-only registers at another address (such as INTENA and INTENAR) where the R signifies that it can be read.Don't read a write-only register, and don't write to a read-only register!
Special registers
A few are 'trigger' registers that start things, such as BLTSIZE which starts the blitter and COPJMP which starts the copper.Some write-only registers have a special clear/set function in bit 15. This means the rest of the value written is a bitpattern mask, where bits are cleared if bit 15=0 and set if bit 15=1. Where the mask bits are 0, the corresponding bits are unaffected.
For example, this sets bits 10 and 6 to give the Blitter priority over the CPU and enable Blitter DMA in DMACON:
move.w #$8440,$dff096
While this clears the audio DMA bits of all four audio channels in DMACON:
move.w #$000f,$dff096
Both the CPU and the Copper can read and write these registers. In the case of the Copper, setting the CDANG bit in COPCON lets the Copper write to Blitter registers (>=$dff040, AGA: all registers).
This listing is available as an archive of clean includes, with variations adapted to your assembler and coding style.