[Coco] ML Question: MMU Block Switching

William Mikrut wmikrut72 at gmail.com
Tue Feb 17 13:07:01 EST 2015


I think I found my answers here:
http://www.coco3.com/community/2005/11/assembly-on-coco3/

Simply amazing how much is out there these days... and it's growing!
On Feb 17, 2015 10:00 AM, "William Mikrut" <wmikrut72 at gmail.com> wrote:

> I guess what I need to do is go back to the Super Extended Basic
> unravelled and spend a little more time examining the code.
>
> While I understand mmu pages and the basic function of ff9d-ff9e... I am
> still missing a piece.
>
> For example... I can set ff9d-ff9e to point videoram to start at 6c0000
> ... or really any block.
>
> How to store data in that location to display on the page is what I am
> missing.
>
> I know its an old subject and I have read Lamont's and Bardens books on
> assembly language.
>
> Are there any other guides besides those two that would help me through
> learning these intricate details?
> On Feb 17, 2015 9:07 AM, "William Mikrut" <wmikrut72 at gmail.com> wrote:
>
>> No, I didn't/don't ... and I am still learning.
>>
>> After reading Lomont_CoCoHardware.pdf P66 last night I began to suspect
>> that if I took $6C000 divided by $800 I ended up with D8... so I knew that
>> had to fit in and was going to try it today.
>>
>> I Picked $800 because the text said the start of video was video location
>> * 2048.
>> LSB was easy because it's zero.
>>
>> So much to learn... and I sincerely appreciate all the guidance!
>>
>>
>>
>>
>> On Tue, Feb 17, 2015 at 8:47 AM, Robert Gault <robert.gault at att.net>
>> wrote:
>>
>>> 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
>>>
>>>
>>> --
>>> Coco mailing list
>>> Coco at maltedmedia.com
>>> https://pairlist5.pair.net/mailman/listinfo/coco
>>>
>>
>>


More information about the Coco mailing list