Saturday, 3 January 2015

Commodore IEEE-488 Disk Drives

I've been working on some Commodore Pet disk drives recently. These differ from the Commodore 64 era drives in that they have a parallel interface, conforming to the IEEE-488 / GPIB standard. The later drives have a slower serial version of this on the 6 pin IEC connector.
I have a Commodore Pet 8032 connecting to a Commodore 8250 dual disk drive. I haven't had much success here, and it's one of those situations where when it's all put together, it doesn't work. No response from the drive. I tried the standard LOAD "$",8, the DIRECTORY command and shift + run/stop.
I get just get device not present errors. So it could be the drive or the computer. The drive does do it's power on seek and the LED does go green, so the drive seem OK. The Pet is also otherwise OK.
I normally approach those sort of things with a divide and conquer approach and try to split the problem down each time, so is it the drive or the computer? Both started in poor condition, the Pet's have been restored, but the 8250 is in progress, so it could be either. I don't have another drive to test, so lets try with a different Pet. This is the 4032 I restored last year.
The 4032 gives different errors, and the drive seems to respond. The activity LED does light go red, but it still gives errors. It also response to ID=8, but not others.
So what next? Well since the 4032 got a response and the 8032 didn't, I guess there is a problem with the GPIB port on the 8032. I tried different 6522 / 6520s in the interface chip, but that didn't make any difference. There are three MC3446 buffers, but there aren't socketed and I don't have any spares to hand. I also didn't have another drive in any better condition to try, but I did remember reading about a way to convert a 1541 serial drive into a GPIB drive, similar to the 2031 LP.
The 2031 LP was basically a 1541 with a different board. It is possible to adapt the 1541 with a plug in board and a patched ROM. This was documented in a German C64 magazine in the 1980s. I'll go into more details at a later date.
The board I made plugs into the socket for the 6522 that handles I/O and bypasses the connections to the IEC ports. These are buffered by 75160 and 75161 chips and connect to the GPIB port. The upper ROM of the 1541 is modified. Here I've temporarily used a 24-28 pin adapter and a 2764 EPROM. I've used a GPIB connector on a ribbon cable, so that once it's sorted, I can desolder the two 6 pin DIN connectors and enlarge the holes on the case slightly to take the new connector. I have a drive which has had a bodged repair on the 7406 that buffers the IEC, so that will be the final target. For the moment I'm using a known working drive.
The modified 1541 powers up and spins the drive, more briefly than it used to, but otherwise looks ready to go. Unfortunately, I got no response from the 8032 and the light flashing, but no response on the 4032, exactly the same as with the 8250.
So either both drives are faulty, or both Pets, or something else. The cable is a bit of a bodge, using the extender cable from an 8032-SK, but seems to be fine. I will get around to making up a better one, but I think it's ok.I don't have much else that uses GPIB, various bits of test equipment, but nothing that I could use in this system.
Previously, I build a USB-IEC adapter to connect to serial drives from a PC. That was based on xum1541, and that does have the option to connect to GPIB drives. Rather than modify the previous one, I built a new USB to IEEE-4888 adapter.
I built that with the connector on the box, so it plugs directly into the connector on the back of the drive. Testing with the modified 1541 returned success, giving the model as 2031, which is what the 1541 has become.
Testing with CBMXfer, I did get a full directory listing, so there cannot be much wrong with the setup.
However, it was intermittent, it would work once then lock up. Going back to the command line CBMCtrl, I get various responses to DIR, but it's not consistent. Resetting the drive helps, but then fails again - not sure what's the problem here.
OK, so it's the drives then? I tried various options, another known working 1541 and a ROM/RAM board to rule out my EPROM adapter and the onboard RAM.
That made no difference. This was getting annoying. Nothing seemed to be working properly.
I thought I may as well try the 8250 as well, and rather unexpectedly, it worked, and continued to work.
I was able to format a disk and transfer some files back and forth using CBMXfer. So at last I have a working combination.
Going back to the Pets with the formatted and populated disk and the now known working drive still gave a fail. So both Pets and the modified 1541 are not working, but the USB - IEEE488 adapter and the 8250 are working, at least well enough to talk to each other. At least that's a start and with those working, I can get on with fixing the others.