Home

Protected mode

Mirror of John Fine's web pages

Protected-mode tutorial

Intel 386 Programmer's Reference Manual

This is an 858K text file PKZIPped to 207K. A must-read for those who want to work with protected mode.

Protected-mode demo code

12 programs written in NASM. Basic pmode, unreal mode, interrupts and exceptions, multitasking with TSSes and without, Ring 0 versus Ring 3, etc. This was a by-product of my attempt to write an operating system, so it's missing Local Descriptor Tables (LDTs), Virtual 8086 mode, DPMI, etc.

Virtual-8086 mode monitor

Operating systems

Operating System Development (OSD)

Most of the things on this page will eventually be moved into the OSD project. If you don't find what you're looking for on this page, try the OSD page.

Cosmos/Borealis operating system

New features in release 11 vs. Cosmos 10: Old features: Screen shots from Bochs: What; no paging?! I had trouble adapting the paging code from Cosmos 10 to work with Multiboot. Borealis 11 uses x86 segmentation for address translation and (limited) memory protection. If you really want paging, the old Cosmos 10 code is here, but it no longer produces a working kernel.

OS discussion

Links

Small C kernels with source

Small assembly-language kernels with source

Small kernels with source written in other languages


Unsorted stuff that may be moved or deleted soon

Simulated Linear Framebuffer (MMU-assisted page-flipping). Use simple LFB software with 16-bit video boards. Supports/tested with S3 Trio 64V+ and Cirrus 5422.

BING bootloader, version 0.4. Works with DJGPP COFF kernels only.
BING 0.4 screen shot
BING version 0.5. Does not work, but has more features than version 0.4 :)

A small demo of paging

VGA info (corrected Jan 4, 2000)