Thank you! This is fabulous! I would like to try to enable the 512k option first, as being simpler from a rework point of view. If I can get that working, I'll work on reconnecting A19.
My understanding of the procedure for the 512k mod so far is (please correct me if I've misunderstood):
a) Connect pin 5 of E104 (IO/M) to pin 30 of the memory expansion connector and cut any existing other traces to pin 30, allowing straight IO/M signals into the 100B memory expansion card (which it is expecting)
b) Connect pin 43 of the memory expansion connector to E104 pin 11 rather than E104 pin 12 so that we get inverted A18 (we already get inverted A16, A17)
I had a couple of questions first:
1) Does pin 29 (Memory Option Present) need any rework? It seems to me to be used to control the operation of a 100B mainboard and is not used by the memory expansion card itself? So perhaps not?
2) We are sending inverted A16, A17 and A18 signals to the 100B expansion card, but is it not expecting normal (active high) memory addressing? Does this not cause a problem? Or do we just ?
Best, A
1) Yes the memory present signal must be at the the logic level the the 100+, and 100A want and not the 100B level. It is normally Grounded on the 100A
2) Really depends on the Memory cards origination of the memory blocks,. Some cards use a different address bus origination so the memory address per Memory bock is different so you must fiddle around with
the relocating of A16, A17, A18 to get a 512K card to work. Which will end up "scrambling" the RAM layout more but it should work.
Some 3Rd parity memory cards where designed to work on both models but these mostly have some kind of jumper marked as A or B use, if it is a newer design that that could be done in a PLA chip on the memory card.
..
The main issue is how the memory expansion card was designed, some throw the first 64K block of memory away, others throw the first 128K block of memory away on a model B. Others don't throw it a way, some of
these will re address it to an unused memory block location. Or even to a small RAM Disk at a private location.
..
Bug hunting
If you have a desoldering station/unit and the correct IC socket. Carefully remove the E104 chip and solder in the socket.
Once you have done this you could temporary wire (jumper) the un-inverted A16, A17 and A18 inputs to the chips output pins for A16I, A17I, A18I. In this cast , bi passing the 74Ls138 inverting the outputs of address
pins A16,A17,A18. If the memory Card now works then memory bank addressing is some what different. On some memory expansion Cards the Address block decoding is done in a PLA gate array. This could also be
a issue to deal with depending on how it is coded.
..
Other possible issues :
100A and or 100+ Motherboard layout does not matches the one I attached.
Newer BIOS firmware in the 100A that has a 384K ram limited on it.
Some Io cards that use the 100A Memory expansion Bus connector use the NONSHRCYC signal. But it look like you don not have any, so I omitted it for now.
On the memory expansion connector the undocumented ghost pin 5 could be in affect on your system, so you might also have to play around with it as well.
The memory card could also be overlaying the 100A, 100+ System Boot memory Block, The Video memory Location, depending on how the did the address decoding logic.
On the 100A and plus models the PLA chip that generates the NONSHRCYC or Share memory cycle could also come into effect if its coding was changed from the original version and there other (undocumented)
differences in the motherboard.
..
Depending on whos and how the memory Expansion card was designed, you might have to patch up the memory expansion card to work at the first memory block above 64K. Basically any address with A16 active
(and likely in it is none inverted form). The first 0-64K is onboard memory in the 100A, 100+ and on the 100B its form 0K- to 128K. (Most likely a undocumented change in the Memory cards PLA so it won't work).
There was a reason that I included the 100B Memory expansion unit schematic that uses a PLA. Mostly for bug hunting reasons and incase you have to do some hard wire some jumpers on the memory Expansion
Card as well.
..
If the RAINBOW 100A or + model will boot to command level with the card install, this is good site to see, because the memory expansion is not interfering with the Base memory on board.
You can then run the Memory Test utility form the Diagnostic diskette, to test the memory Expansion unit out.
Once the memory expansion unit is working but the system under MS-DOS only see part of the memory, then you will likely have to patch MS-DOS as well.
..
Hopefully one of these Fixes the memory expansion bugs.