In my first ever multi-threaded program, written to run under OS/2 pre-1.0, the only reentrant IO function available was Beep( freq, duration ). So
- thread_1 did "beeeb....beeep...beeep";
- thread_2 did "beep beep....beep beep";
- thread_3 did "bip bip bip....bip bip bip" etc.
You could suspend/resume each of the threads by typing it's thread number on the keyboard.
It wasn't much of a program, but you'd be amazed how many grown men (and women) spent an inordinate amount of time being amused by it:)
"But you should never overestimate the ingenuity of the sceptics to come up with a counter-argument." -Myles Allen
"Think for yourself!" - Abigail
"Time is a poor substitute for thought"--theorbtwo
"Efficiency is intelligent laziness." -David Dunham
"Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon
| [reply] [d/l] |
| [reply] |
Yes. Many, many ATM's were built around 2.1, which was the first properly complete and tuned version. It was also the last major version that had MS involvement if memory serves.
Warp was pretty cool, with the emphasis mainly on "pretty". There was little really new underneath, but the new interface had some nice features.
After that, the "PCs are just terminals to mainframes" crowd kinda took over and the rest is history.
A friend of mine involved in developing the replacement for OS/2 in ATM's was kind of nervous about the prospects--but that was some time ago.
"But you should never overestimate the ingenuity of the sceptics to come up with a counter-argument." -Myles Allen
"Think for yourself!" - Abigail
"Time is a poor substitute for thought"--theorbtwo
"Efficiency is intelligent laziness." -David Dunham
"Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon
| [reply] |