Bootloader

This page is to document my progress at the bootloader code.
This code will be used to boot my OS projects and also possibly some projects where I am part of a team.

Current State In progress - Version 0.5 is the current version.

Current Features
First stage
FAT12 table
Sets up the registers (CS, DS and ES)
Sets up a stack (Simple stack 0x9000 to 0xFFFF)
Text output to the screen
Load a set amount of sectors
Transfer control to a second stage
Second stage
386 CPU check
Seperate text output procedure
Load the root directory
Search for image file
Load the FAT
Look up image location in FAT
Load the kernel
Set the registers for the kernel.
Transfer the control to the kernel

Planned additions
Protected mode (This can be broken down into smaller parts but I haven't looked into it yet in great enough detail to explain each of the parts.)
An advanced boot loader which loads the kernel according to a config file or real time user options/menu system.
More filesystems supported than just the FAT12 version. (FAT16,FAT32 and others) (extended filename support?)

History
Version 0.0 - Bootloader sets up the registers and stack, puts a message on screen then loads up a file on the next sector of the disk.
Version 0.1 - Checks for 386 CPU now as well.
Version 0.2 - Sets up the ES segment register. (GS and FS also should be setup for version 0.3) Also now contains a FAT12 table.
Version 0.3 - Minor adjustments, however a reorganisation now needed for version 0.4.
Version 0.4 - Last of the no filesystem bootloaders, re-organised as a two stage boot loader.
Version 0.5 - First version to implement a FAT12 system fully. Loads kernel from the filesystem. (Kernel name="KERNEL.COM")

Downloads
Version 0.4 No file system implemented
Version 0.5 Current Version - FAT12
Unfortunatly due to a physical hard drive crash earlier versions were lost, so can't offer to e-mail them on request anymore however I will give you pointers, if I can time and skill wise, on making a simpler bootloader if emailed.

News
14th March 2005 - I've written some code to access pmode in the second stage. Won't release the next version until I have it loading the pmode kernel to 1mb (which requires a couple of pmode and back again jumps).
5th March 2003 - Just a note saying that I've not left boot loaders but currently working on kernel's more then boot loaders and have no need to advance my boot loader project.
4th September - Version 0.5 released! First version to load the kernel from a FAT12 file system.
27th August - If you want to see a screen shot please look at the DF-DOS page.
12th August - DF-DOS kernel loaded using version 0.4 of the boot loader! :D
Late July - XOA-DOS kernel loaded using version 0.3 of the boot loader! :)