Sitenotice: 11/29/2018: The wiki is back. It turns out, some anti-virus product on my web server had an issue with the latest version of PHP. My server techs have resolved this issue, and things should be working again. During the investigation, I did restore to a backup from September. There is a chance that any changes done since then were lost, but I do not recall any edits. --OS-9 Al
8/30/2016: Massive re-work is being done on the InfoBox Templates. Read that page to keep up with the plan for that, and adding better keyword tags (categories) to all the pages. --OS-9 Al (talk) 15:28, 31 August 2016 (CDT)
MMU RAMROM Mode
|Looking for CoCo help? If you are trying to do something with your old Color Computer, read this quick reference. Want to contribute to this wiki? Be sure to read this first. This CoCo wiki project was started on October 29, 2004. --OS-9 Al|
This page was last updated on 04/16/2008. Total Pages: 544. Total Files: 907.
Color Computer 3 Memory Management Unit in ROM/RAM
The MMU in the CoCo 3 has access to 64 blocks of RAM each 8 kilobytes in size. In ROM/RAM mode the last four blocks don't access RAM. They access either internal or external ROM. The RAM/ROM mode is entered by writing any value to address $FFDE. RAM mode is selected by writing any value to address $FFDF.
In ROM/RAM mode there are three different ROM configurations available. They are selected by setting bits 1 and 0 of address $FF90 to:
|Extended Color BASIC||Color BASIC||16K Cartridge ROM||0X|
|Extended Color BASIC||Color BASIC||Reset Initialization||Super Extended Color BASIC||10|
|32K Cartridge ROM||11|
|CPU Address Range||Slot Address|
|$0000 - $1FFF||Slot 0: $FFA0, $FFA8|
|$2000 - $3FFF||Slot 1: $FFA1, $FFA9|
|$4000 - $5FFF||Slot 2: $FFA2, $FFAA|
|$6000 - $7FFF||Slot 3: $FFA3, $FFAB|
|$8000 - $9FFF||Slot 4: $FFA4, $FFAC|
|$A000 - $BFFF||Slot 5: $FFA5, $FFAD|
|$C000 - $DFFF||Slot 6: $FFA6, $FFAE|
|$E000 - $FFFF||Slot 7: $FFA6, $FFAF|
The ROM pages ($3C-$3F) can be written to any of the eight available MMU slots. In all cases the last two bits of the page are ignored by the MMU and substituted by the last two bits of the slot number.
For example, writing $3D to slot 2 of the MMU does not map the second 8k page of ROM to addresses $4000-$5FFF. It maps page $3E (the third ROM page), because:
This essentially means that page $3C will only appear in slots 0 and 4; $3D in 1 and 5; $3E in 2 and 6; $3F in 3 and 7.