• Please review our updated Terms and Rules here

TRS-80 M3 has trouble with floppy drive 1

Ultraman

New Member
Joined
Jun 1, 2023
Messages
6
Location
the Netherlands
I have an issue I hope somebody here might either recognize and/or can help diagnose. :)

This story is about a Tandy TRS-80 Model 3, 48K RAM and two floppy drives.
It is not mine, but I was asked to have a go at this one at the museum I volunteer at.
My experience with TRS-80s was non-existent at the time, and it still is minimal at the moment.
I would really like to restore this machine to full function, and I am getting close but a floppy drive issue has eluded me so far.

A colleague worked on the system before my and concluded the disk controller might have been faulty.
So a replacement disk controller was ordered from The Right Stuff (www.frehd.com).
This is where I came along and was asked: "Please replace the disk controller for this machine and figure out how to write disks for it. Have fun!"

And I did have fun and got work done on this machine in the process.
I'll skip the figuring out how to write disk part and skip ahead to: I replaced the original disk controller with the Repro FDC, and connected it to the system board with the shiny new flat cable.

This TRS-80 Model III is now in a decent state:
It starts without issue into the BASIC ROM and I can also boot into NEWDOS/80 2.0 from floppy in drive 0 and run programs.
Where it goes wrong is when you try to do anything with drive 1.

