Friday, March 11, 2016

Progress on virtual 1403 - testing spacing and skipping - plus work on 1627 plotter


Implementing physical plotter (1627 equivalent)

The fpga was inert - not reacting to the XIO for the plotter device. A few changed diagnostics were configured so that I could chase this down further. I see that I now trigger the 1627 main process in the fpga, but don't get a response from the slave fpga at completion of the action. I changed out the diagnostic LEDs again with this in mind.

I saw the slave fpga run through the states when I did an XIO Write to the plotter requesting to pick the pen up off the paper. It completed, notified the master and fired off an interrupt on IL3. The sense device returned the status of 0x8000 which is what should happen. I didn't see the plotter device doing its thing, which could be a function of the time during which I assert the command signal.

To test out this theory, I will lengthen the time delays for all 1627 operations to make them palpably long. At the same time, I exposed some signals on both slave and master fpgas that will help me watch how it is operating.

Implementing virtual 1403 printer

I could see that the write special data transaction hung, with the process that does the writing looping steadily. It also appeared by carriage tape buffer process was not working properly. My suspicion lies with the writing process - needs interlocking to avoid spinning forever.

It turned out to be a simple mistake. The write special data process for the 1442 reader/punch was my template, which I copied and renamed to handle the 1403. For simplicity, imagine all the names for the 1442 had started with A and I changed all the code to start with B for the 1403 . . . except for the critical test that breaks out of the loop when the counter reaches the 10th data word in the transaction.

I was still checking the A counter, not the B counter, thus it never was incremented and I looped forever. Quick change and I verified that I now complete the 7 transactions the write the 66 lines of the virtual carriage control tape into the buffer in the fpga. After I debug the 1627 plotter support, my next tests will resume looking at the virtual 1403, to see if I am properly handling line spacing, carriage control tape skipping and writing lines of output.

I tested XIO Control, which spaces (adds a blank line), finding a bug in the Python code. I fixed it up and tested again after my 1627 diagnostic changes were synthesized. Each XIO Control added another blank line to the output file. To do more, I need to add the interrupt handler code - when an XIO is issued, there will be one or more interrupts, which need an XIO Sense Device to reset the condition and then a BOSC to leave the interrupt level. Some hand code is needed - after the 1627 is done.

No comments:

Post a Comment