• Please review our updated Terms and Rules here

Help With 5150 Motherboards and Diagnostic ROMs

Kaigan

New Member
Joined
Apr 5, 2019
Messages
9
Location
Philadelphia, PA
Hey everyone,

I recently managed to pick up 10 IBM 5150s and 5160s in various condition. I now have eight of the motherboards working (after replacing blown tantalums, bad RAM, and other fun stuff), but I'm having problems getting a working diagnostic ROM running to further test the last two boards. The info on the Minus Zero Degrees site has been phenomenally useful, so I want to send out a general thank you in case the site owner is around here somewhere. :)

I've tried burning both the Landmark/Supersoft ROM image and Ruud's ROM image to Intel LD27C256-25 and Fairchild FM27C256Q150 EPROMs. Both of these *should* be fast enough, as far as I'm aware. I've tested the Landmark image in a 5160 motherboard, and it works fine. The images validate in my EPROM programmer as well, so it looks like it's being burned properly.

I have a couple of the 23XX adapters from Retro Innovations (info here: http://www.go4retro.com/products/23xx-adapter/) and I can't get either EPROM type or image to work on a 5150 with the adapter, even on a known-working board. I have a feeling that I'm just doing something wrong with the adapter configuration. Am I correct in saying that I should be using the third example configuration in the link above, with A and C soldered, 18 on 1-2, 20 on 2-3, 21 on 1-2, and 0 soldered as well? Or am I totally missing the mark?

Thank you in advance for your help!
 
You would not happen to have an IBM 5150 model A motherboard (16Kb - 64Kb) in working order that you'd be willing to part with for a reasonable sum?
 
Hey everyone,
Welcome to these forums.

I have a couple of the 23XX adapters from Retro Innovations (info here: http://www.go4retro.com/products/23xx-adapter/) ...
That adapter is different to the one that I use, and point people to. What I use is at [here].

The Supersoft diagnostic ROM image to use would be the third one at [here], i.e. the 8 KB sized diagnostic ROM repeated four times to suit the 32 KB of a 27256. In that way, it doesn't matter which of the 27256's 8 KB blocks that the adapter maps to the 2364 socket (8 KB).

Am I correct in saying that I should be using the third example configuration in the link above ...
As for the adapter you have. It has a 74138 decoder. It is not needed for what you want to do.

I have taken a look at the circuit diagram and text. The forth option, "2364 - !CE1 (Alternative, no ‘138 needed)", is what should work:

* Join 1 and 2 of 18 (Join A11 of 27256 socket to A11 of 23xx socket)
* Join 1 and 2 of 20 (Join /OE of 27256 socket to /CS of 23xx socket)
* Join 1 and 2 of 21 (Join A12 of 27256 socket to A12 of 23xx socket)

That, and use of the aforementioned ROM image (8 KB sized diagnostic ROM repeated four times).
 
You would not happen to have an IBM 5150 model A motherboard (16Kb - 64Kb) in working order that you'd be willing to part with for a reasonable sum?

Unfortunately, no. All of the 5150 boards I have are the later 64-256KB versions. I might get ahold of a few more in the near future, and I'll let you know if I find one.
 
That adapter is different to the one that I use, and point people to.

The other adapter is out of stock except as a bare PCB. I'm wondering if the plan is to start only stocking the completed 23XX adapter since it can be configured to act like the 2364 adapter. Either way, I was just being impatient. :)

I have taken a look at the circuit diagram and text. The forth option, "2364 - !CE1 (Alternative, no ‘138 needed)", is what should work

Thank you for taking the time to review that information for me. The fourth configuration works properly, and I can get the Supersoft image and Ruud's (copied in a hex editor to be a 32K file) to boot on my working boards.

The ROMs aren't working in either of the defective boards, though. With that as the case, I'll start running through the startup sequence and POST information to see if I can track down the culprit on each board. That said, would you have any other recommendations on good starting places? Since I have a number of working boards, I can certainly swap socketed chips around easily enough for testing.
 
The other adapter is out of stock except as a bare PCB. I'm wondering if the plan is to start only stocking the completed 23XX adapter since it can be configured to act like the 2364 adapter.
I expect that the seller knows that some potential customers do not have the knowledge to determine configuration and/or the ability to solder. Such customers will want something that works out-of-the-box for their purpose.

The ROMs aren't working in either of the defective boards, though. With that as the case, I'll start running through the startup sequence and POST information to see if I can track down the culprit on each board. That said, would you have any other recommendations on good starting places? Since I have a number of working boards, I can certainly swap socketed chips around easily enough for testing.
When it has been proved that the motherboard is at fault, and ROM based diagnostics are failing to run, a good visual inspection should be done (if not already), and as you have stated, swapping out the socketed chips with known-good ones. Past that, you really do need to look at the sequential events in the start-up sequence ([here]), verifying with appropriate test equipment (and knowledge) that each event is happening. When an event is found not to be occurring, you then go in deeper to discoverer why. Generally, that requires an understanding of digital electronics and how the particular motherboard works at the low level.

BTW. As you may already be aware of, care needs to be exercised when inserting chips, so that chip legs do not get bent.
 
Past that, you really do need to look at the sequential events in the start-up sequence, verifying with appropriate test equipment (and knowledge) that each event is happening. When an event is found not to be occurring, you then go in deeper to discoverer why. Generally, that requires an understanding of digital electronics and how the particular motherboard works at the low level.

Fortunately, I do have a background and training in digital electronics and computer repair, and I grew up working on my own machines (which would now be considered vintage) when they had faults. I have access to a multimeter, logic probe, oscilloscope, and my EPROM programmer can do logic chip testing. I do also have soldering/desoldering tools to remove non-socketed ICs without destroying them or pulling up traces, if I need to. Hopefully I should be able to diagnose these with the information you've provided.

Thank you again for your help, and I'll post an update once I have them working. Maybe my troubleshooting processes and resolution can help someone else out in the future, too.
 
1) Check a RESET circuits (CPU and i8284)
2) Check a clock generator circuits (witch oscilloscope, i8284). Quartz is fragile.
3) Check address and data lines are not connected to ground (w/o power applied to motherboard).
There are at least 4 "sub-buses" on 5150: AD, D, XD and MD separated by 74LS245 buffer. (Similar for A* buses)
Transit "D" bus is also connected to ISA slots and 245 buffers sometimes damaged by wrong ISA card.


