Ethan's Retrocomputing Corner - DEC RX02 repair


classiccmp: DEC RX02 repair

Date: Tue, 3 Aug 1999 18:42:30 +0100 (BST)
From: ard@p850ug1.demon.co.uk (Tony Duell)
To: "Discussion re-collecting of classic computers" <classiccmp@u.washington.edu>
Subject: Re: RX02 Repair
 
> I've been trying to bring my old RX02 drive back to life, with little
> success.
> 
> I just received a good bootable floppy, and get the same results as with all
> my old disks, so now I'm looking for hardware problems.
> 
> On a PDP-11/03, With RXV21 controller, and an RX02 drive,  the RX02
> initializes, attempts to read the boot block, and crashes to ODT at 000600.

I am going to assume that this is a double-density disk (and thus has 256 
byte sectors) and that the DIP switch inside hasn't been moved since it 
last worked on an RXV21 (I can't find the info quickly, or I'd tell you 
how to set it).

> > In examining what my system reads as it attempts to boot, it looks like I
> > read every other 128 byte chunk correctly.  I haven't figured out a pattern
> > to the corrupt sections.
> 
> Does anyone have any RX02 diagnostics, or hardware trouble shooting tips?

Argh! Fixing an RX02 is a lot worse than fixing an RX01 (I've done 
both). The RX01 has an internal diagnostic connector that you plug an 
KM11 into. You can then single-step the microcode, halt-on-error, etc.

Anyway, back to the RX02. The controller is the upper board in the drive 
unit. Undo the screws and hinge it up. On it there's a microcoded 
processor based on 3 2909 sequencers and 2 2901 ALUs, 1K of ROM and a lot 
of TTL glue. There's also a 2K bit sector buffer based on 2 off 2102 RAMs.
I can talk you through it if you can get the printset.

> From the fault, I suspect that most of it is working correctly (most of 
> the logic is the same for all bits in the sector), and that the most 
> likely problem area is the sector buffer and/or its address counter.

There are some things you can try. Firstly (if you have the programming 
info - if not I'll find it), you can try transfering 256 bytes from the 
PDP11 to the sector buffer and then transfering it back again (without 
going via the disk). This will test most of the controller logic and the 
sector buffer RAM. My guess is that this will fail.

Now look at the siganls to E56 (a 2102 RAM that's the high half of the 
sector buffer). Does it ever get enabled (pin 13 goes low)? Check back to 
E29f (74LS04) if not. If that inverter is OK, then suspect the address 
counter (E63, E57, E51). 

Also suspect E56 itself (this is the most likely problem, actually). If 
you have a spare 2102-1, it may be worth replacing it.

> Steve

-tony

Date: Tue, 3 Aug 1999 13:22:54 -0700 (PDT)
From: "Zane H. Healy" <healyzh@aracnet.com>
To: "Discussion re-collecting of classic computers" <classiccmp@u.washington.edu>
Subject: Re: RX02 Repair

Hmmm, you'll find some info on RX02's at the following URL, I just checked
and unfortunatly doesn't look to have the printset.  I does have the
RX01/RX02 Pocket Service Guide though.

http://highgate.comm.sfu.ca/pdp8/

                        Zane

Date: Tue, 3 Aug 1999 16:41:44 -0400 (EDT)
From: allisonp@world.std.com
To: "Discussion re-collecting of classic computers" <classiccmp@u.washington.edu>
Subject: Re: RX02 Repair

> Hmmm, you'll find some info on RX02's at the following URL, I just checked
> and unfortunatly doesn't look to have the printset.  I does have the
> RX01/RX02 Pocket Service Guide though.

First make sure it's set for RXV21/RX11 and not the RX8E interface.  Then
inspct the heads for crud and insure there are pressure pads in the arm
that presses the media to the disk.  The disk must be either RX01 or RX02
format and if your trying to boot it must have the correct boot RX01/02
(or RT11 DY for RX02 DX for RX01).  These things are generally
electronically reliable but connectors get loose, power supplies go off the
correct voltages.  The drives may have mechanical ill.

Allison

Date: Tue, 3 Aug 1999 23:55:47 +0100 (BST)
From: ard@p850ug1.demon.co.uk (Tony Duell)
To: "Discussion re-collecting of classic computers" <classiccmp@u.washington.edu>
Subject: Re: RX02 Repair
 
> >correct voltages.  The drives may have mechanical ill.
> 
> The most common "mechanical ill" these days is the drive belts falling
> off.  Funny, how it's hard to read a disk that isn't turning :-).

