Added ISO-9660 boot sector description.

svn path=/trunk/; revision=2864
This commit is contained in:
Eric Kohl 2002-04-22 12:05:07 +00:00
parent bba0443d8d
commit 13206a61a1

View file

@ -34,10 +34,32 @@ A000:0000 - FFFF:FFFF: reserved
FreeLoader Boot Process 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 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(). 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().