If you consider co-operative multi-tasking. I have seen some projects where the main loop calls several functions repeatedly. Each function performs a certain function and returns. When many functions are put together, you will see a kind of multi-tasking, but mind you; the key word here is 'co-operation'. Any function hogging the CPU will kill all the others.

Pre-emptive multi-tasking should be a nightmare, I guess, on the PIC with its limited stack levels.

Jerson