Screwed up characters from a TRS-80 Model 1 (Level 1 BASIC)

Introduction

Just when you think you've put a task behind you, you find out there is a little more to do. Pictured below is my recently acquired TRS-80 Model 1 (Level 1). This was as dead as a doornail when I first got it, and it needed some tender loving care to nurse it back to health.

Mac SE/30

Figure 1. My recently fixed (or so I thought so) early TRS-80 Model 1 (Level 1)

I thought I'd fixed it. However once I started to play with the computer in earnest, some odd symptoms appeared.

The problem

I had the machine plugged into my favourite green-screen monitor. Just for fun I decided to get the computer to fill the screen with the same character. I selected "A". However, instead of a screen full of "A"s I got the below. The screen was full of mostly "@"s!? Moreover, the break message when I terminated the loop said "BRDAJ" rather than "BREAK"? I tried the routine several times. Sometimes a few "A"s would print first before changing to "@"s. Every time though, the end result was a mixture of the two characters.

Soldering station

Figure 2. A screenful of what should be the "A" character only...but is clearly not!?

That wasn't all. Listing the program also showed weirdness. Shown below is the same listing done twice. Sometimes the characters are correct...sometimes not.

Mac SE/30 boot failure

Figure 3. Scrambled letters in a listing

After more experimenting and observation I discovered that only characters with an odd-numbered ASCII code were displayed incorrectly. Furthermore, it was always the character with the previous even ASCII number. In other words ASCII number -1. Hence A (ASCII=65) went to @ (ASCII=64) and C (ASCII 67) went to B (ASCII=66). However, B was always B and @ was always @.

More investigation showed graphic characters were also affected. Below is the screen shot of a SET routine that was suppose to completely blank the screen. Note all the holes. It looks like a punch card!

Fortunately, although the screen characters and graphics were sometimes screwed up, the input and the internal workings of the computer were fine.

 

Mac SE/30 leaky caps

Figure 4. Note the dots. Every pixel should have been switched on.

The Diagnosis

Conclusion: Some kind of intermittent fault affecting the display. I suspected something amiss in the video RAM circuitry either a VRAM chip or supporting logic IC. But which one?

At this stage I asked for help from the Yahoo TRS-80 mailing list. And help was forthcoming from a number of people. Mark McDougall and Leslie Ayling nailed the problem down to either a logic chip at Z28 (sticking on Bit 0) or the VRAM chip at Z48 (which handles Bit 0). But which one?

A POKE routine suggested by Leslie would have pointed to the culprit but Level 1 BASIC has no POKE command. However, another list member, George Phillips, offered a similar test using the graphics commands available in Level 1.

10 FORY=0TO47
20 FORX=0TO127
30 SET(X,Y)
40 IF POINT(X,Y) <> 1 THEN PRINT "FAIL":END
50 NEXTX
60 NEXTY

The POINT command checks the byte in VRAM. If it wasn't what was originally put there by the SET command, it means the video RAM is at fault. If the test passes (and hence the value is correct in VRAM) it must be the 74LS174 logic chip changing the character to display.

I ran the test. FAIL! All evidence then pointed to the video RAM chip at Z48.

The Fix

The repair was easy. Luckily I had spare 2102 VRAM from a parts System 80 board lying around. In no time at all I'd replaced the faulty chip with a socketed replacement (Figure 5).

Caps on a Mac SE/30 board

Figure 5. Soldered-in VRAM replaced with a socket and replacement chip

The Result

The problem in now solved. Running George's program now totally lights the screen. Other tests show all characters are now what they should be.

Mac Se/30 capacitors replaced

Figure 6. The TRS-80 Model 1 (Level 1) now behaving just as it should.

Final words

So at last I can say my Model 1 (Level 1) is 100% working. In the end there were three faults with this machine. A faulty NAND gate and faulty regulator IC in the power circuit, and also this faulty VRAM. It doesn't look it, but maybe this computer had a hard time in a previous life?

Anyway, this experienced has:

Tez
3rd May, 2015

comments powered by Disqus