Yeahbut... The fault description implied that it was half-working - in 
particular the first half of each sector looked OK. Which implies the 
disk _is_ turning.

I've seen all sorts of mechanical faults on these, though. On the older 
(CDC?) drives, I've had a head pressure pad spring loose tension (took a 
long time to trace that). I've had belts fall off, spindle motor bearings 
dry out (and make the most amazing noises!), track 0 sensors go out of 
alignment, etc. Never had a head fail, but I'll believe it can happen...

-tony

Date: Tue, 3 Aug 1999 17:29:04 -0700 (PDT)
From: Kevin McQuiggin <mcquiggi@sfu.ca>
To: "Discussion re-collecting of classic computers" <classiccmp@u.washington.edu>
Subject: Re: RX02 Repair

Hi Steve:

See my web site, http://highgate.comm.sfu.ca/pdp8 for drive diagnostic and
troubleshooting information.

Kevin

> 
> I've been trying to bring my old RX02 drive back to life, with little
> success.
> 
> I just received a good bootable floppy, and get the same results as with all
> my old disks, so now I'm looking for hardware problems.
> 
> On a PDP-11/03, With RXV21 controller, and an RX02 drive,  the RX02
> initializes, attempts to read the boot block, and crashes to ODT at 000600.
> 
> > In examining what my system reads as it attempts to boot, it looks like I
> > read every other 128 byte chunk correctly.  I haven't figured out a pattern
> > to the corrupt sections.
> 
> Does anyone have any RX02 diagnostics, or hardware trouble shooting tips?
> 
> Steve

-- 
Kevin McQuiggin VE7ZD
mcquiggi@sfu.ca

Date: Wed, 4 Aug 1999 14:29:52 +0200 
From: steve.lubbers@barco.com
To: "Discussion re-collecting of classic computers" <classiccmp@u.washington.edu>
Subject: RE: RX02 Repair {Follow Up}

Thanks All for the suggestions I've received so far.

To answer a few of the additional questions that cropped up:

I've had the drive for about 11 years.  About 5 years ago it worked
correctly, so I'm assuming that internal switch settings are correct (though
I don't have a reference to verify them), and the controller/drive match.

I have a huge collection of disks, some marked RX01, some RX02, none will
boot.  I am currently working with an RX02 disk that was used to boot
another PDP-11, then sent to me.

I checked that both drive belts are in place, and used a scope on the photo
transistor that detects the hole.  The drive RPM was correct.

Date: Wed, 4 Aug 1999 14:38:50 +0200 
From: steve.lubbers@barco.com
To: "Discussion re-collecting of classic computers" <classiccmp@u.washington.edu>
Subject: RE: RX02 Repair

Tony,

Thanks for the suggestions, I'll see what I can see tonight.

I have a copy of the RX02 Field Maintenance Print sets, so I can follow what
you are describing.  I don't think I have a spare 2102, but could get one
easy enough.

I didn't think of the load/dump sector buffer approach.  That sounds like I
good idea!  Any programming help you have would be great!  I was trying to
figure out how to get a logic analyzer, but your idea will use the drive to
diagnose itself.

I posted a follow-up on the mailing list.  Essentially, as you said, the
disk does spin.  I even checked the rotational speed.   Plus/minus my
scope's accuracy, it is spinning OK.

I've cleaned the heads, but didn't go any further with mechanical
adjustments.  I was assuming that a drive sitting in a box didn't fall out
of adjustment too far, and given that it reads a good portion of the data
correctly, I thought I would probably make things worse.

Date: Wed, 4 Aug 1999 19:52:27 +0100 (BST)
From: ard@p850ug1.demon.co.uk (Tony Duell)
To: "Discussion re-collecting of classic computers" <classiccmp@u.washington.edu>
Subject: Re: RX02 Repair
 
