[Coco] ML Question: MMU Block Switching

Robert Gault robert.gault at att.net
Tue Feb 17 09:47:27 EST 2015


William Mikrut wrote:
> Ahhh.... FF9D and FF9E.
>
> I can find plenty of documentation that specifies what this offset should
> be for video ram.
> When I read several articles on these registers, I find that this is
> MSB/LSB format.
>
> The reason I was swapping in page #36 was to be able to access the Hires
> mem locations $6C000-$6DFFF through $2000-3FFF.
>
> Is there a way to set these registers to it allows me to access that Hiram
> location directly from local addressing (meaning within the 64K Address
> space) without the need to swap blocks?
>
> I can see setting $FF9D/$FF9E with $C0/$00 -- but how would it know it was
> in the $60000 range?
>
>

William,

Taking the above verbatim, it looks like you don't know the math for 
$FF9D-$FF9E. These registers tell the Coco3 in Coco3 mode where to point video 
memory. That memory being VMem/8=16-bit value in $FF9D-$FF9E. The MMU block 
numbers are VMem/$2000.
Video Memory      16-bit $FF9D
$6C000            $D800             MMU block $FFA1  normal value $36 default
$72000            $E400             MMU block $FFA1  normal value $39
$74000            $E800                  "                        $3A
etc.

This is similar to the video addressing in Coco 1or2 mode controlled by
$FFC8-$FFD3 where the VMem/$200=BIT value, even=OFF odd=ON
Video Memory      bit value
$2000             %10000 ie poke $FFD2, $FFD0, $FFCF, $FFCC, $FFCA, $FFC8, $FFC6
                                    0      0      1       0      0     0      0
$FE00           %1111111           1      1      1       1      1     1      1

Robert



More information about the Coco mailing list