> The only Mac Classic preemptive multi-tasking was running off various interrupts. The state of the
> entire system was always undefined at this time. You could only touch memory and devices that you
>had previous allocated and locked to a fixed hardware address.
Trying to work out what you were trying to do and when you were trying to do it. The PPC runtime world before subsumed by Carbon was a bit confusing at times but none of what you describe matches the 68K world I knew of 1984 to 1995. And I was working at the asm / bare iron level from late '84 onwards. Wrote huge amount of 68k asm, compiler prims, device drivers, INIT's, trap patches, knew Low Mem Globals ($100 to $400) inside out as well as writing end user shrinkwrap.. Even reverse engineered most of the 64K ROM in the early days. Before there were proper docs.
I wrote a spec / proof of concept prototype for a protected memory / full application space VM third party utility in '94 and for typical consumer applications keeping tabs on the LowMems, the A5 globals, and patching a few of the OS traps covered all bases. I was working at the PMMU / 68851 instruction set level. If people were trying to run screwy applications that mucked around with undocumented stuff or buggy device drivers or INITs then I just sand boxed them as badly behaved applications. Which they were. Which is why they were so unstable. When third party applications crashed on my machine it dropped into Macsbug and a quick IL and SC soon discovered the culprit. Always the application code, never the OS. But in the wider world it was the OS that always got the blame when badly written applications crashed.
But if you followed the rules and knew what you were doing then things very rarely went belly up. Very very different from the Win16/32 world at the time. Where the first thing you had to do was QA the API call to see if it matched the docs. Quite often it did not with very interesting edge conditions. It was only when I read the Win16/32 source code years later that it became all too obvious why its API's were such a pain to use.