[Coco] Vcc mem>512
Robert Gault
robert.gault at att.net
Fri Mar 30 08:27:57 EDT 2012
Earl Casper wrote:
> LPEEK and LPOKE work fine on 0-7FFFF or 0-512k.
> Poking the MMU registers FFA0-FFA7 with 0-FF works fine on 0-1FFFFF or
> 0-2megs
> What I want to know is how to access 2megs - 8megs.
> -earlcasper
>
You need to know which GIME bits/bytes control the extra 6Megs of memory. Don't
even think about trying to use this memory with OS-9 until you can comfortably
use it with Basic ml programs.
The extra memory is based on hardware created by Paul Barton
http://www.reocities.com/idezilla/CoCoZilla/thumnail.html
Briefly the access points are:
On Paul's system, each MMU address selects a standard $2000 block of
RAM. Since the MMU registers are 8 bit lines they only address $FF*$2000
or $1FE000. The address needs to be extended for two more bits at $FF9B
to get $400*$2000 or $800000. Here is how I would describe the system.
1) The video bits (xxmmvvvv) at $FF9B have immediate effect and are used
in conjunction with the video offset registers $FF9D-$FF9E. The combined
registers create a pseudo 20 bit register. This enables access to
1,048,576 (2^20) video offset locations. Since the offsets are separated
by 8 bytes, this covers 8* 2^20 = 8,388,608 (8Meg).
2) The memory bits (xxmmvvvv) at $FF9B have no effect until a value is
sent to an MMU register, $FFA0-$FFAF. When a value is sent to an MMU
register, the memory bits at $FF9B combine with the MMU register to
create a pseudo 10 bit register. This enables access to 1024 (2^10) MMU
blocks for a total memory of 1024*8192=8,388,608 (8Meg).
3) The value at $FF9B is latched and therefore stable but is "write only"
as are the two high bits in the MMU registers.
More information about the Coco
mailing list