Tuesday, March 12, 2024

Console Loader working properly and ready to load diagnostics

CHANGED FIRMWARE TO DRIVE THE NEW WIRING TO THE CONSOLE

Since the photoisolaters are wired differently, the Arduino code had to change to create the effect of pushing the buttons on console. It no longer had to control the +12V to the physical Prog Start pushbutton, thus activation is now strictly a logical condition such that commands to load data or the IAR are ignored except when the loader is activated.

The way we push the Load IAR button and set the console entry switches to a particular 16 bit data value has not changed from the prior version of the loader. How we virtually push the Prog Start button has changed as has the wires connected to various terminals of the physical pushbutton. 

Other than when we are virtually depressing the Prog Start key, the optoisolator switch (NC Router) that routes the physical switch NC terminal to the wire going into the CPU is active. Thus, the +12V from the physical switch is connected through the optoisolator switch to the CPU which sees the Prog Start button as sitting in its unpushed state. 

Another optoisolator switch (NO) on the loader delivers +12V to the physical Prog Start switch NO terminal and onward into the CPU. This is normally off, so that the CPU does not see a \voltage from the NO terminal; the button appears to be sitting in its unpushed state. 

To virtually depress the Prog Start pushbutton while the physical one remains undepressed, we first turn off the NC Router switch and then turn on the NO switch. The two switches are held in this state for about a second, to reflect the time a human might hold the button down. After that delay, first we turn off the NO switch and then turn on the NC Router switch. 

TESTING TO BE SURE THE BOUNCING IS GONE

I fired up the machine with the new console loader version in it and activated the loader via a USB attached serial terminal. When I entered a command to set the IAR to a specific value, I saw the IAR sitting at that exact address. When I entered a command to store a particular data value into storage, the value was visible in the SBR register and the IAR had advanced by exactly one from its prior value. I tried a number of these commands and each time the machine performed properly.

LOADED ALMOST 3K OF CORE TO VERIFY OPERATION

The terminal programs that I have on my laptop don't have the logic to wait for a prompt character before uploading each line of a text file, so I had to fudge it with a long delay per line of 1.5 seconds. 

This mostly worked, except when the file contained a command to zero out a block of contiguous memory locations since each word takes almost a second to load. The terminal program just fired off additional lines while the loader was in the midst of processing the block of zeroes, resulting in lost lines. 

I then converted the file to replace all Zxxxx lines with xxxx lines of 0000 and then was able to load memory without lost lines. I am now ready to load and run various diagnostics to do final checkout of the system. 

No comments:

Post a Comment