HP Page of

Christoph Giesselink


Virtual HP-IL

HP-IL in progress

HP-IL (Hewlett Packard Interface Loop) is a system that permits communication between devices. They are connected over a simple 2-wire cable in a loop. HP-IL was designed as a small, low power, low cost, and medium distance interface that allows to produce portable calculators and peripherals.

Nowadays we simulate handheld devices and some peripherals too. As such it makes no sense to save data for example on a 3½ inch floppy disk. It is more convenient to save it on a hard disk, flash memory or on an optical media. In addition hardware with an HP-IL interface (e. g. printer) is quite old and rare these days. To link the simulated substitute also the transport interface must be replaced. This is the idea behind "Virtual HP-IL".

In summer 2009 Jean-François Garnier published his PIL-Box project to link real HP-IL hardware with virtual devices on a PC. The PIL-Box itself is a piece of hardware connecting the HP-IL system with a PC via USB bus. On the PC a program called "HP-IL Peripheral emulator" (short ILPer) is simulating a generic printer and a mass storage device.

Jean-François Garnier wrote ILPer originally in Visual Basic. In 2010 I ported his sources with some improvements to Visual C. ILPer up to V1.35 was designed to work only in conjunction with the PIL-Box resulting in an isolated HP-IL solution which could not be used as an universal peripheral simulator. ILPer since V1.4 got also an additional TPC/IP interface, allowing to link many different simulated devices in one virtual HP-IL loop. This page shows an example of connecting two ILPer programs and an additional IL frame sniffer to a PIL-Box. The bridge between the "Virtual HP-IL" and the PIL-Box hardware is realized with the program ILPilbox.

Here a block diagram showing the typical configuration with ILPer before V1.4:

Virtual HP-IL block diagram
Block diagram with one virtual device on a PIL-Box

Following a block diagram showing the extended possibilities of combining the real with the virtual HP-IL world - even spread over several PCs - using TCP/IP:

Virtual HP-IL block diagram with TCP/IP
Block diagram combining real and virtual devices

ILPer v2.42 New The HP-IL Peripheral simulator for Win32 is simulating a HP-IL generic printer, two mass storage devices and a DosLink interface. Source code included. *

ILVideo v1.41 The Virtual HP-IL simulation of the HP-82163A Video Interface with Monitor for Win32. Source code included. *

ILVideo80 v1.31 The Virtual HP-IL simulation of the HP-92198 80-column Video Interface with Monitor for Windows 2000 and later. Source code included. *

ILBlinky v1.01 Generic Virtual HP-IL printer simulation forwarding the printer data over UDP to the HP82240B printer simulation. Source code included. *

ILDoslink v1.06 A Virtual HP-IL interface simulation for Win32 allowing import and export data to the PC file system. Source code included. *

ILScope v1.56 A Virtual HP-IL frame code debugger as virtual loop through device for Win32. Source code included. *

ILPilbox v1.66 New A PIL-Box to Virtual HP-IL bridge software for Win32. Source code included. *

ILPilsim v1.02 A PIL-Box simulation for Win32 to connect the DOS based emulators Emu41, Emu71/DOS and Emu75 with Virtual HP-IL. A tutorial how to build a suitable VM with DOS is available here. Source code included. *

ILCtrl v1.19 ILCtrl, a ported and expanded version of Jean-François Garnier original ILCtrl program, is a simple HP-IL controller demonstrator for Win32. Source code included. *

ILProgsIPv4 New ILProgsIPv4 is a collection of all IL-exe files above compiled with MSVC6 using the IPv4 stack only. This versions have less requirements about Runtime files, so the programs will normally run without installing an additional runtime on most recent Windows OS.

ILVideo color scheme New Green and Amber Monitor color scheme registry patch for the Virtual HP-IL simulation program ILVideo v1.0.

* VS2005 Runtime The Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) for the above programs. (Only required if not installed before.)

(c) Christoph Gießelink Last changes: 05/28/24

Return to the main page