I'm in need of a small function that will allow me sending data on parallel port on specific way. There are several requirements: - It should accept array of integers as 'input' data. Those will be values that are to be sent to parallel port's data line in a row, with applied delay between each loop. - It will also need a delay control between each value from the above array is sent. That delay must be EXTREMELY precise, in µs values, or even more precise. - The code for sending data, needs to execute very fast, as well. I'm currently using: __asm("mov $0x378, %dx"); __asm("mov _asmDat, %al"); __asm("out %al, %dx"); Where _asmDat is a reference to data to be send, and it takes about 2µs / loop (well, loop includes some more things) here. I would like it to work on delays of 1 µs or even less... This speed can be tolerable up to 2µs. - Additional ability to send specific data to the control lines of parallel port after defined loops passes. e.g. after 10 loops (the first 10 indexes of the integer array sent to it), to send some data on the control line of the port as well. - Now, a little tricky part, it should have detector of what kind of parallel port is present (SPP, EPP, ECP), and adjust it self to the speeds of them. That way you would be able to get out maximum of ECP, if present, by using DMA. - It should be able to loop for a specified number of loops through the data array passed, and I live that to your imagination. I don't care weither you will use some libraries or whatever (as long as you own a right to redistribute them), so, I'm only interested in making it work. A bonus would be doing all this as an .dll, too. Code must be compilable in MINGW. Another note: This program's output will be tested on a quality oscilloscope (through D/A converter). If it doesn't perform good enough (takes more than 2µs / loop), i wont accept it! Well, happy bidding... Hope I haven't made too much requirements!
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request. 3) Complete ownership and distribution copyrights to all work purchased.
## Platform
Must: DOS, Windows 9x/Me Highly Desirable: Windows NT/2k/XP Desirable: *nix systems (Linux/BSD) Hardware: Pentium I and newer.