Sunday, July 19, 2020

Implementing part of TEST mode for 3174 controller replacement - because I was bored

TEST MODE WITH THE 3270 TERMINAL FAMILY

IBM built in a test capability to the terminal system, activated by hitting the TEST key. The terminal switches into TEST mode, indicating that in the Operator Information Area (bottom line). Once in the test mode, the screen is cleared and commands can be entered to run various tests or status displays. These tests run in the control unit (e.g. 3174) and for the most part were used by the CE/FE doing maintenance or repair.

FOUND DOCUMENTATION OF 3174 TEST SCREENS

I found a fairly lengthy description of the tests with images of the screens that would be displayed. It is about 85% complete, sufficient to build a realistic emulation for my environment. Obviously with the oec 3174 replacement fielding only a single terminal of a specific type (3178 with Data Entry Keypunch keyboard in my case), it could only report on one terminal's state. Further, internal control blocks, status information, logs and traces don't make sense in this environment.

One could type a string of the form /test,subtest,option,option that selected the test by number and passed in parameters it might need. For example, the test might ask for a hardware group number and a port number to request the specific port whose data will be displayed. 

SCOPE OF IMPLEMENTATION

The 3174 offered 15 test categories, numbered 0 to 12 plus A and D. There is a menu of test choices available as well. For some tests there are several sub-menus, that is multiple types of test under the one category. 

The tests that I substantially implemented were:
  • 0 - Terminal Check
  • 2 - Display Configuration Panels
  • 3 - 3279 Device Status Information
  • 5 - Display Vital Data
The tests that I didn't implement were:
  • 1 - Display event logs and response time log
  • 4 - Reset logs and cable errors
  • 6 - Display Control Block Areas
  • 7 - Color convergence
  • 8 - Extended function and programmed symbols test
  • 9 - Token-ring tests
  • 10 - Port wrap tests
  • 11 - Trace control
  • 12 - Asynchronous Emulation Adapter tests
  • A - enter installation customized alert information
  • D - dump distributed function terminal data to disk
I built a file to implement all the displays that would be written as tests were activated, then looked for how to hook into the existing oec code to drive the test mode. My idea was to have a state that is toggled to show whether the terminal is in TEST mode or normal mode, switched by pressing the TEST key on the terminal.

When the action oriented keys ENTER, CLEAR, PA2, PF3 or PF12 were issued, they would normally be presented onward to the host computer to which our terminal was connected. In test mode, however, they would cause the selection field input to be parsed and based upon that the test screens would be activated.

ENTER is the normal action, causing interpretation of the typed string /test,subtest,optionA,optionB. . . to extract a test choice and to set up the optional parameters. Then, based on what screen was active at the time, the appropriate test screen is displayed. PF3, PF12 and CLEAR will navigate among screens. PA2, CLEAR or PF12 will bring up the main test menu screen; alternatively the user can just type in the /test,option commands in a cleared screen initially. 

GIFTED A GENUINE 3174 CONTROLLER

I was offered a free 3174 controller, which I accepted since, as a friend suggested, at worst case it would make a historically accurate case for the Arduino and shield used with oec to act as a 3174 substitute. I might be able to get this operational, allowing me to double check the faithfulness of oec and other emulation of the 3174. Plus, its a fun project for down the road. 

No comments:

Post a Comment