Error
2 revisions of this difference (11290 and 14846) were not found.
This is usually caused by following an outdated diff link to a page that has been deleted. Details can be found in the deletion log.
Revision as of 08:54, 4 December 2010
The "official" memory map published by Mattel is below.
Memory Range | Accessibility | Device |
---|---|---|
$0000-$003F | RW, VBlank Period 1 | STIC Registers |
$0100-$01EF | RW | Scratchpad RAM |
$01F0-$01FF | RW | PSG Registers |
$0200-$035F | RW | System RAM |
$1000-$1FFF | R | Executive ROM |
$3000-$37FF | R, VBlank Period 2 | Graphics ROM |
$3800-$39FF | RW, VBlank Period 2 | Graphics 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 Occupied Memory Ranges
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. For instance, if the CPU reads from the STIC or GRAM aliases it will not see any data from the STIC or GRAM. However, if it reads from $4021, $8021 or $C021 during VBlank Period 1 the STIC will switch into Color Stack mode. Also, the Intellivision 2 throws a few quirks into the equation.
Memory Range | Accessibility | Device |
---|---|---|
$0040-$007F | R, VBlank Period 2 | STIC-responsive, but read only |
$0360-$03FF | R | Garbage values due to incomplete address decode in RA-3-9600A (Intellivision II only?) |
$0400-$04FF | R | Additional EXEC ROM, Intellivision II only |
$3A00-$3BFF | RW, VBlank Period 2 | Graphics RAM |
$3C00-$3DFF | RW, VBlank Period 2 | Graphics RAM |
$3E00-$3FFF | RW, VBlank Period 2 | Graphics RAM |
$4000-$403F | W, VBlank Period 1 | STIC Registers |
$4021 | RW, VBlank Period 1 | STIC Mode Select register. |
$7800-$79FF | W, VBlank Period 2 | Graphics RAM |
$7A00-$7BFF | W, VBlank Period 2 | Graphics RAM |
$7C00-$7DFF | W, VBlank Period 2 | Graphics RAM |
$7E00-$7FFF | W, VBlank Period 2 | Graphics RAM |
$8000-$803F | W, VBlank Period 1 | STIC Registers |
$8021 | RW, VBlank Period 1 | STIC Mode Select register |
$B800-$B9FF | W, VBlank Period 2 | Graphics RAM |
$BA00-$BBFF | W, VBlank Period 2 | Graphics RAM |
$BC00-$BDFF | W, VBlank Period 2 | Graphics RAM |
$BE00-$BFFF | W, VBlank Period 2 | Graphics RAM |
$C000-$C03F | W, VBlank Period 1 | STIC Registers |
$C021 | RW, VBlank Period 1 | STIC Mode Select register |
$F800-$F9FF | W, VBlank Period 2 | Graphics RAM |
$FA00-$FBFF | W, VBlank Period 2 | Graphics RAM |
$FC00-$FDFF | W, VBlank Period 2 | Graphics RAM |
$FE00-$FFFF | W, 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 Range | RAM | ROM |
---|---|---|
$0400-$04FF | OK on all but Intellivision 2. | OK on all but Intellivision 2. |
$0500-$06FF | OK | OK |
$0700-$0CFF | OK if no Intellivoice. | OK if no Intellivoice. |
$0D00-$0FFF | OK | OK |
$2000-$2FFF | OK if no ECS. | OK if no ECS. |
$4000-$47FF | OK if no ECS. | OK if no ECS. |
$4800 | OK only if boot ROM at $7000. | OK |
$4801-$4FFF | OK | OK |
$5000-$5014 | OK only if boot ROM at $4800 or $7000. | OK |
$5015-$6FFF | OK | OK |
$7000 | RAM at $7000 confuses EXEC boot sequence. | OK if no ECS. |
$7001-$77FF | OK if no ECS. | OK if no ECS. |
$7800-$7FFF | Do not map RAM here due to GRAM alias. | OK if no ECS. |
$8000-$8FFF | OK. Avoid STIC alias at $8000-$803F. | OK. Avoid STIC alias at $8000-$803F. |
$9000-$B7FF | OK | OK |
$B800-$BFFF | Do not map RAM here due to GRAM alias. | OK |
$C000-$CFFF | OK. Avoid STIC alias at $C000-$C03F. | OK. Avoid STIC alias at $C000-$C03F. |
$D000-$DFFF | OK | OK |
$E000-$EFFF | OK if no ECS. | OK if no ECS. |
$F000-$F7FF | OK | OK |
$F800-$FFFF | Do not map RAM here due to GRAM alias. | OK |