I knew this would happen

I have been worried that I would have to re-manufacture a module because I just couldn’t fix it. The time has come! I found this PZ module in chassis 10, while chasing memory problems. This one causes all 6 bits that go through it to fail my tests. I have traced it down to what appears to be an open base on Q26, which I have circled in the picture. OK, what’s the problem? Q26, as you can see is in the middle of the card. When I have had to replace middle transistors in the past, the front bracket has been held on with 6 little 2-56 screws. You don’t see any screws on this module other than the ones that hold it in place, do you?

This module coming from chassis 10, means it is newer, since Purdue upgraded from 64K to 128K several years after they got the machine. Instead of screws, this module is riveted together, and the rivets are soldered, as are most of the modules in Bay 3 which holds chassis’ 9-12.


Bruce Sherry

Update: I managed to get it far enough apart to change the offending transistor, and failed to break it completely, so now it works, without the 3 weeks of my time to re-manufacture it, not to mention the 3-4 weeks for the manufacturing process to actually produce the replacement.


Decaffeinating the TRS-80 video Display.

On my to-do list has been the task of eliminating jittery text on our TRS-80 model 1 video monitor displayed in the second floor vintage collection of personal computers. The display show a,


prompt as it waits for user input. Our problem is that the prompt rapidly vibrates back and forth making the prompt nearly illegible besides being simply annoying.  the monitor acts like it has been drinking massive amounts of coffee and is on a serious caffeine buzz.

The screen vibrates because interference produced by a TV used as a monitor in an Atari 400 exhibit placed directly behind the TRS-80 video monitor is turned on. Turning off this Atari 400 exhibit monitor makes the TRS-80 display jitter vanish. The Atari and TRS-80 exhibits are back to back from each other in separate rows of our personal computer display.  They are separated by enough distance that signal interference should not be a problem.

Other arrangements of the many computer/monitor combinations in our personal computer exhibit were placed behind the TRS-80 video display and these other monitors produced the same interference as the Atari 400 TV does. That other monitors from other systems produced the same jittery result shows that the problem lies with the TRS-80 monitor and not the other monitors. This monitor is apparently too sensitive to low frequency magnetic interference produced by other monitors if they are placed a couple of feet away.

We had discovered that a bare aluminum plate (made for a rack mount enclosure cover) about a tenth of an inch thick, totally stopped the jittery text when placed several inches behind the TRS-80 model 1 video monitor. The plate needed to be in between the TRS-80 display and the interfering monitor and placed in exactly the right place to be effective.

The aluminum plate solution suggested that lining the inside of the TRS-80 video monitor cover with copper foil and tape should also eliminate the jitter problem.  I attempted to do this both with and without a ground lead to the added copper foil shielding. Both my attempts were a miserable failure. The foil tape has conductive adhesive between layers but apparently the resistance between sections was still too high to allow sufficient eddy currents to form which would stop the magnetic field from penetrating into the video monitor electronics. That is my supposition and the story I was telling myself but before attempting to improve the shielding I decided to find out more about the TRS-80 display.

It turns out that the TRS -80 model is actually a modified RCA TV made in 1977. I found a picture of the particular model.

Comparing  this with a TRS-80 Model I video monitor the connection is obvious.

The tuner from the original TV set was removed in the conversion. A circuit board that buffers the video signal from the TRS-80 was put in its place. There is a connector for the tuner on the main TV circuit board and the replacement board simply plugs into this location.

Having seen the insides of enough old TVs, tuner sections were always wrapped in sheet metal to prevent interference. However, this precaution (and necessity) was not observed when replacing the tuner with the TRS – 80 video display custom circuit board. It appears no consideration was given to making this circuit board noise immune. The typical things I know which should be done to make a noise immune circuit board were not done.

I could modify the circuit board so the problem pretty much goes away but I need schematics to do that. Currently we do not have any. I would adjust impedances so the relatively weak interference signal is effectively shunted to ground. I would essentially be finishing an unfinished job from 1977.  An alternative would be to mount the aluminum plate solution permanently and document why it is there for visitors.

Upon sharing my findings with the museum staff, it was decided I should work with Aaron Alcorn and implement the aluminum plate solution. I met with Aaron at our second floor exhibit. I explained that the problem was dependent on height and that lifting the TRS-80 display off its base would make the problem go away. The TRS-80 display had been sitting on a plastic base to elevate it a few inches above the TRS-80 keyboard for easy viewing. Aaron immediately lifted the display and removed the elevating platform. This had not been tried before. The problem immediately went away.  Aaron solved the problem in ten seconds.

It turns out the elevating platform was not all plastic. On its top was a thin layer of steel sheet metal. This sheet metal had been coupling interference into the video display. I think my supposition that the TV to TRS-80 computer monitor conversion had not been fully worked out is still correct but it is also true that placing a TRS-80 monitor in close proximity to another monitor on a steel table was not a typically anticipated operating environment for a TRS-80 computer monitor. The TRS-80 had been intended to be used as a home computer all by itself.

In a karmic twist to this story the TRS-80 model 1 was discontinued because it could never be made to pass FCC RF emission standards. About 250,000 Model 1 systems were produced before it had to be discontinued, five times the original sales target.

The TRS – 80 was an antisocial computer not designed to be used around other computers. It was electrically noisy itself yet also hypocritically overly sensitive to electronic noise from other computer monitors. It was however a very early personal computer and exposed many people to computing for the first time. That is its particular historical significance. I remember it originally used large 8 inch floppy disks in its original floppy drive. As smaller 5 ¼ inch floppies had been introduced in 1976 I found that strange, but I suspect at the time it was the cheaper way to go.

