Cart

Your cart is empty

Solder Demon
Browse documentation/Address Jumpers

Address jumpers and memory map

Two things decide whether the RAM expansion works and where its memory appears: JP4 on the main board, and the three address jumpers JP1–JP3 on the card itself. This page explains both, and how to run several cards in one system.

The addresses on this page are for the rosco_m68k r2 main board.


JP4 on the main board: must be shorted

IMPORTANT

With this card fitted, JP4 on the main board must be shorted. Without it the card is never seen, and the start-up banner shows only the main board's 1 MB.

Every bus cycle on the 68010 ends when something answers with DTACK. The RAM expansion has no DTACK of its own: it only reads the address and drives the data. Shorting JP4 tells the main board to answer with DTACK itself for every access to expansion space, $100000 to $DFFFFF.

With JP4 open, nobody answers. The main board's watchdog then ends the cycle with a bus error, and the firmware decides there is no memory there.

See Jumpers in the main board docs for the other jumpers on the main board.

JP1–JP3 on the card: base address

The card holds 4 MB. JP1–JP3 choose where in the address space it starts, in odd megabytes from 1 MB to 13 MB. JP1 is the top row of the 2×3 header, JP3 the bottom row, as printed next to it.

A cap fitted across a row sets that bit. With no cap, a resistor on the card holds the bit at 0.

JP1JP2JP3BaseAddressesUsable on r2
openopenopen1 MB$100000–$4FFFFF4 MB
openopencap3 MB$300000–$6FFFFF4 MB
opencapopen5 MB$500000–$8FFFFF4 MB
opencapcap7 MB$700000–$AFFFFF4 MB
capopenopen9 MB$900000–$CFFFFF4 MB
capopencap11 MB$B00000–$DFFFFF3 MB
capcapopen13 MB$D00000–$DFFFFF1 MB
capcapcap——card switched off

On the r2 main board, expansion space ends at $DFFFFF: $E00000 and up is ROM and I/O. A card set to 11 MB or 13 MB simply does not answer above that line, so part of it goes unused. With all three caps fitted, the card answers nowhere.

For one card, leave all three jumpers open. The card then starts at 1 MB, right after the main board's memory, and the system has 5 MB in one piece.


How the firmware counts memory

At start-up the firmware writes and reads back a test value every 512 KB, from the bottom of memory upwards, and stops at the first address that fails or at the end of expansion space. The banner shows how far it got:

MC68010 CPU @ 10.0MHz with 5242880 bytes RAM

So the banner only counts memory that joins up with the main board's without a gap. A card at 5 MB on its own leaves a hole from 1 to 5 MB: the banner shows 1048576, even though the card works. Programs that know the card is there can still use it.

Several cards

The cards must not overlap: each one covers 4 MB from its base. To keep all memory in one piece, put each card where the previous one ends.

CardsBasesBanner shows
11 MB5242880 (5 MB)
21 MB, 5 MB9437184 (9 MB)
31 MB, 5 MB, 9 MB13631488 (13 MB)
41 MB, 5 MB, 9 MB, 13 MB14680064 (14 MB, all of expansion space; only 1 MB of the fourth card is used)

The bases between them, 3, 7 and 11 MB, are for cards that are not full. A card with only 2 MB of chips at 1 MB ends at 3 MB, so the next card goes at 3 MB.

Several cards need a bus board: the main board has room for only one. JP4 on the main board stays shorted for all of them.

Two cards on the same base

Both answer every read and drive the data bus against each other. Check the jumpers of every card before power-on.

Other cards in expansion space

With JP4 shorted, the main board answers every access to $100000–$DFFFFF without waiting. Another card that uses this space and needs extra time for its accesses cannot get it. Cards in I/O space are not affected.