Don't know if it helps you much, but the video pattern on your first screenshot seems like it is from the Z-80 running out of control pushing $4081 on to the stack constantly (though with a $4084 at the top left just for variety). That is sort of what one might expect from a stuck /INT line, but I'd expect something in the $403D to $404C range to appear on the stack as those are the interrupt vector addresses in RAM.
While it doesn't rule anything out, it suggests that the Z-80 is OK and that video RAM (and character display, etc.) are fine. But almost anything can happen if bad code is given to the Z-80 so it could be some ROM or RAM problem, but who knows what.
OH, I forgot to post a new screen shot with the different Graphic Characters it's got now, with all the RAM removed.
It appears to be 0x40 & 0x13 (19 Decimal is the same Graphic Character in the Model 4 manual)
I'm getting the same signals passed through the 74LS244 Address Buffers (U56 & U55) and I'm getting the Enable on Pin 20 (/ROMA) of U68
which is ROM A. If I had an EPROM Burner, I could read the ROM's to see if they are still valid. Or I could put these ROM's in another
junker Model 4 I have, and see if it boots.
I guess I can try swapping the Data Bus Buffer 74LS245 (U71), although I have looked at this with my O'Scope and the signals look ok to me.
I don't think it can be 74LS245 (U73) which is for external I/O from the 50 Pin Bus. I'm not using that port.
I agree, looks like 0x4013 (though there is still that 0x84 in the top left). 0x4013 is consistent with the notion that RAM is not being seen. Unavailable RAM will return 0xFF. The ROM will putter along for a bit, but as soon as it tries to return from its first CALL it will go to 0xFFFF as it will see that as the return address on the stack. And at 0xFFFF it will find 0xFF which is "rst 0x38". At 0x38 the ROM says to jump to 0x4012. But there's a 0xFF there so we push 0x4013 as the return address and proceed to infinite loop with the side effect of filling memory with 0x4013.
Seems to point the finger to any part of the RAM subsystem that doesn't overlap with the ROM.
I put a different set of RAM back in the Low Bank Sockets. Now, on Power up I get the Original Screen Characters again.
Do you have any idea how I can troubleshoot in a way that will help point me to the exact area of the problem? I've got an In
Circuit Emulator Kit (ICE) coming that should allow me access to the system, and ROMS, and Memory etc. I hope that it
makes troubleshooting easy.
I finally found the problem with my Model 4, and fixed it. Now, I just have to re-install the High Bank of RAM, and finish putting it back together.
I decided to make a small adapter that would allow me to run the Z80 at full speed and feed it a 0x00 by strapping the DATA Lines to JUST the CPU
to GND. All other Pins of the CPU were to remain to their respective circuit on the Motherboard. When doing this the Program Counter (PC) gets a
continual 0x00 (NOP) which increments the PC and index's the Address Lines. So, the Address Lines Toggle Continuously. This didn't help me find
the problem, but I did stumble on it by accident while checking the Address Lines.
Since I had trouble with the RP2 SIP 4.7K Resistor, I saw the RP1 SIP, slightly left and a bit lower than the Z80 CPU. I was wondering if any of those
PULLUP resistors were not soldered good causing the same type of problem. So, I used my O'Scope to look at each pin. All the Signals were High.
So, I just by chance stuck my O'Scope probe back on RP2 and looked at ALL the Pins. When I got to Pin 5 I had a CRAZY looking Signal for /WAIT.
And that feeds Pin 12 of a 74LS08 that goes from Pin 11 to the CPU /WAIT CPU (Pin 24) Input. At that point I powered down, and removed the CPU.
Now, I had a CLEAN Signal on Wait.
I replaced the Z80 with a New Old Stock Z80B I had ordered years ago. It finally works again. Now I just have to re-assemble it.
Yes, the Z80 was the OEM CPU that was shipped inside the Model 4 when I purchased it. I bought a 16K Diskless Model 4 from Radio Shack back around 1983.
I added the Floppy Drives, and more Memory (128K) with the PAL IC. So, after 30+ years the CPU finally died.
TROUBLESHOOTING GUIDE FOR "NO BOOT" PROBLEMS -- TRS-80 MODEL 4
1. The very first thing to VERIFY is the Proper Voltages of the Power Supply(s).
The Radio Shack Model 4 shipped with one of two manufacturer's Power Supplies, Astec & Tandy.
Both have three Output Voltages:
+5.00 VDC -- Must be within 3%. Power Supply regulates from +5 VDC and +12.00 VDC, so these must be correct.
+12.00 VDC -- 5%
-12.00 VDC -- +25%, -8.3%
The Model 3 and Model 4 also have a -5.0 VDC Supply, either behind the Motherboard (Model 3) or located on
the Motherboard (Model 4 - Q5). This is generated from the -12 VDC Supply, with a 7905 Voltage Regulator, and is ONLY used
with 4116B RAM Chips (16 x 1). If your Motherboard has MCM6665BP15 or Tandy #8040665 RAM Chips and the (Exx)
Jumpers have been set correctly, the -5 VDC is not used.
2. Verify Jumpers for 16K or 64K RAM IC's -- These are located immediately above the RAM IC's.
16K (NO RAM IC's in Sockets U85-U92, 16 x 1 4116B RAM in Sockets U77-U84)
SHUNT at U72 has Pins 6-15, 7-14, 8-13 & 9-12 Jumpered in U72
64K (64 x 1 MCM6665BP15 RAM IC's in Sockets U77-U84)
SHUNT at U72 has Pins 6-15, 7-14, 8-13 & 9-12 Jumpered in U72
128K (64 x 1 MCM6665BP15 RAM IC's in Sockets U77-U84 & UU86-U92)
REMOVE SHUNT at U72 and insert Tandy #8075468 PAL CHIP
3. Power up the Model 4, with the Break Key Held Depressed.
You should see "cass??" on the Display. If you see nothing but repeating characters, it suggests that
the Z-80 is OK, and that video RAM (and character display, etc.) are fine. It just didn't boot properly.
While this doesn't rule out a defective: CPU, Buffer, Video Controller, RAM, Video RAM, or something
fiddling with an Address or Data Line, it is a good sign to have Garbage Characters or Repeating
Characters on the Display. The Computer is at least trying to boot.
4. Check CPU (Power, GND, CLK, & Control Signals that are INPUTS to CPU: /WAIT, /INT, /NMI, /RESET)
These Signals are Active LOW, and must NOT BE STUCK LOW, for Z80 to boot properly. RESET is the ONLY one
you can easily manually activate, by the RESET Pushbutton.
If you have any of the INPUT Control Signals (/WAIT, /INT, /NMI, /RESET) that are STUCK LOW all the time,
that problem has to be tracked down, and repaired. Don't forget that most of these Control Signals are
created by using PULLUP Resistors that are bussed, in a SIP Package. Pin 1 is COMMON to all other Pins
and from the Common Pin to any other Pin is 4.7K OHMS (RP2). +5.00 VDC is applied to Pin #1, and all other
Pins of the SIP are PULLED UP to +5.00 VDC. Logic Chips at different locations take a Pin on the SIP to
GND to produce the Active LOW Signals. A bad Solder Joint, a defective Resistor internal to the SIP, or
some Logic IC can create a condition where the Control Signal is ALWAYS LOW (or not being PULLED UP to
+5 VDC because of a bad connection.)
5. In addition to checking the CPU, it's a good idea to check the two SIP Resistors RP1 (820 OHM) & RP2 (4.7K)
in two different ways. Check each one with an O'Scope while the CPU is inserted in the CPU Socket, and
with the CPU Removed from the socket. That way you can get a good check on the Signals that control the
CPU. You may even want to remove an IC, then insert a IC Socket and insert a new Chip. That will allow
you to Toggle the Control Signal that will end up being the INPUT Control Signal for the CPU. U61 or U62
would be a good example of an IC that may need to be inserted into a IC Socket so the /INT or /WAIT Signals
could be VERIFIED. In the table below you can write in the actual OHM value for each Pin and circle the pulse
state as HIGH or LOW.
6. At this point you need to verify each Address Line to make sure none (A0-A15) are STUCK LOW or HIGH.
To do this I use an old Z80 CPU, and Bend the DATA Line Pins out so they won't go into the 40 Pin Socket.
I solder a Jumper wire from D0 THRU D7 and solder it to GND. Now, the CPU is strapped to always get a
0x00 (NOP) on it's DATA Bus. The CPU will increment the Program Counter, and Increment the Address Lines
to the next address. This way you can use your O'Scope to look at each Address Line, making sure they are
all toggling, and aren't STUCK HIGH or LOW. You can even check the BUFFER IC's, Checking the INPUT side
versus the OUTPUT Side of the Buffer. You can also remove IC like ROMS, Video Controller, Video RAM, and
Buffers, to help Isolate the Address Line problems, assuming those IC's are in sockets.
It might also be wise to keep in mind that you can also break out the Clock Signal (CLK) and create a clock
signal that you can manually toggle to single step through the Address Lines. A Pushbutton, fed with +5 VDC
can be connected to a 74HC14 and fed to the CLK Input of the CPU. If you do this the RESET signal must be
HELD LOW longer than about 6 Clock signals to reliably reset the CPU, or you will get odd results. So, just
HOLD the RESET Pushbutton DEPRESSED (Line LOW) and give the CPU 6 or 8 CLK Signal Inputs from your
CLK Pushbutton. The CPU should be correctly RESET.
You can now single step through all Address Lines, and check or chase signals across the motherboard looking
for problems. Shorted IC's or SHORTED conditions on the Motherboard can be located by building yourself a
milliohm adapter for your Multimeter, or by purchasing the LEAKSEAKER 89 from:
If you build yourself the milliohm adapter, it will work the same way as the LeakSeeker. OHMING from a point on an
Address Line to another pad will give you a changing (decreasing) milliohm value as you approach the SHORT.
There are several URL's of inexpensive SHORT BEEPERS, and SHORT DETECTORS to locate the SHORTED Device on a Circuit Trace.
7. Data Line problems will likely require an In Circuit Emulator (ICE) to be able to troubleshoot why the DATA
is incorrect. It can also be used to READ and VERIFY the ROMS, as well as step through startup code. I've got
one ordered, but it isn't here yet.
Nice work Larry! And good troubleshooting guide. Maybe I might be able to resurrect my rev B model 4 motherboard some day. But to many items on the plate right now. Working on an Apple Power Mac right now. The tower type!