I can put a known good floppy, that works in drive 0, into drive 1 and try to access it. The floppy drive will activate, you hear the head seek and move multiple times, fairly short passes, until the machine informs you it ran into an error after a short while.
So I have a working drive 0. Can boot from it, I can read from it, can possible write (I must admit I haven't tried that yet). Drive 0 seems to work fine.
Drive 1 simply doesn't.
(If helpful I could try make a video of the behavior of floppy drive 1 coming Friday, let me know?)

The floppy drives are full height drives. IIRC they are the Texas Peripheral Incorporated variant.
Fairly simple in construction. I could not make out any jumpers or programmable shunts to configure them. Seem to be the original drives for the system.
I know Disk Select is done with the cable in the TRS-80 M3 via missing pins in the connectors. And the cable used is indeed missing pins for those signals.
One of the drives had a broken clip in the hinge mechanism. The two prongs holding onto the brass bar were broken. I replaced that part and the drive closes properly again.

Here's the list, from the top of my head, what I have tried to figure out what might be wrong and resolve the issue:
  1. First I cleaned an lubricated both floppy drives. No change.
  2. I swapped floppy drive A to position 1 and floppy drive B to position 0.
    After doing this the other, previously non-functional, drive B would work just fine as drive 0 and was able to boot a NEWDOS/80 2.0 right up.
    While drive A, now drive 1, would display the same symptoms.
    Both drives seem good. Because when swapped, they work as drive 0.
  3. Checked for jumpers, termination and/or shunts to configure drive options. Could not really find any.
    Learned Drive Select is performed by leaving out a few pins in the connector. Smart. :)
    Concluded: both floppy drives are OK. Either works as drive 0.
    And I don't see jumpers nor termination (which I read is normal for TRS-80 M3). (picture of both floppy drive logic boards below)
    IMG_20230901_104503.jpg IMG_20230707_140610.jpg
  4. Cleaned all contact pads of the edge connector on the drives and best I could of the cable.
    They didn't look too bad to begin with. Some dirt came off but nothing remarkable.
  5. Made a new floppy cable. I took out the same pins as the original connector, double checked they were the correct ones according to the pinout specification and measured contact of each pin using a multimeter to be extra sure.
    No change: issue isn't with the floppy cable.
  6. Tried another known good (360K) floppy drive in position of drive 1, jumpers set accordingly (iirc DS2 (from [1-4], no termination, didn't touch MX (believe it was open)).
    Just to see what would happen. Was not able to read a disk that either. Didn't fully expect that to work, but had to try.
  7. Measured resistance of pins from the motherboard to the disk controller card: a fiddly job, but all measured OK.
  8. Ensured all earth connections are connected and secure.
    Did not test their continuity. But all seems snug, clean enough and OK.
At this point I was a bit thrown off, what could this be?
  • settings? Did I miss a jumper on one of the drives that is simply misconfigured?
  • something on the brand new disk controller?
  • I have been using the sameNEWDOS/80 2.0 boot disk for my testing of drive 1. Could it contain some setting that would throw off drive 1?
To exclude my second though I put back the original disk controller. Because I never actually tried that one, my colleague did.
After installing the old controller drive 1 performed exactly the same. Drive spun up, head seeked the same and failed with an error after a short while.
So the old controller is exhibiting the exact same behavior as the replacement Repro FDC. Hmm...

What I want/am going to try next:
  • boot from a different floppy, perhaps a different version of NEWDOS/80. To exclude the software side of things more.
  • try to access drive 1 from the BASIC ROM. I found https://forum.vcfed.org/index.php?threads/trs-80-model-3-disk-drive-issues.1239489/ recently and some other threads that discuss this. See what happens and how it behaves.
  • attempt to run diagnostic software.
    First I want to test the RAM, because I have replaced several 4116 DRAM chips after experiencing corrupting characters on the display. Ran all the DRAM through the Retro Chip Tester and it pointed out several had errors.
    Afterwards I want to try something that could test the disk controller and floppy drives.
  • anything you suggest I try?
I hope I have been able to provide sufficient information. If any more is needed, please ask and I will try to provide.
Hopefully any of you have a good idea on how to proceed.

In the mean time I am going to try and look for information here and read further(technical) manuals I can find.
 
Last edited:
Those Texas Peripheral Drives (TPI) do have a Drive Select shown on the Logic
Boards. Your PCB doesn't appear to have those cut.

You might want to verify that Both the DS0 and DS1 traces from the Edge Connector
through to the actual Drive Select on the PCB. Someone could have cut a PCB Trace
on the Logic Board, which could cause the problem you are seeing. I've attached a
Photo from the Manual for some Logic Boards.

You can also try the steps in:
CONTINUOUS OPERATION OF DRIVE
WILL NOT READ

In attached TPI-p16.PDF

Larry
 

Attachments

  • DriveSelect.png
    DriveSelect.png
    54.6 KB · Views: 7
  • TPI-Floppy-Drive.pdf
    1.8 MB · Views: 8
  • TPI-p16.pdf
    163 KB · Views: 9
Last edited:
Ah thanks! I see them. I believe they are intact. Looking at the photos of both boards visually seems to confirm that. However I will definitely test them for continuity when I am able to work on the machine again coming Friday.

I will read the PDF in the coming evenings as well. Thank you.
 
I went back and looked at the Card Edge Connectors on your Photo's for
Drive 0 and Drive 1. I see the following Pins that were removed from the
Edge Connector.

Drive 0 Pins REMOVED 12, 14, & 32
Drive 1 Pins REMOVED 10, 14, & 32

Pin 10 = DS0 - INTERNAL Floppy Drive
Pin 12 = DS1 - INTERNAL Floppy Drive
Pin 14 = DS3 wired to Pin 10 = DS0 - EXTERNAL Floppy Drive
Pin 06 = DS4 wired to Pin 12 = DS1 - EXTERNAL Floppy Drive

Pin 32 = Side Select - Not Used

Notice that the TPI Logic Board Edge Connector has Pins 10, 12 and 14 all tied together.
Pin 6 may also be tied to this group. Without having a logic board it's hard to tell.
(Floppy Logic Board Edge Connector Pins 2,4,6,32, and 34 have no connection, according
to the schematic for TPI Floppy Drives.)

The Model 4 SAMS Photofacts shows the following signals that require a 150 OHM PULLUP Resistor,
and it's on their schematic.

Code:
                   RP1 = Pin 1 +5.0 VDC
Pin 16 /MOTONI =   RP1 Pin 2
Pin 18 /DIRI =     RP1 Pin 3
Pin 20 /STEPI =    RP1 Pin 4
Pin 22 /WDI =      RP1 Pin 5
Pin 24 /WGI =      RP1 Pin 6

If you can find a 150 OHM BUSSED Resistor and install it in the floppy Drive at the end of the cable,
you can see if that helps with getting Drive 1 working properly.

Larry
 
Last edited:
Just a thought. Have you checked the NEWDOS PDRIVE settings? If they are different for drive 0 and drive 1, this may make a disk (like your NEWDOS disk) which is readable/bootable in drive 0 , unreadable in Drive 1 if you are using NEWDOS to boot.

Under NewDOS issue the command "PDRIVE 0". Check that *0 and *1 are showing exactly the same settings. If the PDRIVE settings for drive 1 are different from drive 0, that could be your problem.

Terry (Tez)
 
Terry,
Good suggestion, I had forgot about the PDRIVE command.


Larry
 

Attachments

  • PDRIVE-0.png
    PDRIVE-0.png
    247.9 KB · Views: 14
Make the PDRIVE values for drive 1 the same as those for drive 0. See if that helps.

In my experience NEWDOS 80 v2.5 for the Model 3 doesn't seem to be very compatible with standard Model III LSDOS or TRSDOS disks. Hence if you are trying to read those kind of disks (i.e. disks formatted or imaged from an OS OTHER than NewDOS 80 v2.5) in drive 1 (having booted from NEWDOS 80 2.5), you are unlikely to get a directory regardless of PDRIVE tweaking.

It might pay to boot the machine with LSDOS or MultiDOS, then see if you can format and access disks on drive 1, using those OSs. At least that would eliminate an OS problem.
 
It looks like that could be your problem. Do you have the manual?

Those PDRIVE settings indicate drive zero is set for double-sided, drive one is single sided. Yeah, that’s not going to work.

The NEWDOS 80 manual is pretty good about what settings are necessary for what circumstances, but there’s a rule of thumb to keep in your head: the most compatible universal TRS-80 disk format is the old Model I single density 35/40 track. Beyond that most TRS-80 DOSes are bad at reading each other’s disks. Ironically TRS-DOS 1.3, the “official” Model III DOS, has the worst support; most other DOSes *can* read it, but you have to jump through hoops, they don’t use it natively.
 
Thanks so much for your thoughts and help on this issue.
I have learned so much from you guys already!

Last Friday I was able to spend some time with the machine. I had started to check a couple of the things @ldkraemer suggested here and in his PMs to me.
Before I went further down the rabbit hole by grabbing a logic probe or hooking up the oscilloscope I thought I'd better at check some of the simpler items on my own "list".

I grabbed a good empty floppy disk, downloaded a DMK image of NewDOS/80 v2.0 for Model III/IV, converted that to an IMD image and wrote that to the fresh floppy disk using ImageDisk.
(I was working on another TRS-80 M3 that was just brought in. I gave it a good clean, replaced the RIFA filter caps of the power supplies and got it to boot to BASIC. Wanted to boot that using a floppy disk as wel.)

The machine boot fine from the fresh NewDos/80 v2.0 disk in drive 0.
I put in a floppy with games in drive 1 and gave the "DIR 1" command.
The machine proceeded to read the floppy disk just fine! And I was able to start a game from the disk as well. 😄

So, the hardware checks out and it should/must be a software issue.
The PDRIVE command @tezza is referring sounds like a prime suspect to me.
I just looked up information about it and discovered it stores a configuration table on the disk (according to http://www.digitpress.com/faq/trs80_faq.htm)
A Newdos Pdrive table is kept on each disk at, Track 0, Sector 2. [..]
Which makes sense to me, seeing how you would want drive configuration to be saved and set accordingly at boot time.

Next time I'm with the machines I will look at the PDRIVE configuration table of that particular boot disk and compare it to the PDRIVE table of the boot disk I made from the DMK image.
 
Basically the thing you've got to keep in mind with NEWDOS80 and PDRIVE is NewDOS basically does *nothing* in the way of auto-detecting disk formats; you have to tell it explicitly using the PDRIVE command, That thing in the FAQ about "each disk has a table at XXX" doesn't mean there's any autodetection going on, it's just saying that if you change SYSTEM disks it's whatever table is present on the disk you *boot from* in DRIVE 0 is the one that's going to be in effect. It's up to the user to know what format a disk is when they insert it into a drive and, if necessary, update the PDRIVE settings accordingly. The reason the PDRIVE table has 10 possible options even though TRS-80 controllers usually don't support more than 4 possible physical drives is so the user can keep "spare" settings present to use whenever they need to read an "unusual" disk by just using the short-form version of the command (IE, "PDRIVE,0,dnx=dny,A") to swap a setting in, do the job, and then switch it back, without having to laboriously lay out the full geometry every time.

In short, for normal use on a you'll probably always want the PDRIVE settings for drives 0 and 1 to be the same. (and 2 and 3, for that matter, if you have a really jacked system). The rest of the PDRIVE tables should contain the correct geometries for reading various "alien" disks; If you look at the docs for the PDRIVE command here it has several useful geometries listed, the two most vital are probably the special setting for reading TRSDOS 1.3 disks (note that NEWDOS doesn't really like these, it really only supports it well enough to copy files on and off), and the aforementioned "universal" Model I single-density format.

FWIW, LDOS is probably "friendlier" in this regard, it has some autodetection capabilities. (For that matter I've heard DOSPLUS and MultiDOS are also friendlier, but I've never used either myself.) But NewDOS is a great, fast, and powerful DOS, it's my personal favorite, so I'm not suggesting you switch. It just... is the way it is.
 
Utraman, I'm glad we could help.

Like Eudimorphodon, NEWDOS/80 is my favourite Model I/III DOS. However, its PDRIVE-enabled flexibility with many physical disk configurations (common on maxed out Model 1s), can cause issues with Model IIIs. Model IIIs generally have two factory fitted drives of the same specs, so PDRIVE for 0 and 1 need to be the same. Also there is interoperability with the LSDOS format which many Model III disk images have been formatted in.

Terry (Tez)
 
Back
Top