[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