IBM 3270 terminal controller - a replacement for the IBM 3174.
This project aims to create an open replacement for the IBM 3174 Establishment Controller, specifically for users looking to connect an IBM 3270 type terminal to the Hercules emulator.
For background on this project, IBM 3270 type terminals and controllers, see Building an IBM 3270 terminal controller.
It is a work in progress and is far from providing all the features you might expect from a later model 3174, but it does provide basic TN3270 and VT100 emulation.
- TN3270
- Extended Data Stream
- Basic TN3270E
- Device name (LU) negotiation
- SSL/TLS
- VT100
- Connection menu
- MLT (Multiple Logical Terminals)
- Up to 8 terminals connected via IBM 3299 multiplexer1
1 - requires interface2 with recent firmware
Only CUT (Control Unit Terminal) type terminals are supported. I have tested oec with the following terminals:
- IBM 3278-2
- IBM 3472
- IBM 3483-V (InfoWindow II)
- Memorex 2078
You may have to modify the key mapping to support your specific terminal configuration.
You will need to build or buy a compatible interface.
You will need Python 3.8, or above, installed.
I'd recommend using a Python virtual environment to isolate oec from your system-wide packages:
python3.8 -m venv VIRTUALENV
source VIRTUALENV/bin/activate
Install dependencies using pip
:
pip install -r requirements.txt
Assuming your interface is connected to /dev/ttyACM0
and you want to connect to a TN3270 host named mainframe
:
python -m oec /dev/ttyACM0 tn3270 mainframe
If you want to use the VT100 emulator and run /bin/sh
as the host process:
python -m oec /dev/ttyACM0 vt100 /bin/sh -l
VT100 emulation is not supported on Windows. It may work with Python on Cygwin, but I've not tested it.
If you are looking for a similar project for IBM 5250 (Twinax) type terminals, see inmbolmie's 5250_usb_converter project.