PortIO - the PC port I/O library for engineering




The history behind the PortIO project

My original project on SourceForge was (and is) the GunProg project. This project was set up with the intention of producing a universal device programmer which could be cheaply produced by hobbyists and for which the plans were free. This would fill an obvious niche, since all programmers used by hobbyists tend to be device-specific, and universal programmers tend to be very expensive (usually starting at 300).

I worked on the hardware design for this for a while. I got to a stage where I thought I knew a lot of what was needed, but the design needed some major rework, and to be honest I'd got bored of hardware. So I started on the software to support the hardware. It quickly became apparent that the software could form a separate project itself, in that it did not have to be specific to the hardware but could be made generic to support any hardware. Thus the GunFire project was born.

After working on GunFire for about 2 years on and off (mostly off, due to job and home commitments!), some good progress is finally being made. However, since any programmer support software would clearly need to access the serial or parallel ports to communicate with the programmer hardware, a good library of I/O routines is necessary. A start was made on writing these routines as part of the GunFire project, but it became apparent that a third project was starting up here, because a suitable library of I/O routines does not yet exist, and other people would probably get some use out of this library in their own code. The I/O library routines have therefore been spun out into the PortIO project.

First library routines

The first library routines to be created will support GunFire by providing a precision timer class and a parallel port I/O class, to run under Win98/WinME. This is all that is needed by GunFire for the moment.

Further library expansion

This will obviously be expanded in the future, as the library would not be much use otherwise!

The first expansion after that will be to add serial port support, also under Win98/WinME. This will allow GunFire to reach some level of stability under Win98.

Once serial port support is in place and GunFire development has reached some convenient point, the library will be ported to Win2K/WinXP. This will entail writing device drivers to provide the required port access routines. The initial intention is to have GunFire working under Windows, and future versions of Windows will be based on WinXP.

Once GunFire is working correctly under Windows, Linux support will be added to these libraries. GunFire is not intended to support Linux until Windows development reaches some advanced level, so PortIO probably will not support Linux until then either.

There are currently no plans to support Win95/WinNT, as these operating systems are obsolete, are rarely used, and do not share a consistent I/O setup interface with other versions of Windows (possibly due to not supporting PnP properly). If anyone particularly wants to add support for these operating systems then they are free to do so, but this is not planned.