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.
| JP1 | JP2 | JP3 | Base | Addresses | Usable on r2 |
|---|---|---|---|---|---|
| open | open | open | 1 MB | $100000–$4FFFFF | 4 MB |
| open | open | cap | 3 MB | $300000–$6FFFFF | 4 MB |
| open | cap | open | 5 MB | $500000–$8FFFFF | 4 MB |
| open | cap | cap | 7 MB | $700000–$AFFFFF | 4 MB |
| cap | open | open | 9 MB | $900000–$CFFFFF | 4 MB |
| cap | open | cap | 11 MB | $B00000–$DFFFFF | 3 MB |
| cap | cap | open | 13 MB | $D00000–$DFFFFF | 1 MB |
| cap | cap | cap | — | — | 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.
| Cards | Bases | Banner shows |
|---|---|---|
| 1 | 1 MB | 5242880 (5 MB) |
| 2 | 1 MB, 5 MB | 9437184 (9 MB) |
| 3 | 1 MB, 5 MB, 9 MB | 13631488 (13 MB) |
| 4 | 1 MB, 5 MB, 9 MB, 13 MB | 14680064 (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.