https://nand2mario.github.io/posts/2026/80386_protection/
I'm building an 80386-compatible core in SystemVerilog and blogging the process. In the previous post, we looked at how the 386 reuses one barrel shifter for all shift and rotate instructions. This time we move from real mode to protected and talk about protection.
The 80286 introduced "Protected Mode" in 1982. It was not popular. The mode was difficult to use, lacked paging, and offered no way to return to real mode without a hardware reset. The 80386, arriving three years later, made protection usable -- adding paging, a flat 32-bit address space, per-page User/Supervisor control, and Virtual 8086 mode so that DOS programs could run inside a protected multitasking system. These features made possible Windows 3.0, OS/2, and early Linux.
The x86 protection model is notoriously complex, with four privilege rings, segmentation, paging, call gates, task switches, and virtual 8086 mode. What's interesting from a hardware perspective is how the 386 manages this complexity on a 275,000-transistor budget. The 386 employs a variety of techniques to implement protection: a dedicated PLA for protection checking, a hardware state machine for page table walks, segment and paging caches, and microcode for everything else.
(Score: 2) by Freeman on Thursday February 26, @05:04PM
I've used DOSBox for years to play old games. The vast majority of that time spent playing Master of Magic. However, I recently got kiddo and wife to play the original Oregon Trail and Oregon Trail II with me. Kiddo made it to Oregon, but alas the wife was killed by a bear after having survived a snake bite. I've tried out FreeDOS as well, but the convenience of DOSBox just keeps me coming back. I stumbled on Faux86 and Faux86-remake recently (8086/8088/V20/80186/partial 286 support). https://github.com/ArnoldUK/Faux86-remake [github.com] https://github.com/jhhoward/Faux86 [github.com] (originally based on the Fake86 emulator by Mike Chambers) The original Fake86 emulator site linked to on the Faux86 github is not functional. They call them "bare metal emulators". I've made a first stab at getting the Faux86-remake to work on my Raspberry Pi 4, but all I got was a black screen with a blinking cursor. (I would prefer to not format a 16GB USB drive as a 32MB drive.) There's probably some fiddly bits I need to get just right, but I am hopeful that I can have an extremely fast to boot DOS emulation station. That said, LibreElec only takes 20 seconds or so to boot and is a nice little package with more functionality. Kiddo watched some Mr. Rogers Neighborhood through the PBS Kids app this morning on the little "PiStation" I setup.
Joshua 1:9 "Be strong and of a good courage; be not afraid, neither be thou dismayed: for the Lord thy God is with thee"