VOGONS


First post, by jbenam

User metadata
Rank Newbie
Rank
Newbie

Hi everyone,
I'm trying to restore my unknown generic XT board to full functionality after a botched attempt to build a AT2XT. I'm not sure what went wrong with it, but it killed my other mainboard (PIM-640) and it left this one limping.

Some magic smoke came out from the PIM-640 (couldn't pinpoint from where) and it stopped booting altogether.

I procured myself a Model M for a good price and went back to the other mainboard only to find that it doesn't even boot Alley Cat anymore (technically it does... Every 10th reboot or so).

To have some diagnostic starting points, I've burned both a Landmark ROM and Ruud's diagrom. I'm now mainly focusing on the Landmark ROM.

Anyway, it usually fails on two tests:

Interrupt Level 0 (not 100% of the times)
Keyboard Controller (always)

Sometimes (very rarely) even on Keyboard Scan Lines.

I think the botched AT2XT might've killed something. I have started replacing stuff by cannibalising my other (apparently dead) board.

Following the Landmark manual I've currently replaced:

D8088-2 with an AMD P8088
PB8288D with a UM82C88
D8253C-2 with a UM8253-5
D8237AC-5 with a D8237AC-5
D8259AC-2 with a UM8259A
D8255AC-2 with a UM82C55A-PC

Nothing helped. I've also started checking some of the 74LS with a TL866 but that will take me a bit of time to complete.

I haven't checked stuff like capacitors or resistors yet. Not sure if those can get damaged easily, though?

Any hints on what I should be looking at?

Thanks for your time!

Reply 1 of 11, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie

I'd start with figuring out what went wrong with your keyboard adapter build. Might tell you where to look for damage, before you spend your money on replacing each and every chip on the mobo. Also, prevent you from killing any more mobos. If you somehow connected +5V to the reset line, that could've killed the LS04 driver. Clock line issues - probably the LS175, or maybe the LS125 that is used to pull it low. Data line, same LS125 and LS322 chip.

Does the keyboard work at all now? If it does, I'd check the LS04 reset driver first. Then LS125 and LS322 chips.

Reply 2 of 11, by jbenam

User metadata
Rank Newbie
Rank
Newbie
Deunan wrote on 2020-03-02, 11:20:

I'd start with figuring out what went wrong with your keyboard adapter build. Might tell you where to look for damage, before you spend your money on replacing each and every chip on the mobo. Also, prevent you from killing any more mobos. If you somehow connected +5V to the reset line, that could've killed the LS04 driver. Clock line issues - probably the LS175, or maybe the LS125 that is used to pull it low. Data line, same LS125 and LS322 chip.

Does the keyboard work at all now? If it does, I'd check the LS04 reset driver first. Then LS125 and LS322 chips.

I've rebuilt it something like 2-3 times. I've had something like two tantalums explode on me, so I suppose I must've read the keyboard pinout the wrong way. If that's the case, I think I've switched around GND and +5V.

Pretty sure most of the times I didn't have reset connected at all, and on the first try I just connected the XT's reset pin to the AT's reset pin.

I've stopped testing it after the second mobo and just purchased a Model M 😀

I think Reset is fine - it always boots and I don't have problems resetting the XT using the keyboard. Unless partial failure can lead to other issues?

Yes, the Keyboard works now. It's just the test that fails, and most of the times Alley Cat gets stuck on "Loading Alley Cat..." and doesn't progress further.

The TL866 can't test the LS322 and the other one I had (on the other mobo) literally fell to pieces when desoldering it.

Any other way I could test the LS322?

Reply 3 of 11, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie
jbenam wrote on 2020-03-02, 13:26:
I think Reset is fine - it always boots and I don't have problems resetting the XT using the keyboard. Unless partial failure ca […]
Show full quote

I think Reset is fine - it always boots and I don't have problems resetting the XT using the keyboard. Unless partial failure can lead to other issues?
Yes, the Keyboard works now. It's just the test that fails, and most of the times Alley Cat gets stuck on "Loading Alley Cat..." and doesn't progress further.
The TL866 can't test the LS322 and the other one I had (on the other mobo) literally fell to pieces when desoldering it.
Any other way I could test the LS322?

On XT the reset signal comes from 8284 clock generator - but that only goes to CPU/NPU, 8237 DMA, and 8255 PIO. Also, one of the LS04 chips which creates a negated RESET_DRV signal for ISA slots and keyboard connector. The _DRV is also used by some address decoding logic, and the 8253 timer chip. And it's the timer chip that generates IRQ0.

So, that LS04 is a prime candidate for test/replacement but I've just noticed that original IBM XT also used part of the LS175 to provide /2 clock divider for the timer. This is the same chip that also divides the clock for the keyboard. But, chances are part of it died, not killing it completly - same can be true for the LS04, I'd expect only one gate to be busted.

So, step 1 - find the LS04 chip that is connected to pin 10 of 8284A, replace it. Step 2 - find the LS175 that is connected to keyboard clock pin and replace that as well.
As for LS322 - it's a very unique chip, building a test setup is possible but then if the keyboard works I'd leave it alone. It certainly doesn't have anything to do with IRQ0.

Reply 4 of 11, by jbenam

User metadata
Rank Newbie
Rank
Newbie
Deunan wrote on 2020-03-02, 13:59:
On XT the reset signal comes from 8284 clock generator - but that only goes to CPU/NPU, 8237 DMA, and 8255 PIO. Also, one of the […]
Show full quote

On XT the reset signal comes from 8284 clock generator - but that only goes to CPU/NPU, 8237 DMA, and 8255 PIO. Also, one of the LS04 chips which creates a negated RESET_DRV signal for ISA slots and keyboard connector. The _DRV is also used by some address decoding logic, and the 8253 timer chip. And it's the timer chip that generates IRQ0.

So, that LS04 is a prime candidate for test/replacement but I've just noticed that original IBM XT also used part of the LS175 to provide /2 clock divider for the timer. This is the same chip that also divides the clock for the keyboard. But, chances are part of it died, not killing it completly - same can be true for the LS04, I'd expect only one gate to be busted.

So, step 1 - find the LS04 chip that is connected to pin 10 of 8284A, replace it. Step 2 - find the LS175 that is connected to keyboard clock pin and replace that as well.
As for LS322 - it's a very unique chip, building a test setup is possible but then if the keyboard works I'd leave it alone. It certainly doesn't have anything to do with IRQ0.

So I've found out what was probably stopping the other motherboard from booting - the 8284 was totally dead. I'll try to get some sockets to get that one working again.

In the meanwhile, I've replaced the ICs (with new store-bought ones) in the steps you've outlined, to no change in the outcome.

Keyboard Controller still fails all the time, and very rarely IRQ0 passes, but most of the times it keep failing.

Any other ICs I should look into?

Anyway, thanks for the help, much appreciated.

Reply 5 of 11, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie

Well, I don't really see any other 'simple' solutions. And you've also replaced the 8259 interrupt controller already (not that I see how that would be damaged through the keyboard connector) so that's another chip off the list.
Check and maybe replace the LS125 that's connected to the keyboard lines? But I wouldn't bet my money on this one.

Maybe the testing program is not detecting the fault correctly - but it seems to have something to do with interrupts. How are you booting the system, does it read/write floppies fine? Because that, IIRC, uses DMA so that'd be another chip off the list. So, with the 8259 replaced, maybe it's the LS138 address decoder that enables it that went poof (of old age I guess because that'd be mostly unrelated to the keyboard input). Find LS138 chip connected to pin 1 of 8259A and test/replace.

If that does nothing, then I guess you need to look for different test tools because, even using a scope, finding a weird dynamic glitch like that is next to impossible. And I'm assuming it's dynamic becuase the system kinda works, but not really, and typically a properly dead chip (even if it's just one output that's bad) causes a lot more trouble that what you have.

Reply 6 of 11, by jbenam

User metadata
Rank Newbie
Rank
Newbie
Deunan wrote on 2020-03-02, 23:46:

Check and maybe replace the LS125 that's connected to the keyboard lines? But I wouldn't bet my money on this one.

Swapped it with another LS125 to no avail.

Deunan wrote on 2020-03-02, 23:46:

Maybe the testing program is not detecting the fault correctly - but it seems to have something to do with interrupts. How are you booting the system, does it read/write floppies fine? Because that, IIRC, uses DMA so that'd be another chip off the list. So, with the 8259 replaced, maybe it's the LS138 address decoder that enables it that went poof (of old age I guess because that'd be mostly unrelated to the keyboard input). Find LS138 chip connected to pin 1 of 8259A and test/replace.

I was able to boot DOS 3.3 this morning, but it stopped booting shortly afterwards. It started hanging while booting the floppy. So it looks like DMA is working on cold boot and stops working after a while?

IIRC I've swapped the LS138 connected to Pin 1 and it looked like it helped (not with the diagnostic, that kept failing) with the booting. After it got warm, it stopped booting correctly. It totally crashed when I tried to switch it in turbo mode and didn't boot
DOS anymore after that.

Deunan wrote on 2020-03-02, 23:46:

If that does nothing, then I guess you need to look for different test tools because, even using a scope, finding a weird dynamic glitch like that is next to impossible. And I'm assuming it's dynamic becuase the system kinda works, but not really, and typically a properly dead chip (even if it's just one output that's bad) causes a lot more trouble that what you have.

What kind of other tools should I get? (Haven't got a scope, by the way) Maybe a Logic Probe?

I suppose next step is purchasing a bunch of sockets and try to resurrect the other board instead of this one... The other one isn't turbo, though 🙁
Oh well, I suppose having a Turbo XT was kinda redundant with having a 286 anyway.

Reply 7 of 11, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie

By tools I meant some other testing software, maybe, in case this one makes us chase phantom errors. Can't really help you there though, I don't know any.
A scope would be great too, with XT machine a cheap 20MHz one is good enough. Even a very old 5MHz analog scope would be useful but only if you have some experience in using one, and understand the bandwidth limitations. The XT is really just another 8-bit machine with 4 more address lines - you can look at the schematics and tell how it works.

These cold/hot issues are the worst. It can be anything, a chip, bad solder point, cracked trace, via corrosion, you name it. Maybe I'm obsessing about these interrupts too much, so here's my reasoning behind it. The "Keyboard controller" is really the LS322, it works as serial input parallel output register. Both clock and data lines from keyboard are input-only on PC side, data goes directly to LS322 and clock is routed through a synchronizer/delay flip-flop pair of LS175 to the LS322 as well. Bits are shifted in and, eventually, the first one (which should be 1) gets shifted out and goes to LS74 flip-flip and will activate IRQ1 line (8 more bits are now stored in LS322). This event also disables any further shifts until CPU reads the LS322 data through the 8255 chip and clears the interrupt (which also clears the LS322 state). As a side note, in the clear mode the LS322 is taken off the bus and the SW1 configuration switches can be read through the same 8255 interface.
There are two LS125 gates that can drive the keyboard clock and data lines low, permanently. One is used to "disable" the data line on IRQ1 event, the other - I don't remember. This works because the keyboard interface is really only open collector outputs and there are two 4k7 pull-up resistors on the PC side.

Anyway, this seems to work, becasuse any fault in any of these chips or connections would make the keyboard unresponsive or glitching. I mean there's a chance that you are getting weird keyboard codes in, that are silenty dropped as invalid so IRQ1 happens but you don't see it. But that can't really be tested without a scope - you'd have to monitor this line and it should only fire on keypresses and not at other times. Since the interrupt request to clear is probably just a few microseconds, you can't just use a LED to test, the blinks might be too short for the eye to register. But you can try with some bright blue LED I guess.

So I'm thinking, since IRQ0 seems to fail sometimes as well, and then the floppy dies too eventually, perhaps there is some random interrupt arriving at 8259 that interferes with the correct ones. If not that, then the address decoding logic might have a weak chip and that's going to be a merry chase...

One more thing though. Often overlooked issue is RAM, and these chips do die on their own. Using software to detect issues is only going to work properly if the RAM works, and since every time you load a program it ends up in the same spot (after a reboot), chances are a glitching RAM chip can affect it in similar way. Mark the RAM chips with numbers, pull them out and put back in different order. See what that does. Or - since you have 2 mobos - swap them around.

Reply 8 of 11, by jbenam

User metadata
Rank Newbie
Rank
Newbie

So, the "good" board stopped booting altogether after swapping the chips around with the other, non-booting, board. While testing, a cap blew up on that one so I shelved it and replaced the chips on the "good" board only to find that it didn't work anymore.

I since bought a Logic Probe (until I can decide on an oscilloscope) and started probing things randomly.

It looks like the LS322 isn't getting any clock on Pin 11. I've found it gets to a nearby S74, but I can't find any on the LS175s on the board. I've already swapped them and tested in the TL866s.

I'm kinda stumped now - I'm not sure why the LS322 nor the LS175 is getting any clock.

I'll try resoldering the sockets tomorrow. I suspect cold joints somewhere.

Reply 9 of 11, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie
jbenam wrote on 2020-03-05, 22:17:

I'm kinda stumped now - I'm not sure why the LS322 nor the LS175 is getting any clock.

I assume you have schematics for IBM 5150 or some other XT that you use as a base - since all these machines are nearly identical (but there might be some small differences, especially in glue/decoding logic).
You just need to do a methodical sweep of the signal paths. Start with the LS175 clock if you think that is missing - first, is that even the correct LS175 (in case there's more than 1)? It should have PCLK (which is half the CPU clock, 2.8MHz) coming to it all the time from the 8284 clock generator pin 2. That goes to clock input pin 9 (a '175 has 4 flip-flops with common clock). Then the keyboard clock comes from the connector directly to one of the D inputs of the LS175, though keep in mind that only shows on key presses. Both the S74 and LS322 clock inputs are fed from the LS175 - and it's actually the same signal so both chips should receive it at the same time.

Reply 10 of 11, by jbenam

User metadata
Rank Newbie
Rank
Newbie

So, I painfully discovered that the "good" board is plagued by cold joints everywhere, along with micro cracks in the soldering. While reflowing the LS322 socket, I noticed the clock signal wasn't passing along - since it passes in one of the internal layers, I have reason to believe that the board is pretty much behind salvation. This could also explain why sometimes INT 0 didn't fail - I suppose that thermals factored in.

So I went back to the "bad" board, where gratefully enough, nothing is exploding ATM.

Everything is soldered on that board, instead of being socketed like the other one, so I haven't been able to do much progress ATM. What I've noticed, is that the 8237A's clock pin seems to be stick high, while everything else seems to be low. I'll check that nearby LS00 asap.

Anyways, it seems like the Landmark ROM does a funny click-clacking sound with the speaker now. Which I do suspect might signify something - too bad it doesn't seem to be in the manual. It does 5 "click-clack" sounds followed by a single click.

Not sure what that means though...

Also, I suppose I'll just recap the entire board. Just to be safe - haven't got any means of testing those caps right now.

Reply 11 of 11, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie
jbenam wrote on 2020-03-07, 19:22:

So, I painfully discovered that the "good" board is plagued by cold joints everywhere, along with micro cracks in the soldering.
Also, I suppose I'll just recap the entire board. Just to be safe - haven't got any means of testing those caps right now.

It happens, usually due to poor storage conditions but I've seen some old PCBs that just cracked from being looked at funny. It's even worse trying to desolder anything from such board, so easy to lift a trace or rip via out.
So, be careful with that recapping, you don't want to end up with more issues to repair than what you have now.

BTW can you make photo of those mobos? Doesn't have to be anything great, I just want to see how they look in case I ever have to deal with one like that myself.