💾 Archived View for mirrors.apple2.org.za › archive › ground.icaen.uiowa.edu › MiscInfo › Programmin… captured on 2023-01-29 at 10:15:11.

View Raw

More Information

-=-=-=-=-=-=-


Jon Bettencourt <jonINTERNETrelayCHAT@napaVALLEYnet.CLARInet> wrote:

> In article <20000212141803.27224.00002819@ng-fv1.aol.com>,
> supertimer@aol.com (Supertimer) wrote:
> 
> > What about IIGS memory?
> 
> You mean 24-bit addressed memory? I don't have any information on that. If
> you can find any info on it or point me out to where I can find the info,
> please do.

There isn't much that you can do in a IIgs, outside of the base two
banks, without using the memory manager toolset.  Here is an overview of
the whole shebang:

$000000 - $00BFFF    RAM, equivalent to IIe main memory $0000 - $BFFF
$00C000 - $00CFFF    I/O, equivalent to IIe $C000 - $CFFF
$00D000 - $00FFFF    ROM or bank-switched memory, equiv. to IIe main
                     memory in the same area

$010000 - $01BFFF    RAM, equivalent to IIe aux memory $0000 - $BFFF
$01C000 - $01CFFF    I/O, equivalent to IIe $C000 - $CFFF
$01D000 - $01FFFF    ROM or bank-switched memory, equiv. to IIe aux
                     memory in the same area

$020000 - $7FFFFF    RAM (amount varies depending on motherboard and
                     memory expansion card)

$800000 - $DFFFFF    Reserved (not implemented in hardware)

$E00000 - $E003FF    RAM, reserved for system use
$E00400 - $E007FF    Text screen 1 (main memory)
$E00800 - $E00BFF    Text screen 2 (main memory)
$E00C00 - $E01FFF    RAM, reserved for system use
$E02000 - $E03FFF    Hi-res screen 1 (main memory)
$E04000 - $E05FFF    Hi-res screen 2 (main memory)
$E06000 - $E0BFFF    RAM, reserved for system use
$E0C000 - $E0CFFF    I/O, equivalent to IIe $C000 - $CFFF
$E0D000 - $E0FFFF    RAM, same layout as IIe bank-switched memory,
                     reserved for system use

$E10000 - $E103FF    RAM, reserved for system use
$E10400 - $E107FF    Text screen 1 (aux memory)
$E10800 - $E10BFF    Text screen 2 (aux memory)
$E10C00 - $E11FFF    RAM, reserved for system use
$E12000 - $E13FFF    Hi-res screen 1 (aux memory)
$E14000 - $E15FFF    Hi-res screen 2 (aux memory)
$E12000 - $E19FFF    Super hi-res screen
$E1A000 - $E1BFFF    RAM, reserved for system use
$E1C000 - $E1CFFF    I/O, equivalent to IIe $C000 - $CFFF
$E1D000 - $E1FFFF    RAM, same layout as IIe bank-switched memory,
                     reserved for system use

$E20000 - $EFFFFF    Reserved (not implemented in hardware)

$F00000 - $F7FFFF    Available for ROM disk in memory expansion slot

$F80000 - $FBFFFF    Reserved for future ROM expansion
$FC0000 - $FDFFFF    ROM (in the 1MB/ROM 3 IIgs) or reserved for ROM
$FE0000 - $FFFFFF    ROM

In the 256KB/ROM 1 IIgs, memory banks $02 through $7F are provided by
RAM in the memory expansion slot.

In the 1MB/ROM 3 IIgs, memory banks $02 through $0F are motherboard RAM,
and banks $10 through $7F are provided by RAM in the memory expansion
slot.

No application may use any RAM in these banks without first allocating
memory through the Memory Manager toolset.  In general, applications
should not assume that they can reserve a specific area, and should be
able to handle an arbitrary memory area being provided.  There are
options which allow some restrictions, e.g. "don't cross a bank
boundary" (required for code).

The areas of banks $E0 and $E1 which I've described as "RAM, reserved
for system use" are acutally a mixture of reserved and available RAM,
but none of it should be used except through the Memory Manager.

The Memory Manager must also be used for memory in banks 0 and 1 when
running under a native operating system (GS/OS).  If you run a ProDOS-8
application under GS/OS, the entire bank 0 and 1 area is reserved by the
systemm, so applications can't allocate memory in these areas (they
normally have full control over the appropriate areas).  If you boot
directly into ProDOS-8, a IIgs-aware application may need to mimic this
arrangement.


The specific details of the $C000-$C0FF area are rather a lot more
detailed than the IIe, and I don't want to type all of that in.  (Nearly
every location is used for something.)  Most of the IIe I/O locations
are supported on the IIgs.  The main exceptions are missing features:
STROBE, TAPE IN and TAPE OUT.

-- 
David Empson
dempson@actrix.gen.nz
Snail mail: P O Box 27-103, Wellington, New Zealand