So that would make this the Test Register.
Decoding the protection test PLA gives us a list of 37 new microcode entrypoints to look at, and add to our disassembler.
The REDIRECT column here determines the microcode address to execute a after the check.
We're going to need to figure all this shit out if we want to emulate protected mode...
And this is where tracing stuff out on the die pays dividends.
We can see our 6-bit protection test constant is encoded in the microcode's RS field.
Neato.
Well the diagram shows that too but it didn't show the ARITH/JUMP field going up there too, so I guess this was worth doing.
Keen-eyed viewers may have noticed this little block on the die.
These are the initials of engineers who worked on the 80c286 design.
Would be cool if we could figure out who any of these folks are.
@gloriouscow I bet they're all in this picture
@gloriouscow it mentions George Alexy working on it in the early days, but nope, not one of those initials.
Jim Hudson? Nope.
Dave Ferguson? Maybe!
@gloriouscow Jim Slager? Nope.
Kathy Eng? Nope
Dave Robinson? Nope
Alan Dixon? Nope.
Gene Hill? Nope.
Todd Wagner? Nope
Neal Longhill? Nope
Dorothy Cloud? Nope
John-Claude Cornet? Nope.
Moshe Stark? No.
Dennis Carter? No.
And here's the protection test PLA.
The protection test PLA on the 286 is a very efficient way to encode a lot of complicated protection checks - ie, is the current process and privilege level allowed to do X where X is some operation being tested - 4 control inputs, 6 segment descriptor bits and 6 'test' bits are input into the PLA and out comes a microcode address and some flags.
If the flags indicate protection failure, the provided microcode address instructs the CPU to redirect to a protection fault handler, as you have been naughty.