Pyilper version 2 supports multiple interfaces simultaneously, allowing different real and emulated HP-IL controllers or devices to be combined into a single virtual loop via the various interface types.
Each interface has its own tab, that provides the configuration data for the interface. There can be multiple interfaces at any location of the pyILPER loop, but take into account the performance aspects explained in the last chapter.
Interfaces have four states that are indicated by a status light in the status bar: "inactive" (black), "disconnected" (red), "waiting for connection" (yellow), and "connected" (green). The loop goes only into the "Loop running..." state if all interfaces are connected.
After the loop has started, each active interface goes into the "waiting for connection" state. It goes to a "connected" state if either a read and write network connection (TCP/IP, socket interface) was established or a PIL-Box serial device was found and initialized successfully.
An interface can be of type PIL-Box, TCP/IP, or socket. The interface type is selected with the corresponding checkbox.
The most important configuration parameters for the PIL-Box interface are the device name and the mode of operation.
To enter or change the name of the serial device, press the change button. Another window opens where you can select or enter the name of the serial device the PIL-Box is connected to. The drop down list shows some recommendations for the device name but you are free to enter an arbitrary device name here.
The baud rate must match the hardware configuration of the PIL-Box. See the PIL-Box documentation for details. If the baud rate is set to "Auto" pyILPER tries to determine the baud rate automatically. As a general rule, you can leave the setting on “Auto”. The PIL-Box tty speed of 9600 baud and its special protocol used at this baud rate are not supported anymore.
The "Enable IDY frames" option enables the PIL-Box to transmit the IDY frames to pyILPER. This causes an increase of traffic on the serial USB device. This option is enabled by default and required to operate the virtual keyboard of the terminal emulator with the HP-71B or the thermal printer HP-82162A with the HP-41C. It is recommended that you leave the setting set to “enabled.”
The "HP-IL controller connected to PIL-Box" option is essential to put the PIL-Box into the correct mode of operations. If the option is not set correctly, you will get HP-IL errors on the HP-IL controller. Thus, check this option if an HP-71, HP-75, or HP-41 is present in the HP-IL loop connected to the PIL-Box.
Note: If no tty device is specified, the start of the pyILPER loop will fail.
Recently, several microprocessor-based devices have been developed that implement the PIL-Box protocol and offer additional features such as HP-IL mass storage or displays. These can also be used with the PIL-Box interface.
When using multiple devices of this type, care must be taken to specify the correct serial port. In the serial port selection window, additional information about the connected device—such as the device ID—is displayed, provided the operating system supports it.
The Pil-Box interface operates in auto-reconnect mode. After the loop has been started and is in the “Waiting for connections...” state, the operating system is continuously queried to determine whether the serial device specified in the PIL-Box interface specification exists. Meanwhile, the indicator light of the interface is yellow. As soon as the serial device is recognized by the operating system, pyILPER connects to the PIL-Box. After the PIL-Box has been successfully initialized, the status light of the interface turns green and the status of the loop turns to "Loop running...".
This means the following:
See the Troubleshooting section for the PIL-Box Interface.
To use this interface, you must be familiar with the concepts of the virtual HP-IL over TCP/IP.
The configuration parameters for this interface are:
pyILPER supports all virtual HP-IL over TCP/IP devices and controllers published by Christoph Gießelink.
You may connect his HP-71B emulator or his HP-41 emulator with pyILPER.
To connect EMU71 or V41 to pyILPER, you can leave the TCP/IP interface settings of pyILPER at their default values..
Now configure the TCP/IP configuration parameters (Out TCP/IP Address, Out Port, and In Port) of EMU71 or V41 properly. Follow the description in the program documentation.
A valid configuration might look like this:
| Parameter | pyILPER | EMU71/V41 |
|---|---|---|
| In Port | 60001 | 60000 |
| Out TCP/IP Address | localhost | localhost |
| Out Port | 60000 | 60001 |
EMU71 includes remote keyboard support. See the Terminal Tab documentation on how to set it up.
The TCP/IP interface operates in autoreconnect mode. After the loop has been started, the server part of the interface is initialized, and the interface waits for the arrival of a client frame. Meanwhile, the status light of the interface is yellow. Only when the preceding device in the virtual loop sends a frame the TCP/IP connection is fully established, the status light turns green, and the loop status turns to "Loop running...".
The recommended procedure to connect EMU71 to pyILPER is the following:
RESTORE IO. The interface status light turns to green and the loop status turns to "Loop running..."The recommended procedure to disconnect EMU71 from pyILPER is the following:
See the Troubleshooting section for the HP-IL over TCP/IP Interface.
This interface allows for the connection of J-F Garnier's DOS calculator emulators to pyILPER. The emulators must run in an appropriate virtual machine that allows the redirection of the serial port communication to a TCP/IP socket server. The server port must match the serial port redirection configuration of the virtual machine.
Note: You must first start pyILPER (server) and then the virtual machine (client).
The HP-41, HP-71, and HP-75 emulators of J. F. Garnier can be attached to pyILPER if they are executed on DOSBox.
You need the DOSBox version 0.74-2 or later. Other versions will not work.
Install the DOSBox software and apply the following change to the serial section of the DOSBox configuration file:
serial1=nullmodem server:localhost port:59999 transparent:1 txdelay:0
See the DOSBox documentation on how to locate the configuration file. The port number must match the In/Out Port configuration of the pyILPER socket interface.
Install your favorite EMUxx emulator(s) on DOSBox.
Modify the INI file of the emulator. Remove all devices you do not need to be emulated by the EMUxx program. Insert the device:
XIL COM1
Start the pyILPER loop. The status light of the interface turns yellow, and the loop status is "Waiting for connection(s)...". Start the DOSBox. If everything is configured properly the status light of the interface turns to green and the loop status turns to "Loop running...". Now start the EMUxx program on DOSBox.
Note:
If your pyILPER configuration contains several interfaces, there are a few things to keep in mind. It is recommended that you activate the pyILPER virtual loop in the following order:
The loop throughput of the pyILPER virtual loop of version 2 is the same as that of version 1 with an identical interface/devices configuration.
Each additional interface significantly slows down the virtual loop. Every frame sent by an interface takes a certain amount of time (travel time) to be fully received. This travel time adds up for each interface. For example, if the throughput of a PIL-Box device is 2,000 frames/s, the travel time for each frame is 0.5 ms. If you have 4 interfaces of this type, the travel time sums up to 2 ms. This will reduce the maximum speed of the pyILPER virtual loop to approximately 500 frames/s, assuming all other overhead is negligible.
This is different with the (real) HP-IL loop. Here, the HP-IL chip built into each device in the loop can determine, after receiving just 3 bits of a frame, whether it can begin forwarding the frame to the next device. This reduces the time lag introduced by devices in the loop considerably.