Did Classic Mac have this error message thrown in the Steve Jobs movie
April 8, 2016 5:48 AM Subscribe
Was watching Aaron Sorkin's Steve Jobs movie, which opens with a 1984 Mac crashing with the message, "Unimplemented trap." I Googled and could only find references as far back as OS 7 (1991) so I was wondering if this was dramatic license?
Best answer: Traps go all the way back to the Motorola 68000 and System 1.
Macintosh Toolbox:
MacTech, Vol 1, Issue 1 (1984):
posted by zamboni at 6:47 AM on April 8, 2016 [5 favorites]
Macintosh Toolbox:
The original Motorola 68000 family implementation of the Macintosh operating system executes system calls using that processor's illegal opcode exception handling mechanism. Motorola specified that instructions beginning with 1111 and 1010 would never be used in future 68000 family processors, thus freeing them for use as such by an operating system. As 1111 was reserved for use by co-processors such as the 68881 FPU, Apple chose 1010, which is the binary equivalent of the decimal number ten, as the prefix for operating system calls. Ten is represented in hexadecimal as A, and handling illegal instructions is known as trapping, so these special instructions were called A-traps.[1] When the processor encounters such an instruction, it transfers control to the operating system, which looks up the appropriate task and performs it. There were two advantages to this mechanism:Calling a trap code that isn't in the trap table resulted in a
It results in compact programs. Only two bytes are taken by every operating system access, in contrast to four or six when using regular jump instructions.
The table used to look up the appropriate function is stored in RAM. Then, even if the underlying code was stored in ROM, it could still be overridden (patched) by replacing the ROM memory address with a RAM address.
unimplemented trapcrash.
MacTech, Vol 1, Issue 1 (1984):
Our first step is to define the trap macros for the toolbox and operating system routines. This is done by setting the toolbox routine name equal to a trap word constant using the “DC.W” directive. All intructions found in memory that begin with $A are unimplemented instructions that cause the 68000 to “trap” to a special routine to handle the exception. Apple has taken advantage of this arrangement to extend the 68000 instruction set by a whole series of toolbox routines that are called as a result of this “1010” trap.This old MacTech article, Sleuthing the New System File, goes into more detail about traps as they existed circa System 4.1.
posted by zamboni at 6:47 AM on April 8, 2016 [5 favorites]
Calling a trap code that isn't in the trap table resulted in a unimplemented trap crash.
I've been poking around, and haven't found any direct evidence of that exact message, though it makes sense that it would happen.
posted by zamboni at 7:00 AM on April 8, 2016
I've been poking around, and haven't found any direct evidence of that exact message, though it makes sense that it would happen.
posted by zamboni at 7:00 AM on April 8, 2016
Response by poster: Thanks for your great answer!!! Finding it in 68000 opcode features is legit enough. I thought maybe it was just something Sorkin had seen on his PowerBook in the '90s.
posted by johngoren at 7:03 AM on April 8, 2016
posted by johngoren at 7:03 AM on April 8, 2016
I don't remember that one --- to my mind, the canonical generic "something has gone wrong and we are not going to tell you what" message, from the Macintosh SE finder up through the last days of OS 9, was the infamous "Application 'unknown' has unexpectedly quit, because an error of type 1 has occurred."
posted by jackbishop at 9:51 AM on April 8, 2016
posted by jackbishop at 9:51 AM on April 8, 2016
I found an actual screenshot of the unimplemented trap message from Ted Landau's Sad Macs. Bombs, and Other Disasters (Google Books link).
posted by dweingart at 10:04 AM on April 8, 2016 [2 favorites]
posted by dweingart at 10:04 AM on April 8, 2016 [2 favorites]
« Older "Great to see you again, Nancy! No, wait, Shona.... | Wedding vendors with non-disparagement clauses Newer »
This thread is closed to new comments.
I seem to remember "unimplemented trap" in the system 6.8 days. That's about as far back as I go for helping fix things.
posted by advicepig at 6:22 AM on April 8, 2016