[Coco] CoCo 3 display offset question.

Robert Gault robert.gault at worldnet.att.net
Thu Sep 14 19:30:50 EDT 2006


Phill Harvey-Smith wrote:
> Hi,
> 
> Can anyone tell me if on the CoCo 3 the display generation in the GIME 
> goes through the mapped memory or if it is limited to a particular block 
> (or blocks). A quick check using mess seems to suggest that it honours 
> the tradition display offset regs at $FFC6-$FFD3, but I just verified 
> this with a quick 4 line basic program, which will have had the mapping 
> regs turned off (well CoCo 1/2 compatible mode anyway).
> 
> I'm asking as one of the things I am working on is to use a 1M 30 pin 
> SIMM, and build a banked system for the CoCo 1/2 & Dragon, using a CPLD, 
>  a small SRAM to do the banking. The current design however takes the 
> Address bus input to the SAM, and modifies this through the bank 
> registers before it goes into the SAM. This should work as far as the 
> CPU is concerned, but a side effect may well be that the CPU and the VDG 
> will see the display memory differently, whilst this probably won't be a 
> problem it's something I'll have to bear in mind :)
> 
> Cheers,
> 
> Phill.
> 

There are several aspects to your questions that need clarification. The 
problematic wording is "goes through the mapped memory".

There are two different operations on the Coco, 1) manipulating bytes in 
memory, 2) displaying bytes in memory as video information. These two 
operations are completely independent from each other. For data to be 
read/written the memory must be within the CPU 64k address space. The 
video circuitry can display any memory whether it is within the CPU 64K 
address space or not.

Since the SAM addressing used on the Coco1&2 is simulated on the Coco3 
by the GIME chip, all addressing goes through the GIME even if it seems 
to use the SAM address locations.

Now as to where memory must be mapped for access, it can be anywhere 
that does not interfere with system or program code. It is not necessary 
to map memory just to display it. However, the design of the Coco is 
such that the video memory must be linear so that when mapped into the 
64K CPU address space the video memory lines up with the actual memory. 
Put another way, if you want to display
    xxx          xxx
       xxx    xxx
          xxxx
on the screen you alter the mapped memory in exactly that bit pattern 
when the resolution is 1 bit per pixel.



More information about the Coco mailing list