Friday, June 10, 2022

Almost finished with successful testing of the 1130 keyboard device controller logic; tested more instructions by hand

TESTING SOLENOID SELECT LOGIC, READ, INTERRUPT, STATUS WORD

I continued testing the keyboard device controller circuits. I had validated that an XIO Control will select the keyboard and light the lamp. The remaining functions of the controller that needed testing:

  • Activate the solenoid to reset the keyboard when a Control is received
  • Activate the solenoid to reset the keyboard when the Rest KB key is pressed
  • Triggering an interrupt when a key is pressed
  • Triggering an interrupt with the Int key is pressed
  • Setting the proper bits in the Device Status Word for keypresses and Int key
  • Responding to a Read command and delivering the proper code
  • Responding to a Sense Device command and returning the proper status bits
  • Setting the proper bit in the Interrupt Level Status Word when we are interrupting
  • Responding to bit 15 in the Sense Device command that causes a reset
  • Verifying that the DSW shows the setting of the Keyboard/Console switch
A small portion of the keyboard device controller logic ties in the response signal from the typewriter (console printer) device controller, as both trigger an interrupt on level 4 and are identified by the same bit (bit 1) of the Interrupt Level Status Word. I did not test this yet as I am not ready to debug the typewriter driver at this time. 

The good news is that it all appears sound and results look correct. The few things remaining to test this afternoon are solely to be comprehensive.
  1. Store the ILSW for the interrupt and ensure that the TWR/KB bit (bit 1) is the only one on
  2. Block interrupts, trigger a response and verify that Sense Device with Reset bit 15 turns it off
  3. Press every key combination and verify that the hollerith code returned is correct
HAND TESTED VARIOUS INSTRUCTIONS, ALL WORKED PROPERLY

I entered code to exercise various instructions and watched to see that the results were correct. I didn't try every corner case but everything that I did attempt worked exactly as it should. This is an extremely good omen and an indication that I won't encounter a large number of failures in the detailed checkout.

The instructions I tested:
  • Load instruction, both short and long format
  • Add instruction, both short and long format
  • Subtract long format
  • Multiple long format
  • Divide long format
  • AND long format
  • OR long format
  • EOR long format (XOR)
  • Load Index short format
  • Store Index short, IAR and IX 1
  • Set Status to verify Carry and Overflow are set, reset
  • Branch long
  • Branch indirect
  • Branch and turn off interrupt level (BOSC)

No comments:

Post a Comment