Consult an amazing modem7's site:
http://www.minuszerodegrees.net/5150/misc/5150_motherboard_diagrams.htm
 
1) Check a RESET circuits (CPU and i8284)
2) Check a clock generator circuits (witch oscilloscope, i8284). Quartz is fragile.
3) Check address and data lines are not connected to ground (w/o power applied to motherboard).
There are at least 4 "sub-buses" on 5150: AD, D, XD and MD separated by 74LS245 buffer. (Similar for A* buses)
Transit "D" bus is also connected to ISA slots and 245 buffers sometimes damaged by wrong ISA card.

Thanks for the additional information. I haven't had a ton of time to investigate these two boards yet, but my initial tests seem to show that the clocks and reset circuitry are okay. I'll probably see about picking up a logic analyzer so I can monitor more things at once/in sequence.
 
I made a bit more progress on one of the boards. The clock generator was bad, and it turns out that the replacement chip I purchased was the wrong one! (Oops!) It was pretty easy to identify the clock chip as a culprit by looking at the appropriate pins with the oscilloscope. With the correct clock chip, the board will boot to the diagnostic ROM, which is indicating a failure of all of the 16K critical-region RAM modules except for the parity chip. I've ordered some 4164 RAM, and the appropriate sockets, to replace the bad chips with. At a guess, perhaps the board was powered up with a faulty PSU at some point in its past and it fried a good chunk of the RAM. I'm still looking into the other board, but hopefully I'll get it figured out before long.
 
I made a bit more progress on one of the boards.
It is always good to see progress.

