Tuesday, March 5, 2024

Verification of 1053 Console Printer controller electronics - part 1

FINISHING INSTALLATION OF TYPEWRITER ON THE 1130

With the RETURN pushbutton now working properly, the unit was ready for use again. I put the feed rollers, deflector, and platen onto the typewriter. Loading a bit of paper made the 1053 ready for use.

TESTING THE CONTROLLER LOGIC AND TYPEWRITER

It is time to start testing the typewriter controller electronics inside the IBM 1130. These detect the XIO commands for area code 1 (Write and Sense DSW), decode and drive the solenoids that cause the requested action to take place on the typewriter, monitor feedback circuits for times when the typewriter is mechanically busy, generate completion interrupts and report status via the DSW.

The 1053 is a pretty simple device as far as programming is concerned. Issuing an XIO Write picks up one word from memory which either specifies a character to print or drives some operation such as movement. An interrupt is provided when the print or movement operation is far enough along that the typewriter can accept a new movement or character request. The DSW will reflect status of the typewriter - 

  • bit 0 printer response    -    completion of operation
  • bit 2 interrupt request   -    on when either the 1053 or the keyboard has unfulfilled int request
  • bit 4 printer busy          -    on during print cycles or movements
  • bit 5 printer not ready  -     lack of paper detected or printer is busy
This area code (1) is shared with the keyboard of the 1130, since the keyboard is exclusively accessed by XIO Read and the typewriter is exclusively accessed by XIO Write. The DSW contains bits for both devices and the common interrupt handler deals with both. 

The word written to the typewriter uses only the left 8 bits, ignoring the remainder. Bits 0 to 5 are the character code, (T2, T1, R1, R2A, R2 and R5), bit 6 is on for upper case and off for lower case, while bit 7 is off for printed characters and on for control commands.

The control unit keeps track of which case the type ball is rotated to, thus when bit 6 is different it first commands a shift to the other case before printing the character in bits 0-5.  The control characters (bit 7 being 1) assign the bits to the various movement or control functions:
  • 0 - Carrier return/line feed
  • 1 - Tab
  • 2 - Space
  • 3 - Backspace
  • 4 - Shift to red
  • 5 - Shift to black
  • 6 - Line feed
TESTING THE CONSOLE PRINTER CONTROLLER ELECTRONICS USING THE 1053

Since the typewriter is now in perfect condition, I will skip using the emulator I had built and test with the actual output device. My first tests involve a few lines of code I enter into the machine to write individual characters (or motion commands). I wanted to see that the logic did detect the XIO for the printer and fire off activation solenoids. Too, I wanted to check that the feedback worked properly and it ended with the DSW reporting a successful completion.

SIMPLE TEST RESULTS - DOES IT SEEM FUNCTIONAL?

The controller does see the XIO requests for the 1053 and presents accurate status via the DSW. It fires the solenoids for space, tab, shifts case and types a few characters. Next up I walk through all the individual actions to verify that they are passed on to the typewriter. I saw successful invocation of:

  • Space
  • Backspace
  • Tab
  • Carrier Return
  • Line Feed (Index)
However, neither of the following seemed to do anything to the typewriter:
  • Shift to black part of ribbon
  • Shift to red part of ribbon
I figured that I could test that all the print solenoids are being fired based on the character bits from the program, by choosing to print a lower case digit 1. This has all the solenoids activating simultaneously, which puts the ball at tilt level 0 and rotates it to the -5 column. If any of the solenoids other than AUX did not fire, we would have an incorrect typed character. 

Then I can test the behavior of AUX and that all the solenoids remain idle by printing a . (period) which has only AUX on. If AUX didn't work then we won't see a print cycle. If any character other than . (or the cent sign which is the upper case counterpart) is printed, then one or more of the tilt and rotate solenoids fired incorrectly. 

Those both worked properly. One more quicky test, printing a left parenthesis, will trigger a shift to upper case prior to typing the character. I can follow it by a digit 1 again which would shift back to lower case before the typing. That did not work. The typewriter remained in lower case regardless of the desired case of the character. 

I did fire off characters in all eleven rotate columns and in all four tilt rows, all of which typed properly. The 1053 seems pretty clean and ready to go, I just have a bit of debugging to do to fix the three 'shift' defects. 

Various characters to check out the character selection

No comments:

Post a Comment