To the Ineffable All,

Does anyone know of a method to control the parallel port or the I/O ports directly from Windows using a fairly late model O/S like Vista?  I don't want to write a driver to do that.  I want to use assembly and not some high level language, of course.  Thanks, Ratch
Posted on 2012-10-22 15:14:19 by Ratch
Using a driver is the only way in a modern OS.
Regular applications are not allowed to access privileged memory or I/O ports. Only kernel-mode drivers are allowed to do that.
Posted on 2012-10-22 15:29:30 by Scali

Easy to do without using non-resident driver.  The port--either serial or parallel--is opened as a file.  Works in win95 thru win7:

The program uses a serial port if present, otherwise is uses a parallel port.


Posted on 2012-10-22 17:54:57 by farrier
Another example you might find useful (although it is serial port too):

If you want to give it a try you'll need to attach an old COM mouse just before firing up the program.
Posted on 2012-10-22 19:07:30 by LocoDelAssembly
I did some work with the parallel port under XP and up.

One code library I worked with was called Port I/O. Its basically a ring0 driver for windows machines, and a userland DLL to talk to the driver.
It requires that you enter your BIOS menu and fiddle with the printer port settings (older machines) or PIO controller settings (newer) but it works, although its not realtime, its delayed by Windows OS. An older operating system will let you get full rate.
Posted on 2012-10-23 05:40:58 by Homer
To All,

Thanks for the help, everyone.  I will try some of the suggestions.  Ratch
Posted on 2012-10-24 13:47:23 by Ratch