Difference between revisions of "Amiga memory map"

From Amiga Coding
Jump to: navigation, search
(Copied from an article I wrote on 23 sep 2005 on a friends WIKI :P)
 
(Memory map)
 
(33 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
==Standard amount of memory in the Amiga==
 
==Standard amount of memory in the Amiga==
* Amiga 1000 - 256 Kb chip RAM
+
{| class="wikitable"
* Amiga 500 - 512 Kb chip RAM
+
|-
* Amiga 2000 - 512 Kb chip RAM, later 1 MB chip RAM
+
! Model
 +
! Chip RAM
 +
! Fast RAM
 +
! Kickstart ROM
 +
|-
 +
| Amiga 1000
 +
| 256KB
 +
| None
 +
| 256KB
 +
|-
 +
| Amiga 500
 +
| 512KB
 +
| None
 +
| 256KB
 +
|-
 +
| Amiga 500+
 +
| 1MB
 +
| None
 +
| 512KB
 +
|-
 +
| Amiga 2000
 +
| 512KB, later 1MB
 +
| None
 +
| 256KB
 +
|-
 +
| Amiga 3000
 +
| 1-2MB
 +
| 1MB
 +
| 512KB
 +
|-
 +
| Amiga 600
 +
| 1MB
 +
| None
 +
| 512KB
 +
|-
 +
| Amiga 1200
 +
| 2MB
 +
| None
 +
| 512KB
 +
|-
 +
| Amiga 4000
 +
| 2MB
 +
| 2-4MB
 +
| 512KB
 +
|}
  
 +
==Memory map==
 +
Note: Models that are based on the same map are not listed, e.g. CDTV is based on A500 architecture, and the A1500 & A2500 are variations on the A2000. Where differences exist they are specified in brackets.
 +
{| class="wikitable"
 +
|-
 +
! rowspan="2" | Address Range
 +
! rowspan="2" | Size
 +
! rowspan="2" | Category
 +
! colspan = "7" | Function
 +
|-
 +
! A1000
 +
! A500 / 2000
 +
! A500+
 +
! A600
 +
! A1200
 +
! A3000
 +
! A4000
 +
|-
 +
| 000000-03FFFF
 +
| 256KB
 +
| rowspan="4" | Chip RAM
 +
| colspan = "7" | First 256KB of chip RAM
 +
|-
 +
| 040000-07FFFF
 +
| 256KB
 +
| 256KB chip RAM expansion card
 +
| colspan="6" | Second 256KB of chip RAM (to 512KB)
 +
|-
 +
| 080000-0FFFFF
 +
| 512KB
 +
| Reserved
 +
| 512KB chip RAM expansion card (A500 trapdoor)
 +
| colspan="5" | Second 512KB of chip RAM (to 1MB)
 +
|-
 +
| 100000-1FFFFF
 +
| 1MB
 +
| colspan="2" | Reserved
 +
| colspan="2" | 1MB chip RAM expansion card
 +
| colspan = "3" | Second 1MB of chip RAM (to 2MB)
 +
|-
 +
| 200000-5FFFFF
 +
| 4MB
 +
| rowspan="2" | Zorro-II space
 +
| colspan="7" | First 4 MB Auto-config space / Fast RAM
 +
|-
 +
| 600000-9FFFFF
 +
| 4MB
 +
| colspan="3" | Second 4 MB Auto-config space / Fast RAM
 +
| colspan="2" | PCMCIA memory card / Fast RAM
 +
| colspan="2" | Second 4 MB Auto-config space / Fast RAM
 +
|-
 +
| A00000-A7FFFF
 +
| 512KB
 +
| rowspan="2" | Reserved
 +
| colspan="3" | Reserved
 +
| colspan="2" | PCMCIA control registers
 +
| colspan="2" | Reserved
 +
|-
 +
| A80000-BEFFFF
 +
| 1472KB
 +
| colspan="7" | Reserved
 +
|-
 +
| BF0000-BFFFFF
 +
| 64KB
 +
| [[CIA Memory Map|CIAs]]
 +
| colspan="7" | [[CIA Memory Map|8520 CIAs and timers]]
 +
|-
 +
| C00000-C7FFFF
 +
| 512KB
 +
| rowspan="3" | Slow-fast RAM
 +
| rowspan="3" | Reserved
 +
| colspan="2" | Pseudo-fast RAM
 +
| colspan="3" rowspan="2" | Reserved
 +
| rowspan="2" | Chip register shadow
 +
|-
 +
| C80000-CFFFFF
 +
| 512KB
 +
| colspan="2" rowspan="2" | Reserved for pseudo-fast RAM
 +
|-
 +
| D00000-D7FFFF
 +
| 512KB
 +
| colspan="4" | Reserved
 +
|-
 +
| D80000-D8FFFF
 +
| 64KB
 +
| rowspan="3" | Reserved
 +
| colspan="3" | Reserved
 +
| Reserved (Selected by SPARE_CS)
 +
| [[Clock Port]] (Selected by SPARE_CS)
 +
| colspan="2" | Reserved
 +
|-
 +
| D90000-D9FFFF
 +
| 64KB
 +
| colspan="3" | Reserved
 +
| colspan="2" | Reserved (Selected by NET_CS)
 +
| colspan="2" | Reserved
 +
|-
 +
| DA0000-DBFFFF
 +
| 128KB
 +
| colspan="3" | Reserved
 +
| colspan="2" | IDE controller
 +
| colspan="2" | Reserved
 +
|-
 +
| DC0000-DCFFFF
 +
| 64KB
 +
| Real Time Clock
 +
| colspan="7" | Real time clock (RTC)
 +
|-
 +
| DD0000-DD0FFF
 +
| 4KB
 +
| rowspan="8" | Reserved
 +
| colspan="5" rowspan="3" | Reserved
 +
| rowspan="3" | SCSI controller
 +
| SCSI controller
 +
|-
 +
| DD1000-DD3FFF
 +
| 12KB
 +
| IDE controller
 +
|-
 +
| DD4000-DDFFFF
 +
| 48KB
 +
| Reserved
 +
|-
 +
| DE0000-DEFFFF
 +
| 64KB
 +
| colspan="7" | Mainboard resources
 +
|-
 +
| DF0000-DFFFFF
 +
| 64KB
 +
| colspan="7" | [[Custom Chip Registers|Custom chip registers]]
 +
|-
 +
| E00000-E7FFFF
 +
| 512KB
 +
| colspan="3" | Reserved
 +
| colspan="2" | Reserved for first 512KB of 1MB system ROM
 +
| colspan="2" | Reserved
 +
|-
 +
| E80000-E8FFFF
 +
| 64KB
 +
| colspan="7" | Auto-config space. Boards appear here before the system relocates them to their final address.
 +
|-
 +
| E90000-EFFFFF
 +
| 448KB
 +
| colspan="7" | Secondary auto-config space (usually 64K I/O boards)
 +
|-
 +
| F00000-F7FFFF
 +
| 512KB
 +
| Extended ROM
 +
| Reserved
 +
| Extended ROM (CDTV)
 +
| colspan="2" | Reserved
 +
| Flash ROM / Extended ROM (CD32)
 +
| colspan="2" | Diagnostic ROM
 +
|-
 +
| F80000-FBFFFF
 +
| 256KB
 +
| rowspan="2" | Kickstart ROM
 +
| colspan="2" | Reserved
 +
| colspan="5" rowspan="2" | System ROM
 +
|-
 +
| FC0000-FFFFFF
 +
| 256KB
 +
| colspan="2" | System ROM
 +
|-
 +
! colspan="10" | 32-bit Addresses
 +
|-
 +
| 01000000 - 03FFFFFF
 +
| 48MB
 +
| Reserved
 +
| colspan="5" rowspan="8"| N/A
 +
| colspan="2" | Reserved
 +
|-
 +
| 04000000-06FFFFFF
 +
| 48MB
 +
| rowspan="3" | Fast RAM
 +
| colspan="2" | Reserved for motherboard RAM expansion
 +
|-
 +
| 07000000-07FFFFFF
 +
| 16MB
 +
| colspan="2" | Motherboard RAM
 +
|-
 +
| 08000000-0FFFFFFF
 +
| 128MB
 +
| colspan="2" | CPU slot expansion
 +
|-
 +
| 10000000-7FFFFFFF
 +
| 1792MB
 +
| Zorro-III space
 +
| colspan="2" | Zorro-III expansion space
 +
|-
 +
| 80000000-FEFFFFFF
 +
| 2032MB
 +
| rowspan="3" | Reserved
 +
| colspan="2" | Reserved
 +
|-
 +
| FF000000-FF00FFFF
 +
| 64KB
 +
| colspan="2" | Zorro-III config space
 +
|-
 +
| FF010000-FFFFFFFF
 +
| 16320KB
 +
| colspan="2" | Reserved
 +
|}
 +
 +
Note that various modifications and third party hardware can change the details of this map, particularly those expansions that add additional addressing capabilities, e.g. 32-bit accelerators in A1200s, 2MB chip RAM modifications in A500s etc.
  
==Memory map==
 
 
<pre>
 
<pre>
* 000000-03FFFF - 256Kb of RAM
+
Some special addresses:
 
* 000000-000100 - MC680x0 Exception Vector Assignment table  (if VBR=0)
 
* 000000-000100 - MC680x0 Exception Vector Assignment table  (if VBR=0)
 
* 000004        - Exec base (pointer to exec.library jumptable)  
 
* 000004        - Exec base (pointer to exec.library jumptable)  
* 040000-07FFFF - 256Kb of display RAM (option card)
 
* 080000-1FFFFF - Do not use
 
* 200000-9FFFFF - External expansion space
 
* A00000-BEFFFF - Do not use
 
* BFD000-BFDF00 - 8520-B (access only at EVEN byte addresses)
 
* BFE001-BFEF01 - 8520-A (access only at ODD byte addresses)
 
* C00000-DFEFFF - Reserved for future use
 
* DFF000-DFFFFF - Special purpose chips, where the last three digits specify the chip register WORD address
 
* E00000-E7FFFF - Reserved for future use - do not use
 
* E80000-EFFFFF - Expansion slot decoding
 
* F00000-F7FFFF - Reserved - do not use
 
* F80000-FFFFFF - System ROM
 
 
</pre>
 
</pre>
 
  
 
==Sources for this info==
 
==Sources for this info==

Latest revision as of 12:24, 6 June 2017

Standard amount of memory in the Amiga

Model Chip RAM Fast RAM Kickstart ROM
Amiga 1000 256KB None 256KB
Amiga 500 512KB None 256KB
Amiga 500+ 1MB None 512KB
Amiga 2000 512KB, later 1MB None 256KB
Amiga 3000 1-2MB 1MB 512KB
Amiga 600 1MB None 512KB
Amiga 1200 2MB None 512KB
Amiga 4000 2MB 2-4MB 512KB

Memory map

Note: Models that are based on the same map are not listed, e.g. CDTV is based on A500 architecture, and the A1500 & A2500 are variations on the A2000. Where differences exist they are specified in brackets.

Address Range Size Category Function
A1000 A500 / 2000 A500+ A600 A1200 A3000 A4000
000000-03FFFF 256KB Chip RAM First 256KB of chip RAM
040000-07FFFF 256KB 256KB chip RAM expansion card Second 256KB of chip RAM (to 512KB)
080000-0FFFFF 512KB Reserved 512KB chip RAM expansion card (A500 trapdoor) Second 512KB of chip RAM (to 1MB)
100000-1FFFFF 1MB Reserved 1MB chip RAM expansion card Second 1MB of chip RAM (to 2MB)
200000-5FFFFF 4MB Zorro-II space First 4 MB Auto-config space / Fast RAM
600000-9FFFFF 4MB Second 4 MB Auto-config space / Fast RAM PCMCIA memory card / Fast RAM Second 4 MB Auto-config space / Fast RAM
A00000-A7FFFF 512KB Reserved Reserved PCMCIA control registers Reserved
A80000-BEFFFF 1472KB Reserved
BF0000-BFFFFF 64KB CIAs 8520 CIAs and timers
C00000-C7FFFF 512KB Slow-fast RAM Reserved Pseudo-fast RAM Reserved Chip register shadow
C80000-CFFFFF 512KB Reserved for pseudo-fast RAM
D00000-D7FFFF 512KB Reserved
D80000-D8FFFF 64KB Reserved Reserved Reserved (Selected by SPARE_CS) Clock Port (Selected by SPARE_CS) Reserved
D90000-D9FFFF 64KB Reserved Reserved (Selected by NET_CS) Reserved
DA0000-DBFFFF 128KB Reserved IDE controller Reserved
DC0000-DCFFFF 64KB Real Time Clock Real time clock (RTC)
DD0000-DD0FFF 4KB Reserved Reserved SCSI controller SCSI controller
DD1000-DD3FFF 12KB IDE controller
DD4000-DDFFFF 48KB Reserved
DE0000-DEFFFF 64KB Mainboard resources
DF0000-DFFFFF 64KB Custom chip registers
E00000-E7FFFF 512KB Reserved Reserved for first 512KB of 1MB system ROM Reserved
E80000-E8FFFF 64KB Auto-config space. Boards appear here before the system relocates them to their final address.
E90000-EFFFFF 448KB Secondary auto-config space (usually 64K I/O boards)
F00000-F7FFFF 512KB Extended ROM Reserved Extended ROM (CDTV) Reserved Flash ROM / Extended ROM (CD32) Diagnostic ROM
F80000-FBFFFF 256KB Kickstart ROM Reserved System ROM
FC0000-FFFFFF 256KB System ROM
32-bit Addresses
01000000 - 03FFFFFF 48MB Reserved N/A Reserved
04000000-06FFFFFF 48MB Fast RAM Reserved for motherboard RAM expansion
07000000-07FFFFFF 16MB Motherboard RAM
08000000-0FFFFFFF 128MB CPU slot expansion
10000000-7FFFFFFF 1792MB Zorro-III space Zorro-III expansion space
80000000-FEFFFFFF 2032MB Reserved Reserved
FF000000-FF00FFFF 64KB Zorro-III config space
FF010000-FFFFFFFF 16320KB Reserved

Note that various modifications and third party hardware can change the details of this map, particularly those expansions that add additional addressing capabilities, e.g. 32-bit accelerators in A1200s, 2MB chip RAM modifications in A500s etc.

Some special addresses:
* 000000-000100 - MC680x0 Exception Vector Assignment table  (if VBR=0)
* 000004        - Exec base (pointer to exec.library jumptable) 

Sources for this info

  • Amiga Hardware Reference Manual (1986)
  • M68000 Programmer's Reference Manual (1984,fourth edition)
  • amiga-hardware.com (for standard amount of memory)