Okay, AUXMEM comes with the ALTZP feature, but beside the zero page
and the stack the only memory not switched is the language card.
However, the MAIN language card is used by ProDOS and access to the
AUX language card can't be combined with access to the MAIN "base"
memory. So all in all, ALTZP is pretty much useless.
Entrance 80STOREON: The innovative(?) approach is setting hires mode (HIRESON) to make 80STOREON act on the address space $2000-$4000 but
staying in text mode (TEXTON). This allows for both setups:
1. MAIN: $800-$2000, AUX: $2000-$4000, MAIN: $4000-$BF00
2. AUX: $800-$2000, MAIN: $2000-$4000, AUX: $4000-$BF00
So one can
a) use $2000-$4000 as rather small fixed memory and switch $800-$2000/$4000-$BF00.
b) use $800-$2000/$4000-$BF00 as pretty large fixed memory and switch
only $2000-$4000.
Especially option a) is very attractive - of course for text based
programs only.
Notes:
1. The setups described here don't preclude 80 column text in any way.
2. For a more sophisticated program it's of course possible to
consider both memory areas ($800-$2000/$4000-$BF00 as well as
$2000-$4000) as switched. It can always use "the other" memory area as trampoline.
So far so good, but there's also something in there for graphics
programs: Again setting 80STOREON with HIRESON, but this time with
TEXTOFF. However, the innovative(?) idea is here to _not_ activate
DHGR, but stay with HGR (80COLOFF). This allows for two interesting
setups:
1. Don't bother with memory switching for parts of the program code at
all. Just enjoy the contiguous memory area $800-$BF00, which is
especially useful for high level language tool chains not optimized
for the Apple II memory layout. Only the actual graphics code needs to
be aware of memory switching - and needs to be located outside of $2000-$4000. Simply copy the program code at $2000-$4000 from MAIN to
AUX using AUXMOVE after loading the program before accessing the hires
video RAM. There's no need to touch RAMRDOFF, RAMDRON, RAMWRTOFF or RAMWRTON. Just make sure to have PAGE2ON on during normal program
operation and temporarily set PAGE2OFF for hires video RAM access.
Note:
The rest of AUX may still be used as /RAM disk: Instead of using
AUXMOVE, just use ProDOS to save the program code at $2000-$4000 to
the otherwise empty /RAM disk. The file is guaranteed to be placed at $2000-$4000 in AUX.
2. In general like 1.), but use AUX $2000-$4000 as trampoline to
switch $800-$2000/$4000-$BF00 between MAIN and AUX. The code accessing
the hires video RAM can be located in either MAIN or AUX.
[...] ALTZP [...] access to the AUX language card can't be combined with access to the MAIN "base" memory. So all in all, ALTZP is pretty much useless.=20
You can have any combination switched in of Main48k + MainLCZP, Main48k + A= >uxLCZP and Aux48k + MainLCZP and lastly Aux48k + AuxLCZP.
There's also a weird combination of aux 48k active while main HGR is visible. Bank Street Writer III used that technique - showing the title screen
while the program is running in aux memory.
Hi,
There's also a weird combination of aux 48k active while main HGR is visible.
Bank Street Writer III used that technique - showing the title screen
while the program is running in aux memory.
Another - at least for me - new thought: Using 48k AUX with TEXTON and 80COLON and PAGE1 may be interesting for calling into the firmware and/or ProDOS as it keeps the MAIN screen holes in place.
Regards,
Oliver
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 296 |
Nodes: | 16 (2 / 14) |
Uptime: | 19:03:41 |
Calls: | 6,646 |
Calls today: | 1 |
Files: | 12,190 |
Messages: | 5,327,305 |