Skip to content

Chip address space access arbitration

h5n1xp edited this page Feb 28, 2019 · 1 revision

Currently the CPU can access the Chip address space without being block by the DMA. This is not how it works on a real Amiga.

On a real Amiga if the DMA is using the memory the CPU must wait.

My plan is to implement a new DMA.c function called waitFreeSlot().

This will be called by the chip space access functions, when any address below the ROM is requested.

The function will now execute a DMA Operation, if that returns clear (i.e. no device used the memory), it will then allow the memory access to occur. If the DMA operation returns busy (i.e. a device used the memory), the next DMA operation will be executed. This will repeat until a free slot is found.

Clone this wiki locally