will boot to the diagnostic ROM, which is indicating a failure of all of the 16K critical-region RAM modules except for the parity chip. I've ordered some 4164 RAM, and the appropriate sockets, to replace the bad chips with.
I would be cautious about assuming that the RAM chips must be faulty. The Supersoft/Landmark ROM diagnostics can sometimes be misleading. For example, see [here]. All RAM chips were removed, including the ones for parity, and yet the diagnostics indicate "NO FALSE PARITY ERRORS", and indicate that bit 0 is passing.

If the parity RAM chip is good, then in theory, swapping it for say, the RAM chip for bit 4, would then have the diagnostics indicating that bit 4 is good.
 
I would be cautious about assuming that the RAM chips must be faulty. [...] If the parity RAM chip is good, then in theory, swapping it for say, the RAM chip for bit 4, would then have the diagnostics indicating that bit 4 is good.
Duly noted, and I'll start small before desoldering everything wholesale.

The other board is a more interesting case. From what I can tell so far via my logic analyzer, the CPU appears to be halting after attempting to access an incorrect memory location for the start of the BIOS ROM. I can see the status signals on the CPU set correctly for a memory read. A couple of the low address bits appear to be high where they shouldn't be, and this is also reflected on U15/U16. Looking at the startup flow, I'm wondering if the culprit could be the bus controller chip, the 8288. Since NOS chips are relatively inexpensive, I've ordered a couple of those for testing purposes.

This page (http://www.minuszerodegrees.net/5150/motherboard/IBM 5150 - Startup sequence.htm) states that once the CPU sends that status signal to the 8288 it "generates various signals", after which the CPU puts the address FFFF0 out onto the address bus. For this board, this is where things seem to be stopping, and with the wrong address. Is there further information available on what the 8288 should be doing in response to the status signals from the CPU? It would be nice to narrow it down as the culprit before just Replacing All The Things (TM), so to speak.

Thank you all again for your help!
 
My replacement 8288s arrived, and I went ahead and swapped out the chip since it seemed like a reasonable culprit to me. The process went very smoothly. However, the replacement does not appear to have resolved the issue. Like before, the address lines on the CPU still aren't looking correct. The system seems to be immediately going to and halting with a state in A7-A0 (in that order) of 11101010. The upper bits are all 1s. This should work out to an address of FFFEA, if I'm not mistaken. For the correct address of FFFF0, A4 should be high and A1 should be low, and they're in the opposite state.

Also, it looks like I was mistaken about U15 and U16 matching up. On the pins labeled A8-A1 (in that order) on the pinout, I'm seeing 01011001 for U16. On U15, things are somewhat odd. A6 looks to be flipping back and forth between states regularly, leading to results for A8-A1 of 11(0/1)10111. The "B" lines report the same as their A counterparts for both chips.

If I can provide any further information that would be helpful in the diagnosis, please let me know. I'm unsure what my next steps with this board should be as of now.

Thanks again!
 
Like before, the address lines on the CPU still aren't looking correct.
To reduce pin count on the CPU (and therefore reduce cost), Intel share the 8 data signals with the low 8 bits of the address signals on common pins, AD0 through AD7.
Are you catering for that ?
Looking at the circuit diagram of the 5150 motherboard, chip U7 extracts the low 8 bits of the address from lines AD0 through AD7, timing triggered by the ALE and AEN signals.
There are related timing diagrams in the 8088 data sheet.

I'm unsure what my next steps with this board should be as of now.
If the above does not assist, then my suggestion is to concentrate your measurements on a specific small window of time, which is the period of the very first read, the read of motherboard address FFFF0 (ROM address 1FF0). If you look outside that time window, you may be distracted by other things, which could be valid for the situation.
 
[...]my suggestion is to concentrate your measurements on a specific small window of time, which is the period of the very first read, the read of motherboard address FFFF0 (ROM address 1FF0). If you look outside that time window, you may be distracted by other things, which could be valid for the situation.

8288 is just a decoder of the S0,S1,S2 CPU status into bus signals: ^IOR/^IOW, ^MEMR/^MEMW e.t.c. (page B-101)

I appreciate the additional recommendations and info! I haven't had a lot of time to look at these boards lately (I was away at VCF East, for one thing :D), but I'll let you know how things go when I examine them again.
 
Back
Top