[Coco] Device module for (O)VCC continues. How to do DMA?

Walter zambotti at iinet.net.au
Sun Jun 2 00:17:24 EDT 2019


Ok

 

So I have my MPU pak module (PFU & GPU) successfully performing floating
point operations and drawing under OS9.

 

However it only works in synchronous mode.  In async mode it corrupts task
memory and after several hours of debugging
I now know why but I'm unsure how to fix the issue.

 

The problem turns out to be the GPU can only DMA into the same 64k address
that the process is running in.

 

If OS9 switches the MMU memory map the GPU is completely unaware and
continues drawing into wrong memory.

 

The GPU has no way of knowing the MMU has pulled the memory rug from under
its feet!

 

So my question is:

 

How does a physical pak device accomplish DMA given this limitation?

 

Can a PAK device see (and DMA) into the full (512k/1M/2M) ?

 

If yes, how?

 

If no, what is the work around?

 

Walter



More information about the Coco mailing list