The RGA bus is the bus that connects Agnus/Alice with Denise/Lisa and Paula.
What is it used for? I guess at a minimum to write/read registers in Denise/Lisa and Paula, and I guess to feed data to them.
Has it ever been documented?
The Amiga contains a general-purpose coprocessor within the Agnus/Alice custom chip known as the Copper. The Amiga Copper uses DMA and interleaved access to chip RAM shared with the 68k CPU to fetch and execute simple instructions. Mainly, the Copper's MOVE instruction is used to update the value of most any of the 3 custom chip's internal registers based on precise video timing and without intervention from the CPU.
A Copper MOVE instruction needs to be able to address the many custom chip registers to do this, and it does so using the register address (RGA) bus that is shared among all 3 custom chips. So, you can think of the Copper as a simple micro-processor that controls an 8-bit address bus and a 16-bit data bus, but which can also utilize DMA to access its program code residing in the shared chip RAM. Additionally, many of the custom chip registers control additional DMA functionality, thus allowing the Copper to synchronize many different system activities independently of the CPU.
The Amiga patent discusses the RGA bus specifically being an optimization to minimize the complexity of the custom chips and their interconnection. By using this approach, the chip designers created a powerful coprocessor capability around DMA control with a simplified shared bus requiring a minimum of logic and pins.
RGA stands for ReGister Address. Agnus controls it together with the DRAM multiplexed address bus and the chips data bus. Examples:
FF
to indicate no register is currently being addressed, or an actual register address? Like: who takes charge of it according to which operations, and with what timing?