On 2014 Jul 5, at 12:15 PM, Ian McLaughlin wrote:
Hello All,
I recently acquired a Northstar Horizon machine that didn't have
any memory boards. I also received a Dynabyte 800589-G 64k dynamic
RAM board. Unfortunately, there is no documentation on this board
(other than a single set of jumper settings for use in a Dynabyte
5505 computer -
http://bitsavers.informatik.uni-stuttgart.de/pdf/
dynabyte/404512A_5505_Computer_Technical_Manual.pdf )
So far, I have the Northstar rebuilt (power supply tested,
capacitors reconditioned, IC legs cleaned, etc). I added the
components to install a boot PROM on the Z80 CPU card, and I can
successfully boot up to a monitor ROM. From here, I can examine and
deposit memory and ports. From this, I can determine that I appear
to have a problem with the Dynabyte card, assuming I've reverse
engineered the jumpers.
The jumpers allow me to enable/disable 4 banks of 16k at
0000,4000,8000,C000. I can either have the bands be there on reset,
or switch them on/off by setting/resetting bits in a bank select
port that can be defined.
I can successfully switch on/off banks from the monitor (visible
with the LEDs on the board, as well as seeing 00 or a random value
instead of FF in the memory location).
However, when I try to write any value, I always write FF. Refresh
appears to be working, because any FF I deposit will stay there for
hours.
This is really tough because I don't have a schematic for the
memory board. Are there any S100 experts that could point me in a
direction to start looking? Port I/O is working (to the serial port
as well as to the bank select port). Memory read appears to work,
because I get values that are consistent (the RAM will sometimes
boot up with random values, and the random value will stay that way
in that memory location until I attempt to write anything to it,
then it goes FF). It appears to be a write issue.
I've enabled a wait state on the CPU in case it was a timing issue,
but no difference.
I'd appreciate any suggestions on where I should put my logic probe :)
Image of the memory board here if interested: http://
www.broadbandpig.com/?attachment_id=51
Not to suggest it's the possible problem area, but here's one route
of examination:
On such boards, there are two areas of logic specific to writing, the
write-enable logic and the data-output-lines logic:
- The write-enable logic distinguishes a read-vs-write request from
the S100 bus
to control the Write pin on the RAM chips.
- The data-output-lines logic takes the DO0-DO7 data signals from
the S100 bus and
distributes them to the Data-Input pins on the RAM chips.
From the symptoms you present, it sounds like the write-enable logic
is working but there may be a problem in the data-output-lines path,
common to all 8 bit lines.
You might try confirming that the Write pin on the RAM chips is
getting an appropriate assert pulse when a write to the board/bank is
performed.
Then look at tracing the signal path of the DO0-7 lines from the S100
bus through to the RAM chips, you can expect an (8-bits) buffer or
latch along the way (I can barely discern 8T97 and '373 chips in the
board pic), and checking those ICs and the enable-signals they
require. Note there will be a similar buffer/latch for the read path
from the RAM data-output pins to the S100 DI0-DI7
lines, so you want
to distinguish the ICs used for read vs. write.
I don't know how far you'll get with a logic probe, a scope would be
helpful.
(Don't forget the sanity check for all the proper power supply levels
at the RAM chip pins. Those look like they are likely 4116 RAM chips,
there are 3 power supplies).
You might try grabbing the schematic for a similar S100 64K dynamic
RAM board (that is, one using the same RAM chip) from
http://www.s100computers.com/Hardware%20Index%20Page.htm
to get an idea of the basic logic configuration for such a board.
(I have to plug
www.s100computers.com here, it's a great resource for
S100 board manuals, and has been very helpful in working on several
S100 machines.)