[Coco] GIME DRAM address mappings

David Ladd davidwladd at gmail.com
Wed Sep 27 10:10:40 EDT 2017


Jim,

I didn't know that.

Thank you for sharing. :D

+-----------------------------------------------------------------------+
| David Ladd a.k.a. PacoOtaktay a.k.a. Drencor                          |
| YouTube: http://www.youtube.com/user/PacoOtaktay                      |
| YouTube Gaming Live: https://gaming.youtube.com/user/PacoOtaktay/live |
| Websites: http://dwladd.com     &     http://www.theterrorzone.com    |
| G+:  https://plus.google.com/113262444659438038657                    |
| G+:  https://plus.google.com/+DavidLaddPacoOtaktay                    |
|                                                                       |
| Do you have your CoCo 3 yet?                                          |
+-----------------------------------------------------------------------+


On Wed, Sep 27, 2017 at 2:18 AM, RETRO Innovations <go4retro at go4retro.com>
wrote:

> As I continue to debug CocoMem in hopes to have it functioning for Tandy
> Assembly (not working yet :-( ), I found I needed to reverse engineer how
> physical addresses in the memory map get translated in DRAM addresses via
> the GIME.  Perhaps this is old news, but I had not seen it anywhere:
>
> As the physical address gets sent to the GIME, it is split into two parts,
> the portion that will be mapped into the MMU, and the rest.
>
> The GIME then parses the final 18 bit address into 3 pieces:
>
>  * odd/even address (bit 0)
>  * lower 9 bits of word address
>  * upper 9 bits of word address
>
> The lower 9 bits are transferred while E is high on the falling edge of
> RAS (row address strobe).  The upper 9 bits are transferred on the falling
> edge of CAS (column address strobe).
>
> The mappings are a bit weird, so here they are:
>
>  * A0 -> !WE0 if even, !WE1 if odd
>  * A1-A8 -> RAS0-RAS7
>  * MMU bank bit 4 -> RAS8
>  * A9-A12 -> CAS0-CAS3
>  * bank bit 0-bank bit 3 -> CAS4-CAS7
>  * bank bit 4 -> CAS8
>
> I find it odd that bank bit 4 is such an outlier, but that's what the
> empirical data suggests.
>
> (RASX denotes the values on the DRAM address bus bits 0-8 during the RAS
> falling edge, CASX denotes the same for falling edge of CAS)
>
> Sadly, this gets me little further in my bug hunt (writes to memory are
> "bleeding" through to the screen RAM, as if they are lingering on the bus
> too long and the GIME is reading them as screen data). But, at least I know
> a bit more about the GIME.
>
> Jim
>
> --
> RETRO Innovations, Contemporary Gear for Classic Systems
> www.go4retro.com
> store.go4retro.com
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> https://pairlist5.pair.net/mailman/listinfo/coco
>


More information about the Coco mailing list