Difference between revisions of "Amiga memory map"

From Amiga Coding
Jump to: navigation, search
(Memory map)
(Memory map)
 
(28 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
==Standard amount of memory in the Amiga==
 
==Standard amount of memory in the Amiga==
* Amiga 1000 - 256KB chip RAM
+
{| class="wikitable"
* Amiga 500 - 512KB chip RAM
+
|-
* Amiga 500+ - 1MB chip RAM
+
! Model
* Amiga 2000 - 512KB chip RAM, later 1MB chip RAM
+
! Chip RAM
* Amiga 3000 - 1-2MB chip RAM, 1MB fast RAM
+
! Fast RAM
* Amiga 600 - 1MB chip RAM
+
! Kickstart ROM
* Amiga 1200 - 2MB chip RAM
+
|-
* Amiga 4000 - 2MB chip RAM, 2-4MB fast RAM
+
| 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==
 
==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"
 
{| class="wikitable"
 
|-
 
|-
 
! rowspan="2" | Address Range
 
! rowspan="2" | Address Range
 
! rowspan="2" | Size
 
! rowspan="2" | Size
 +
! rowspan="2" | Category
 
! colspan = "7" | Function
 
! colspan = "7" | Function
 
|-
 
|-
Line 26: Line 67:
 
| 000000-03FFFF
 
| 000000-03FFFF
 
| 256KB
 
| 256KB
 +
| rowspan="4" | Chip RAM
 
| colspan = "7" | First 256KB of chip RAM
 
| colspan = "7" | First 256KB of chip RAM
 
|-
 
|-
Line 36: Line 78:
 
| 512KB
 
| 512KB
 
| Reserved
 
| Reserved
| colspan="6" | Second 512KB of chip RAM (to 1MB)
+
| 512KB chip RAM expansion card (A500 trapdoor)
 +
| colspan="5" | Second 512KB of chip RAM (to 1MB)
 
|-
 
|-
 
| 100000-1FFFFF
 
| 100000-1FFFFF
 
| 1MB
 
| 1MB
 
| colspan="2" | Reserved
 
| colspan="2" | Reserved
| colspan = "5" | Second 1MB of chip RAM (to 2MB)
+
| colspan="2" | 1MB chip RAM expansion card
 +
| colspan = "3" | Second 1MB of chip RAM (to 2MB)
 
|-
 
|-
 
| 200000-5FFFFF
 
| 200000-5FFFFF
 
| 4MB
 
| 4MB
 +
| rowspan="2" | Zorro-II space
 
| colspan="7" | First 4 MB Auto-config space / Fast RAM
 
| colspan="7" | First 4 MB Auto-config space / Fast RAM
 
|-
 
|-
Line 55: Line 100:
 
| A00000-A7FFFF
 
| A00000-A7FFFF
 
| 512KB
 
| 512KB
 +
| rowspan="3" | Reserved
 
| colspan="3" | Reserved
 
| colspan="3" | Reserved
| colspan="2" | PCMCIA control registers
+
| colspan="2" | PCMCIA control & I/O registers
 
| colspan="2" | Reserved
 
| colspan="2" | Reserved
 
|-
 
|-
| A80000-BEFFFF
+
| A80000-B7FFFF
| 1471KB
+
| 1024KB
 +
| colspan="3" | Reserved
 +
| Additional system ROM space
 +
| Additional system ROM space (FMV ROM on CD32)
 +
| colspan="2" | Reserved
 +
|-
 +
| B80000-BEFFFF
 +
| 448KB
 
| colspan="7" | Reserved
 
| colspan="7" | Reserved
 
|-
 
|-
| BFD000-BFDF00
+
| BF0000-BFFFFF
| 3840 bytes
+
| 64KB
| colspan="7" | 8520-B (access at even-byte addresses only)
+
| [[CIA Memory Map|CIAs]]
 +
| colspan="7" | [[CIA Memory Map|8520 CIAs and timers]]
 
|-
 
|-
| BFE001-BFEF01
+
| C00000-C7FFFF
| 3840 bytes
+
| 512KB
| colspan="7" | 8520-A (access at odd-byte addresses only)
+
| rowspan="3" | Slow-fast RAM
 +
| rowspan="3" | Reserved
 +
| colspan="2" | Pseudo-fast RAM
 +
| colspan="3" rowspan="2" | Reserved
 +
| rowspan="2" | Chip register shadow
 
|-
 
|-
| C00000-C7FFFF
+
| C80000-CFFFFF
 +
| 512KB
 +
| colspan="2" rowspan="2" | Reserved for pseudo-fast RAM
 +
|-
 +
| D00000-D7FFFF
 
| 512KB
 
| 512KB
 +
| colspan="4" | Reserved
 +
|-
 +
| D80000-D8FFFF
 +
| 64KB
 +
| rowspan="3" | Reserved
 +
| Reserved
 +
| Reserved (Real time clock on early A2000s)
 
| Reserved
 
| Reserved
| Pseudo-fast RAM
+
| Reserved (Selected by SPARE_CS)
| colspan="5" | Reserved
+
| [[Clock Port]] (Selected by SPARE_CS)
 +
| colspan="2" | Reserved
 
|-
 
|-
| C80000-D7FFFF
+
| D90000-D9FFFF
| 1MB
+
| 64KB
| colspan="7" | Reserved
+
| colspan="3" | Reserved
 +
| colspan="2" | Reserved (Selected by NET_CS)
 +
| colspan="2" | Reserved
 
|-
 
|-
| D80000-DBFFFF
+
| DA0000-DBFFFF
| 40KB
+
| 128KB
| colspan="7" | Reserved
+
| colspan="3" | Reserved
 +
| colspan="2" | [[Gayle IDE Controller|IDE controller]]
 +
| colspan="2" | Reserved
 
|-
 
|-
 
| DC0000-DCFFFF
 
| DC0000-DCFFFF
 
| 64KB
 
| 64KB
| colspan="7" | Real time clock
+
| 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
 
|-
 
|-
| DD0000-DFEFFF
+
| DE0000-DFEFFF
| 188KB
+
| 124KB
| colspan="7" | Reserved
+
| colspan="7" | [[Mainboard Resources|Mainboard resources]]
 
|-
 
|-
 
| DFF000-DFFFFF
 
| DFF000-DFFFFF
 
| 4KB
 
| 4KB
| colspan="7" | Custom chip registers
+
| colspan="7" | [[Custom Chip Registers|Custom chip registers]]
 
|-
 
|-
 
| E00000-E7FFFF
 
| E00000-E7FFFF
 
| 512KB
 
| 512KB
 
| colspan="3" | Reserved
 
| colspan="3" | Reserved
| colspan="2" | First 512KB of 1MB system ROM (not normally used)
+
| colspan="2" | Reserved for first 512KB of 1MB system ROM
 
| colspan="2" | Reserved
 
| colspan="2" | Reserved
 
|-
 
|-
Line 113: Line 203:
 
| F00000-F7FFFF
 
| F00000-F7FFFF
 
| 512KB
 
| 512KB
 +
| Extended ROM
 
| Reserved
 
| Reserved
 
| Extended ROM (CDTV)
 
| Extended ROM (CDTV)
Line 121: Line 212:
 
| F80000-FBFFFF
 
| F80000-FBFFFF
 
| 256KB
 
| 256KB
 +
| rowspan="2" | Kickstart ROM
 
| colspan="2" | Reserved
 
| colspan="2" | Reserved
| colspan="5" | Lower 256KB of System ROM
+
| colspan="5" rowspan="2" | System ROM
 
|-
 
|-
 
| FC0000-FFFFFF
 
| FC0000-FFFFFF
 
| 256KB
 
| 256KB
 
| colspan="2" | System ROM
 
| colspan="2" | System ROM
| colspan="5" | Upper 256KB of System ROM
 
 
|-
 
|-
! colspan="9" | 32-bit Addresses
+
! colspan="10" | 32-bit Addresses
 
|-
 
|-
 
| 01000000 - 03FFFFFF
 
| 01000000 - 03FFFFFF
 
| 48MB
 
| 48MB
| colspan="5" rowspan="6"| N/A
+
| Reserved
 +
| colspan="5" rowspan="8"| N/A
 
| colspan="2" | Reserved
 
| colspan="2" | Reserved
 
|-
 
|-
| 04000000-07FFFFFF
+
| 04000000-06FFFFFF
| 64MB
+
| 48MB
 +
| rowspan="3" | Fast RAM
 +
| colspan="2" | Reserved for motherboard RAM expansion
 +
|-
 +
| 07000000-07FFFFFF
 +
| 16MB
 
| colspan="2" | Motherboard RAM
 
| colspan="2" | Motherboard RAM
 
|-
 
|-
Line 146: Line 243:
 
| 10000000-7FFFFFFF
 
| 10000000-7FFFFFFF
 
| 1792MB
 
| 1792MB
 +
| Zorro-III space
 
| colspan="2" | Zorro-III expansion space
 
| colspan="2" | Zorro-III expansion space
 
|-
 
|-
 
| 80000000-FEFFFFFF
 
| 80000000-FEFFFFFF
 
| 2032MB
 
| 2032MB
 +
| rowspan="3" | Reserved
 
| colspan="2" | Reserved
 
| colspan="2" | Reserved
 
|-
 
|-
| FF000000-FFFFFFFF
+
| FF000000-FF00FFFF
| 16MB
+
| 64KB
 
| colspan="2" | Zorro-III config space
 
| 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.
  
 
<pre>
 
<pre>
Line 164: Line 269:
  
 
==Sources for this info==
 
==Sources for this info==
* Amiga Hardware Reference Manual (1986)  
+
* Amiga Hardware Reference Manual (various editions)  
* M68000 Programmer's Reference Manual (1984,fourth edition)  
+
* M68000 Programmer's Reference Manual (1984, fourth edition)  
 
* amiga-hardware.com (for standard amount of memory)
 
* amiga-hardware.com (for standard amount of memory)
 +
* Gayle, Gary specifications
 +
* A1200 functional specification

Latest revision as of 17:53, 10 June 2021

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 & I/O registers Reserved
A80000-B7FFFF 1024KB Reserved Additional system ROM space Additional system ROM space (FMV ROM on CD32) Reserved
B80000-BEFFFF 448KB 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 (Real time clock on early A2000s) 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-DFEFFF 124KB Mainboard resources
DFF000-DFFFFF 4KB 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 (various editions)
  • M68000 Programmer's Reference Manual (1984, fourth edition)
  • amiga-hardware.com (for standard amount of memory)
  • Gayle, Gary specifications
  • A1200 functional specification