mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
Added ISO-9660 boot sector description.
svn path=/trunk/; revision=2864
This commit is contained in:
parent
bba0443d8d
commit
13206a61a1
1 changed files with 25 additions and 3 deletions
|
@ -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().
|
Loading…
Reference in a new issue