System RAM

From Intellivision Wiki
Revision as of 22:10, 11 January 2005 by Pingaso (talk | contribs)
Jump to: navigation, search

[[Category:Memory Units] The System RAM unit is the only 16-bit RAM available in the Intellivision, and it is mapped into the Intellivision memory map from $0200-$035F. The System RAM has the additional responsibilities:

  • It bridges between the STIC's private graphics bus and the CPU's main memory bus. This additional functionality is described under Bus Copy.
  • It provides a 20-word Video FIFO to reduce the STIC's memory bandwidth impact on the System RAM.

Programs which rely heavily on the Executive ROM cannot use most of the storage in System RAM. The display background occupies most of System RAM, and the EXEC's variables and data structures occupy the rest. Some EXEC-based games do store variables here through various tricks, such as limiting the number of active MOBs to fewer than 8, or by blanking the first row of the display to make $200 - $213 available. (Advanced Dungeons and Dragons Tarmin Treasure does the latter trick.) Programs that utilize the EXEC minimally, if at all can allocate all of $2F0 - $35F as they see fit.

Because the CP1610 CPU automatically pushes the program counter to the stack in response to an interrupt, and since the program counter is a 16-bit value, the CP1610 stack must reside in System RAM.

$0200-$02EFBACKground TABle (BACKTAB)
$02F0-$02F0EXEC: Indicates the currently active cartridge header
$02F1-$0318CP1610 Stack. (Upper bound actually determined by the game software.)
$0319-$031CEXEC: Unknown use
$031D-$035CEXEC: MOB RAM data base
$035DEXEC: Current hand controller dispatch table pointer
$035EEXEC: Current random number seed
$035FEXEC: Something sound related