Friday, September 9, 2016

Found and fixed a bad chip in Xerox Alto II, writing sectors working in disk tool


Today we dug through our logic analyzer traces to look for clues, while also changing our connection method to pick up the microcode address field. Previously, we had the ROM board on an extender so it was hanging outside the card cage. We put a clip around one of the ROM chips and picked off the ten bits of microcode address.

The new method used a specially made cable, replacing a short bridge cable that linked the ROM card with a control card in the next slot. Our special cable provided a set of pins onto which we could attach logic analyzer probes. This let us keep the card in its normal position and use the extender card for other purposes.

We noticed that the disk sector task is only called once, never again. There should be a wakeup every 3.333 microseconds as a new sector mark is delivered from the disk drive. No wakeup signals, so we put the disk controller card on the extender and began to debug with oscilloscope and analyzer.

We didn't see the sector mark pulses in the logic on the board, but it was passed through the board to a backplane pin. Tracing further, we saw the pulse entering the logic at the input to an schmitt trigger inverter, but no sign of it on the output pin.

We pulled the chip and tested it on the bench. It was a hex inverter chip and the one gate for the sector pulse was dead as a doornail. I looked through the schematics and noticed that one gate was unused. We didn't have a spare 7414 chip on hand, but could snip off the leads to the bad gate, bend up and solder to the leads for the spare gate and connect it into the circuit.

With that frankenchip in place, the sector mark pulses were passed into the logic, the disk sector task awoke every sector, and we were able to trace the boot logic reading the first sector from disk. The disk command block in memory was fetched and checked, then the disk word task woke up four times but nothing occurred past that point.

There are many possibilities at this point. We could have invalid contents on the disk. The read signals may be corrupted. We may have other hardware issues to address, but this will depend on a very detailed study of what is occurring.

We had run out of time at this point and had to make copies of all the logic analyzer data and go off to study it on our own, before we meet again for the next session.


My write sector FSM is now working perfectly on the simulator. Next up is creation of the two update FSMs, to update just the data record or both the label and data records of a sector, after reading the existing header or header + label records

Then there needs to be logic to cycle through all 12 sectors, reading or writing them in sequence. This will make disk copies faster to perform.

Beyond that, I need to couple these read/write/update sector machines to the USB transaction registers so that everything can be controlled by a PC remotely. That will set me up to test with a real disk drive, once we have a blank or sacrificial cartridge to use for the testing.

I can also use the mechanism with a good cartridge to read all the data from it and evaluate or save it on a PC, as long as I ensure that the write mechanism is tied off and can't be activated.

No comments:

Post a Comment