Wednesday, October 7, 2015

Debugging and modifying mirror device logic in SAC Interface Box, plus new (!) disk drive arrives


I realized that the updated fpga logic hadn't been loaded when I ran the tests yesterday, which meant that several of the virtual and mirror devices weren't implemented on the SAC Interface Box side. I did a download of the bitstream to the ztex board flash this morning and ran a quick test to watch my new diagnostic messages.

I fired up the system and found that the logic for the 1053 mirror device was receiving 010 as the last XIO function continually. That is bad for two reasons. First, the software should only issue XIO Write (001) and XIO Sense DSW (111). Second, it should have reset to 000 after the first time I fetched it. This begins once a real XIO is executed against the console printer, so we know that the mirror adapter logic in the fpga is seeing the XIO instructions.

I found a small bug in my VHDL for the fpga which caused the incorrect XIO code 2 to be issued. With that corrected, I got deeper into the code debugging, but was clearly fetching characters that were typed with XIO Write instructions, but I wasn't requesting the data with the right transaction type.

With that fixed, I found I wasn't able to keep up with the typing rate, thus skipping characters. This requires a change to the fpga side to buffer up what is typed, allowing the PC program to fetch it at its leisure. This is a problem unique to mirror devices - whose rate of execution is fully determined by the real peripheral and its adapter logic. Virtual devices withhold the operation complete until they are ready, thus moderating the speed of any program that is properly written to drive that device type.

The solution for the mirror devices is to use the distributed RAM of the fpga chip as a buffer, allowing the mirror device code on the PC to retrieve characters at its own pace. I will establish a single buffer for use by any of the mirror devices, on the condition that only one is active at any time. This restriction will be enforced in the Python program.


My ebay purchase of a Perkin-Elmers VT2222 disk drive, similar to the Pertec drive I am refurbishing, met my expectations. It is a brand new drive, never used, still on its wood shipping pallet. The heads are pristine as is the rest of the drive. I have schematics from a similar, but not identical model, which should still allow me to bring this up and make use of it.

Super clean unused heads

As shipped from the factory

Back view
Protective paper still covering translucent plastic front panel
Condition is new in box

Shipping documents

No comments:

Post a Comment