[Coco] MPI writing to $c000

RETRO Innovations go4retro at go4retro.com
Sun Jan 24 01:27:33 EST 2016


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.

I have redefined RAM_WE the following ways:

RAM_WE = !(!Q & !R_W & A15 & A14 & !A13)  ; go low if Q is low and write 
is low and A15 is high and A14 is high and A13 is low
RAM_WE = !(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
RAM_WE = !(!E & !R_W & A15 & A14 & !A13)  ; go low if E is low and write 
is low and A15 is high and A14 is high and A13 is low
RAM_WE = !(Q & E & !R_W & A15 & A14 & !A13)  ; go low if Q is high and E 
is high and write is low and A15 is high and A14 is high and A13 is low
RAM_WE = !(Q & !E & !R_W & A15 & A14 & !A13)  ; go low if Q is high and 
E is low and  write is low and A15 is high and A14 is high and A13 is low
RAM_WE = !(!Q & E & !R_W & A15 & A14 & !A13)  ; go low if Q is low and E 
is high and write is low and A15 is high and A14 is high and A13 is low
RAM_WE = !(!Q & !E & !R_W & A15 & A14 & !A13)  ; go low if Q is low and 
E is low and write is low and A15 is high and A14 is high and A13 is low

None of them work.  What am I missing?  I know the rest of the circuit 
works because the unit works fine when the MPI is not in the equation.

Jim

-- 
RETRO Innovations, Contemporary Gear for Classic Systems
www.go4retro.com
store.go4retro.com



More information about the Coco mailing list