Friday, July 29, 2016

Working on Xerox Alto restoration, preparing for VCF exhibition


Today I meet with my fellow restorers who are working on bringing a Xerox Alto II back to life. That took most of the, leaving me limited time for the 1130. We put the scope on various lines to verify the health of the machine and see where we might have problems.

First we tested the health of the system clocks and reset circuits. They were solid, so we then looked at the current task index, four bits that indicate which of the 16 tasks are executing. On an Alto, many duties that are implemented in hardware on other computers were instead done by software running in these microcode tasks.

For example, the RAM memory uses dynamic memory chips, like most RAM, which require all locations be refreshed within milliseconds or the stored value will leak away. This refresh is done in hardware on most computers, sometimes even in the memory device itself, but the Alto has a microcode task to read each location in bursts.

Setting up the bits for a line of the display is handled by two of the tasks. Ethernet has its own display. The cursor for the screen is managed by its own task. When no higher priority task is trying to run, the lowest priority task 0 runs, which executes the user code and operating system.

Our scope showed the task index changing as the display, memory refresh and disk sector tasks were taking slices of time. This was a good sign of the basic health of the machine, fetching and executing microcode, running the tasks and giving up control to let lower priority tasks run.

We then put the scope on the disk interface card, looking to see if we were attempting to read the disk for the bootup of the system. We didn't see any command strobe or other requests going out to the disk - the disk was not even being selected by the interface. The disk status was correctly reported to the processor and it believed it was okay to do disk IO.  We saw the sector pulses arriving as expected.

Likely the problem is that the disk IO request is not being set up and given to the disk interface and its microcode tasks. Task 0, the user/OS task, starts the bootstrap and builds a disk read request in RAM for the disk tasks to kick off. The disk tasks should match the desired sector (in the case of boot, sector 0), trigger a read and manage the execution of that comment. If it wasn't sure where the disk arm sat, it would issue a seek command to cylinder 0 first.

Since we saw no seek and no read, no disk selection, something is going wrong in the software in either task 0 or the disk tasks. We will have to wire up the logic analyzer and begin capturing detailed information about microcode execution. This will happen on our next work day.


I picked up a nice poster for my exhibition space, plus document protectors for all the normal letter sized documents I produced. The show will provide two eight foot long tables, which will mostly have display items like the ALDs or sample SLT cards.

I took off the upper parts of my 1130 - sheet metal I was fitting - since they were untreated a have a surface rust film. I intend to steel wool them, then spray a rust converting primer over them. After that, they will get the sand colored stone texture paint then will be finished off with pebble gray.

I disconnected my rotary mode switch plate from the cable and connected up the real switch that I received as a gift. I have to mount this real plate on the display pedestal and then figure out the tough problem, how to get the plexiglas panel back in place.

At this point, I am going to try to use some small, black, flat head screws through holes in the plexiglass and try to hold the nuts from the rear while I tighten the panel down. I will need to drill out the plexiglass a bit to fit the screws, which is quite dangerous with plastic since the heat of drilling often melts the plastic or causes other damage.



  1. One time when I had to mount some plastic panels I got from TAP Plastics (on Castro in MV) they also sold me a special plastic-boring bit which ... (runs out to garage, rummages through stuff) ... I still have! It is a "Plasdrill" described as "60° point,* high-speed drilling, won't crack or chip plastic" However this one is a 1/4" diameter. I see from the label they also have 1/8, 5/32 and 3/16 sizes. So stop by TAP and get one before you try drilling your plexiglass.

  2. Hi David

    I have those bit already - had bored a smaller 1/8" hole in the panel with it. Still have to be careful, especially with the layers of spray paint on the inside face that are easily damaged.

  3. Hi David

    I found one of the existing holes on my faceplate still had the 1/8" black plastic rod glued in it. Remembering your post, I hunted around for my Plasdrill bit and successfully used it to clean out the channel!