[Coco] CoCo Questions

Phill Harvey-Smith afra at aurigae.demon.co.uk
Sun Oct 29 06:21:53 EST 2006


Robert Gault wrote:
> Phill Harvey-Smith wrote:
>> <snip>
>> 
>> Well You could have a small copying routine in ram that would
>> disable interrupts, and then switch to map type 1 whilst copying,
>> as then the other 32K would appear in the 32K-64K region, and could
>> therefore be accessed at the same time, I would not have thought
>> that this would have been too hard to arrange.
>> 
> 
> That won't work if you are using page swapping because the only RAM 
> available is the lower 32K and your ml program will get swapped out 
> along with any data it stored.

Humm, that's not how I read the SAM data sheet, the way I read it in map
type 0 the page switch register controls which block of 32K will appear
in the 0-32K region, so setting it to 0 maps in the bottom 32K, setting
it to 1 maps in the top. However in map type 1, this is disabled and we
have a linear 64K. So to swap data between pages you would need a small
ml program in each page to actually do the page flipping, but once in
map type 1 you would have access to both pages, though your second page
would of course be at 32K-64K, so your code would have to be position
independent....but I never said it would be trivial :)

> In my opinion, programs of this type only became practical on the
> Coco3 where the swapping routines could be in constant DRAM and there
> was 512K RAM to play with.

Yes having paged RAM cirtainly would make things easier :)

Phill.

-- 
Phill Harvey-Smith, Programmer, Hardware hacker, and general eccentric !

"You can twist perceptions, but reality won't budge" -- Rush.



More information about the Coco mailing list