• Please review our updated Terms and Rules here

TRS-80 Model 1 won't boot from disk

AndyDiags

Member
Joined
Dec 12, 2022
Messages
23
I have a Japanese TRS-80 model 1 that I can't seem to boot from a floppy disk.
I'm creating the floppy disks using a cassette input and Büssert's Bootstrap program. The creation of the disks seems to go through without errors.
I've tried to write three different DOS programs on new disks multiple times, and I keep getting the same consistent failures.
All disks fail in a similar fashion, the initial boot screen appears, and then quickly, the system locks up.

MutliDos gets stuck with a flashing cursor and is unresponsive; if I press down on multiple keys, I get taken to monitor. NewDos fails similarly; it gets stuck at the enter date screen, but I cannot enter a date, I get taken to the monitor program after pressing some keys. LDOS continuously restarts the system after displaying a splash screen.

IMG_4788 2.jpgIMG_4787 2.jpgIMG_4786.jpg

A couple more notes about debugging done:
  • I've tested the RAM on the TRS-80 and Expansion Interface with Adrian's TRS-80 Diagnostic Rom, and no issues were found.
  • I have 2 TRS-80's, and the same issue occurs with both.
  • The disk drive is TEAC FD-50A, Radio Shack Cat # 26-1160A. I re-capped the power supply and clean the head.
  • I was able to load and play Meteor Mission 2 via cassette port just fine.
  • I made a new cable for both the disk drive and the Expansion Interface.
This will be the fault of either the Disk Drive or the Expansion Interface.
The failures are always exactly the same, so it's not that the head has issues reading the disks.

Does anyone have any tips on additional troubleshooting?
 
My first purely speculative thought is maybe there’s an issue with interrupts? The EI contains an interrupt generator that‘s used for several purposes. (There’s a “real time clock” that just fires an interrupt every 40th of a second, that’s enabled whenever the disk drives or cassette player isn’t running, and the floppy controller can also use interrupts, although it’s also possible to drive it with polling.) I wonder if there’s an issue with the interrupt register or the INT/INTAK lines to the EI that’s making it wander off into the woods after enabling interrupts after the initial boot. (It’s either hanging up waiting for an interrupt that never comes, or having issues acknowledging them when one comes in, getting stuck in the interrupt service routine forever.)
 
Have you checked and adjusted the voltage regulators on both the EI and CPU? I've corrected flaky operation on a couple of CPU units where the power rails were not within spec. Though it is rated for +/-5% I trim them to better than 1%. The +5V and +12V are adjustable but the -5V is a fixed regulator.
 
My first purely speculative thought is maybe there’s an issue with interrupts?
I checked the interrupt on the IE and traced it through. IE generates it correctly, its clock rate is at 40hz (once every 25ms, or 40 times per second).

Have you checked and adjusted the voltage regulators on both the EI and CPU?
Yes and Yes, both are at 5.0v and 12.0v

Attaching photos of the IE and Disk Drive in case that helps.
Note that on the disk drive, I've already tried multiple jumper settings, and that hasn't fixed this issue.
IMG_4803.jpeg IMG_4804.jpeg IMG_4802.jpeg
 
I checked the interrupt on the IE and traced it through. IE generates it correctly, its clock rate is at 40hz (once every 25ms, or 40 times per second).

So my thought isn't so much that the clock interrupt isn't firing, it's that there's a problem acknowledging them. Just doing a real quick scan of the EI schematics it doesn't look like the INTAK line is actually used; page 20 of the manual here describes how reads are performed on the FDC status register and interrupt latch to cancel the interrupt, I wonder if it's possible there's an issue with the interrupts not getting reset properly or... something. I think the default in-ROM interrupt routine disables interrupts and leaves them off the first time an interrupt is fired so a problem with clearing the latch would never show up. (?)

Just for laughs you could try the real-time clock program in the manual and see if it works or runs wild as soon as you turn the interrupts on.
 
Is your other Model I also the Japanese variant? I'm not sure why the generation program would succeed either the EI or drive was faulty in some way. All the disk operations are exercised by that. There is a memory fault that regular memory tests cannot isolate. This is due to the fact that normal memory tests use standard read/write memory I/O cycles. Instruction fetch cycles have somewhat tighter timing and your memory might be just out of spec. Mike Yetsko described a special memory test they had at Tandy after finding a machine that passed all the normal tests but could not execute Dancing Demon. You could try loading that from cassette to see if it works okay as a possible indicator.
 
This seems somewhat unlikely given most/all of DOS is going to load/reside in the RAM in the keyboard unit, yet the problem is the same on two different TRS-80s?
Yes, unlikely it's the CPU RAM. Probably a logic fault in the EI. Do you have another system of any kind that could be used to test the drive for full read/write accuracy?
 
you could try the real-time clock program in the manual and see if it works or runs wild as soon as you turn the interrupts on.
Noted, on my to do list 📝

Is your other Model I also the Japanese variant?
Yes, but I wouldn't think this has anything to do with the issue, as it just has a different character set. Shouldn't cause 4 different types of DOS's to fail to load.

Mike Yetsko described a special memory test they had at Tandy after finding a machine that passed all the normal tests but could not execute Dancing Demon. You could try loading that from cassette to see if it works okay as a possible indicator.
Loads no issue...
ezgif.com-optimize.gif

