This repository has been archived by the owner on Jun 1, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 8
Thistle Memory Layout
James Coon edited this page Mar 21, 2017
·
2 revisions
Address | Size | Description |
---|---|---|
$0000-$0FFF | $1000 | Memory Bank 0 (Zero Page+Stack) |
$1000-$1FFF | $1000 | Memory Bank 1 |
$2000-$2FFF | $1000 | Memory Bank 2 |
$3000-$3FFF | $1000 | Memory Bank 3 |
$4000-$4FFF | $1000 | Memory Bank 4 |
$5000-$5FFF | $1000 | Memory Bank 5 |
$6000-$6FFF | $1000 | Memory Bank 6 |
$7000-$7FFF | $1000 | Memory Bank 7 |
$8000-$8FFF | $1000 | Memory Bank 8 |
$9000-$9FFF | $1000 | Memory Bank 9 |
$A000-$AFFF | $1000 | Component Access 48-63 (Bank 10) |
$B000-$BFFF | $1000 | Component Access 32-47 (Bank 11) |
$C000-$CFFF | $1000 | Component Access 16-31 (Bank 12) |
$D000-$DFFF | $1000 | Component Access 0-15 (Bank 13) |
$E000-$E00F | $0010 | General IO |
$E010-$E01F | $0010 | Component Mapper |
$E020-$E03F | $0020 | Bank Selector |
$E040-$E04F | $0010 | DMA Copy Engine |
$E050-$E05F | $0010 | RTC and Timers |
($E060-$E0FF) | $00A0 | Reserved |
$E100-$E11F | $0020 | Computer Information |
($E120-$EEFF) | $0DE0 | Reserved |
$EF00-$EFFF | $0100 | EEPROM Data Access |
$F000-$FFFF | $1000 | EEPROM Code Access |
Memory is laid out as 16 4KiB banks, of which areas that share usage with memory can be toggled between the device or memory (Except for Bank 14).
The Bank Selector region consists of 16 unsigned 16bit numbers that control what portion of physical memory is available in each bank. The default layout is a linear mapping of the bottom of physical memory. A byte in the Component Mapper controls whether Memory or Devices is visible for the shared regions.
Components are layed out as 64 256B regions, which are mapped in an out by the Component Mapper device.
Component Access areas 16-63 are by default hidden, the EEPROM is by default visible.
Refer to each Device's respective page for more information.