Memory Latch Select 256b

Address Range Usage
0000-7FFF Lower 32K RAM
8000-DFFF Upper 32K RAM (24K directly usable)
E000-EFFF I/O Address Range
F000-FFEF EEPROM
FFF0-FFFF MPU Vectors

The Paging Latch

7 6 5 4 3 2 1 0
Status LED EEPROM 4K Page RAM 64K Map
1 = off, 0 = on 0-7 0-15

Status LED

Bit 7 controls the “stat” LED

If you store in a $80 it should change the status LED

To be more specific, $80 turns the LED off and $00 turns it on as it is a pulldown and should be on at reset.

EEPROM 4K Page Select

Bits 6-4 of the Memory Latch Select switches between 4K ROM banks 0 to 7 of the 32K EEPROM.

RAM 64K Map Select

The lowest 4 paging bits control RAM, bits 4-6 select one of 8 EEPROM pages of 4k each.

The memory decode maps any 32k page of the 512k into $0000-$7FFF.

Writing to it selects different blocks from the 512k to appear in the main map.

E.g. if you write a 1 to EF00 it will duplicate the upper bank in the lower bank.

RAM Mapping Note

:!:

Be sure you have RAM switching code in ROM before switching to RAM pages 2 or higher.

ROM code should include functions to:

  • Register-only Block Copy from RAM pages 0 and 1 into pages 2 and higher
    • The block copy must be split in two halves:
    • The first half gets the source byte into a register (only)
    • Switch the RAM page page but let the Program Counter fall through into the next ROM instruction which is the start of the second half of the copy
    • The second half takes the register and posts it into a destination address of the destination RAM page
    • Then switch BACK to the source RAM page and fall through into the next ROM address which continue copying from source RAM page
  • Transfer the Program Counter into the destination address of the destination RAM page to start running code from

Upper 32K

The region from $8000-$DFFF is not affected by the paging register contents.

The logic fixes ROM and I/O in place.

So you can run paging code resident there.

For that reason, it's also recommended to put any ISR's there.

Hidden RAM Access

When you map page 1 to page 0, only the RAM is relocated.

So, the RAM that is hidden “under” ROM and I/O becomes visible that way.

ASSIST09

The ASSIST09 'M' command is read-modify-write (RMW) and the Memory Select Latch is not qualified with read/write.

The CPU can write it but if you try doing it manually with the monitor, it will write garbage into the latch.

RTS

Return to SST-6809