Do you have another system of any kind that could be used to test the drive for full read/write accuracy?
Don't have a spare IE or disk drive unfortunately. I'm in Japan so hard to come by the IE here. The TEAC drive on the other hand is the same as used by some Japanese systems, so if comes down to it I could potentially get one of those if need be.

I think it would be very useful to try and create a non-dos floppy disk (e.g. a simple game) to see if it would load fine. I just haven't figured out how to make a wav file from a disk image that I could load using Büssert's Bootstrap program. Does anyone know how I can convert a DSK/DMK file to wav for use with the bootstrap program?
 
Noted, on my to do list 📝


Yes, but I wouldn't think this has anything to do with the issue, as it just has a different character set. Shouldn't cause 4 different types of DOS's to fail to load.


Loads no issue...
View attachment 1268808


Don't have a spare IE or disk drive unfortunately. I'm in Japan so hard to come by the IE here. The TEAC drive on the other hand is the same as used by some Japanese systems, so if comes down to it I could potentially get one of those if need be.

I think it would be very useful to try and create a non-dos floppy disk (e.g. a simple game) to see if it would load fine. I just haven't figured out how to make a wav file from a disk image that I could load using Büssert's Bootstrap program. Does anyone know how I can convert a DSK/DMK file to wav for use with the bootstrap program?
Send him a message about that. I'm sure he'll be happy to provide some guidance or at least offer such an image. I wrote a cassette based disk formatter for just such occasions to test drives etc. but unfortunately it's for III/4 and won't work on a I. I should make a version for that in the future.
 
I don't think DOS uses interrupts on the Model I, but in fact disables them while reading and writing to disk. At least one variant of DOS (I can't remember which) would give a message after formatting a disk that the real-time clock was no longer accurate since interrupts were disabled for an extended time.
 
I skimmed back through the messages but didn't spot if this was stated, but is your drive terminated correctly? 1160A should be the first drive and should be terminated, but you never know if someone removed the resistor pack in the past for some reason.
 
I don't think DOS uses interrupts on the Model I, but in fact disables them while reading and writing to disk. At least one variant of DOS (I can't remember which) would give a message after formatting a disk that the real-time clock was no longer accurate since interrupts were disabled for an extended time.

This is why I think it’s telling that the machine seems to be IPL-ing fine but freezing up/crashing right when you’d expect they’d be enabling the real time clock interrupt. The OP says they could trigger the debugger in MultiDOS and NewDOS with the multi-key press, I think the check for the keys being held down might be in the interrupt service routine for those DOSes. (Which my theory is it’s running in an endless loop once the interrupt gets enabled.)
 
I don't think DOS uses interrupts on the Model I, but in fact disables them while reading and writing to disk. At least one variant of DOS (I can't remember which) would give a message after formatting a disk that the real-time clock was no longer accurate since interrupts were disabled for an extended time.
This seems to be happening. I noticed that on system boot, the interrupt doesn't start occurring every 25ms until the floppy disk is finished reading. Once the disk is finished loading and the system is stuck, the interrupt continues occurring every 25ms.

Send him a message about that. I'm sure he'll be happy to provide some guidance or at least offer such an image. I wrote a cassette based disk formatter for just such occasions to test drives etc. but unfortunately it's for III/4 and won't work on a I. I should make a version for that in the future.
Thanks for the suggestion, I messaged him. Jürgen replied, he'll update his site with instructions as soon as he gets some time.

Does anyone have any suggestions of games/apps I could load up from cassette tape that uses the clock on the Expansion Interface? If a loaded application locks up, then this would remove the Disk Drive from the picture and confirm the issue Is with the IE.
 
Does anyone have any suggestions of games/apps I could load up from cassette tape that uses the clock on the Expansion Interface?

There's a couple BASIC listings in the Expansion Interface manual that pokes a machine-language clock driver into memory and provides a BASIC interface to set it; I imagine there must be a cassette version of that floating around somewhere.
 
Why don't you first see if the Floppy Drive will STEP In & Out properly.
Here is a basic program that should do it, if the Drive and EI are powered up.
(I've seen problems where a Kaypro wouldn't boot, and it was caused by the
FDC not getting the /WR signal to the FDC.)

Code:
10 OUT 244,2:OUT 240,3
20 FOR T=1 TO 700:NEXT T
30 OUT 244,2:OUT 243,40:OUT 240,19
40 FOR T=1 TO 700:NEXT T:GO TO 10

Larry
 
Why don't you first see if the Floppy Drive will STEP In & Out properly.
Here is a basic program that should do it, if the Drive and EI are powered up.
(I've seen problems where a Kaypro wouldn't boot, and it was caused by the
FDC not getting the /WR signal to the FDC.)

The OP’s screenshots clearly show the system is booting before it hangs, from disks generated by a cassette-to-disk program.
 
A couple of minor updates.

I used a friend's greaseweazle to read back the contents of a floppy disk written using my IE w/ the bootstrap program and verified that the disk reads back and all the content was written correctly.

This narrows the issue down to the IE for the most part.

Jürgen provided steps to make a WAV file for his bootstrap program. I used it to write a game to a disk, but it also locks on launch just like any dos software.

To summarize, software loading from the disk locks up right away. Software loaded directly from the cassette works fine. I should test with additional software to fully confirm this.
 
Back
Top