base:memory_management
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
base:memory_management [2022-03-05 11:12] – finally got around to the "with cartridges" section white_flame | base:memory_management [2022-03-05 22:59] – [Without Cartridges] white_flame | ||
---|---|---|---|
Line 5: | Line 5: | ||
====== Without Cartridges ====== | ====== Without Cartridges ====== | ||
- | The low 3 bits of $01 control the mapping of specific regions of memory. | + | The low 3 bits of $01 control the mapping of specific regions of memory. |
^Name ^Bit ^Region ^0 ^1 ^Notes^ | ^Name ^Bit ^Region ^0 ^1 ^Notes^ | ||
Line 29: | Line 29: | ||
|$36 +54 %110 |RAM |I/O |KERNAL| | |$36 +54 %110 |RAM |I/O |KERNAL| | ||
|$37 +55 %111 |BASIC |I/O |KERNAL|Default| | |$37 +55 %111 |BASIC |I/O |KERNAL|Default| | ||
+ | |||
+ | ***WARNING***: | ||
+ | |||
====== With Cartridges ====== | ====== With Cartridges ====== | ||
Line 38: | Line 41: | ||
* /IO2 = $DF00 - $DFFF | * /IO2 = $DF00 - $DFFF | ||
- | /ROML and /ROMH are active on reads depending on how the cartridge sets the configuration inputs. | + | /ROML and /ROMH are active on reads depending on how the cartridge sets the configuration inputs. |
===== Cart pulls /EXROM low ===== | ===== Cart pulls /EXROM low ===== | ||
- | The simplest cartridge configuration, | + | The simplest |
^$01 value ^$8000-9FFF ^$A000-BFFF ^$D000-DFFF ^$E000-FFFF ^Notes^ | ^$01 value ^$8000-9FFF ^$A000-BFFF ^$D000-DFFF ^$E000-FFFF ^Notes^ | ||
Line 58: | Line 61: | ||
===== Cart pulls /EXROM + /GAME low ===== | ===== Cart pulls /EXROM + /GAME low ===== | ||
- | ROML is before BASIC, and is swapped out with the LORAM bit in $01; while ROMH replaces BASIC and is swapped | + | ROML is before BASIC, and is swapped out with the LORAM bit in $01. |
^$01 value ^$8000-9FFF ^$A000-BFFF ^$D000-DFFF ^$E000-FFFF ^Notes^ | ^$01 value ^$8000-9FFF ^$A000-BFFF ^$D000-DFFF ^$E000-FFFF ^Notes^ | ||
Line 77: | Line 80: | ||
^$0000-0FFF ^$1000-7FFF ^$8000-9FFF ^$A000-CFFF ^$D000-DFFF ^$E000-FFFF ^ | ^$0000-0FFF ^$1000-7FFF ^$8000-9FFF ^$A000-CFFF ^$D000-DFFF ^$E000-FFFF ^ | ||
|RAM |unmapped |**__ROML__** |unmapped |I/O |**__ROMH__**| | |RAM |unmapped |**__ROML__** |unmapped |I/O |**__ROMH__**| | ||
+ | |||
+ | The VIC-II will also see the first 4kB of ROMH at $3000-3FFF in all of its 16kB banks, with no access to CHARROM. | ||
Line 82: | Line 87: | ||
- | ===== Related: from Graham' | + | ====== Related: from Graham' |
In the C64/C128 series of computers, slightly modified versions of the 6502 were used. The modifications did not affect the functional part of the processor itself. Only a so-called processor port was added. This port, in combination with an external PLA, was used to map ROM and I/O areas into the 64KB RAM of the C64. Also, some bits of the port were used for the legendary Datasette. | In the C64/C128 series of computers, slightly modified versions of the 6502 were used. The modifications did not affect the functional part of the processor itself. Only a so-called processor port was added. This port, in combination with an external PLA, was used to map ROM and I/O areas into the 64KB RAM of the C64. Also, some bits of the port were used for the legendary Datasette. |
base/memory_management.txt · Last modified: 2022-04-17 05:36 by white_flame