In article <
be27a3cf-be00-49b5...@googlegroups.com>,
On a IIgs, the softswitches always exist in banks $E0 and $E1. They generally
exist in banks $00 and $01 (if bit 6 of $C035 is clear, which it is under
GSOS, and basically anything that isn't a weird demo).
When you write native IIgs code, you'll be running out of an arbitrary bank
that generally will be between $02 and $41 (if you have 4MB of memory),
and the softswitches will not exist in those banks. So you have to be sure
to access a bank where they do exist.
Similarly, if you want to directly access the screen, you'll likely want to use
bank $E0 for classic Apple II modes, and bank $E1 for SHR (and DHR). It's
possible to use shadowing from banks $00 and $01, and this should work OK
for text/lores since GSOS has left shadowing on for them. I don't know the
steps to do so for hires under GSOS (you have to make sure GSOS doesn't try to
use the memory for something else, which is very hard for bank $00). GSOS
turns off shadowing of the hires pages by default.
If you write a GUI app, you'll need to change $C029 to $41 to turn off SHR
(and $C1 to turn SHR back on), since it overrides any old Apple II video mode.
Kent