I am having a LOT of fun picking around in these ROMs. I was trying to extract the easter egg images from the Mac SE ROM, and I've hit a bump in the road. There are a few A-Line Trap instructions, which essentially allow your program to use some low-level subroutines provided by Apple.
I don't completely understand how these work though. For example, I've run into a call to _UnpackBits (instruction A8D0). The ROM code pushes a couple things onto the stack before this call. However, I'm not sure how this _UnpackBits thing works, nor where it's code is located in ROM.
I know that there is a "compressed A-line table" located at $0001 AA9C in the SE ROM. I believe that this is a vector (aka double-jump) table. So in theory, you should hit an A-line code, 68000 raises an invalid opcode interrupt, jumps to this table, then jumps again to the actual trap implementation. (We've all seen when this fails - "Unimplemented trap"!) But I'm not sure how this works. And how it says the table is "compressed" sounds daunting.
Has anyone had any experience with these strange A-line traps? Is there a spec somewhere that describes each A-Line instruction? I have found a listing of A-Lines but no descriptions.
I don't completely understand how these work though. For example, I've run into a call to _UnpackBits (instruction A8D0). The ROM code pushes a couple things onto the stack before this call. However, I'm not sure how this _UnpackBits thing works, nor where it's code is located in ROM.
I know that there is a "compressed A-line table" located at $0001 AA9C in the SE ROM. I believe that this is a vector (aka double-jump) table. So in theory, you should hit an A-line code, 68000 raises an invalid opcode interrupt, jumps to this table, then jumps again to the actual trap implementation. (We've all seen when this fails - "Unimplemented trap"!) But I'm not sure how this works. And how it says the table is "compressed" sounds daunting.
Has anyone had any experience with these strange A-line traps? Is there a spec somewhere that describes each A-Line instruction? I have found a listing of A-Lines but no descriptions.

