FNX6809 Manuals: Difference between revisions
No edit summary |
No edit summary |
||
Line 66: | Line 66: | ||
MMU_SLOT_7 equ $FFAF $E000-$FFFF | MMU_SLOT_7 equ $FFAF $E000-$FFFF | ||
<nowiki>*</nowiki> MMU_IO_CTRL bits | |||
<nowiki>*</nowiki> $FFA1 has 2 bits: | |||
<nowiki>*</nowiki> FFA1[0] = | |||
<nowiki>*</nowiki> 1 = Enable internal RAM for segment $FD00-$FDFF. | |||
<nowiki>*</nowiki> 0 = Disable; RAM/FLASH is accessible. | |||
<nowiki>*</nowiki> | |||
<nowiki>*</nowiki> FFA1[1] = | |||
<nowiki>*</nowiki> 1 = Enable internal RAM for segment $FFF0-$FFFF | |||
<nowiki>*</nowiki> 0 = Disable; RAM/FLASH is accessible. | |||
<nowiki>*</nowiki> When enabled, the areas supersede RAM/flash, but will be disabled by RESET. When the system resets, | |||
<nowiki>*</nowiki> those regions revert to RAM/flash. Also at RESET, the contents of RAM retain the old values until the | |||
<nowiki>*</nowiki> system powers off. | |||
'''NOTE:''' If you are writing an OS9 program, use <code>F$MapBlk</code> and <code>F$ClrBlk</code> instead of directly accessing these addresses. | |||
== Memory Map == | == Memory Map == |
Revision as of 20:22, 31 May 2024
MMU Registers
Address | R/W | Name | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|
$FFA0 | RW | MMU_MEM_CTRL | - | - | EDIT_LUT | - | - | ACT_LUT | ||
$FFA1 | RW | MMU_IO_CTRL | - | - | - | - | - | $FFF0-$FFFF
Enable |
$FD00-$FDFF
Enable |
There are 4 MLUTs (MMU Lookup Tables).
ACT_LUT these two bits specify which MLUT (0–3) is used to translate CPU bus address to system bus addresses.
EDIT_LUT these two bits will specify which MLUT (0 - 3) is being edited and will appear in memory addresses $FFA8-$FFAF.
These locations are defined in nitros9/defs/f256.d:
MMU_MEM_CTRL equ $FFA0
MMU_IO_CTRL equ $FFA1
MMU_SLOT_0 equ $FFA8 $0000-$1FFF
MMU_SLOT_1 equ $FFA9 $2000-$3FFF
MMU_SLOT_2 equ $FFAA $4000-$5FFF
MMU_SLOT_3 equ $FFAB $6000-$7FFF
MMU_SLOT_4 equ $FFAC $8000-$9FFF
MMU_SLOT_5 equ $FFAD $A000-$BFFF
MMU_SLOT_6 equ $FFAE $C000-$DFFF
MMU_SLOT_7 equ $FFAF $E000-$FFFF
* MMU_IO_CTRL bits
* $FFA1 has 2 bits:
* FFA1[0] =
* 1 = Enable internal RAM for segment $FD00-$FDFF.
* 0 = Disable; RAM/FLASH is accessible.
*
* FFA1[1] =
* 1 = Enable internal RAM for segment $FFF0-$FFFF
* 0 = Disable; RAM/FLASH is accessible.
* When enabled, the areas supersede RAM/flash, but will be disabled by RESET. When the system resets,
* those regions revert to RAM/flash. Also at RESET, the contents of RAM retain the old values until the
* system powers off.
NOTE: If you are writing an OS9 program, use F$MapBlk
and F$ClrBlk
instead of directly accessing these addresses.