I am a lab engineer for a university.
Up until recently, we have been using MS-DOS 6.22 and Quickbasic 4.5 to control our experiments and record our data. We did not change to Windows because Windows would not let us control our processes on a millisecond level. This series of experiments is supposed to run over a 20 year period. Any large changes threaten the continuity of the data collected.
But recently, we have had some problems:
- Many of our 486 and Pentium I systems have failed, and new computers are not compatible with our hardware.
- We just lost our last DOS compatible printer due to inability to buy ink cartridges for it.
- The company which made our hardware for the experiment has gone out of business (they said at the time that it was because their equipment could not be used on any modern computer).
We are now 15 years into this study, and are seriously wondering if we will be able to complete it. Our needs are as follows:
- We need to be able to collect data continuously over 4 seconds per trial, with eight 12-bit data points being read each millisecond. The data are saved to an array. The hardware we have controls the timing of the collection cycle, raising a bit every millisecond.
- The program must notice within one millisecond to any abrupt change in one particular data item out of the eight being read. It must then time off an interval selected by the user in exact milliseconds, and then activate an output bit to turn on a function on the hardware.
- We store the data to disk after the trial ends.
- The hardware is ISA bus.
Attempts to do this on any Windows system, or even a DOS system which has not been rebooted since running Windows 3.1, resulted in the timing values being way off.
1. Are there ways to get accurate software timing on a Windows machine? Windows I/O totally messes up all attempts to do this, forcing all times to be multiples of 55 ms and missing much of the data.
2. Is there a way to make new printers run on DOS machines? We have been able to get new machines to run MS-DOS, but they won't print.
3. Is there a way to use our existing hardware on a new machine? We couldn't get it to run on a Pentium II which has ISA slots, because the bus timing was too fast for the card.