[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Memory maps for Apple ][, ][+ and IIe?



The Blue Wizard writes ...
> 
> I would like to know the general memory layout for Apple ][, ][+, and IIe,
> including the I/O registers and standard names of various ROM call
> entries and zero page RAM names, plus a few $03xx names.
 ....



     Below is a quickie memory map for a typical 64k Apple II which is, also,
the Main Bank of a 128k Apple II.


$0000 ---------------

ZERO Page area-- used for holding many system parameters, a few
  system routines and variables, DOS & ProDOS parms, ... . Also,
  this area has a number of 'open' addresses the user can employ.

$0100 ---------------

STACK page-- place where JSR return addresses, etc. gets PUSHed.

$0200 ---------------

Commands buffer area-- e.g. place where typed-in stuff usually gets
  put first

$0300 ---------------

Mainly Open area-- a nice place to load in short machine language
  routines (like sound routines, etc.)  Roughly the upper 48 bytes
  are used for holding Reset, IRQ, ... vectors and some DOS or 
  ProDOS vectors.

$0400 ---------------

Text "Page" 1 (or LoRes "Page" 1)-- Place where most TEXT you see on
  a 40-col display is located (40 chars x 24 lines). If in Graphics
  mode, you see a 16-color LoRes display (40 x 48). If in Graphics
  mode with Full Graphics set, you see just LoRes. If in Graphics
  mode with Mixed set, you get 40 lines of Lores with 4 lines of
  TEXT at the bottom. (On a 128k Apple II, this area can be used as
  half of the 80-col. Text "Page" 1 or half of the Double-LoRes
 "Page" 1.)

$0800 ---------------

BASIC program area-- place where a BASIC program resides. This space
  can be used for non-BASIC programs and routines, too (like stuff
  you BRUN or large machine language routines you BLOAD to use along
  with a BASIC program.

  The space actually available for a BASIC program or ML routines or
  whatever depends upon what other parts of the $0800-$BFFF space
  are used for graphics, DOS or ProDOS, and DOS or ProDOS buffers.

  $0800-$0BFF can be used as Text "Page" 2 (or LoRes "Page" 2).
  This is rarely done; but, if it is, then a BASIC program must
  start after $0BFF. (On a 128k Apple II, this can be used as half
  of the 80-col. Text "Page" 2 or half of the Double-LoRes
 "Page" 2.)

  $2000-$3FFF can be used as HiRes "Page" 1-- i.e. the place Hires
  pics load in to be displayed. This is a fairly common use.
  As long as a BASIC program, etc. is small enough, it can load
  in at $0800 (actually $0801 for BASIC) as long as the space is not
  being used as a second Text or Lores "Page". A large BASIC program
  would usually load in after the HiRes area, at $4001. (On a 128k
  Apple II, this can be used as half of the Double-HiRes "Page" 1.)

  $4000-$5FFF can be used as HiRes "Page" 2-- i.e. another place
  Hires pics load in to be displayed. This is a good place to load
  in/display Hires pics for moderate size BASIC programs. Such
  Programs will, then have $0801-$3FFF available (assuming no
  Text or LoRes "Page" 2 is active and HiRes "Page" 1 is not used
  for graphics. Sometimes, both HiRes "Pages" are used in order to
  do speedier animations or for some other reason. If this is done,
  you must start your BASIC program before the Hires areas or after.
 (On a 128k Apple II, this can be used as half of the Double-HiRes
 "Page" 2.)



$9000 --- (Approximately)----

DOS or ProDOS plus buffers use up most of this space.


$BFFF --------------- End of 'Program Space'

$C000 ---------------

Area usually employed for I/O, Soft-Switches, memory address space
  for use by Slot cards, etc. 

$D000 ---------------

Usually employed for BASIC in-ROM or for one of two 4kB "Language
  Card" banks of RAM.

$E000 ---------------

Usually employed for BASIC in-ROM (continued) and the Monitor in-ROM
  or for one 8kB "Language Card" bank.

  In-ROM BASIC runs from $D000-$F7FF

  The In-ROM Monitor runs from $F800-$FFFF

$FFFF --------------- End of 64kB "Main Bank" memory



     For I/O locations and Softswitch info see ...
http://home.swbell.net/rubywand/Csa2APPLICS.html#005 .


     You can find a Beagle-style "PEEKS & POKES" chart which includes subroutine
CALLs from Edhel Iaur on the Ground archive at ...
ftp://ground.ecn.uiowa.edu/apple2/MiscInfo/Applesoft/ .



Rubywand