We met today to work on a number of tasks for the Alto. Among them were debugging my disk write process, debugging the ethernet gateway, and archiving many of the cartridges we borrowed from PARC.
Extensive logic analyzer traces were captured of a good boot with an existing cartridge and of a failed boot on the cartridge I wrote. Unlike past traces, this time the analyzer was also recording time between events and that made a difference visible.
The time between one record and the next within a sector including a quiet period of about 145 uS on cartridges that were written by an Alto, but only 75 uS on the ones I wrote. This appeared to place the sync word and early data words too early, while the Alto was still waiting for a fixed time to elapse, and thus the second and third records in a sector did not start on the sync word. They were misaligned and suffered checksum errors.
More study is needed to verify this, then the flaw must be found and corrected in my disk tool logic. Hopefully it will be an obvious issue that definitively matches the error symptoms and whose correction is unambiguous.
Ken's ethernet gateway is receiving packets but was not able to respond to PUP echo packets from the Alto. This was in part due to a changed protocol in the docs he has versus what is being sent by the Alto. In addition, however, we extended the ethernet board and hooked up scope probes to see exactly what is happening when packets arrive from the gateway.
We found that the first few words of a packet are received but the firmware or software stops listening by resetting the receiver. This is what happens, for instance, if the address of the incoming packet does not match the station address of this Alto, but can be caused by other packet header issues.
We cleaned the nine cartridges on loan from PARC. Two of them had visible damage on the platter when opened up - one shows signs of a minor head crash in the past and the other has a radial scratch deep enough to expose aluminum substrate. They were marked and will not be mounted.
Six cartridges were read and archived, containing source code, Mesa and Smalltalk disks, for example. When the last cartridge was being read, almost at the last cylinder, the power supply we were using hiccuped. We could hear the door latch solenoid cycle several times.
I dived for the Load/Run switch to get the cartridge out of the drive. We opened it up and found burn marks where the heads had rubbed during the time the power cycled on and off repeatedly. Pulling the covers showed burned oxide and binder on the heads too. A head crash!
The contents of the cartridge were archived other than a few sectors at the very end of the pack and it boots just fine in the Alto simulator (Contralto). We added that cartridge to the other two which were scraped or scratched already, so that we don't stick them into a drive again.
Marc and I cleaned the disk heads with lint free cloth and isopropyl alcohol until they appeared to be free of any oxide. Before we turn it on, however, we first must substitute a reliable power supply for the +15 and -15V that feeds the drive.
Then, we will load the cleaned heads on cylinder zero of the pack that had the crash, since the early cylinders are damage free, just to verify that the heads don't damage packs and work properly. As the cartridge is already ruined, but contents archived, any possible damage to cylinder zero is acceptable in order to test our heads.