It has been said that the TRS-80 computer did everything ‘OK’ but nothing really really great. It appears that the particular video monitor design issue we discovered supports this view.  But while it may have been flawed, the TRS-80 was also affordable and brought the joy of computing to many for the first time.

Little Card Reader

Here at the LCM+L Skunkworks, some of the folks have been working on a Little Punched Card reader, so Visitors can see what they punched in their punched cards. Jeff and Hunter have been working on the electronics, while I have been building mechanical parts for them. Here is a picture of where it is today:

You can see it is made from clear plastic, so you can see EVERYTHING. This being a prototype, it has a few warts: like those extra holes in the sides. I had never actually used the boring head with my milling machine, so I had to figure out how to use it. Boring heads are used to make round holes, usually larger than you can get with drills. Yesterday, I made some new side plates, sans extra holes.

I started by drilling the holes for the 6-32 screws that hold the thing together:

Once I had the holes in, I had to put in the bearing holes, this is where the boring head comes in. I have drills up to 0.500″, and a 0.750″ one, but the bearings are 16mm in diameter, or about 0.630″. I start to drilling the bearing holes to half inch:

Then I have to bore out the holes to 0.630″ with the boring head:

The gray part moves to adjust the size of the hole, here is a picture of the business end, where I can adjust the size of the hole it makes by 0.001″:

After I added the holes to hold the motor mount, and a bunch of filing edges, here are the two sides, sitting on Jeff’s desk:

I mentioned that I was doing this on my milling machine. If you don’t know about milling machines, they are basically like a very rigid drill press, with a movable table to hold the part you are working on. I can move the table around very precisely to get the holes Exactly where I want them. You can also work on the sides of the parts with special cutters, which is how I got the plates to the basic shape. Here is a link to what my milling machine started out life as: http://www.grizzly.com/products/Mill-Drill/G0463. It was smallest machine that I felt could be called a real milling machine.

CDC 6500 Memory, Again.

Going out for 20 more Storage Module replacement boards today. All 5 of the first run work with one timing change, and different values for 12 resistors.

Over the last week or so, I have fixed all the bad PS and PZ modules that I had previously identified. The machine has been running with all those replacement modules, as the first 5 PP’s for more than a week now.

It’ll take a week to fab the boards, and a week or two to do the surface mount assembly, then David Cameron and I will install the connector pins, and pulse transformers. Then I will be off to fix the other half of the memory to bring the machine up to his full 128K words.

CDC Printing

We now have the printer emulation capable of printing direct to our Dataproducts BP1500! We won’t have that turned on normally, but with a command to our emulator PC, we can have a job print to the printer, or otherwise, it will print to a file.

I keep the print files around for about a week, so if you want something you printed, I can email it to you, just let me know your user number (name) and about when you printed it, and Your printout can be on it’s way to you.

If you REALLY want hardcopy, we can do that now too!

Bruce Sherry

CDC 6500 Memory: First Production in!

The first 5 final candidate Memory module boards came in from FAB and Assembly yesterday morning, and they look pretty good! I reclaimed and installed more pulse transformers, bolted it onto the Lexan chassis I finished over the weekend, and plugged it in.

Hmm, I must have done something seriously wrong, because it seems to work! The top one, playing the part of PP0, is the new one, and the lower one, playing the part of PP1, is the prototype. The prototype has to be on extenders, because the connector spacing isn’t quite right. I seem to have gotten that corrected in the new version. You may be able to notice that the old one has the old logo in the lower left, whereas the new one has the new logo.

So, what did I do differently you may ask? Besides fixing the connector spacing, I added a whole bunch of test points, had them install the correct 0805 LED’s, as opposed to the 1206’s I put on the prototype, and reduced the LED current by a factor of 3 so I don’t get sunburned quite so easily.

I suspect there will be more assembly in my future.

Bruce Sherry


If the Apple 1 computer came with INTEGER BASIC, then how am I doing BIORHYTHM?

9010 S = ((A MOD 360)+360) MOD 360: REM GET ANGLE 0-359
9020 IF S < 180 THEN 9060
9030 IF S < 270 THEN 9050
9040 C = C5(S-270+1): S =-C5(360-S+1): RETURN: REM 270-359
9050 C =-C5(270-S+1): S =-C5(S-180+1): RETURN: REM 180-269
9060 IF S < 90 THEN 9080
9070 C =-C5(S-90+1): S = C5(180-S+1): RETURN: REM  90-179
9080 C = C5(90-S+1): S = C5(S+1): RETURN: REM   0-089
9810 DIM C5(91)
9820 S=0: C=8192
9830 FOR A = 0 TO 45
9840 C5(A+1) = S: C5(90-A+1) = C
9850 S=S+((C/3)*10)/191
9860 C=C-((S/3)*10)/191
9870 NEXT A

First I set up an array to hold SIN for 0 to 90 degrees.  (You don’t need more if you know COS is SIN of the angle plus 90, and other quadrants are symmetrical).

But, creating an array of 91 values would pretty much take up all of available programming space, so I generated it using the differential equations — relating SIN and COS.  I also made the values go from 0 to 8192, as going from 0 to 1 is not useful.


Apple 1 BASIC

INTEGER BASIC for the Apple 1 computer is not well documented.

Here are some things I found:

A FOR loop will always execute at least once.  This is unlike most BASIC machines, which will not execute the innards of FOR I = 1 TO 0.

Although the exponentiation symbol is recognized (^), don’t use it — that is a lock-up condition.

IF statements will execute a command.  However, multiple commands on the same line are not contained within the IF result.  That is, IF X > Y THEN A = 0: GOTO 1230 will always go to 1230.