Difference between revisions of "Memory Map"

From Intellivision Wiki
Jump to: navigation, search
(Official Memory Map)
(address ranges for other periphs; tweak description of bus float)
Line 1: Line 1:
 
==Official Memory Map==
 
==Official Memory Map==
The &quot;official&quot; memory map published by Mattel is included below. Note that the Intellivision was an NMOS-based system, so any memory locations that were not expilcitly mapped to a hardware unit of some sort returned all ones (1), resulting in a 16-bit value of $FFFF.<br/>
+
The &quot;official&quot; memory map published by Mattel is included below.  
 
 
 
<table border width=80%>
 
<table border width=80%>
 
<tr><th>Memory Range<th>Accessibility<th>Device</th></tr>
 
<tr><th>Memory Range<th>Accessibility<th>Device</th></tr>
Line 12: Line 11:
 
<tr><td>$3800-$39FF</td><td>RW, [[VBlank Period 2]]</td><td>[[Graphics RAM]]</td></tr>
 
<tr><td>$3800-$39FF</td><td>RW, [[VBlank Period 2]]</td><td>[[Graphics RAM]]</td></tr>
 
</table>
 
</table>
 +
<br/>
 +
The Intellivision uses a bidirectional data bus with external pull-up resistors.  Each peripheral on the bus (including the CPU) goes to a "high-impedance" state whenever it is not actively driving a value onto the bus.  Thus, if the CPU attempts to read from a memory location and no peripheral responds by asserting a value on the bus, the CPU will see all ones (1)&mdash;the 16-bit value $FFFF.<br/><br/>
 +
 +
Mattel had also reserved additional address ranges for various periperals, such as the [[Keyboard Component]], the [[PlayCable]], and the [[Intellivoice]].  Many of these reserved address ranges went effectively unused, and so aren't shown.  Each peripheral's address map is documented with the peripheral itself.
  
 
==Additional Memory Aliases==
 
==Additional Memory Aliases==

Revision as of 07:33, 11 January 2005

Official Memory Map

The "official" memory map published by Mattel is included below.

Memory RangeAccessibilityDevice
$0000-$003FRW, VBlank Period 1STIC Registers
$0100-$01EFRWScratchpad RAM
$01F0-$01FFRWPSG Registers
$0200-$035FRWSystem RAM
$1000-$1FFFRExecutive ROM
$3000-$37FFR, VBlank Period 2Graphics ROM
$3800-$39FFRW, VBlank Period 2Graphics RAM


The Intellivision uses a bidirectional data bus with external pull-up resistors. Each peripheral on the bus (including the CPU) goes to a "high-impedance" state whenever it is not actively driving a value onto the bus. Thus, if the CPU attempts to read from a memory location and no peripheral responds by asserting a value on the bus, the CPU will see all ones (1)—the 16-bit value $FFFF.

Mattel had also reserved additional address ranges for various periperals, such as the Keyboard Component, the PlayCable, and the Intellivoice. Many of these reserved address ranges went effectively unused, and so aren't shown. Each peripheral's address map is documented with the peripheral itself.

Additional Memory Aliases

Note that the official memory map shown above is actually incomplete, due to the fact that the STIC and the Graphics RAM chip incompletely decoded addresses that were placed on the address bus.

Memory RangeAccessibilityDevice
$3A00-$3BFFRW, VBlank Period 2Graphics RAM
$3C00-$3DFFRW, VBlank Period 2Graphics RAM
$3E00-$3FFFRW, VBlank Period 2Graphics RAM
$4000-$403FW, VBlank Period 1STIC Registers
$7800-$79FFW, VBlank Period 2Graphics RAM
$7A00-$7BFFW, VBlank Period 2Graphics RAM
$7C00-$7DFFW, VBlank Period 2Graphics RAM
$7E00-$7FFFW, VBlank Period 2Graphics RAM
$8000-$803FW, VBlank Period 1STIC Registers
$B800-$B9FFW, VBlank Period 2 Graphics RAM
$BA00-$BBFFW, VBlank Period 2 Graphics RAM
$BC00-$BDFFW, VBlank Period 2 Graphics RAM
$BE00-$BFFFW, VBlank Period 2 Graphics RAM
$C000-$C03FW, VBlank Period 1STIC Registers
$F800-$F9FFW, VBlank Period 2 Graphics RAM
$FA00-$FBFFW, VBlank Period 2 Graphics RAM
$FC00-$FDFFW, VBlank Period 2 Graphics RAM
$FE00-$FFFFW, VBlank Period 2 Graphics RAM