S Y M B O S   D E V E L O P E R   D O C U M E N T A T I O N
Date: 29.12.2006
===============================================================================


S Y M B O S   M E M O R Y   M A P   ( M S X )


A.) General Memory Usage

The following diagram shows, in which way the different memory banks and blocks
are used in SymbOS.

      Bank 0                Bank 1                Bank n
FFFF  +-----------------+   +-----------------+   +-----------------+
      |                 |   |                 |   |                 |
      | System Data     |   |                 |   |                 |
      |                 |   | free            |   | free            |
      | System Manager  |   |                 |   |                 |
      |                 |   |                 |   |                 |
C000  +-----------------+   +-----------------+   +-----------------+
      | Buffers         |   |                 |   |                 |
      | SubRoutines     |   |                 |   |                 |
      | DeviceManager   |   | free            |   | free            |
      |                 |   |                 |   |                 |
      | ScreenManager   |   |                 |   |                 |
8000  +-----------------+   +-----------------+   +-----------------+
      |                 |   |                 |   |                 |
      |                 |   |                 |   |                 |
      | DesktopManager  |   | free            |   | free            |
      |                 |   |                 |   |                 |
      |                 |   |                 |   |                 |
4000  +-----------------+   +-----------------+   +-----------------+
      | DesktopManager  |   |                 |   |                 |
      | SystemManager   |   |                 |   |                 |
      | FileManager-LL  |   | FileManager-HL  |   | free            |
      | Kernel          |   |                 |   |                 |
      | KernelJumps     |   | KernelJumps     |   | KernelJumps     |
0000  +-----------------+   +-----------------+   +-----------------+

===============================================================================


B.) Application Memory Usage

The memory inside an application RAM bank (1-n) is used in the following way:
1.) 0000-03FF   Kernel jumps, Kernel multitasking and banking routines
2.) 0400-FFFF   Application code and internal application data
3.) 0400-3FFF,  Application data used by the screen manager
    4000-7FFF,  (one object has to be inside one 16K block)
    8000-BFFF,
    C000-FFFF
4.) C000-FFFF   Application "transfer" data, used by the desktop manager,
                message buffer, stack

===============================================================================


C.) Memory Configurations

The following diagram shows, how the memory is configured during the activity
of one of the modules of SymbOS.

      DesktopManager (C1)   ScreenManager(C4-7)   FileManager-HL (C4)   FileManager-LL (**)   Application    (C2)
FFFF  +-----------------+   +-----------------+   +-----------------+   +-----------------+   +-----------------+
      | Bank n, Block 3 |   | Bank 0, Block 3 |   | Bank 0, Block 3 |   | Bank 0, Block 3 |   | Bank n, Block 3 |
      | Transfer RAM    |   |                 |   |                 |   |                 |   | Trnf, Code, Data|
C000  +-----------------+   +-----------------+   +-----------------+   +-----------------+   +-----------------+
      | Bank 0, Block 2 |   | Bank 0, Block 2 |   | Bank 0, Block 2 |   | Slot x,y        |   | Bank n, Block 2 |
      |                 |   | ScreenManager   |   |                 |   | Disc ROM        |   | Code, Data      |
8000  +-----------------+   +-----------------+   +-----------------+   +-----------------+   +-----------------+
      | Bank 0, Block 1 |   | Bank n, Block m |   | Bank 1, Block 0 |   | Bank n, Block m |   | Bank n, Block 1 |
      | DesktopManager  |   | Data RAM        |   | FileManager-HL  |   | Data RAM        |   | Code, Data      |
4000  +-----------------+   +-----------------+   +-----------------+   +-----------------+   +-----------------+
      | Bank 0, Block 0 |   | Bank 0, Block 0 |   | Bank 0, Block 0 |   | Bank 0, Block 0 |   | Bank n, Block 0 |
      |                 |   |                 |   |                 |   | FileManager-LL  |   | Code, Data      |
0000  +-----------------+   +-----------------+   +-----------------+   +-----------------+   +-----------------+
