[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: AUX memory question
- Subject: Re: AUX memory question
- From: dempson@actrix.gen.nz (David Empson)
- Date: Mon, 26 Feb 2001 01:19:43 +1300
- Newsgroups: comp.sys.apple2
- Organization: Empsoft
- References: <XN1l6.3027$7e6.1254088@homer.alpha.net> <%Gdl6.3696$fk5.110867@e3500-chi1.usenetserver.com> <1epca4c.sf5woy64dob4N%dempson@actrix.gen.nz> <bE%l6.19098$rO3.718110@e3500-chi1.usenetserver.com>
- User-agent: MacSOUP/2.4.2
- Xref: supernews.google.com comp.sys.apple2:6586
Matthew Russotto <russotto@wanda.pond.com> wrote:
> In article <1epca4c.sf5woy64dob4N%dempson@actrix.gen.nz>,
> David Empson <dempson@actrix.gen.nz> wrote:
> >Matthew Russotto <russotto@wanda.pond.com> wrote:
> >
> >The aforementioned technote says that auxiliary memory locations below
> >$0800 are permanently reserved for use by the system software. With
> >reference to the ProDOS-8 Technical Reference Manual: $0200-$03FF and
> >$0080-$00FF are used by ProDOS, and $0000-$007F are left free for
> >application use. $0100-$01FF is the stack, of course, and $0400-$07FF
> >is the auxliary half of the 80-column text screen. (The screen holes in
> >this area must be preserved.)
>
> What the technote says and what the truth is, particularly if you
> don't call any system services while auxiliary memory is switched in,
> might be two different things.
The lower part is quite clear: the main body of ProDOS's /RAM driver
lives in auxiliary memory $0200-$03FF, and it uses $0080-$00FF. If you
overwrite this area, then it will not be possible to reconnect /RAM upon
termination of your application.
The auxiliary screen holes are used by the IIc firmware (e.g. for
default settings for the serial ports). I'm not aware of them being
used on other systems.
The auxiliary language card area is less clear. No version of ProDOS
has used this area, but Apple always reserved it to allow for future
expansion, and there are some other pieces of system software that can
use this area (the technote cites a version of SANE which loads at $E000
in the auxiliary language card).
> >If you break these rules, you are likely to get stack corruption when an
> >interrupt occurs, because the firmware and operating system expect these
> >locations to be valid if the auxiliary stack is used.
>
> Or you could just disable interrupts throughout the whole fetch from
> auxiliary memory and save yourself some trouble.
True, as long as you aren't doing it too long. On the IIgs in
particular, there may be software that is dependent on timing-critical
interrupts (AppleTalk is a notable example).