Jhwctl provides an easy, textgraphical user interface to access hardware ports. Currently it features direct LPT port manipulation (read/write/log, i.e. for self-made hardware), more stuff to come (file transfer, pc speaker manip.).
In 2002/03 our physics/computer "science"(1) course (Grade 10) decided to have a look at the college's weather station. It is a 2.5 year-old not fully functional self-built construct which does not even return right results anymore. Though at the first look I did not notice any corrosion and/or electrolysis (of rainwater), it was obvious that it had served off its purpose. Stats had been recorded all the time, duh... However, the thing is about to repaired, or even rebuilt from scratch.
But before, as everyone normally does, we experimented on how to solve a given problem and how one could implement it. These problems covered, as already stated above, corrosion (oxidation, rust) and electrolysis (how to measure a water level using electrical circuits only). Though not problems, but a necessity, how to do the stats, that is, how to get analog information into a readable something. And that is where Jhwctl came in.
The parallel port was the best choice, maybe it is not the fastest in transferring data, but I doubt we are going to transfer 50 KB a second. And, it is easy to access it (compare with USB for example). After about 20 minutes I had the very first version of Jhwctl, in QBasic, ready. It already had the nifty UI which you can find in v1.10. And it did the job, though I spent about 70 hours perfectioning it. Then I stopped counting the hours *heh*, and of course spent more hundred hours with it, porting it to the C language, and even cross-platformed it for DOS, Win32 and Linux. When the half the year was over we had to hand in a written work to the prof; this could be either a detailed description on what we (in groups) had done, or a program to access the LPT port ('cause we had played with it so much). Me -- of course -- handed in the source of Jhwctl (it was a /program/), which was no more than 976 lines long at that time! The prof did not even have a look until four weeks later (he does not know C and even thinks the lightest file access is hard), but instead gave an A :-) Conclusion: write clean (indent, etc.) but cryptic.
Well then, Jhwctl runs fine, so why not show the people out in the world also? Other science courses in the world could use it, for whatever reason, possibly the same as ours. So here it is, open source, GPL, C/xASM, for x86, ARM, IBM Websphere and SPARC platforms. MacOS/Darwin is also in testing.
There is always something to do: with v1.20, Jhwctl is going to have not only LPT port manipulation, but also file transfer over LPT and a small chapter on the PC speaker. Stay tuned.
(1) It really seems to be a science for anyone but a few.
February 08 2003