Thank you for reading me first!
I had problems getting Be's QScope to work under BeOS R5, finally I gave up and started a rewrite from the start.
This program lets you use your computer's parallel port as the interface to an eight(8) input digital scope or with some extra circuits as an analog scope.
The diagram below shows you how the basic parallel port layout of most computers is set up, what is not shown is that bit five(5) of the control port is the direction control flag. The bit is cleared to zero(low) for output and set to one(high) for input on lines D0-D7 of the port.The following diagram shows you what you need to test your parallel port with the programs found in directory #2.
In writting the program I had lots of problems trying to find out how to access the parallel port in BeOS. BeOS has a BSerialPort class in the Device Kit that works well but no parallel port class. Note: there is a parallel.h file so it looks like something that Be was planning but did not finish.
Luckly, BeBits contains a driver called aliendriver by Martin Caron which made the programming the parallel port a lot easyier to do. In the future I may bypass or rewrite this driver to get better speed as it seems limited to about 174,000 samples per second but for the moment it makes more sense work on one thing at a time, and it may turn out that the driver may be fast enough for most users anyway.
While the program is far than finished, it is presently usable to people with the right hardware. It works fine as a digital scope and as such should work ok with four(4) bit and 8(bit) flash ADCs (analog to digital convertor). None of the trigger code has been written as yet and there seem to be a problem with the built in analog scanning code. As a digital scope all hardware needed is a common ground line (pins 18-25) and the sampling lines to be tied to the data inputs of the parallel port (pins 2-9). The result is you will get an eight(8) line digital scope to help debug slower digital designs on your computer screen.
As an analog scope there are a number of options available:
1) Bar LED ADC - If you use the LM3914, LM3915 or LM3916 chips as your ADC you can have 9 levels of voltage using these chips. This is very crude and rough but the LM391x acts like a flash convertor so you can sample very fast. I included this option because (1) it is cheap, (2) I have already used this chip to digitalize video signals on my Amiga's parallel port so I know it works, and (3) because I was able to get the chip at Radio Shack so I am sure it is available most places.
2) If you has access to two four(4) bit flash convertors on pins D0-D3 and D4-D7 which gives you 16 levels of voltage each. Since you can attach two of them at the same time to the parallel port and the program will read them both in at the same time you now will get a dual line display. If you don't have access to them I will be including the design for a four bit voltage follower ADC and a four bit sweeping ADC that can be built from parts also found at Radio Shack.
3) This program also includes support for single line eight(8) bit flash convertors. Again just attach to the parallel port data lines D0-D7 and the program will support 256 levels of voltage and display it as a single line display.
4) 1, 2, and 4 lines op-amp comparor inputs from a software driven analog to digital convertion are also supported. If you attach a resistor DAC network to the parallel port the program with generate a sweeping waveform and compare it to your analog comparor inputs. The results of the comparors are feeded into the parallel port status lines ACK(pin 10), PE(pin12), Select-In(pin 13) and Error(pin 15). The quad comparor chip LM324 is perfect for this job.
Future improvements will probably be by user request. Options to look at are flash ADCs that come with multiplex inputs and/or more output bits. I am trying to understand how to access the Sound Blaster inputs also.