Come to think of it, cooperative multitasking is
trivial, you can code
your own. It looks like this:
for {;;} { task1(); task2(); task3; /* etc */ }
and each task simply does stuff for a while, then returns when it has
nothing left to do or when it's time to give another task a shot at
the CPU. That sort of system is very simple and very reliable.
Anyone who's used a Macintosh before OS-X might want to disagree here.
Or any DOS-based version of Windows (ie Windows 1.0/286/386/3.x/95/98/ME).
These were all "round-robin" if I am not misremembering... (I certainly
remember one application crashing and not passing control to the rest of the
services well enough :-)
--
Jim Leonard (trixter at