Memory Map

From Intellivision Wiki
Revision as of 18:41, 1 April 2005 by Pingaso (talk | contribs) (Additional Memory Aliases)
Jump to: navigation, search

The "official" memory map published by Mattel is 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. This is an artifact of how the System RAM implements its Bus Copy functionality.

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
$4021RW, VBlank Period 1STIC Mode Select register
$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
$8021RW, VBlank Period 1STIC Mode Select register
$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
$C021RW, VBlank Period 1STIC Mode Select register
$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


Addresses Available to Cartridges

The Intellivision leaves many addresses available to cartridges. However, several address ranges come with caveats, such as interactions with other devices in the system, or incompatibilities with various peripherals. Below is a summary.

Memory RangeRAMROM
$0400-$04FFOK on all but Intellivision 2.OK on all but Intellivision 2.
$0500-$06FFOKOK
$0700-$0CFFOK if no Intellivoice.OK if no Intellivoice.
$0D00-$0FFFOKOK
$2000-$2FFFOK if no ECS.OK if no ECS.
$4000-$47FFOK if no ECS.OK if no ECS.
$4800OK only if boot ROM at $7000.OK
$4801-$4FFFOKOK
$5000-$5014OK only if boot ROM at $4800 or $7000.OK
$5015-$6FFFOKOK
$7000RAM at $7000 confuses EXEC boot sequence.OK if no ECS.
$7001-$77FFOK if no ECS.OK if no ECS.
$7800-$7FFFDo not map RAM here due to GRAM alias.OK if no ECS.
$8000-$8FFFOK. Avoid STIC alias at $8000-$803F.OK. Avoid STIC alias at $8000-$803F.
$9000-$B7FFOKOK
$B800-$BFFFDo not map RAM here due to GRAM alias.OK
$C000-$CFFFOK. Avoid STIC alias at $C000-$C03F.OK. Avoid STIC alias at $C000-$C03F.
$D000-$DFFFOKOK
$E000-$EFFFOK if no ECS.OK if no ECS.
$F000-$F7FFOKOK
$F800-$FFFFDo not map RAM here due to GRAM alias.OK