ILPilbox Manual

General

ILPilbox Main program

ILPilbox is a software using Jean-François Garnier's PIL-Box hardware to build a bridge between a real HP-IL (Hewlett Packard Interface Loop) to a virtual one on a PC. The result is one interface loop containing real and simulated devices. Currently five more programs exist that may link into the virtual HP-IL: ILPer since v1.4, ILVideo, ILVideo80, ILDoslink and ILScope. You are invited to add more programs and publish simulations of your favourite peripherals.

To work with the PIL-Box, the FTDI drivers for the PIL-Box USB interface must already be installed. The installation process of the FTDI driver is described in the "ILPer Installation Notes", available here or in the ILPer installation package.

The 'HP-IL to PIL-Box Bridge' can operate either as a controller or as a listener. If the controller is on the real side of HP-IL (like a HP-41C, a HP-71B, both with the HP-IL module, or a HP-75), the PIL-Box works in COFF (Control OFF) or, if the IDY Frames checkbox is selected and the PIL-Box firmware is v1.6 or newer, in COFI (Control OFf with IDY) mode to access devices on the virtual side of HP-IL. Only in COFI mode the IDY frames are sent to the virtual side of HP-IL. But if the controller is on the virtual side, the PIL-Box works in CON (Control ON) mode to access devices on the real side. After a 15 second timeout without traffic in CON mode, the PIL-Box hardware is switched back to COFF or COFI mode accepting a controller on the real HP-IL side.

Manual Setup

After starting ILPilbox displays a window with three parts: 'HP-IL Link', 'PIL-Box Link', and three buttons. These do almost what you expect:

But first you have to do some setup.

HP-IL Link Setup

HP-IL Link is the part to enter the settings for the virtual HP-IL over a PC network. ILPilbox has an integrated TCP/IP server for receiving HP-IL frames from the preceding device and a TCP/IP client to transmit the IL frames received from the PIL-Box to the next device. In either case the device may be a peripheral device (see Ilper v1.4 or newer) or an IL sniffer (see ILScope) which is not detected by the controller.

Choosing TCP/IP (IPv4/IPv6) as transport protocol gives the advantage of communicating with virtual HP-IL devices around the world if the host PC has access to the internet. Each virtual HP-IL device contains a TCP/IP server listening for data frames on the specified port number and a TCP/IP client sending data frames to a port of the next virtual device. A HP-IL data frame is normally 11 bits long, but as TCP/IP is a byte oriented protocol it is mapped to 16 bits (2 bytes). The remaining upper five bits are filled with zero (reserved for future use). The two bytes of a frame are transferred in network byte order.

Therefore you have three virtual HP-IL mode parameters:

So each device is listening for HP-IL frames on it's in-port, processes the frames inside the device simulation, and send output frames to it's out-port.

The Port numbers are split into three groups:

For virtual IL you should use port numbers from the third group (49152-65535). Port numbers below 49152 are also accepted.

Open TCP/IP ports are nowadays a security problem when your PC is connected to the Internet. To protect your computer from unauthorised requests all modern operating systems contain a (personal) firewall which blocks attacks. By default all ILPilbox TCP/IP traffic is being blocked too. Depending on your firewall you are asked at first usage of ILPilbox in TCP/IP mode to permit the communication or you must beforehand enable manually the ILPilbox program in your firewall. For security reasons you should restrict the rights of ILPilbox to the local PC or not more than to the local LAN.

PIL-Box Link setup

The PIL-Box Link is the part to enter the settings for the PIL-Box. Select the COM port of the PIL-Box hardware please.

The PIL-Box normally handle IDY frames internally and so they aren't available on the Virtual HP-IL side. Since PIL-Box firmware version 1.6 these frames can be enabled with the "IDY Frames" checkbox now. Because of difficulties in some situations and heavy data transfer load it's recommended to let this mode disabled. You should use this mode only in connection with special devices which are using the IDY frames for service request.

After you finished the setup press the "Start" button to allow data transmission.

Command line parameters

ILPilbox can save the setup data in two ways. The standard way is saving the data in the Windows registry. But then every instance of the program starts with the same settings. To avoid this I added the possibility to use a dedicated ini-file.

The command line arguments "setup-file" and "/start" are optional and their order is irrelevant.

Batch load example

A batch file containing

  start ILPilbox.exe /start ILPilbox.vil
  start Ilper.exe    /start ILPer1.vil
  start Ilper.exe    /start ILPer2.vil

is starting one ILPilbox instance reading the setup data from the file ILPilbox.vil and two instances of ILPer, one using the setup data from file ILPer1.vil, the other from file ILPer2.vil. At all three programs the "Start" button will be activated after start-up.

For the setup-files I suggest the file extension *.vil (for Virtual Interface Loop) but any other file extension will do. Creating the *.vil setup files from the example above is quite easy. Run the batch program to start all program instances, arrange the program windows on the screen and setup each program instance with the correct data. Finally close all program instances. At the next call of the batch file, all program instances are restored at the previous screen position and use the last setup data.

(c) Christoph Gießelink, May 2024