Adding a little collection of modules for writing bare-metal 32-bit x86 programs to run on 
real or virtual machines. So far, this produces a 3014 byte image which can be loaded 
either as a floppy image or a GRUB kernel image. It displays a list of all PCI devices on 
the system. Tested in Bochs, VMware, and on my laptop.
Clarify comments on start addresses in the bootloader, and ask gcc to optimize for size. Now the disk image is only 1941 bytes. (And there's still some unused space in the boot sector!)
Random cleanup, and a new build system. Now it's really a library / construction kit, rather than just a jumble of code.
The top-level Makefile is obsolete.
Add -m32 flags, so we don't end up running 64-bit code in 32-bit mode (ouch) when the disk image is compiled 
on an x86-64 machine.
Optimize for size, enable the A20 gate.
Implement interrupt support, as well as very basic PIT timer support. Metalkit now includes an example program which uses the timer interrupt, in under 2 kilobytes. The interrupt code is very small, thanks to a little self-modifying code.
Makefile fix: library modules should be compiled as .c files, not .o files. List boot.S separately.
PCI bugfixes and BAR support, new Panic handler.
I suppose we'll allow the luxury of memcpy() and memset().
Implement PCI_GetBARAddr()
Unmask the cascade interrupts by default- otherwise, IRQs 8 through 15 
won't work.
Add math definitions and 64-bit types.
Add several new library features: a tiny subset of printf() in 127 bytes, a new interrupt 
trampoline which implements setjmp/longjmp-style context saving and restoring, hex dumping, 
and a new fault handler which shows all CPU registers and the top of the stack.
Add a new example which demonstrates pre-emptive multithreading, implemented in about 100 
lines of C. This example is based on the simple context-switching code built into intr.c's 
trampolines.
Remove a bunch of svn:executable bits that snuck in.
The bootloader has been substantially rewritten. Now it loads images at the 
1MB boundary, by repeatedly switching back and forth between protected mode 
and real mode. Now it can load an entire 1.44MB floppy image into memory.
Add the tiny 'puff' decompressor from zlib, and add makefile rules and examples for including binary data files in your 
images.
Fix stack corruption in Intr_SaveContext()
Two low-level interrupt context switching fixes: Zero the unused top word of %cs, and update the interrupt 
trampoline machine code to handle switching between partially overlapping stack frames.