Saturday, July 9, 2016

New SAC Interface GUI ready for V1442, V2310, V1403 and bit switch testing


I am due to set up the 1130 and exhibit it at Vintage Computer Fair-West at the CHM in four weeks. This sets a deadline I must keep in mind. I have to get a sufficient subset of the SAC Interface working properly, then ensure my 1132, 1442 and other mechanical items are in decent shape.

I need to decide what my demonstrations will be, get the needed units working, then create the signage and supporting exhibits to go along with the machines themselves. I also have the decision to make about the replica 1130 I built - If I can get that running to some degree, it will be a nice secondary exhibit.


Restructuring the GUI

-- GUI overall--

The GUI itself is working well as are all its features, such as extensive logging support, About box and activation/deactivation of the various devices. I am debugging the various virtual, mirror and real devices at this point. My work is prioritized below, based on how useful the function is, and to a lesser degree how complex I estimate the debugging to be.

--Virtual 2310--

I spotted the likely cause of my virtual disk drive issues. My logic to update the DSW when I insert a cartridge, marking the drive ready, isn't working right. It is purely a problem in the restructured Python code.

My change to make this work cleaned up the entire code for the device and should work even better now. Each time through the virtual device task loop, I look to see if the DSW has changed. If it has, I push it down to the FPGA. This works for operation end as well as ready and not ready events.

I tested it in the morning, with LEDs to show me the DSW state and capture when an XIO to the disk is attempted. I did fix the original error, failure to make the drive ready when I loaded a virtual cartridge, but it is still showing a busy state in the DSW when it shouldn't and when I tried a seek command, it didn't move.  I will need to do more debugging with additional LEDs and messages.

-- Virtual 1442--

The most important function at this point is the virtual 1442 card reader, since it matches the DMS image on my disks and matches the decks I own. I hadn't finished converting this over from the old GUI to the new version, so that became my priority this morning  Once converted, it was time to test.

First, I had to find the locations and reinsert my jumper that blocks the IBM built adapter logic from operating, so that I can do I/O to the 1442 without triggering the real machine I own. I then wired up gate A, compartment C1, card F3, pins D06 and D08 to a 360 era toggle switch, which I mounted inside the top cover near the other CE switches.

This will switch the machine between mirror and virtual modes, meaning it turns the built in 1442 adapter hardware on and off logically. What it does is subvert the signal that tells the adapter its area code (2) is in an XIO instruction. If it never sees an XIO it never attempts to drive the real card reader/punch.

I did the first set of debugging purely on the PC, until I had all the functions except USB transactions apparently working properly. This took several hours of careful testing and investigation. Finally, I had all the functions triggering at the proper time, the files opening and correct card counts showing.

This is now ready for testing with the USB link active, to ensure the FPGA is happy with the actions of this code. I will work on it tomorrow morning.

--Virtual 1403--

This should be a relatively straightforward debugging task, once I am through with the higher priority peripherals. It works in ways similar to the 1442, meaning I should recognize any common defects quickly. After some careful study and PC only testing, this is also ready to test tomorrow.

-- Mirror Console Entry Switches--

This is so trivial a function that it will get tested before the two devices, 1132 and 1053, that have complex FIFO buffering in the FPGA. Ready for testing on the 1130.

--Mirror 1053--

This is the more important of the mirrored devices because the selectric based console printer is still so balky. I can capture clean copies of what should have been typed on the paper.

-- Mirror 1132--

This is a convenience feature, when I want to capture a file copy of what is printing on the real 1132. I won't need it that often.

-- Mirror 1442--

The mirror mode for the 1442 shares most of the virtual 1442 code, but will be useful when I am using the physical reader and real cards. I pushed it down here at the end of the testing regimen as I really don't need to capture card images from the real 1442. I have a Documation reader that serves that purpose.


Ken Shirriff studied the microcode of the Alto and the hardware schematics to resolve the specifications and design details that are needed to build a emulator and disk driver device. After reading what he produced, I had only one outstanding question before I began coding up the design. 

No comments:

Post a Comment