MEMORY

Color Computers 1 and 2 shipped with 4, 16, 32, or 64KB of RAM depending on options and board.

The Color Computers 1 and 2 were equipped with a Synchronous Address Multiplexer (SAM MC6883) to manage memory configuration and refresh.

Color Computer 3 shipped with 128 or 512KB of RAM depending on options chosen.

The Color Computer 3 custom GIME chip included emulation for the previous generation's SAM chip as well as provided a new Memory Management Unit MMU for working with memory larger than 64KB.

MMU

The Color Computer 3 GIME Memory Management Unit (MMU) registers map 8K blocks of RAM from the full 128-512K memory space into the 64K MPU workspace.

64K Workspace Range Task Register 0 Task Register 1
$0000 - $1FFF $FFA0 $FFA8
$2000 - $3FFF $FFA1 $FFA9
$4000 - $5FFF $FFA2 $FFAA
$6000 - $7FFF $FFA3 $FFAB
$8000 - $9FFF $FFA4 $FFAC
$A000 - $BFFF $FFA5 $FFAD
$C000 - $DFFF $FFA6 $FFAE
$E000 - $FFFF $FFA7 $FFAF

PROGRAMMING

The MMU is enabled and disabled by setting or clearing bit 6 of GIME register INIT0 ($FF90)

Examples assume Task Register ($FF91 bit 0) is setup for Task 0.

Map an extended memory block 6.0 into the 64K workspace:

    LDA #$30 * SETUP BLOCK 6.0
    JSR MMU
    ...
MMU ORCC #$50 * DISABLE INTERRUPTS
    STA $FFA1 * MAP BLOCK 6.0 ONTO 64K RANGE $2000 - $3FFF (BLOCK 7.1)
    ANDCC #$AF * RE-ENABLE INTERRUPTS
    RTS

Restore the original block back into the 64K workspace:

    LDA #$39 * SETUP BLOCK 7.1
    JSR MMU
    ...
MMU ORCC #$50 * DISABLE INTERRUPTS
    STA $FFA1 * MAP BLOCK 7.1 BACK ONTO ITS 64K RANGE $2000 - $3FFF
    ANDCC #$AF * RE-ENABLE INTERRUPTS
    RTS

SEE ALSO

RAM Extended Memory Map

RTS

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies