From 13206a61a10a939141ba3ce14c61e2ebe78b8d4a Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Mon, 22 Apr 2002 12:05:07 +0000 Subject: [PATCH] Added ISO-9660 boot sector description. svn path=/trunk/; revision=2864 --- freeldr/notes.txt | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/freeldr/notes.txt b/freeldr/notes.txt index 04029757882..dae66a2372e 100644 --- a/freeldr/notes.txt +++ b/freeldr/notes.txt @@ -34,10 +34,32 @@ A000:0000 - FFFF:FFFF: reserved FreeLoader Boot Process -Boot Sector +FAT 12/16/32 Boot Sector + + The BIOS loads the boot sector at 0000:7C00. The FAT32 boot sector +relocates itself higher in memory at 9000:0000 and loads it's extra sector +at 9000:0200 and then looks for freeldr.sys on the file system. Once found +it loads freeldr.sys to 0000:7E00 and then jumps to it's entry point at +0000:8000. The FAT12/16 boot sector does no relocation, it just searches for +the freeldr.sys and loads the first 512 bytes to 0000:7E00. This extra code +enables it to fully navigate the file allocation table. Then it loads +freeldr.sys to 0000:7E00 and jumps to it's entry point at 0000:8000. Before +FreeLoader gets control the boot sector saves the screen contents to a buffer +at 9000:8000 and the cursor x & y position to bytes at 9000:8FA0 & 9000:8FA1 +respectively. + + +ISO-9660 (CD-ROM) Boot Sector + + The BIOS loads the boot sector (2048 bytes) at 0000:7C00. First, the +boot sector relocates itself to 0000:7000 (up to 0000:7800). Then it looks +for the I386 directory and makes it the current directory. Next it looks for +FREELDR.SYS and loads it at 0000:8000. Finally it restores the boot drive +number in the DL register and jumps to FreeLoader's entry point at 0000:8000. - The BIOS loads the boot sector at 0000:7C00. The FAT32 boot sector relocates itself higher in memory at 9000:0000 and loads it's extra sector at 9000:0200 and then looks for freeldr.sys on the file system. Once found it loads freeldr.sys to 0000:7E00 and then jumps to it's entry point at 0000:8000. The FAT12/16 boot sector does no relocation, it just searches for the freeldr.sys and loads the first 512 bytes to 0000:7E00. This extra code enables it to fully navigate the file allocation table. Then it loads freeldr.sys to 0000:7E00 and jumps to it's entry point at 0000:8000. Before FreeLoader gets control the boot sector saves the screen contents to a buffer at 9000:8000 and the cursor x & y position to bytes at 9000:8FA0 & 9000:8FA1 respectively. FreeLoader Initialization - When FreeLoader gets control it saves the boot drive, passed to it in the DL register, and sets up the stack, enables protected mode, and calls BootMain(). \ No newline at end of file + When FreeLoader gets control it saves the boot drive, passed to it in +the DL register, and sets up the stack, enables protected mode, and calls +BootMain(). \ No newline at end of file