> Tony,
> 
> Thanks for the suggestions, I'll see what I can see tonight.

I've found the technical manual (which is very good), and it gives the 
DIP switch settings. For a RX211 or RXV21, the settings are : 

S1/1 Off, S1/2 On.

May be worth checking this, and checking that the switch is electrically OK.

> I have a copy of the RX02 Field Maintenance Print sets, so I can follow what
> you are describing.  I don't think I have a spare 2102, but could get one
> easy enough.

It would be worth checking/replacing that RAM (the sector buffer RAM is 
fairly obvious in the printset), since it's the one thing that would only 
affect the top half of the buffer. All the rest of the logic is common to 
both sections.

> I didn't think of the load/dump sector buffer approach.  That sounds like I
> good idea!  Any programming help you have would be great!  I was trying to

OK, I've got some information.

There are 2 registers : the RX2CS at 777170 (or 177170 in a program with 
the MMU disabled, of course) and the RX2DB at 777172 (177172). The latter 
is a general-purpose register for values that are to be sent to the RX02.

The bits in the RX2CS are : 

15 : Error (Read only, set by RX02 if an error occurs)
14 : Init (Write only. set to initialise the RX02 controller)
13,12 : Extended address (Write only. set the values for A17 and A16 
        during DMA)
11 : RX02 (Read only. Set to indicate this is an RX02 system)
10,9 : Reserved (always write as 0)
8 : Density (R/W. Set if using DD disks, clear if using SD disks).
7 : Transfer Request (Read only. See below).
6 : Interrupy Enable (R/W. Set to enable interrupt when Done is set).
5 : Done (Read only. Indicates function complete)
4 : Unit Select (R/W. Set for drive 1, clear for drive 0)
3-1 : Function select (Write only. See below)
0 : Go (Write only. Starts RX02 doing something).

The commands are : 

0 : Fill buffer (transfer data from PDP11 memory to sector buffer)
1 : Empty buffer (transfer data from sector buffer to PDP11)
2 : Write sector (transfer data from sector buffer to disk)
3 : Read sector (guess!)
4 : Set Density (Reformat a disk, including changing SD to DD and vice 
    versa. Note the disk must be initially formatted)
5 : Read Status
6 : Write Deleted Sector (as Write Sector, but stick a Deleted Data Mark 
    at the start rather than a normal Data Mark)
7 : Read Error Code.

The ones you need are Fill Buffer and Empty Buffer.

Start by puting 128 words of known data somewhere in memory using the 
panel/ODT.

Write a little program which does the following (timing is critical-ish, 
so you can't just do this from the panel or from ODT - it has to be a 
program) : 

1) Loads a Fill Buffer command into RX2CS
2) Reads RS2CS and loops until the Transfer Request (TR) bit is set
3) Then load a word count (up to 128(10) words, which is what I recommend) 
   into RX2DB
4) Tests TR again until it is set
5) Loads the memory address of the 1st word in the data into RX2DB.
6) Loops, checking the Done bit in RX2CS. The RX02 will do a DMA transfer 
and move the data into the sector buffer. At the end of the transfer, the 
Done bit is set.
7) Halts.

Run that. 

Now change it so that the function in (1) is Empty Buffer. Change the 
address in (5) to something else. Run it again. Look at the address it 
should have loaded the data back into. See what it's actually done.
 
> figure out how to get a logic analyzer, but your idea will use the drive to
> diagnose itself.
> 
> I posted a follow-up on the mailing list.  Essentially, as you said, the

This is going to the list (I think).

> disk does spin.  I even checked the rotational speed.   Plus/minus my
> scope's accuracy, it is spinng OK.
> I've cleaned the heads, but didn't go any further with mechanical
> adjustments.  I was assuming that a drive sitting in a box didn't fall out

Well, if it reads half the sector, there's not a lot wrong with it. 
Certainly don't fiddle with alignment, etc at this stage.

-tony

To Ethan's Home Page

HTML 2.0 Checked! Last modified: 05 August 1999
Compilation © Copyright 1999, Ethan Dicks <erd@infinet.com>. All Rights Reserved.