Diagnosing and repairing a faulty 64

For the discussion of all hardware related topics.
Post Reply
MaestroSoftware
Posts: 24
Joined: Wed Jan 01, 2014 6:59 pm

Diagnosing and repairing a faulty 64

Post by MaestroSoftware »

My beloved D64 (with Dragonplus) is sick, possibly due to my experiments with my MFM hard disk controller.

On the very day I got my first victory (reading sector 0 from the hard drive), my CocoSDC stopped working reliably, sometimes hanging when I accessed the virtual disks; more often hanging at bootup after Pere's copyright but before Microsoft copyright. I suspected the SD card, and changed it : no improvement !

So I used a plain old DragonDOS controller, with a disk drive and disks that used to work last week and now I have this strange behaviour: when I switch on the Dragon, with the DragonDOS controller plugged in, but the disk drives powered off, I get the correct boot sequence (first Microsoft then DragonDos then OK prompt). But when the drives are powered on, it's about the same as with the CocoSDC, the boot sequence doesn't go through : I get the Microsoft message but the DragonDOS message never appears. It seems to hang there. I suspect interrupts (FIRQ from the DragonDos controller ?). I tried with another DragonDos controller, and the same results. Since I have similar issues with several controllers and the CocoSDC, both with the Race expansion board and without it, there can only be one culprit: my beloved Dragon.

Moreover, pushing RESET with a DragonDos controller and powered up drives results in a frozen Dragon with a chequered display.

Can someone suggest where to look?
sorchard
Posts: 530
Joined: Sat Jun 07, 2014 9:43 pm
Location: Norwich UK

Re: Diagnosing and repairing a faulty 64

Post by sorchard »

Do you have an autostart cart other than DOS/CoCoSDC? That would test the firq line.

I'd be tempted to write NMI and FIRQ handlers to help test if those lines are working when manually pulled down.

Might be worth getting hold of a SAM & 6809E just to try.

I've managed to blow the interrupt circuit in a pia before by connecting stuff to the video syncs. Not sure exactly what happened but the pia had to be replaced.

I've wrecked a few SAM sockets by repeatedly plugging things in. A bad ground contact in the socket gave me intermittent problems for months before I finally tracked it down.

How was the MFM interface connected? That might give a clue.
Stew
MaestroSoftware
Posts: 24
Joined: Wed Jan 01, 2014 6:59 pm

Re: Diagnosing and repairing a faulty 64

Post by MaestroSoftware »

Hi Stewart,

Thank you for these pointers.

I just tested with the only non-Dos cartridge that I own: Cyrus Chess. I don't know if it autostarts by having DK at $C000 or through FIRQ/CART but it worked long enough for the Dragon to beat me, once more n ;-)

The schematic of the Coco-XT MFM controller interface that was connected to the cartridge port (through my Race Computer Expansion Cage) can be found at http://cyberabi.ipower.com/Gallery/CoCo ... ematic.gif . I don't see it pulling down NMI on the schematic, but I guess that - when the cartridge was badly inserted (it's physically awkward to insert it) - the +12V signal may have spilled to some other line.

How is it possible to manually pull down NMI or FIRQ ? By connecting these pins to GND while the Dragon is running?

Anyhow, I just ordered a 6309 (with pull-up resistors) and a SAM from John Whitworth, so I'll try swapping these first. I don't quite understand the PIA connection with FIRQ or NMI. Could a bad PIA explain my symptoms? (That would be by nightmare - unsoldering and socketting a 20-pin chip is way beyond my abilities !)

Anyhow, thanks again for all the help !
sorchard
Posts: 530
Joined: Sat Jun 07, 2014 9:43 pm
Location: Norwich UK

Re: Diagnosing and repairing a faulty 64

Post by sorchard »

The firq interrupt source from the cartridge port doesn't go directly to the cpu but via one of the pia chips. That said, your chess cartridge started up ok so it's probably fine.

The nmi line can be manually pulled down to ground with the machine on. Maybe via a 220 ohm resistor to be on the safe side. If nothing else is connected then the only thing holding it high should be a 4K7 resistor.

If you think there's a chance 12V ended up on adjacent pins then the cpu may well be damaged. The halt and nmi lines are next door interestingly enough.

Removing a large ic is not fun, but if you know for a fact that it is faulty then the easiest way to remove it is to cut all the legs at the top with a decent pair of flush cutters. Then you can remove the legs one by one and minimise the risk of damage to the main board.

Fingers crossed that the new cpu fixes it :)
Stew
MaestroSoftware
Posts: 24
Joined: Wed Jan 01, 2014 6:59 pm

Re: Diagnosing and repairing a faulty 64

Post by MaestroSoftware »

Ok, replacing the CPU fixed the issue. The most likely cause of that failure was +12V spilling on the NMI line and destroying some internal NMI logic in the 6809. Actually, the old CPU worked fine, until it encountered an NMI interrupt.

Actually, when replacing the CPU with a 6309, the display got jittery (and not straight away... only some time after power up ; about 30 seconds-1 minute if the machine was powered down for a long time ; only a few seconds of stability if the machine was just powered off and on again immediately). Some people indicated it could by a capacitor issue. I eventually replaced the CPU with another 6809 and everything seems to run smoothly now.

Thx for your help
Post Reply