Table of Contents

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

Return to Tandy Color Computer