• Please review our updated Terms and Rules here

TRS-80 diagnostic/ICE card

David_M

Veteran Member
Joined
Oct 1, 2016
Messages
647
Location
Melbourne, Australia
I have a very sick model 1 that is proving to be a pain to repair due to cut tracks and other issues due to old bad mods (not mine).

I'm toying with building a card that will plug onto the expansion connector (possibly cpu socket) to allow an external processor to manipulate the board for diagnostic purposes.
Effectively an in circuit emulator that can diagnose ROM, RAM, video or bus issues. I know how to build the hardware and writing the code shouldn't be a problem but I've not laid out a pcb before.

I'm split between using a z80 with ROM, RAM a handful of ttl chips and a 16x2 LCD display or an 8951 with a few ttl chips using a serial link as the interface.

What I'd like to know is there any interest in owning such a beast and is anyone interested in collaborating on designing and producing the hardware?
 
I have a very sick model 1 that is proving to be a pain to repair due to cut tracks and other issues due to old bad mods (not mine).

I'm toying with building a card that will plug onto the expansion connector (possibly cpu socket) to allow an external processor to manipulate the board for diagnostic purposes.
Effectively an in circuit emulator that can diagnose ROM, RAM, video or bus issues. I know how to build the hardware and writing the code shouldn't be a problem but I've not laid out a pcb before.

I'm split between using a z80 with ROM, RAM a handful of ttl chips and a 16x2 LCD display or an 8951 with a few ttl chips using a serial link as the interface.

What I'd like to know is there any interest in owning such a beast and is anyone interested in collaborating on designing and producing the hardware?

I'd be interested in one for sure. In fact, the EI is half the equation so if you can also test that consider it.
 
I'd be interested in one for sure. In fact, the EI is half the equation so if you can also test that consider it.

I don't have an EI, but assuming they use the same expansion pinout as the keyboard unit then there is no reason both cant be tested.
 
I'm split between using a z80 with ROM, RAM a handful of ttl chips and a 16x2 LCD display or an 8951 with a few ttl chips using a serial link as the interface.

What I'd like to know is there any interest in owning such a beast and is anyone interested in collaborating on designing and producing the hardware?

Id lean towards the second option as (if I understand right) it's going to be more flexible - the main logic sits at the other end of the serial cable?

Definitely interested.

PJH
 
I suspect this would be a strong seller if it can diagnose a significant number of issues. You should put up a poll.
 
Id lean towards the second option as (if I understand right) it's going to be more flexible - the main logic sits at the other end of the serial cable?
PJH

For simplicity I like the 8951 option, however taking that path loses the automatic refresh cycles built into the Z80.
DRAM testing becomes a problem without the refresh cycles and adding them with extra hardware would require a fair amount of effort.

The biggest problem is I'm moving house in 2 months and need to begin sorting/packing 25 years of accumulation. It will mean packing all my hardware and test gear so the hardware side of it will be delayed. Developing the firmware for it I can do up until the 11th hour. Anyone interested in putting together the hardware side of it? I can pretty much describe in detail the circuit for a z80 based version, so it would mostly be a task if implementing the finer details such as pcb layout and actual pin interconnects.

I was sent a link to this project, it suffers from the DRAM issue and it exercises the bus fairly statically so its unlikely to find any speed related issues. On the plus column it is quick, easy and cheap to make.
http://fjkraan.home.xs4all.nl/digaud/arduino/Z80exer/
 
The biggest problem is I'm moving house in 2 months and need to begin sorting/packing 25 years of accumulation.

AAAAARRRRRRGGGGGGHHHHHHH!!!!!!!!!!

You have my deepest sympathies.

I was sent a link to this project, it suffers from the DRAM issue and it exercises the bus fairly statically so its unlikely to find any speed related issues. On the plus column it is quick, easy and cheap to make.
http://fjkraan.home.xs4all.nl/digaud/arduino/Z80exer/

I do like the fact it "exorcises" the computers. I know several of mine are haunted.

Maybe I'm missing something here but can't you program up the refresh cycles? Even a little 16MHz processor should have the spare cycles to reliably trigger them.
.
How did the ICEs of the '80 handle this? A quick google for information on period ICEs doesn't turn up anything useful.

PJH
 
AAAAARRRRRRGGGGGGHHHHHHH!!!!!!!!!!

You have my deepest sympathies.



I do like the fact it "exorcises" the computers. I know several of mine are haunted.

Maybe I'm missing something here but can't you program up the refresh cycles? Even a little 16MHz processor should have the spare cycles to reliably trigger them.
.
How did the ICEs of the '80 handle this? A quick google for information on period ICEs doesn't turn up anything useful.

PJH

Some of the simpler ones used a z80, others were quite complex and used a lot of hardware to do the refresh.

The Z80 does a refresh cycle between each instruction, 16Mhz might seem fast but that only gives 8 single clock instructions for an interrupt routine not nearly enough to setup the output pins.
It might be possible to do a slower refresh but I suspect it will require significant rewriting of the code and have no guarantee of success.
 
