• Please review our updated Terms and Rules here

BOOT ERROR DC on TRS-80 Model II

Lorne

Veteran Member
Joined
Jul 27, 2008
Messages
1,164
Location
Chandler, AZ, USA

I’m getting a BOOT ERROR DC (disk controller) on my TRS-80 Model II.


I’ve read about the error here:
http://www.vintage-computer.com/vcforum/showthread.php?11858-TRS-80-Model-II

I’m not always getting that error message.
Sometimes when I turn on the power, I get INSERT DISKETTE, but when I insert the disk nothing happens. Other times, I get the BOOT ERROR DC message. There doesn’t seem to any rhyme or reason as to when either message pops up. It’s hit or miss, and I can’t do anything to make one or the other happen at any particular time.

When the BOOT ERROR DC message pops up, I notice that the head on the Shugart loads, but the head never moves (note: the head loads sometimes but not always). I thought maybe the stepper motor was bad or not getting power, so I removed the drive and checked it, and the stepper motor is fine. When the power is off, I can move the head easily by turning the stepper shaft where it sticks out of the back of the motor – it moves easily, and isn’t binding. When the power is on, I can’t manually move the stepper shaft as the motor is energized, which is as it should be.

I get this BOOT ERROR DC whether the disk expansion unit is connected and turned on first or not.

So far I’ve done / checked the following:
- checked the drive, as mentioned above
- tried three different disks that I made from images provided by others and Bitsavers
- removed all socketed chips on the four cards in the card cage, and reseated all those chips
- removed and reseated all RAM
- replaced each row of RAM with known good RAM (one row at a time), reinserted the card and rebooted after each row was replaced – it made no difference
- removed and cleaned (with electronics cleaner) the connectors on the backplane
- used an eraser (to clean the contacts) on the connectors on the four cards in the card cage

The Model II Boot Errors Table says the BOOT ERROR DC occurs because of:
1) Defective diskette – try a different diskette
2) Floppy disk expansion unit not on –turn on the floppy disk expansion unit
3) Defective FDC Chip or drive – Contact RSSC

Would the errors I’m getting be representative of a failed Western Digital 1791 or some failed SN74LS chips on the FDC, or could I be looking at some other problem?

I feel like I’m headed down a dead end street which I’m hoping is really a cul-de-sac.
I’m now thinking I’ve got two directions I can go in – borrow or buy another FDC to see if that is really the problem, or replace the Western Digital 1791 and all the SN74LS chips on my FDC.

Does anyone have any other suggestions/directions I should go in?
 
You might not have anything more than a dirty or sluggish drive. As your cite mentions, if TK00 doesn't go active, you'll get the error. Try cleaning the Track 0 sensor as well.

Does the DC happen more often when the drive starts off near cylinder 76 or near cylinder 0?

That's what I'd look at first, anyway.
 
This probably won't help much, but...

These are the steps and order that the ROM takes:
  1. Enables the video display
  2. Whites out the screen memory (reverse-video of ASCII space)
  3. Sets up the CRTC registers
  4. Checksums itself (BOOT ERROR CK)
  5. Verifies the Z80 registers are working (BOOT ERROR Z8)
  6. Tests the RAM (BOOT ERROR MF)
  7. Clears any pending keyboard interrupts
  8. Waits a short period of time
  9. Issues the drive-select command to the FDC
  10. Displays the " INSERT DISKETTE " message
  11. Waits in an infinite loop for the FDC status READY (a disk inserted)
  12. Clears the screen (black)
  13. Issues a RESTORE command to the FDC (with Track-Address Verify mode and 10ms stepping rate)
  14. Waits a longer period of time (a few seconds, I think)
  15. Checks the FDC status result of the RESTORE command

