Of course one could do this with plain equipment, that is, skip this entire chapter, but it is provided to have some good interface for the SIOS.
As mentioned in the intro of Jhwctl, we were about to inspect the college's weather system and optionally rebuild it. Say, if you want to measure the wind speed, you have to see how many rotations it does per second, and convert it from impulses in a time to digital. However, how to make it digital? It is not that easy to convert it like from analog.
These are the basic modes: digital, that is a row of wires each carrying either low or high voltage. Then there is analog, which is exactly one row, which carries a varying voltage. To convert between those two, you usually need an ADC/DAC converter. Now, how about wind measurement; how to find the rotation rate? To measure it, we use two magnets, one is statically placed at the edge. This magnet is a trigger, that is, if another magnet is nearby, they push/pull each other, a circuit gets closed, and power can flow. The other magnet is bound on the wind wheel. So this gives us a strobe within a small period (when both magnets are next to each other), also called an impulse.
The first idea we had was to plug a SIOS interface (see picture) in between, and measure the impulse rate. The SIOS got the impulses fine, LEDs lit up when the magnets met each other, however the software "Do-It!" (an old version) was really crappy since it did not measure it -- it was too slow to read the input. By the time the LED has been triggered by the impulse, it already went off again and there was no time (for Do-It) to recognize that.
As noted above, we could also have done this without SIOS and Do-It (but we did not). So later, I came up with the idea to write a new software interface to the SIOS, allowing reading the LPT/COM ports the SIOS is connected to as fast as the CPU allows.
February 08 2003