[Coco] CoCo Questions
afra at aurigae.demon.co.uk
Sun Oct 29 06:21:53 EST 2006
Robert Gault wrote:
> Phill Harvey-Smith wrote:
>> 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 Harvey-Smith, Programmer, Hardware hacker, and general eccentric !
"You can twist perceptions, but reality won't budge" -- Rush.
More information about the Coco