At this point, there are exactly three conditions that can lead to the 'BOOT ERROR DC' message:
  1. the FDC is still busy (the command hasn't finished, and it should have by now)
  2. the first sector located under the head didn't have a track-id of 0 (for track zero), or no sector at all was located
  3. the track-zero status signal is not active meaning it either hasn't stepped to track zero, or the light sensor that detects the head is over track zero is dirty

If there's a problem with that light-sensor, it might also cause 1. It depends how long that previous wait period is. The FDC will keep issuing step pulses to the drive (up to 255 times) until it sees the head over track zero. If this were the problem, I imagine you'd probably hear the continuous stepping sounds. You've said that it isn't stepping anyway.

In theory, even if stepping was not working, if your head is already positioned manually (track zero is the outer-most track), it should get past this point. That it doesn't, means it's not a stepping problem (or at least not solely a stepping problem). You've figured this much already anyway.

I guess a logic analyser would probably help locate the problem pretty quickly. Hopefully the termination topic in your other thread will fix the problem.
 
You might not have anything more than a dirty or sluggish drive. As your cite mentions, if TK00 doesn't go active, you'll get the error. Try cleaning the Track 0 sensor as well.

Does the DC happen more often when the drive starts off near cylinder 76 or near cylinder 0?

That's what I'd look at first, anyway.

I'll try cleaning the track 00 sensor, but I don't think that's it, as I removed that drive and tested it on my bench and the stepper motor worked.
When it's in the Model II, and the head is manually positioned in the center of the disk, the stepper motor doesn't (ie: never) moves the head to any track.
The head doesn't move anywhere when it's in the Model II, unless it's moved manually using the shaft at the back of the stepper motor.

I can't get the DC error to repeat at my will.
The head could be in the middle one time and I get the error, and the next time when it's still in the middle I get only the Insert Diskette message.
Again, no rhyme or reason.
 
Last edited:
This probably won't help much, but...

These are the steps and order that the ROM takes:
  1. Enables the video display
  2. Whites out the screen memory (reverse-video of ASCII space)
  3. Sets up the CRTC registers
  4. Checksums itself (BOOT ERROR CK)
  5. Verifies the Z80 registers are working (BOOT ERROR Z8)
  6. Tests the RAM (BOOT ERROR MF)
  7. Clears any pending keyboard interrupts
  8. Waits a short period of time
  9. Issues the drive-select command to the FDC
  10. Displays the " INSERT DISKETTE " message
  11. Waits in an infinite loop for the FDC status READY (a disk inserted)
  12. Clears the screen (black)
  13. Issues a RESTORE command to the FDC (with Track-Address Verify mode and 10ms stepping rate)
  14. Waits a longer period of time (a few seconds, I think)
  15. Checks the FDC status result of the RESTORE command
At this point, there are exactly three conditions that can lead to the 'BOOT ERROR DC' message:
  1. the FDC is still busy (the command hasn't finished, and it should have by now)
  2. the first sector located under the head didn't have a track-id of 0 (for track zero), or no sector at all was located
  3. the track-zero status signal is not active meaning it either hasn't stepped to track zero, or the light sensor that detects the head is over track zero is dirty
If there's a problem with that light-sensor, it might also cause 1. It depends how long that previous wait period is. The FDC will keep issuing step pulses to the drive (up to 255 times) until it sees the head over track zero. If this were the problem, I imagine you'd probably hear the continuous stepping sounds. You've said that it isn't stepping anyway.

In theory, even if stepping was not working, if your head is already positioned manually (track zero is the outer-most track), it should get past this point. That it doesn't, means it's not a stepping problem (or at least not solely a stepping problem). You've figured this much already anyway.

I guess a logic analyser would probably help locate the problem pretty quickly. Hopefully the termination topic in your other thread will fix the problem.


Thanks Scott.

Sometimes (who knows when or why), I'm getting past 10 (Insert Diskette) in your steps list, and in others I'm getting past 12 (screen goes black with a BOOT ERROR DC message).
I'll try manually positioning the head to track zero, and see what happens. At the moment the stepper doesn't move the head (when it's in the Model II) at all, so there's no way it's going to get to track 0 by itself. The stepper motor does't make a sound.
I have a logic probe but locating the problem will only be possible if I know where to look, and what to check (I can read a schematic but I don't know what the various parts are supposed to be doing ie: high/low).
At the moment, I think with either the terminator I've made or the disk expansion box hooked up, I'm OK. The termination doesn't seem to effect what happens one way or the other. I still get the Insert Diskette or Boot Error DC message with or without the terminator.
 
Thanks Scott.

Sometimes (who knows when or why), I'm getting past 10 (Insert Diskette) in your steps list, and in others I'm getting past 12 (screen goes black with a BOOT ERROR DC message).
I'll try manually positioning the head to track zero, and see what happens. At the moment the stepper doesn't move the head (when it's in the Model II) at all, so there's no way it's going to get to track 0 by itself. The stepper motor does't make a sound.
I have a logic probe but locating the problem will only be possible if I know where to look, and what to check (I can read a schematic but I don't know what the various parts are supposed to be doing ie: high/low).
At the moment, I think with either the terminator I've made or the disk expansion box hooked up, I'm OK. The termination doesn't seem to effect what happens one way or the other. I still get the Insert Diskette or Boot Error DC message with or without the terminator.

Okay, since in some cases it's stopping at Insert Diskette, then that means you don't even need to check the stepping yet because the drive-ready status is failing.

A few things to try with your logic probe directly on the SA800 edge connector:
  • The READY signal, pin 22 (with and without a disk loaded)
  • The TRACK 00 signal on pin 42 (with and without the head manually positioned over track zero)
  • The INDEX hole signal on pin 20 should pulse 6 times per second (360rpm) with a disk loaded and drive spinning (I think it should be high with no disk, since it sees a continuous "hole").

This would rule out any of the sensors causing problems.

Edit: From the SA800 OEM Manual:
The pins are numbered 1 through 50 with the even numbered pins on the component side of the PCB and the odd numbered pins on the non-component side. Pin 2 is located on the end of the PCB connector closest to the AC motor capacitor and is labeled 2. A key slot is provided between pins 4 and 6 for optional connector keying.
 
Last edited:
Lorne:

If that unit has been setting up for a long time I would check the FELT tension pad on the drive (about the size of a pencil eraser).
 
Last edited:
Okay, since in some cases it's stopping at Insert Diskette, then that means you don't even need to check the stepping yet because the drive-ready status is failing.

A few things to try with your logic probe directly on the SA800 edge connector:
  • The READY signal, pin 22 (with and without a disk loaded)
  • The TRACK 00 signal on pin 42 (with and without the head manually positioned over track zero)
  • The INDEX hole signal on pin 20 should pulse 6 times per second (360rpm) with a disk loaded and drive spinning (I think it should be high with no disk, since it sees a continuous "hole").
This would rule out any of the sensors causing problems.


First off, I have to correct something I said beforeabout the stepper motor not moving at all.
If I manually locate the head as far back as it will go(like to what would be track -1), the stepper motor does move the head a verysmall fraction of an inch to what looks like the track 0 position, when I turnon the power. It’s like a little click or clunk as the motor gets power.

Logic probe check results:

READY (pin 22) – with a disk inserted = HIGH & withouta disk inserted = HIGH

TRACK 00 (pin 42) – with head manually positioned overtrack zero = LOW & with the head located over any other track = HIGH

INDEX (pin 20) – with a disk loaded and spinning =pulsing HIGH & without a disk loaded = constant HIGH

So, are my sensors OK?
 
Okay, check the "door closed" switch. The "ready" is really nothing more than the switch delayed for 2 index pulses (and we know the INDEX works).

T6 should be pulling WGATE high.
 
I got hold of a newer version FDC, but I get the same problem, so I've gone back to the older FDC.
I still only get to the Insert Diskette message.
I've pulled the Shugart out of the Model II so it's easier to test/work on.
With the old FDC installed, without the disk expansion unit connected, with no external terminator, and with jumpers on T3, T4, T5 & T6 on the Shugart PCB, I get the following readings with my logic probe:

READY (pin 22) – with a disk inserted = LOW, without a disk = HIGH
TRACK 00 (pin 42) – head positioned over track 0 = LOW, head over any other track = HIGH
INDEX (pin 20) – with a disk loaded = pulsing HIGH, without a disk loaded = HIGH

Are these readings what they're supposed to be?
 
So if the drive's sensors are all OK, READY is working, and I'm getting to 10 (as below)
10. Displays the " INSERT DISKETTE " message
11. Waits in an infinite loop for the FDC status READY (a disk inserted)
12. Clears the screen (black)

then the READY signal isn't getting from the drive to the FDC, or from the FDC to the ROM - is that correct?

Is there a way to go backwards from the drive card edge connector to the FDC or ROM, and check if an IC has failed?

From the FDC schematic I can see that the READY signal leaves the card edge connector at pin 22, then goes to pin 2 of U18, then from pin 2 of U18 to pin 4 of U36 (the WD1791).
U19, U21, U36, and others seem to be involved somehow too.

Are there some pins on the FDC IC's I can check with the logic probe that will narrow down the problem?
Or, do you jump straight to the ROM to see if the problem is there?
 
Try sticking an unformatted (or wrongly formatted) disk into the drive. Do you get a DC error?

If so, we may have been chasing the wrong cat. Do you know what ROM (version, vendor) is in your system? For a number of TRS-80 boxes there were alternative ROMs.
 
So if the drive's sensors are all OK, READY is working, and I'm getting to 10 (as below)
10. Displays the " INSERT DISKETTE " message
11. Waits in an infinite loop for the FDC status READY (a disk inserted)
12. Clears the screen (black)

then the READY signal isn't getting from the drive to the FDC, or from the FDC to the ROM - is that correct?

Assuming your ROM is the same as the one I disassembled, yes.

Is there a way to go backwards from the drive card edge connector to the FDC or ROM, and check if an IC has failed?

You can check at the input of the FDC, but from the FDC to the ROM probably won't be possible with a logic probe as the signals will be mixed with everything else on the data lines (even on the FDC).

From the FDC schematic I can see that the READY signal leaves the card edge connector at pin 22, then goes to pin 2 of U18, then from pin 2 of U18 to pin 4 of U36 (the WD1791).
U19, U21, U36, and others seem to be involved somehow too.

Are there some pins on the FDC IC's I can check with the logic probe that will narrow down the problem?
Or, do you jump straight to the ROM to see if the problem is there?

Which schematic are you reading? On the schematic I'm reading in the Technical Reference Manual page 53, J1-22 goes to pin 1 of U18 (74LS04 hex inverter), leaves on pin 2. Then enters pin 32 of U6 (FD 1791). (This means pin 32 of the FD 1791 should be high when a disk is inserted and low when not.)
 
At the moment, and for the last 20 tries, I'm not getting the BOOT ERROR DC mesaage.
I'm not getting past the INSERT DISKETTE message (and when I insert the disk, it doesn't even try to read it - ie: no head load).

From the parts list in the maint manual:
U11 2316E Mask ROM, 450 ns access
mfg part # 8043316

On my CPU board:
U11 8043216 (that's not a typo - 3216 on the ROM vs 3316 in the manual)
SCM 91538P
Motorola QQ8101

I don't know how to get the version number without it booting.
 
Which schematic are you reading? On the schematic I'm reading in the Technical Reference Manual page 53, J1-22 goes to pin 1 of U18 (74LS04 hex inverter), leaves on pin 2. Then enters pin 32 of U6 (FD 1791). (This means pin 32 of the FD 1791 should be high when a disk is inserted and low when not.)

My mistake - we are reading the same schematic. (I mixed it up with U36's pin 4, and forgot about it entering U18 .

I'll check pin 32 on the 1791.

EDIT: pin 32 on the 1791 is HIGH with a disk inserted, and LOW without a disk inserted.

On this latest measurement exercise, the head actually loaded a couple times - sometimes it does, and sometimes it doesn't (more often doesn't).
Then I shut it down, restart it, and the head doesn't load.
What gives? Doesn't this all seem too random?
 
Last edited:
Back
Top