Download LPTScope program for Windows (ver 1.1) (initial version)
Download source of LPTScope program (ver 1.1)

Download LPTScope program for Windows (ver 1.2) (improved direct accessing to LPT1 port under NT based OSes, from Zilot)
Download source of LPTScope program (ver 1.2)

Download LPTScope software for DOS (in QBasic, from Miroslav Novak)

LPTscope is a MFC program written in VC++6.0.
The program reads directly from I/O adress 888 which is LPT1 data port on most PCs. If you use Win95/98/ME everything is ok about direct reading from the LPT1. But with WinNT/2k/XP (NT based) things are a little complicated. I/O ports are protected from direct access. You can read this article for detailed info.
To work under a NT based OS, LPTScope uses IOManager.sys driver for direct access to LPT1 port.
The init part of the program (CMainFrame::OnShowWindow) detects the Windows version and if this is NT based, IOManager.sys is automatically installed and started.
The init part of the LPTscope also measures the PC speed. This is achieved by a simple times-of-loops counting in a given period. This information gives us the max sample rate possible on the given machine.
LPTscope reads the samples at the maximum speed all the time. By changing the time base we don't make any difference on the reading speed of the samples. The efect of changing the time base is implemented at display-time only: not all the samples are shown in the case of lower time base than the max one.

The principle of the how the program works is quite simple: A separate thread (ReadThread()) reads a block of MAX_SAMPLES samples from LPT1 and after that it sends a notification to the view to display this freshly readen block of data. The user can change time and Y base on the view side, click and move to measure precisely the signal with the mouse, change trigger properties etc.

The program is tested on Win98,Me,2K and XP.
I hope you will find it useful.
Drop me a note if you find a bug or after making some meaningful change to the code. Read the agreement if you intend to have any other use than a personal one. LPTScope software is freeware for personal use, provided 'as-is', without any express or implied warranty.


TODO:
· Detection of the available LPT ports.
· Frequency analisys - add FFT algorithm for displaying frequency domain graph.



How to talk with a LPT (and any other) port from within NT based Windows:
PortTalk driver - my favorite
http://www.ddj.com/cpp/184403260
http://www.entechtaiwan.net/dev/lpt/index.shtm - a serious commercial solution