Tuesday, June 9, 2020

Testing out Andrew Kay's 3270 interface and control unit software - first unsuccessful try

TEST SETUP

I have my 3178 terminal set up on a table in the back yard, along with the interface hardware and a laptop. The terminal consists of a Monitor Element (CRT), Keyboard Element (doh) and the Logic Element that has the control logic and coax connector for a 93 ohm cable.

Normally the coax cable would be connected to an IBM control unit of some kind, such as a 3174-51C. The control unit connects to multiple terminals on one side and to a mainframe system on the other. Some connect via SNA or BSC communications links, others hook onto the channel of a mainframe. 

The interface I built from Alex's design is an Arduino Mega 2560 with a custom shield attached to implement the electrical and protocol details of the connection. It has a coax connector, which I hook to the cable coming from my terminal. The Arduino is linked by USB cable to a laptop which communicates to the interface using serial communications.

On the laptop, I am running Python code provided by Alex which finishes the protocol layers and provides useful tools to experiment with my terminal. Ultimately, the python code would communicate with a mainframe via some kind of link. As written it uses TCP/IP. 

I will test in three stages. The first is to use the Python based tools to check out the terminal and experiment with its functionality. The second stage will connect to an instance of Hercules running MVS 3.8J on my laptop, allowing the physical terminal to work with the running MVS code. The third state will connect to an instance of VM running on a P390, a PC Server box with a card that provides a 390 processor onboard. 

GETTING PYTHON WORKING ON MY WINDOWS 10 LAPTOP

I installed Python on my Windows 10 laptop but immediately when I tried to do more than see it give a prompt, I discovered something was awry. The distribution comes with the package installer program PIP so I issued 'pip help' but python couldn't find it. 

I had to do some digging to find the cause of the problem. Windows 10 is absolutely refusing to let me turn off the 'read only' attribute in the Python folder and its children. So far, I have let the Windows dumbed down installer and then the official Python.org installer put it in the two places they suggested, neither of which can be set to be updated. 

Finally after I placed it outside of the usual Users hierarchy (e.g. not in Program Files (x86) or AppData), I could make changes and start in on the testing. I found and installed the prerequisites until the code was ready.

FIRST ATTEMPT

I powered up the USB module, turned on the terminal and ran the first test program. It would attach tot he terminal then write a simple message on the screen. It sat for a few seconds and then terminated showing an Invalid request message error to the attempt to poll the terminal. Basically that means that the first byte coming back is not x'01'. 

If the terminal were ignoring the requests, the poll would time out and I should see a string of period characters until it completes power on. Each poll is sent out and either gets a response or times out in one second, causing the period to be printed. 

At this point, I have to begin debugging the interface board I built, as it appears I have some defect either in components or my assembly work. 

1 comment:

  1. I had similar issues with Python on Windows 10 - the default install location seemed not to work so well. I ended up installing at C:\Python38 and everything worked a treat.

    ReplyDelete