Monday, July 11, 2016

Solid progress debugging virtual 2310 disk drives, plus other work


I had to spend some time finalizing the layout and requirements of my exhibition at Vintage Computer Festival - West next month, because the show planners need to complete their layouts tomorrow. Diagrams drawn, needs documented, which means I can get back to the 1130.

My space requirements. gray area is another exhibit to left
The other open issue is that I need a 220V 20A outlet - the kind used with electric clothes dryers, nothing fancy like 3phase or high power. The festival is trying to coordinate that with the CHM so that the 1130 exhibit can take place. Hoping to hear good things soon.


Hot day - have to run AC in the garage before I run the 1130, otherwise it is just too stressful on the machine. Did a quick test, now waiting for the garage to cool down before the next rounds.

Arcane Xilinx toolchain problems -- again

I have a problem where the Vivado toolchain isn't correctly linking to the memory and FIFO black box IP - indecipherable errors along cryptic and useless forum answers. This impacts the 1442 and 1053 devices directly, both of which are giving me trouble. Arrggghh.

Restructuring the GUI

-- virtual 1442 reader/punch --

With the toolchain problem (see above), I put this on the back burner since it uses two block memory components to hold the card images in the preread and punch areas, but those aren't working now.

-- virtual 2310 disk drive --

I switched my debugging efforts to the 2310 drive function since it does not involve the black box IP whose use the toolchain is blocking. When I fire up the DCIP program to dump sector 0 of a mounted virtual cartridge, I see activity on the LEDs and get an error message from my Python code saying it got an error reaching word 642 (the beginning of sector 1). I should be reading sector 0, according to my input to the DCIP utility program.

I tossed in some diagnostic writes to see what my code is trying to do. If I can get past this problem, I can move on to checking out the interrupts, status words and then doing some seeks. While waiting for the garage to cool, I added some logic to display the last cylinder and last sector from a read or write command.

I am getting IO errors trying to read from my file - likely this is purely a GUI code issue. When I looked into this and was instrumenting some output to illuminate the cause of the problem, I realized my error. I was trying to seek and read from the filename string, not from the open file object. Quick code changes and I was ready to get back to testing.

More runs and more code defects uncovered, all made during the major rewrite and refactoring that produced the new GUI. Fortunately, the core functionality in the FPGA still appears to work properly.

I try to use the DCIP utility to dump a sector as a test of the virtual disk drive, but it famously loops waiting for the 1132 printer to be made ready. I don't remember how to coax it into using the console printer, so I will have to hook up the 1132 and make it ready just to continue the testing.

My alternative is to use the 3210B functional test diagnostic, but I am not sure how to force it to use my drive. It runs but keeps reporting drive not ready, probably because it is looking to the internal 1131 drive. I tried to set the bitswitch orders to make the diagnostic switch to 2310 drive four, which is my virtual drive, but it doesn't seem to be obeying.

The upshot is that I need some more certain way to test the drive out, but the two methods I have in hand are both balky in ways that could obscure whether the virtual drive is working. Will cogitate this during my dinner with the Motorola 6800 hobbyist group tonight.

-- mirror console entry switches --

The problem is that I am not properly saving the data as it is read, which appears to be an FPGA side flaw. The FPGA logic is correctly spotting the XIO Read of the switches, but the data fetched back by the GUI is not what was read.

No comments:

Post a Comment