This might prove useful to some of you. I wrote this ROM originally to aid in repairing a TRS80 clone, but it works just as well in a TRS80.
Just burn the ROM image into a 2732 eprom and put in socket z33. It does not require working RAM, although faulty video RAM does make the results less readable :)

View attachment 45534

Rom image
https://drive.google.com/open?id=1M6R5jz_tf40azEV6En-88_ZlzZyyDvCh

David,

I promise to give your ROM a real workout and, if you come up with something that will test the keyboard and E/I, put me down for one.
 
David,

I promise to give your ROM a real workout and, if you come up with something that will test the keyboard and E/I, put me down for one.

Did it work for you?

I'm still struggling to get my model 1 working. I built a arduino mega based z80 ICE that a member here kindly sent a link to and with that I was able to find a problem on the A0 address line. I'm still unable to write to video RAM using either the ROM or the ICE. I can read video RAM correctly using the ICE. I built a small pcb that plugs onto the expansion bus that manipulates the address and memory select lines with dip switches, using that I can write to video RAM. With the ICE I can access the ROM correctly. So that would indicate the glue logic for the MW signal... but I've looked at that with a logic analyzer and it appears to be fine. My next step is to try the ICE on my working TRS80 clone and make sure that it isnt the problem. I recently replaced the video ram with new chips from china, one of the chips had an unstable output, so perhaps the problem is the video RAM's timing on the write cycle. I currently have no functioning DRAM in the board, it had a 48k mod i didnt trust, I removed the mod and havent fixed that yet.
 
Sorry, life got in the way of playing with the ROM diag and Model I.

I have your ROM burned and another by someone that's building on your work and I hope to have the chance to get both of them into some Model Is this week.

No rest for the professionally wicked, it seems :)

Good luck on the ICE which I look forward to greatly.
 
Sorry, life got in the way of playing with the ROM diag and Model I.

I have your ROM burned and another by someone that's building on your work and I hope to have the chance to get both of them into some Model Is this week.

No rest for the professionally wicked, it seems :)

Good luck on the ICE which I look forward to greatly.

While you are testing be sure to try it with one or more of the RAM chips removed.
 
Even better, I have a box of known bad 16 and 64K RAM chips....

Just plug 8 in and it will mark the bad bits on the screen. The test is just a simple write of 00 and FF to a single location. So it won't find flakey or only partially faulty RAMs. But any RAM stuck high or low can be quickly weeded out.
 
OK, I only had about an hour to play with this, so far, but, here are the initial results (I'm talking about both revisions (David's and Larry's) to save repeating myself;

D Board
Pre-use condition: All @ signs and loss of horizontal lock
Special features: Radio Shack Lower case Mod
Both 16K versions worked as they were stated to and both displayed lower case characters. Both found the bad bits and/or missing RAM. Larry's did a continuous memory scan from 5200 up.

G Board
Pre-use condition: Works correctly
Both ROMs failed to display various characters correctly (probably different character generator chips) but, other than that, the results (except for displaying LC) were the same.

I will continue playing with the ROMs and reporting in this thread.
 
Last edited:
Druid6900,
What is the number of the Character Generator on the Model 1 with the D Revision Motherboard?

If it is the 8046670, then a 0x20 should be SPACE and a 0x40 is @.

If it is the 8046673, then a 0x20 should be SPACE and either a 0x00 or a 0x40 will give @.

I'll email you the bitmaps tomorrow morning during free time.

Larry
 
Both ROMs failed to display various characters correctly (probably different character generator chips) but, other than that, the results (except for displaying LC) were the same.

Can you post a photo of the screen display? My rev G board is still dead and writing to screen memory is still a problem using the atmega ICE.

After playing with the ATMega based ICE, I have been toying with the idea of a super simple solution to building a diagnostic board. The reason the arduino ICE uses the mega 2560 is for the extra IO pins. The code should fit happily in a Nano, so my thoughts are leaning towards building a base board with a 40 pin header for the ribbon cable to the expansion port, a socket for a nano and use another socket for a cheap 16 bit i2c expander module. Easy to build for a novice and cheap as chips. Adapting the code from the existing ICE to the different control signals expected on the expansion bus should not be too difficult. Certainly much cheaper than the z80 based option, which I expect to have a final chip count of about 16 chips.
 
Richard,
If you remove ALL ROMS, and then Power up the Model 1, you should see a screen full of @9@9@9@9@9@9@9@9@9

That would give you a clue about the Data Lines being correct.

You can also take a known good Z80 and strap D0 thru D7 to the GND Pin on the Z80. Then Bend the D0 thru D7 Pins
so they do not go into the Z80 socket. Now Power ON the Model 1. It will step through all the Address Lines as the Z80
executes the NOP's. An O'scope will allow you to make sure the Address Lines go from rail to rail. None should be stuck
LOW or HIGH or at .7 VDC. (I've seen some IC's with a Stuck Input Gate at .7 VDC.)

With the Address and Data Lines verified you will have around 80% of the Model 1 verified.

Larry
 
Just a thought, perhaps it is the lower case characters not correctly displaying on the machine with no lower case mod. When I originally wrote the ROM is was for a Komtek (clone) that has lower case as standard.
As a generic model 1 diag ROM, maybe we should make it all upper case.
 
Back
Top