[Coco] MPI writing to $c000

Dave Philipsen dave at davebiz.com
Sun Jan 24 09:10:28 EST 2016


But since the cart is working *without* the MPI then  he's already got that part working. It doesn't seem to be an issue with the timing or signals on the RAM chip.

Dave Philipsen

> On Jan 24, 2016, at 7:04 AM, Darren A <mechacoco at gmail.com> wrote:
> 
>> 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
> 
> -- 
> Coco mailing list
> Coco at maltedmedia.com
> https://pairlist5.pair.net/mailman/listinfo/coco


More information about the Coco mailing list