Saturday, May 6, 2017

Working on Digibarn Alto, disk tool and ethernet bridge


I may have found some differences that could account for the failure to boot/read the disk cartridge that was written by my disk tool. Changes made, but I also set up some diagnostic output that I can use to closely examine the output of my tool while writing if it doesn't work first time.

The changes were not sufficient to allow a cartridge I wrote to be booted. See below for more on this.


We have a loaner ethernet gateway built by the Living Computer Museum which will allow us to access a file server in that box, share with other Altos including our unit, and do network bootups. In addition to loaning us the gateway, Al Kossow loaned us the cables and transceivers to connect to the unit.

I brought my disk tool changes to see if I can write a pack that will boot on the Alto, or at least collect more definitive forensics if it doesn't work right away. Ken brought his ethernet gateway as well. Bruce Damer brought along his Alto system in order to see whether it is working or what might be wrong. Of course, we had to visit his Digibarn collection in order to help him load it up.

Bruce's Alto had been visited by mice while in the barn, so the first order of business was to wash off all the boards and remove droppings from inside. We discovered that a few key parts are missing from the unit, including the memory addressing board, the jumper cable for control ram, and the video display cable.

We couldn't test his display as the cable connection is different from the unit on our Alto. He had brought a disk drive along but we found a label inside it - "smoked" - which may indicate serious problems. No obvious signs of damage, but he will bring other drives next week.

We pulled the four power supplies out of the machine and brought them to the bench for testing. One large supply provides +5V with both high current (60A) and low current outputs, two units provide 15V up to 12A of current and one provides 12V with up to 15A of current.

One of the 15V units came up perfectly, tested right up to its 12A load limit and with acceptably low noise showing on the scope. Another 15V unit had a missing fuse, which we replaced but it promptly blew the new one. The 12V unit refused to delivery any output power. The 5V supply also delivered no output at either the high or low current connections.

We opened the 5V supply and found a blown 12A fuse inside. We didn't have a spare 12A fuse but decided to remove the filter capacitors and check them, as they are the most likely component to have failed. Three of the four capacitors failed miserably and the fourth was way off spec, meaning they must be replaced.

Once we install new capacitors and a new fuse next week, the last check before power is applied should be the rectifier diodes, to be sure they didn't fail due to the capacitor problems.

Moving on to the LCM ethernet bridge, we installed it. It consists of two ethernet transceivers, one cabled to the Alto and the other cabled to the special board in a small PC that houses the bridge. A section of ethernet, terminated at either end, is hooked between the two transceivers.

We powered up and started the software as outlined in the instructions, but were unable to ping the unit nor able to netboot from it. We didn't have time to determine where the problem lay, partly because we weren't fully familiar with the unit. Next week we will look to this.

My diagnostic outputs on the disk tool allowed me to watch the signals I was producing when writing to a disk cartridge with a image of a games disk that works fine on the Contralto emulator. They matched exactly what I expected to produce. Once again, the Alto wouldn't boot from it.

I then took three good cartridges, ones that were written on various Altos and that booted fine, watching what I could read from sector 0. I discovered two big discrepancies from what we expected to see, indicating that the spec to which I am working is not correct.

First, the initial sync word for the header record of the sector should, per the spec, occur 28 word times after the sector started. That would be around 280 us or so. On the three cartridges I tested, this happened at 415 us or slightly later, a big discrepancy.

Second, the time from sync word to sync word is longer than I expect by two extra words of zeroes. From header record to label record, I should see two header words, the header checksum, five postamble words and three preamble words for a total of 11 word times. Instead the delay is 13 word times. The label record to data record gap should be 17 words long but was 19, also having two extra words of zeroes.

The logic analyzer traces I have when the Alto read a cartridge successfully don't show the extra time,neither the source of the 130 us or so of initial delay nor the occurrence of two extra words of zeros between records.

As a practical matter, I will modify the tool to push the first sync word back to the 415 us region and to stick two extra words of zeroes between records.  Next week we can see if this produces a properly bootable cartridge.

Even so, I want to understand how the real world disks can be so far off what the microcode seems to produce. Maybe I can find clues in the logic analyzer trace or the disk controller hardware.

No comments:

Post a Comment