[Coco] MPI writing to $c000

Darren A mechacoco at gmail.com
Sun Jan 24 08:04:00 EST 2016


On Sat, Jan 23, 2016 at 11:27 PM, RETRO Innovations wrote:

> I am stuck on a project writing to RAM at $c000 on the expansion port and
> need help.  I think it's my lack of understanding of the 6809 and the Coco
> bus that's holding me up.
>
> I have some RAM at $c000 on the expansion port:
>
> RAM_OE = CTS
> RAM_WE = !(Q & !R_W & A15 & A14 & !A13)  ; go low if Q is high and write
> is low and A15 is high and A14 is high and A13 is low
>
> If I install the cart in the expansion port, all works fine.  I can write
> to RAM correctly (I can flip between the internal and external with $ffde,0
> and such to verify)
>
> But, if I put it in an MPI, it does not work.
>


Does your RAM also have a CE* input? If so, how is it connected? The SRAMs
I have used have CE*, OE* and WE*.  For a write both CE* and WE* must go
low and OE* is a "don't care".

I think the correct equation for a write cycle would be:
RAM_xE = !(E & !R_W & A15 & A14 & !A13)  ; go low if E is high and Write is
low and A15 is high and A14 is high and A13 is low

That would have the RAM latch the address on the rising edge of E, and
latch data on the falling edge.

For a fast RAM you could limit it to just the latter half of E high by
adding !Q to the mix:
RAM_xE = !(E & !Q & !R_W & A15 & A14 & !A13)  ; go low if E is high and Q
is low and Write is low and A15 is high and A14 is high and A13 is low


- Darren


More information about the Coco mailing list