This is an old revision of the document!


Memory Map

Start - End Purposes
0000 - DFFF 56K NVRAM
x000 - x3FF Main Bus Select 0 1K
x400 - x7FF Main Bus Select 1 1K
x800 - xAFF unassigned
xB00 - xBFF ACIA Select 256b
xC00 - xEFF unassigned
xF00 - xFFF Memory Latch Select 256b
F000 - FFFF EEPROM 4K

x is the J3 select jumper for 8xxx - Exxx address ranges

The 2.0 board is hard wired “x” = “E” in the map above.

The subsequent version has jumpers to locate the I/O block

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

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

So you can run paging code resident there.

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

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

Bit 7 controls the “stat” LED

56K NVRAM

The SST-6809 has 512KB of static RAM.

The lowest 64KB provides the processor's workspace RAM.

There is a Memory Select Latch that allows mapping 32KB banks from the remaining 456KB of static RAM into the lower 32KB address range of the processor workspace ($0000-$7FFF)

The remaining RAM address range $8000-DFFF remains in place allowing a stable place for stacks, bank mapping code and more a place to exist.

Main Bus Select 0 1K

:!: Coming as I learn more

Main Bus Select 1 1K

:!: Coming as I learn more

ACIA Select 256b

The Status, Control, TX, and RX registers of a Motorola MC6850 or Hitachi HD6350 Asynchronous Communication Interface Adapter (ACIA) are mapped into this 256 byte page.

The ACIA has 4 registers accessible through 2 memory mapped input/output (MMIO) addresses.

A read from $EB00 will return the content of the ACIA Status register.

A write to $EB00 will update the ACIA Control register with new configuration.

A read from $EB01 will return received byte from the ACIA RX Data register.

A write to $EB01 will update the ACIA TX Data register with a new byte to transmit.

Memory Latch Select 256b

The paging latch.

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.

The M command is RMW and the latch is not qualified with R/W.

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

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.

The logic fixes ROM and I/O in place.

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.

EEPROM 4K

:!: Coming as I learn more

Return to SST-6809