[Coco] Coco 3 Memory Map Questions

Robert Gault robert.gault at att.net
Sun Feb 7 13:57:50 EST 2016


RETRO Innovations wrote:
> Looking at my Coco3, I'm trying to understand the nature of some of the memory
> decisions.  Is there a document that describes the layout and why the system is
> configured this way.  Specifically, I'm hoping to find a document or web site
> that helps me understand:
>
>   * Why did Tandy make the memory 16 bits wide, when GIME has an 8 bit
>     data path?
>       o Also, I noticed one of the data paths has a latch, while the
>         other has just buffers.  Why?
>   * Was it really Tandy's plan that anyone who upgrades their Coco3 has
>     to pull all of the existing RAM?
>   * And, why do all of the 512kB upgrades want you to clip C65/C66?  I
>     assume it helps the signal, but what if someone like myself wants
>     the additional memory but would rather not modify their machine?
>   * If the GIME MMUEN bit is off, does that mean that only the lowest
>     64kB of memory is in scope?
>   * $ffde:  If you select a RAM/ROM mode, but have the MMU enabled, what
>     happens?
>
> I figured all of this is on some page (got some information from Sock's GIME
> page), but I couldn't find the above tonight yet.
>
> Jim
>
>

I'll try to answer these questions although I'm not sure I know just what you 
meant by some of them. If you don't already have a copy, get the Tandy Coco3 
service manual, #26-3334. There are .pdf copies.

Since the cpu has 16-bit registers, it make sense for memory to be accessed at 
that width.
I've not seen any reasons, good or bad, why Tandy made some bytes read only. It 
may be connected with your "latch" comment.
Yes, Tandy did want old memory chips and caps removed when adding a 512K RAM 
upgrade. The instructions are in the service manual.
You may be able to clip one leg of the caps to make re-connection easier. The 
extra loading on the circuits caused by the larger memory must mess up square 
wave signals requiring cap removal.
When the MMU bit is off at $FF90, the active 64K is "located" at one of several 
locations depending on the amount of memory present. By convention, the location 
is always listed at $70000-$7FFFF but memory is mapped as follows:

    128k                      512k                     more than 512k
                                                      |$80000-whatever|
  ___________            _____________                |_______________|
| $7FFFF    |          |   $7FFFF    |               |   $7FFFF      |
|_$70000_64k|          |___$70000_64k|               |___$70000_64k__|
|           |          |             |               |               |
|_$60000____|          |___$60000____|               |___$60000______|
.                      |             |               |               |
.                      |___$00000____|               |___$00000______|


If you are in ROM/RAM mode with a Coco3, you should also get rid of all SEB 
patched to your RAM. So with a disk system you would:
POKE&HFFDE,0:EXEC&HC002
Now a POKE&HFF90,&HCC      %11001100 coco1 mode, MMU active, IRQs off, DRAM & 
SCS, 16k/16k ROM
Nothing unusual happens. What are you looking for?

Robert



More information about the Coco mailing list