SWTPC 6800 weirdness

Chris Elmquist chrise at pobox.com
Wed Sep 7 11:03:31 CDT 2016

On Wednesday (09/07/2016 at 08:04AM -0700), Brad H wrote:
> Thanks Chris.  I figured it was something like that with my first MP-M.  I am curious though why simply setting another board to cover 8000-BFFF won't allow the system to operate in that board's absence.  It bothers me that I'm reliant on that heavily modded unit to be able to operate.

Unless your MP-B (and MP-A) have been additionally modified to move the
I/O region away from $8000, then your problem is that you are addressing
RAM on top of the I/O region from $8000 to $8FFF.

You need RAM at,

	$A000 to $A07F (128 bytes) or $A000-$AFFF (4K bytes)

	$0000 to $7FFF (as much as you have, no more than 32K)

You can't have RAM at,

	$8000 to $8FFF   this is the I/O region

The monitor ROM occupies,

	$E000 to $FFFF

There might be add-on PROMs on floppy controllers in the range,

	$C000 to $CFFF

There might be floppy or other special I/O in the range,

	$D000 to $DFFF

The $8000 I/O range is decoded on the motherboard and the original
systems took the entire 4K block from $8000 to $8FFF.  You cannot also
put RAM there because it collides with the I/O devices such as the MP-C,
MP-S and anything else on the SS-30 bus.

There were modifications later that moved the I/O elsewhere but if that
is done, then lots of the software (and firmware) needs to change too
and most certainly the stock MIKBUG or SWTBUG will not work with I/O
somewhere other than $8000.

So, I think another problem you are facing is that when you put in some
of these other memory boards, they are getting double addressed with other
memory boards or with I/O and that will certainly cause bad behavior.

> I have another general question for folks out there.  I'm trying to understand exactly how memory addressing works in relation to these boards.  For example, if I understand correctly, the original MP-M had 16 2102 chips for a total of 4K.  The memory address jumper chose which addresses that 4K applied to.  So for example, if I set the jumper to 5, the card would occupy $5000 to $5FFF?

Yes. Exactly.

> My question is, if I am correct that my second MP-M, having 32 RAM chips, has 8K, and I've set it the jumper to '4', where does the other 4K of RAM go beyond $4FFF?  It doesn't seem to go to $5000.   The instructions for upgrading to the MP-MX spec don't say anything about having to modify the card to span a greater address range, in fact, the jumpers for board # are identical to the 4K MP-M.  So I'm confused.. what's the benefit of going out to 8K if the board can't address more than 4?

Depends on how the modification was implemented.  I'm not familiar with those
mods so you will either have to reverse engineer what was done to figure out
how they are decoding the second bank on the board or remove the mod and
return the board to stock configuration.

It's possible that the mod enables the additional RAM at a fixed location
(such as $0000) and it is unrelated to where the jumper is set.  It's all
a matter of how they wired up the chip select(s) to the piggy backed RAMs.

> I'm sure it's something I'm missing here.

Understood.  Without documentation, it's a greater challenge.  The upside is
that these were very simple machines and pretty easy to understand once you
spend some time with them.  Lots of the secrets (of the system design anyway)
are here,


(with many thanks to Michael Holley for that archive)

Chris Elmquist

More information about the cctalk mailing list