Just dug this up
http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=2910&lngWId=3
It's cooperative, but I think it's a nice way to show how setjmp and hardcore macros work.
in my Compilers class we use setjmp/longjmp a lot. I can't stand them, personally, they make the code hard to follow, and my prof writes crappy code already, but because we're using ANSI C, the structure would get quite nasty without it. Give me OOP, though, and I could write it SO much better!
Anyway, that's my rant. setjmp/longjmp are cool. :)