Friday, July 26, 2024
Fixing a dead Amstrad PCW9512+, Part 2
Friday, July 12, 2024
fixing a dead Amstrad PCW9512+
I'm on a bit of a "i wish I had a PCW as a kid" kick. So yeah, I have a working out of the box PCW8256 that has been upgraded to a PCW8512 (but with only one floppy drive for now. Stay tuned.) I got lucky; that one was in the US and didn't need any modification to work here. (And, amusingly, although it's setup for US power - and shipped with locAscript instead of locOscript, it's still configured for 50Hz UK and 256 line display!)
But yes, finding PCW's in the US - well, any Amstrad really - is super difficult. So when I saw a PCW9512+ for sale by someone in Florida, I jumped at it.
... unfortunately although the seller was listed in Florida, it came from Cairo! So would it survive the trip? who knows. It was sold as "didn't power on", the internal photos didn't show any evidence that the tube was cracked, so .. maybe I'd get lucky.
Coming from Cairo meant that it would be wired for 240v power, and indeed it was. So, up on the bench it went. And yes, it was very dead. So, I pulled out the boards and started testing the switch mode power supply.
First - start by discharging all the AC side capacitors and EHT side capacitors - and the tube, just in case! - and then start checking components from the AC line input all the way to the big switching coil. If you're lucky, it'll be something stupid like the fuse. If you're unlucky, the coil is open or the switching transistor is dead. (Or in the case of the PCW, a big honking integrated switchmode controller hybrid IC which is unobtanium in 2024.)
Here's what I started on:
This covers the AC input, EMI filtering, switching and AC -> DC rectification. The output of that rectification from 240v AC RMS is around 330v DC peak. So be careful, that stuff will definitely kill you dead!
Basic continuity tests of each of those components in circuit didn't show anything obviously wrong. But since there's a rectifier there, it's not always obvious that something's bad. So it's best to lift the parts out to test. So I did that, and .. oh look. R5001 is very, very dead.
I spoke with Jaz (https://mstdn.social/@coregaze) about it a bit to figure out why it's there. They pointed out it's very likely a damper resistor to stop any ringing that may happen between the filter coil on the left side, the capacitors in the circuit around it and the diodes switching on and off. It likely would get hot in normal use, so the fun question was - did it die because the whole unit was just running for too long in a hot room, or is something else dead / shorted and the power supply was being over-taxed?
In any case I wanted to test the rest of the power supply with that fixed, but I didn't (yet) want to light up the monitor circuitry. If there's a problem with the monitor circuitry - eg a shorted power transistor or hybrid IC - I didn't want to risk further power supply damage. So, back to the circuit diagram I go to see how the monitor side is powered up.
On the power supply side, there is a separate 12v DC supply to the monitor, called B+:
And on the monitor side, there's a few places it branches off of that B+ net:
Now, see the track there with W2? That goes off to the horizontal deflection circuitry and flyback input to feed the tube EHT. The rest of that W2 track/net is all of the other monitor circuitry. So how's it hook up into the Q5003/VR5002/C5026 net? The actual 12v monitor B+ line?
The answer - a solder blob! Here's how it looks after I was Very Intentional about cleaning around it after desoldering it.
Wednesday, April 24, 2024
On "repairing this commodore 1551 drive" and "don't plug in the head cable backwards"
I bought a "dead" 1551 drive a few months ago. It's a european model, only 220v, and they said "it smoked when it was on". Well, i figured it was dead but I figured maybe not dead dead.
So, step one was removing the .. huge ass transformer.
I stripped off the regulators and hooked it up to a pair of bench supplies to feed 5v and 12v with a current limit.
(And yes, by this stage I had done a bunch of debugging already, so i had taken out the ROM, PLA and RAM and socketed the PLA / RAM.)
I unplugged the drive head cable and measured it - the heads measured just fine. So, I left them off whilst I debugged everything else.
Then I fired it up - the drive spun, a bunch of CPU pins were blinking on the oscilloscope, but nothing quite worked. The drive constantly spinning is a sign that even the early boot code isn't running.
So I then wanted to know if the CPU worked. The problem? All the pins kinda looked fine. Except A15.
It looked very sus. Like ok, NMOS has some fun rise times, but the other pins weren't this fun.
I decided to socket everything so I could pull the RAM and address decode gate array out. I thought about the 42 pin drive gate array IC but I figured if that was fried I was in for an unfun time.
The next thing was to figure out how to test that the CPU kinda worked. I figured I could write a little program to toggle the activity LED quickly and see it on my scope. I started with the disassembly here - http://www.cbmhardware.de/show.php?r=7&id=21 - to see how the LED is blinked. The 6510T CPU has an 8 bit IO port (versus the 6 bit IO port on the 6510 CPU).
The program looked roughly like this:
.org $ff00
SEI ; disable interrupts
CLD ; clear flags
LDA #$6F ; IO direction bits
STA $00 ; program IO direction bits
loop:
LDA #$60 ; turn on LED
STA $01 ; program IO port
LDA #$68 ; turn off LED
STA $01 ; program IO port
JMP loop
.org $fffa
.byte $00, $ff, $00, $ff, $00, $ff
This didn't work. So, I got a new CPU. A15 on that CPU was much better.
Then this did work. The LED was blinking at a few hundred kilohertz. Ok, but the original ROM? Nothing. My guess is the ROM is also busted, so I programmed another 27128 EPROM with the right image and inserted it into the drive.
Everything worked! So, time to plug in the head cable OH CRAP I PLUGGED IT IN BACKWARDS. Bang, I blew the head coils. Crap.
Anyway, the rest of the drive seemed fine. Stepper motor, drive motor control. Now, the challenge - it's a mitsumi drive. I went on ebay to find a replacement drive - lots of "untested" 1541's everywhere. But I did find a "tested, guaranteed works" SX-64 drive. However, it's an Alps drive. They're supposed to be more reliable, but .. well, it arrived a few days later.
The main physical difference between the two is the connector. The thing I remember is that the write current is slightly different and some 1541 drives have a jumper to change said current.
Luckily there's a 1541 service manual and it has the Alps drive pinout for the 1541, which is surprisingly exactly what I need for the 1551:
So I followed this guide, verified at each step that it worked, and connected it all up.
And yes, I put superglue in the key hole for the head connector so I didn't plug it in backwards.
And .. well, it works!
Well, kinda. I had the commodore 16 drop into the monitor after HEADER (which formats a blank disk) completed. I've also had some issues with commands hanging and not running on the drive. So, there may be some other issues lurking.
I also want to figure out a suitable mod for the write head current change.
But hey, I guess I do have a working Alps drive in my 1551.
And yes I did tear the head apart to see how it's put together... :-)