The X68000 repair thread, advanced difficulty

Started by kamiboy, September 16, 2017, 11:21:38 PM

Previous topic - Next topic

kamiboy

There are numerous threads about repairing the more common, run of the mill issues with the X68000. Repairmen hopefuls are spoiled by plenty of resources covering relatively simple issues such as leaky capacitors, bad power supplies, broken soft on/off functionality, lack of sound and faulty floppy drives.

But what about the really hard to diagnose issues such as a machine, that even after a full recap, just produces a black screen. I have two such machines, and I am really at a loss as to how to approach diagnosis. It would help to know what exactly an X68000 does in the moments it is turned on. I assume the CPU kicks into gear, jumps to an address memory, likely where the contents of the bios is located, and then starts executing code.

There must be some sort of diagnosis or coordination that takes place between the CPU and various custom IC's in the moments after bootup, until the machine gets so far as to either throw up that familiar insert disk image, or throws up an error message.

So what would prevent the machine from even getting so far as to throw up an error message?

I am guessing here, but if perhaps a custom IC is faulty and the CPU tries to communicate with it, this might result in a blank screen if the CPU get stuck in an infinite loop waiting for the IC to respond, or trigger some interrupt or something anything.

Is anyone privy to the inner details of the X68000 bootup sequence, hardware or software wise? Is there anything one can do to diagnose, or understand which IC might be faulty, resulting in a stoic black screen?

I am currently equipped with an oscilloscope and a multimeter. Steps I've take is try to determine whether the four crystals oscillators  are functional, which they certainly are. Plus checking whether the CPU is receiving the clock frequency, and power, and whether there is any pulses produces from the various CPU pins.

It seems that the CPU only works for a fraction of a second upon bootup, then falls completely silent. Memory chips seem to be getting their clock pulse as well.

neko68k

AFAIK none of the customs are "initialized" in any way other than how we do it in our own software. There are no diagnostics and the hardware provides mostly no responses of any kind (SCC and DMAC have some registers that report status for flow control and such).  I'm fairly sure the BIOS doesn't even check if RAM is good or not. There is, allegedly, a minimal Human disk that can be booted with a serial debugging connection built in to the BIOS but I don't remember how to access it and I've never used it myself. IIRC it uses DB.X which isn't exactly the worlds friendliest debugger.

I don't really know what to suggest. The RAM gets clock but is it the RAM any good? Maybe the BIOS mask ROM's are toast? It could be that one of the customs is dead but there's no way to tell really without comparing scoped data to a known good working machine.

kamiboy

If I could at least find out which line of bios code the CPU reaches before getting stuck, or if it reads any at all. Repairing a device as complicated as this sure is frustrating. I don't know how to test anything other than swapping part for one on a known good board and see whether it functions or not.

Unfortunately only a scant few components are socketed so doing this is unfeasible, especially for the surface mount components. Hell, even the through hole components are a bitch which I found out the hard way after desoldering some logic chips and I/O buffers and lifted a bunch of traces and pads, despite being very careful. The traces are too thin, and the ground planes too large. These motherboards are just not fit for repairing.

SuperDeadite

All I can add is that the system will not boot if it doesn't see both floppy drives.
A flaky floppy drive cable will stop everything.

kamiboy

That is not my experience. I can get to the insert disk screen with no floppy drives connected. In fact I can get to it with nothing but the PSU, naked main board amd bottom board. Nothing else connected.

What machine do you have that does not boot without a floppy drive? What does it do exactly? Error message on boot, or just black screen?

SuperDeadite

I sold it off years ago, but I used to have an Expert that would black screen.  After a tip from someone else I swapped the floppy cables with ones in my XVI and the machine booted up fine. 

Pantman

I often repair old arcade boards, and black screen problems are quite common there, although I've not attempted one on an x68k.

The approach I would take is to use a cheap USB logic analyser to trace the activity of the CPU as it starts up. Here are things you can check:

1) Does the CPU start at all (it may be dead)
2) How far in execution does the CPU get? If you trace the address bus, you can compare it to a trace in an emulator debugger (e.g. MESS with -debug command line option)
4) Is the CPU waiting for an interrupt that never occurs? Checking the source of the expected interrupt may solve the problem (e.g. The bad floppy cable problem suggested here)
5) Does the CPU start executing code normally, but then veer off into bad instructions, eventually crashing? This could be caused by bad RAM, again the logic analyser should be able to help you find which chip is bad.

The Motorola 68000 manual will help a lot, since it outlines the CPU boot process. You can refer to it when making your traces. The main thing is to break the problem down into logical tests that you can check to identify a problem.

kamiboy

I've had this idea myself, but I am not sure about the procedure. I have a ton of questions actually. Best theoretical procedure that I have reckoned involves a multichannel oscilloscope with memory. Hooking the different channels to various pins on the CPU could get me a history of what it does until it stops functioning.

Alas I have no such thing. I've abstained from purchasing a logic analyser so far since they are basically just a one function multimeter. I can already measure voltages on CPU pins using a multimeter and determine whether they are set high or low.

What functions can that cheap logic analyser of yours perform? Is it only capable of reporting whether the point it is connected to is TTL high or low, or can it do more fancy stuff like record and recall a history of highs and lows on a point?

Pantman

It sounds like you are referring to a logic probe (as opposed to logic analyser). A logic probe is different to a multimeter, mainly because it can detect if a pin is pulsing. It's more convenient than an oscilloscope in some cases, since you can keep your eyes on what you are testing, rather than looking up at an oscillioscope. This allows you to probe lots of pins very quickly.

A logic analyser on the other hand traces several (usually eight or sixteen) channels over time. You could hook them to address lines, data lines or other pins on a component to see exactly How their state is changing. These get graphed on a timeline. The data is quite compact, so you can get long traces, and even export/process the data on your computer.

I use a Saleae Logic 8, which is about £200. There are also super cheap clones for around £20.

kamiboy

I see. After an eBay search I see that there are several cheap alternatives. I honestly doubt I'll be able to make head or tail of any result from such analysis, so I won't be buying a fancy one like you own. But those cheap Chinese ones might be worth a go, thanks.

Pantman

It's not as hard as it sounds - those old CPUs are pretty primitive!

Good luck, and have fun!

kamiboy

Just want to run this by someone who is in the know. Will this work?

http://www.ebay.com/itm/USB-Logic-Analyzer-24MHz-8-Channel-UART-IIC-SPI-Debug-for-MCU-FPGA-ARM-/191685084604?epid=1748723690&hash=item2ca15245bc:g:4IgAAOSw4CFYtr~B

I see (for Arduino MCU) mentioned in the description which worries me. If this is made to only work with some sort of Arduino device then it is useless to me. I need it to interface with a PC.

neko68k

That should work but you'll need different probes. Those probes are for plugging into pin headers like on the Arduino.

kamiboy

Yeah, I kind of figured about the probes, It'll be an extra cost, but what can you do. Thanks.