I'm following with interest.. I know of pre-emptive multitasking, but I've never really had to use it. I see that it's significantly more difficult than cooperative, at least in these sorts of machines. What I almost always end up doing, is a cooperative multitasker, essentially a top level list of tasks to run. Each task looks for every reason not to run, and bails out if it can. (The lazy teenager model! :) If it must run, then it runs to completion, which is never all that long. The only non-cooperative part of this system is the interrupts, and of course they happen when they happen. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist