[comp.sys.atari.8bit] 800 memory management

lackey@Alliant.COM (Stan Lackey) (08/22/88)

It is my understanding that the old 800 has 8K of RAM which is somehow
switched out when a cartridge (esp. the BASIC cartridge) is installed.
Is there any way to get temporary access to that RAM while the cartridge
is plugged in?  I have a 65XE, and am aware of how it is done in XL/XE;
I am writing an application which uses this feature, and would like very
much to make it compatible with the older machine.

-Stan

sirkm@ssyx.ucsc.edu (Greg Anderson) (08/24/88)

In article <2278@alliant.Alliant.COM> lackey@alliant.COM (Stan Lackey) writes:
>Is there any way to get temporary access to that RAM while the cartridge
>is plugged in?  I have a 65XE, and am aware of how it is done in XL/XE;
>I am writing an application which uses this feature, and would like very
>much to make it compatible with the older machine.

If a cartridge is plugged into an 8-bit Atari, it is not normally possible
to access the RAM underneath.  The built-in BASIC ROMs can be switched out
with the PORTB register at $D301.  OSS "SuperCartridges" can also be switched
out, although I don't know the method for doing so.  If the cart has no
provisions for being disabled (e.g. the BASIC carts for the 400/800), then
they simply cannot be disabled, and the RAM beneath them is unusable.

Greg Anderson                     ||  The Temple of Zuul BBS:  (408) 462-3832
Social Sciences Computing, UCSC   ||  sirkm@ssyx.ucsc.edu

cfchiesa@bsu-cs.UUCP (Christopher Chiesa) (08/24/88)

In article <2278@alliant.Alliant.COM>, lackey@Alliant.COM (Stan Lackey) writes:
> It is my understanding that the old 800 has 8K of RAM which is somehow
> switched out when a cartridge (esp. the BASIC cartridge) is installed.

That is correct.  

> Is there any way to get temporary access to that RAM while the cartridge
> is plugged in?  

From what I've been able to tell in the six years I've owned my 800, there's
NO provision in the system design for accessing the RAM at "cartridge addresses"
while the cartridge is present.  Unlike the XL/XE, in which a controlling
data register is accessible to the CPU, on the 800 this is electrically hard-
wired: plugging the cartridge in physically de-selects RAM in favor of cart-
ridge ROM.  I would think that in order to do anything about this, you'd have
to make hardware modifications to the 800 design, giving the CPU control over
the RAM/ROM switchover process -- i.e., the very thing done by Atari when they
created the XL/XE line based on the 800.

If anyone has counter-proof of this information, I for one would be very in-
terested to hear about it.  Would indeed be a useful capability.  By the way,
just what CAN one do on the XL?  I just got one to replace my 800, and would
love to know what "new tricks" this ol' dog can learn!  :-)

-- 
UUCP: <backbones>!{iuvax,pur-ee,uunet}!bsu-cs!cfchiesa 
cfchiesa@bsu-cs.UUCP                                           

cfchiesa@bsu-cs.UUCP (Christopher Chiesa) (08/24/88)

In article <4594@saturn.ucsc.edu>, sirkm@ssyx.ucsc.edu (Greg Anderson) writes:
> In article <2278@alliant.Alliant.COM> lackey@alliant.COM (Stan Lackey) writes:
> >Is there any way to get temporary access to that RAM while the cartridge
> >is plugged in?  I have a 65XE, and am aware of how it is done in XL/XE;
> >I am writing an application which uses this feature, and would like very
> >much to make it compatible with the older machine.
> 
> If a cartridge is plugged into an 8-bit Atari, it is not normally possible
> to access the RAM underneath.  The built-in BASIC ROMs can be switched out
                                     ^^^^^^^^^^^^^^^^^^^

There IS NO SUCH THING on the original 800.  Just wanted to clarify that.

> with the PORTB register at $D301.  OSS "SuperCartridges" can also be switched
           ^^^^^^^^^^^^^^^^^^^^^^^^

And on the original 800, this port is THERE, but its functions are TOTALLY 
DIFFERENT: it is connected to the third and fourth joystick/paddle controller
jacks!

-- 
UUCP: <backbones>!{iuvax,pur-ee,uunet}!bsu-cs!cfchiesa 
cfchiesa@bsu-cs.UUCP