Content-Type: multipart/related; start=<op.mhtml.1279237859511.1487350b4176d9d5@199.60.222.226>; boundary=----------gQlR8gE7Mu6u75w3azkq8w
Content-Location: http://bootmaster.filerecovery.biz/appnote3.html
Subject: =?utf-8?Q?NTFS=20Partition=20Boot=20Sector?=
MIME-Version: 1.0

------------gQlR8gE7Mu6u75w3azkq8w
Content-Disposition: inline; filename=appnote3.html
Content-Type: text/html; charset=iso-8859-1; name=appnote3.html
Content-ID: <op.mhtml.1279237859511.1487350b4176d9d5@199.60.222.226>
Content-Location: http://bootmaster.filerecovery.biz/appnote3.html
Content-Transfer-Encoding: 8bit

<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="keywords"
content="MBR, master boot record, recovery, NTFS, FAT, partition boot sector, BPB, file recovery, boot sector recovery">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>NTFS Partition Boot Sector</title>
</head>

<body bgcolor="#000000">

<p align="left">&nbsp;</p>
<div align="center"><center>

<table border="0" cellpadding="5" cellspacing="5" width="80%"
bgcolor="#FFFFFF">
    <tr>
        <td align="center" width="50%"><font face="Courier New"><img
        src="bmlogoblue.jpg" width="328" height="63"></font></td>
        <td align="center" valign="top" width="50%"><font
        color="#000000" size="5" face="Arial"><strong>Hard drive
        won't boot?</strong></font><p><font color="#000000"
        size="5" face="Arial"><strong>Lost partitions?</strong></font></p>
        <p><font color="#000000" size="5" face="Arial"><strong>Let
        us help!</strong></font></p>
        <p><font color="#FF0000" size="5" face="Arial"><strong>MBR
        &amp; Boot Sector Repair</strong></font></p>
        </td>
    </tr>
</table>
</center></div><div align="center"><center>

<table border="0" cellpadding="5" cellspacing="5" width="80%"
bgcolor="#FFFFFF">
    <tr>
        <td align="center" bgcolor="#FFFFFF"><a href="index.html"><font
        color="#0080FF" size="4" face="Arial"><strong><u>Home</u></strong></font></a></td>
        <td align="center"><a
        href="mailto:support@filerecovery.biz"><font
        color="#0000FF" size="4" face="Arial"><strong>Contact</strong></font></a></td>
        <td align="center"><a href="features.html"><font
        color="#0080FF" size="4" face="Arial"><strong><u>Features</u></strong></font></a></td>
        <td align="center"><a href="bmfaq.html"><font
        color="#0080FF" size="4" face="Arial"><strong><u>FAQ</u></strong></font></a></td>
        <td align="center" bgcolor="#FFFFFF"><a
        href="bm_guide.pdf"><font color="#0000FF" size="4"
        face="Arial"><strong>Manual</strong></font></a></td>
        <td align="center"><a href="screens.html"><font
        color="#0080FF" size="4" face="Arial"><strong><u>ScreenShots</u></strong></font></a></td>
        <td align="center"><a href="support.html"><font
        color="#0080FF" size="4" face="Arial"><strong><u>Support</u></strong></font></a></td>
        <td align="center" bgcolor="#FFFFFF"><a href="users.html"><font
        color="#0000FF" size="4" face="Arial"><strong>Users</strong></font></a></td>
    </tr>
</table>
</center></div><div align="center"><center>

<table border="0" cellpadding="5" cellspacing="5" width="80%"
bgcolor="#FFFFFF">
    <tr>
        <td width="100%"><p align="center"><font color="#FF0000"
        size="6" face="Arial"><strong>NTFS Boot Sector</strong></font></p>
        <p align="left"><font size="3" face="Arial"><strong>The
        NTFS partition boot sector is part of the NTFS metadata
        file $Boot, which includes the boot sector as its initial
        512 bytes, followed by several sectors containing code
        which is called by the boot sector's IPL (initial program
        loader).</strong></font></p>
        <p align="left"><font size="3" face="Arial"><strong>The
        NTFS boot sector is very similar in structure to FAT
        partition boot sectors. It begins with a jump to the
        entry point of the boot loader code, followed by a data
        record, called the BIOS Paramter Block, which describes
        the geometry of the partition, followed by the IPL or
        initial program loader, a small program that locates,
        loads to memory, and then executes the partition's
        startup code. </strong></font></p>
        <p align="center"><font size="4" face="Arial"><strong><img
        src="bootsectdump.gif" width="463" height="386"></strong></font></p>
        <p align="center"><font size="2" face="Arial"><strong>HEX/ASCII
        dump of NTFS Boot Sector</strong></font></p>
        <p align="center"><font size="4" face="Arial"><strong>Table
        - The BIOS Parameter Block</strong></font></p>
        <div align="center"><center><table border="1"
        cellspacing="1" width="80%" bordercolor="#0000FF">
            <tr>
                <td align="center" valign="top" width="25%"><font
                size="4" face="Arial"><strong>Byte Offset</strong></font></td>
                <td align="center" width="25%"><font size="4"
                face="Arial"><strong>Field Length</strong></font></td>
                <td align="center" width="25%"><font size="4"
                face="Arial"><strong>Sample Value</strong></font></td>
                <td align="center" width="25%"><font size="4"
                face="Arial"><strong>Field Name</strong></font></td>
            </tr>
            <tr>
                <td align="center" valign="top" width="25%"><font
                size="3" face="Arial"><strong>0x0B</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>Word</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x0002 (512)</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>Bytes per Sector</strong></font></td>
            </tr>
            <tr>
                <td align="center" valign="top" width="25%"><font
                size="3" face="Arial"><strong>0x0D</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>Byte</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x08</strong></font></td>
                <td align="center" width="25%"><font
                color="#FF0000" size="3" face="Arial"><strong>Sectors
                per Cluster</strong></font></td>
            </tr>
            <tr>
                <td align="center" valign="top" width="25%"><font
                size="3" face="Arial"><strong>0x0E</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>Word</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x000</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>Reserved Sectors</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x10</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>3 Bytes</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x000000</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>reserved</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x13</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>Word</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x0000</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>not used</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x15</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>Byte</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0xF8</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>Media Descriptor</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x16</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>Word</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x0000</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>reserved</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x18</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>Word</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x3F00 (63)</strong></font></td>
                <td align="center" width="25%"><font
                color="#FF0000" size="3" face="Arial"><strong>Sectors
                per Track</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x1A</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>Word</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0xFF00 (255)</strong></font></td>
                <td align="center" width="25%"><font
                color="#FF0000" size="3" face="Arial"><strong>Number
                of Heads</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x1C</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>DWord</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x3F000000 (63)</strong></font></td>
                <td align="center" width="25%"><font
                color="#FF0000" size="3" face="Arial"><strong>Hidden
                Sectors</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x20</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>DWord</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x00000000</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>not used</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x24</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>DWord</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x00800080</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>not used</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x28</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>QWord</strong></font></td>
                <td align="center" width="25%"><font size="2"
                face="Arial"><strong>0x00000000009C25FD</strong></font></td>
                <td align="center" width="25%"><font
                color="#FF0000" size="3" face="Arial"><strong>Total
                Sectors</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x30</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>QWord</strong></font></td>
                <td align="center" width="25%"><font size="2"
                face="Arial"><strong>0x0000000000000004</strong></font></td>
                <td align="center" width="25%"><font
                color="#FF0000" size="3" face="Arial"><strong>$MFT
                Start Cluster</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x38</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>QWord</strong></font></td>
                <td align="center" width="25%"><font size="2"
                face="Arial"><strong>0x000000000009C25F</strong></font></td>
                <td align="center" width="25%"><font
                color="#FF0000" size="2" face="Arial"><strong>$MFTmirr
                Start Cluster</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x40</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>DWord</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x000000F6</strong></font></td>
                <td align="center" width="25%"><font
                color="#FF0000" size="3" face="Arial"><strong>Clusters
                per FRS</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x44</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>DWord</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x00000001</strong></font></td>
                <td align="center" width="25%"><font
                color="#FF0000" size="3" face="Arial"><strong>Cluster
                per Index</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x48</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>QWord</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0xD83AEE5E98D83B12</strong></font></td>
                <td align="center" width="25%"><font
                color="#FF0000" size="3" face="Arial"><strong>Volume
                Serial Number</strong></font></td>
            </tr>
            <tr>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x50</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>DWord</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>0x00000000</strong></font></td>
                <td align="center" width="25%"><font size="3"
                face="Arial"><strong>CRC</strong></font></td>
            </tr>
        </table>
        </center></div></td>
    </tr>
</table>
</center></div><div align="center"><center>

<table border="0" cellpadding="5" cellspacing="5" width="80%"
bgcolor="#FFFFFF">
    <tr>
        <td width="100%"><font color="#FF0000" size="3"
        face="Arial"><strong>Note</strong></font><font size="3"
        face="Arial"><strong>: The values Clusters per FRS (File
        Record Segment) and Clusters per Index will be negative
        in the case where the sectors per cluster is greater than
        size of the FRS or Index record. In the case described
        here the value in the Clusters per FRS field is F6h or
        -10. The actual size of the record is then calculated as
        2 ^ (-1 * -10) or 1024 bytes.</strong></font><p><font
        size="3" face="Arial"><strong>The IPL begins by
        determining whether or not the active partition begins
        outside the 8GB boundry. If it does, the IPL must use the
        BIOS LBA extensions to read from the disk. It uses CHS
        addressing otherwise (only the first 8GB of a hard disk
        can be addressed via CHS).</strong></font></p>
        <p><font size="3" face="Arial"><strong>Having the
        addressing mode, the IPL then reads the initial 16
        sectors of $Boot, which includes a copy of the boot
        sector itself plus the extended part of the IPL, to
        memory at 0D00h:0000h, then continues execution at
        0D00h:026Ah.</strong></font></p>
        <p><font size="3" face="Arial"><strong>The code in the
        extended part of the IPL has the job of locating and
        starting NTLDR. This requires reading the Master File
        Table to locate the root index (ie, root directory),
        finding the NTLDR entry in the root index, reading
        NTLDR's file record segment from the Master File Table,
        then loading NTLDR to memory and jumping into it.</strong></font></p>
        <p align="center"><font color="#FF0000" size="4"
        face="Arial"><strong>Problems Involving the Boot Sector</strong></font></p>
        <p align="left"><font color="#000000" size="3"
        face="Arial"><strong>The most common boot sector-related
        problem is an overwritten boot sector. NTFS partitions on
        Windows 2000 &amp; XP systems have a backup boot sector
        stored in last sector of the partition, and the backup
        can be used to replace a damaged primary boot sector. For
        example, here is the procedure used to </strong></font><a
        href="recover_boot_sector.html"><font color="#0000FF"
        size="3" face="Arial"><strong>replace a damaged boot</strong></font></a><font
        color="#000000" size="3" face="Arial"><strong> sector
        with BootMaster. Also, the Windows Recovery Console
        command FIXBOOT will replace the $Boot metadata file,
        inlcuding the boot sector.</strong></font></p>
        <p align="left"><font color="#000000" size="3"
        face="Arial"><strong>In rather rare cases both the boot
        sector and its backup are corrupted. Sometimes this
        situation is complicated by the presence of a FAT12 boot
        sector in the place of the NTFS boot sector. The presence
        of the FAT12 boot sector is a &quot;feature&quot; of
        FIXBOOT. It writes the FAT12 boot sector into place,
        apparently, when the partition is damaged in a way that
        prevents it from reliably writing an NTFS boot sector. At
        any rate, the boot sector must be rebuilt from scratch,
        regardless of whether or not the FAT12 boot sector is
        present.</strong></font></p>
        <p align="left"><font color="#000000" size="3"
        face="Arial"><strong>Our method for doing this is to
        install a boot sector template, then obtain and fill in
        the values which are given in red in the BIOS Parameter
        Block table above. The needed values are obtained from
        the BootMaster Diagnostics report and from a supplemental
        report created by the utility FINDMFT.EXE which we
        provide free for customers in those cases where it is
        needed.</strong></font></p>
        <p align="left"><font color="#000000" size="3"
        face="Arial"><strong>Note that rebuilding the boot sector
        in this way is not neccessarily sufficient to recover a
        partition that is internally damaged, but it is worth
        doing as a preparation for recovering files from the
        damaged partition.</strong></font></p>
        </td>
    </tr>
</table>
</center></div><div align="center"><center>

<table border="0" cellpadding="5" cellspacing="5" width="80%"
bgcolor="#FFFFFF">
    <tr>
        <td width="100%"><p align="center"><font color="#FF0000"
        size="4" face="Arial"><strong>Disassembly of NTFS
        Partition Boot Sector</strong></font></p>
        <p><font size="3" face="Arial"><strong>For readers with
        an interest in technical details, here is a disassembly
        of the NTFS Boot Sector. I have disassembled the actual
        boot sector (the initial 512 bytes of $Boot), but not the
        extended IPL code which reads from the Master File Table
        in order to locate NTLDR in the partition's root
        directory.</strong></font></p>
        <p><font size="3" face="Arial"><strong>The boot sector
        begins with a jump over the BPB area to the IPL's entry
        point.</strong></font></p>
        <p><font size="3" face="Arial"><strong></strong></font>&nbsp;</p>
        <pre><font size="4"><strong>07C0:0000      jmp 052h            ; jump to IPL entry point
07C0:0002      90h                 ; nop
</strong></font></pre>
        <div align="left"><pre><font size="4"><strong>                       </strong></font><font
color="#FF0000" size="4"><strong>BIOS PARAMETER BLOCK</strong></font><font
size="4"><strong>
</strong></font></pre>
        </div><pre><font size="4"><strong>07C0:0003     db &quot;NTFS    &quot;        ; OEM
07C0:000B     dw 0200h (512)       ; Bytes per sector
07C0:000D     db 08h               ; Sectors per cluster
07C0:000E     dw 0h                ; Reserved Sectors
07C0:0010     db 0h DUP(3)         ; undefined - always 0
07C0:0013     dw 0h                ; not used
07C0:0015     db 0F8h              ; Media Type
07C0:0016     dw 0h                ; undefined - always 0
07C0:0018     dw 03Fh (63)         ; Sectors per track
07C0:001A     dw 0FFh (255)        ; Heads 
07C0:001C     dd 03fh (63)         ; Hidden Sectors
07C0:0020     dd 0h                ; not used
07C0:0024     dd 80008000h         ; not used
07C0:0028     qw 9C25FDh (10233341); Total Sectors
07C0:0030     qw 04h               ; MFT start cluster
07C0:0038     qw 9C25Fh (639583)   ; MFT mirror start cluster
07C0:0040     dd 0F6h              ; Clusters per FRS
07C0:0044     dd 01h               ; Clusters per index
07C0:0048     qw D83AEE5E98D83B12h ; Volume serial number
07C0:0050     dd 0h                ; CRC
</strong></font></pre>
        <pre><font size="4"><strong>                          </strong></font><font
color="#FF0000" size="4"><strong>IPL ENTRY POINT</strong></font><font
size="4"><strong>
</strong></font></pre>
        <pre><font size="4"><strong>07C0:0054      cli                     ; disable interrupts
07C0:0055      xor     ax, ax          ; ax = 0
07C0:0057      mov     ss, ax          ; stack segment = 0
07C0:0059      mov     sp, 7C00h       ; stack @ 0:7C00
07C0:005C      sti                     ; enable interrupts
07C0:005D      mov     ax, 7C0h        ;
07C0:0060      mov     ds, ax          ; data segment = 07C0</strong></font></pre>
        <pre><font size="4"><strong>07C0:0062      call    007B            ; calculate drive's total sectors</strong></font></pre>
        <pre><font size="4"><strong>07C0:0065      mov     ax, 0D00h       ;
07C0:0068      mov     es, ax          ; es = 0D00h
07C0:006A      xor     bx, bx          ; zero bx
07C0:006C      mov     b(ds:0Eh), 10h ; store read count index
07C0:0071      call    00C7            ; go read the disk
</strong></font></pre>
        <div align="center"><center><pre><font color="#FF0000"
size="4"><strong>JUMP INTO IPL EXTENSION</strong></font></pre>
        </center></div><pre><font size="4"><strong>07C0:0074      push    0D00h           ; segment for retf
07C0:0077      push    26Ah            ; offset for retf
07C0:007A      retf                    ; jump into extended IPL
</strong></font></pre>
        <div align="center"><center><pre><font size="4"><strong>   </strong></font><font
color="#FF0000" size="4"><strong>CALCULATE TOTAL SECTORS ON DRIVE</strong></font><font
size="4"><strong>
</strong></font></pre>
        </center></div><pre><font color="#400040" size="4"><strong>; Note that this routine uses the old interrupt 13, function 8 (&quot;Get Drive
; Parameters&quot;), which is limitied to a maximum cylinder count of 1023, so
; the total sector count will be 16450560 (8 GB) for drives larger than 8GB.
; The IPL uses this count to determine if the active partition begins
; beyond the 8GB point, in which case it will use it will use the interrupt
; 13 LBA extensions to read the drive. Otherwise, CHS addressing is used.</strong></font></pre>
        <pre><font size="4"><strong>07C0:007B      mov     dl, ds:24h      ; load BIOS drive number (80h) to dl
07C0:007F      mov     ah, 8           ; Function &quot;Get Hard Drive Parameters&quot;
07C0:0081      int     13h             ; call BIOS disk service</strong></font></pre>
        <pre><font color="#400040" size="4"><strong>;This call returns the hard disk's CHS parameters in registers cx and
;dh as follows:
;               ch = low eight bits of maximum cylinder number
;               cl = maximum sector number (bits 5-0)
;                    high two bits of maximum cylinder number (bits 7-6)
;               dh = maximum head number
;
;Note that the maximum cylinders this call can return is 1023.</strong></font><font
color="#800080" size="4"><strong>
</strong></font></pre>
        <pre><font size="4"><strong>07C0:0083      jnb     07C0:008A       ; jump if no error</strong></font></pre>
        <pre><font size="4"><strong>07C0:0085      mov     cx, 0FFFFh      ; use dummy values for the calculation
07C0:0088      mov     dh, cl          ; below if an error occurs</strong></font></pre>
        <pre><font size="4"><strong>07C0:008A      movzx   eax, dh         ; max head number to eax...
07C0:008E      inc     ax              ; and increment
07C0:008F      movzx   edx, cl         ; max sector number and high 2 bits
                                       ; of max cylinder number
07C0:0093      and     dl, 3Fh         ; mask off high 2 - dx now has
                                       ; max sector number
07C0:0096      mul     dx              ; multiply (max sectors) * (max heads)
07C0:0098      xchg    cl, ch          ; get maximum...
07C0:009A      shr     ch, 6           ; cylinder number...
07C0:009D      inc     cx              ; in...
07C0:009E      movzx   ecx, cx         ; ecx
07C0:00A2      mul     ecx             ; result will be drive's total sectors
07C0:00A5      mov     ds:20h, eax     ; store the value in the BPB area
07C0:00A9      retn                    ; return
</strong></font></pre>
        <pre><font size="4"><strong>           </strong></font><font
color="#FF0000" size="4"><strong>TEST FOR INTERRUPT 13 LBA EXTENSIONS SUPPORT IN BIOS</strong></font><font
size="4"><strong>
</strong></font></pre>
        <pre><font size="4"><strong>07C0:00AA      mov     ah, 41h         ; int13 Extensions Installation check   
07C0:00AC      mov     bx, 55AAh       ; test pattern in
07C0:00AF      mov     dl, ds:24h      ; BIOS number of hard drive
07C0:00B3      int     13h             ; do interrupt
07C0:00B5      jb      07C0:00C6       ; jump if error
07C0:00B7      cmp     bx, 0AA55h      ; test pattern out
07C0:00BB      jnz     07C0:00C6       ; jump if pattern miscompare
07C0:00BD      test    cl, 1           ; are extended read/write supported?
07C0:00C0      jz      07C0:00C6       ; jump if not
07C0:00C2      inc     bp(ds:14h)      ; set marker
07C0:00C6      retn                    ; return
</strong></font></pre>
        <pre><font size="4"><strong>                    </strong></font><font
color="#FF0000" size="4"><strong>READ $BOOT (16 SECTORS) TO MEMORY</strong></font><font
size="4"><strong>
                         
07C0:00C7      pushad                  ; save 
07C0:00C9      push    ds              ; registers on
07C0:00CA      push    es              ; stack
07C0:00CB      mov     eax, ds:10h     ; sector counter - starts at zero
07C0:00CF      add     eax, ds:1Ch     ; hidden sectors
07C0:00D4      cmp     eax, ds:20h     ; ds:20 has drive's total sectors
07C0:00D9      jb      0117            ; jump if active partition start
                                       ; is not beyond 8GB point</strong></font></pre>
        <pre><font size="4"><strong>                            </strong></font><font
color="#FF0000" size="4"><strong>READ IN LBA MODE</strong></font></pre>
        <pre><font size="4"><strong>;Now read first 16 sectors of the NTFS partition (these sectors comprise
;the metadata file $Boot) using either LBA or CHS reads as determined
;above
</strong></font></pre>
        <pre><font size="4"><strong>07C0:00DD      push    ds              ; save ds on stack
</strong></font></pre>
        <pre><font size="4"><strong>;Here, the IPL builds a disk address packet on the stack (the packet is
;defined for LBA reads/writes via int 13 functions 42h and 43h). The
;format of the packet is...
;
;
;    Offset  Size    Description
;    ------  ----    -----------
;     00h    BYTE    10h (size of packet)
;     01h    BYTE    reserved (0)
;     02h    WORD    number of blocks to transfer 
;     04h    DWORD   pointer to transfer buffer
;     08h    QWORD   starting logical block address
;                                                                                                ;

</strong></font></pre>
        <pre><font size="4"><strong>07C0:00DE      push    large 0         ; address of 
07C0:00E1      push    eax             ;  sectors to read
07C0:00E3      push    es              ; read buffer is at
07C0:00E4      push    bx              ;  0D00:0000
07C0:00E5      push    large 10010h    ; read 1 sector, etc
</strong></font></pre>
        <pre><font size="4"><strong>07C0:00EB      cmp     bp(ds:14h), 0   ; byte is set if BIOS is LBA capable
07C0:00F0      jnz     0100            ; jump if LBA capable,
07C0:00F4      call    00AA            ; else do install check for LBA extns
07C0:00F7      cmp     bp(ds:14h), 0   ; recheck - LBA capable?
07C0:00FC      jz      0161            ; go print error msg if not
07C0:0100      mov     ah, 42h         ; set up for int 13 LBA read 
07C0:0102      mov     dl, bp[ds:24h]  ; BIOS drive number into dl
07C0:0106      push    ss              ; ss on stack (ss = 0h)
07C0:0107      pop     ds              ; ds:si = address of packet
07C0:0108      mov     si, sp          ;  buffer (0:7C00)
07C0:010A      int     13h             ; perform read
07C0:010C      pop     eax             ; clean up
07C0:010E      pop     bx              ;    .
07C0:010F      pop     es              ;    .
07C0:0110      pop     eax             ;    .
07C0:0112      pop     eax             ;    .
07C0:0114      pop     ds              ; the stack   
07C0:0115      jmp     0144h           ; set up to read next sector
</strong></font></pre>
        <pre><font size="4"><strong>                               </strong></font><font
color="#FF0000" size="4"><strong>READ IN CHS MODE  
</strong></font></pre>
        <pre><font size="4"><strong>;on entry eax = number of hidden sectors.
</strong></font></pre>
        <pre><font size="4"><strong>07C0:0117      xor     edx, edx        ; zero edx
07C0:011A      movzx   ecx, wp(ds:18h) ; ecx = sectors per track
07C0:0120      div     ecx             ; (hidden sectors) / (sectors per track)
07C0:0123      inc     dl              ; increment remainder in dl
07C0:0125      mov     cl, dl          ; move to cl
                                       ; this is sector number for read
07C0:0127      mov     edx, eax        ; hidden sectors now in edx
07C0:012A      shr     edx, 10h        ;
07C0:012E      div     wp(ds:1Ah)      ; (hidden sectors) / (number of heads)
07C0:0132      xchg    dl, dh          ; remainder to dh
                                       ; this is head number for ead
07C0:0134      mov     dl, ds:24h      ; BIOS drive number (80h) in dl
07C0:0138      mov     ch, al          ; high 8 bits of cylinder number
07C0:013A      shl     ah, 6           ; shift hi 2 bits of cyl number
07C0:013D      or      cl, ah          ; or them to cl - now ready to read
07C0:013F      mov     ax, 201h        ; read 1 sector
07C0:0142      int     13h             ; do it

</strong></font></pre>
        <pre><font size="4"><strong>07C0:0144      jb      0161            ; jump if error
07C0:0148      mov     ax, es          ; move read buffer up
07C0:014A      add     ax, 20h         ;  by 512 bytes
07C0:014D      mov     es, ax          ;  to receive next sector
07C0:014F      inc     dp(ds:10h)      ; increment sector counter
07C0:0154      dec     wp(ds:0Eh)      ; decrement loop counter
07C0:0158      jnz     00CB            ; go read next sector
07C0:015C      pop     es              ; 16 sectors have been read...
07C0:015D      pop     ds              ; clean up
07C0:015E      popad                   ; and 
07C0:0160      retn                    ; return
</strong></font></pre>
        <pre><font size="4"><strong>                     </strong></font><font
color="#FF0000" size="4"><strong>ERROR MESSAGES PRINT ROUTINE
</strong></font></pre>
        <pre><font size="4"><strong>07C0:0161      mov     al, ds:1F8h     ; value is 83h
07C0:0164      call    0170h           ; print err msg
07C0:0167      mov     al, ds:1FBh     ; value is C9h
07C0:016A      call    sub_0_170       ; print err msg
07C0:016D      sti                     ; enable interrupts
07C0:016E      jmp     016Eh           ; hang (wait for CTL+ALT+DEL)
                                       ;
                                       ;
07C0:0170      mov     ah, 1           ;
07C0:0172      mov     si, ax          ; offset to start of msg
07C0:0174      lodsb                   ; get next char to print
07C0:0175      cmp     al, 0           ; test for end of msg
07C0:0177      jz      0182h           ; jump if done
07C0:0179      mov     ah, 0Eh         ; BIOS TTY output function
07C0:017B      mov     bx, 7           ; color wht on blk
07C0:017E      int     10h             ; print the character
07C0:0180      jmp     0174h           ; get next character
07C0:0182      retn                    ; return when done
</strong></font></pre>
        <pre><font size="4"><strong>                             </strong></font><font
color="#FF0000" size="4"><strong>ERROR MESSAGES</strong></font><font
size="4"><strong>
</strong></font></pre>
        <pre><font size="4"><strong>07C0:0183      db  &quot;A disk read error occurred&quot;
07C0:019F      db    0                 ;  
07C0:01A0      db  0Dh                 ; CR 
07C0:01A1      db  0Ah                 ; LF 
07C0:01A2      db  &quot;NTLDR is missing&quot;
07C0:01B2      db    0
07C0:01B3      db  0Dh                 ; CR
07C0:01B4      db  0Ah                 ; LF
07C0:01B5      db  &quot;NTLDR is compressed&quot;
07C0:01C8      db    0                 ;  
07C0:01C9      db  0Dh                 ; CR
07C0:01CA      db  0Ah                 ; LF
07C0:01CB      db  &quot;Press Ctrl+Alt+Del to restart&quot;
07C0:01E7      db    0
07C0:01E8      db  0Dh                 ; CR 
07C0:01E9      db  0Ah                 ; LF 
07C0:01EA      db    0 DUP (0Eh)       ;
07C0:01F8      db  83h                 ; these values are
07C0:01F9      db  A0h                 ; offsets to the 4
07C0:01FA      db  B3h                 ; text message strings
07C0:01FB      db  C9h                 ; which the IPL can print
07C0:01FC      db    0                 ;  
07C0:01FD      db    0                 ;  
</strong></font></pre>
        <pre><font size="4"><strong>                              </strong></font><font
color="#FF0000" size="4"><strong>SYSTEM SECTOR SIGNATURE</strong></font><font
size="4"><strong>
</strong></font></pre>
        <pre><font size="4"><strong>07C0:01FE      db  55h                 ; U
07C0:01FF      db  AAh                 ; ª</strong></font></pre>
        </td>
    </tr>
</table>
</center></div>
</body>
</html>
<!-- text below generated by server. PLEASE REMOVE --><!-- Counter/Statistics data collection code --><script language="JavaScript" src="http://us.js2.yimg.com/us.js.yimg.com/lib/smb/js/hosting/cp/js_source/whv2_001.js"></script><script language="javascript">geovisit();</script><noscript><img src="http://visit.webhosting.yahoo.com/visit.gif?us1279237546" alt="setstats" border="0" width="1" height="1"></noscript>
------------gQlR8gE7Mu6u75w3azkq8w
Content-Disposition: inline; filename=bmlogoblue.jpg
Content-Type: image/jpeg; name=bmlogoblue.jpg
Content-Location: http://bootmaster.filerecovery.biz/bmlogoblue.jpg
Content-Transfer-Encoding: Base64

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

------------gQlR8gE7Mu6u75w3azkq8w
Content-Disposition: inline; filename=bootsectdump.gif
Content-Type: image/gif; name=bootsectdump.gif
Content-Location: http://bootmaster.filerecovery.biz/bootsectdump.gif
Content-Transfer-Encoding: Base64

R0lGODdhzwGCAecAAAAAAADCAAD/AMKBwsLCgcLCwqHS//+y////kf///wAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACwAAAAAzwGCAQAI/gATCCwgsKDBgwgTKlzIsKHDhxAjSpxI
saLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJMmMAATBjypxJs6bNmzhz6twpwIDP
n0CDCh1KtKjRo0iTKl3K9CiCp1CjSp1KtarVq1izWm3JtatBnmDDih27s6nZs2jT
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
CtzEcSy7EC2K1ivhoj2sMJ3h+UnSy6jhHi6fHI6fHz7i6hniIk7iKN6d/zk3B5bi
Lr6dDduKGaHRKnzOdluz2yipUD2+R82hIcu97oy36wvP9pzfAJ7ZUZ159F3EKdvT
PeyxIvq8K2p00vmSXv2kmxgReRzNUIjMZKrNhtq73e27yXzbYri7ezvXpRzb0h3N
U8vFOpirMk7Hu8qDM66xV6zbHVt//vmM3cqbyKzsuWauqDXM2+1bm1761tzttthc
3648usDHup4qwOk9tHM8kCt6n+d8u7Ss1sX7ztZ8umg+6Nk8t1tb14zM3YvcznBr
pK0tqJCZ5jnI2brspJP+1y7pkskdpc/ms1tuuaRKzZJNy4bNmGhd11i75tD8u2Zs
1vLt56TOhLFsy28u5Sls63xNldK73tweuw4xoDj+wvpsz0y+sezrvfgt6BKK6IiN
rTq87lCenAhO10nO6oT76g5q5HsoUOaK1cCMvw+dyT9b0z8bnUSmQS+e8M8o6V+n
8A5vsCYeEg8/8cQY8SBB8Rjfi53Dy0KT8R6fixtP8KyC00qt/tMKnogJHnt3e609
rr0ArtOHDqdNre/AOeAxb7dQLeRH3JSLxpWXHMyQRo0DzOmDncVJauqbK8bCu9m7
/arLfuzGTMauru7IfrnGfs22TYB7md7UuMIofOd4jKrATryhjr7MS5xiDrVeG+tH
Xr5Qn+TDF8T47uxsy7uofO+mx5xybNxDVYFia96eY9xHG/Vtuo+VGq7RfsuVSfNu
LeuurfiLf+pijJmzDatkfvmRrnfVtdcyN8wBShHYS/SEv7euHtnePdiJXd2wrPZl
zuV2X/ZN7+lL3/qY33xTWedUft5iW+N7pxAkT6FsnOD3zrc0v+8/be/mjvc27+RA
vtTZ/mH2y4/v8/6+Br7y5duPPCZkRevZa1SQVMxGCs39oe37H1/+sVjCTwOx5r/+
qNjzNN7ZHsH+8l93Fv8R83//cVf/8Y///F92+s/CAFGgAAAAAgUSPEiwoEGEBh0+
dNgwIcSICxNahChxoMaMGDk+VMjwY8WLGDtWNAnSY0qSIim23BiSosaRMDe+nOgS
582YNWOKZHlRZ4EERY0eRZpU6VKmTY0SdBpV6lSmUJ82PZh1oNaFXbXuZMj1K8iv
QSOG3frSa1qzJs2KZau2LNi1azPCbTs3Ldm4e+/6zdv37V67f9HiTGmR6mLGVRs/
hnx1MV7KfcHCPcy3q0+9O+uO/kUJ9DJbn3U56w362a/moTPdjrZYMHVlxK07xi5N
M21k3lIVAjgKvLdT4VN/Fz2+tLLqwnTHBlYtF/RM2qwtS79+VrBn7bO3S4/NnTDs
0NS/155uvTla3AuHv19aHP784ErlI12ef/R379HNrzbPv+4w+0tA9gjk68AAERww
PQUHO48l5pxjUL8C56Ivw/syhG/DBDwsqrWGfrMJtpU8aw8xEn9SscTyWGyxJxRF
U1EizmgazMYb23tLR55Osk2l31a8jUbXcLuJw6fkswo5JotLDrngQFxySqSYvPLJ
JZuUUrn9vgQzTDHHJLNMM89EM00112QTLCXfpDKyOOVk/qpNO+/EM0899+SzTzvf
VHLOxwRdLMqk/EQ0UUUXZbTRRAGFNFJIHaW0UksvxXRRSTfl9L1MPwU1VFFHhahT
U0+djFRVV2W11TtRhZWqIZUUcTOZftwPRxRTVMvHGY0sMqcagRUySJVctOk0XWMU
tldkdRryV2Ob3REmU6EyNEsusSWUsW5502/CXKtL0MHM1lMQwHLRzUxd7Sp8l11x
F2y3QXb5Aw/ec92dVz2tOsXyw/i6FFiy+YaE8tuowvXI3AuzM/JW19J9WGIg3w0W
xoxxxU5echs0t9+L7+UKwvH4/Vg/TpMTjsomWeayN4SvhC9c68g7z193H0TPwHXF
/vMZX/EgtvDhkFMu2jCTCSPSXgfFBXhKQaGsr+D34oz5MZtzpjBokXne+euknUaZ
a6WfRvo66PQVW2j0MCa7P7iiNnhgqwNWOCoQ866TWlt9/XLZI4k9dtqhLC682YwR
B3ZHmao1XNhoJ44cV8gnP1LH1E5k9kdAX1bow5hBT5hb4KzaVssqtW35vtStVMpV
2WenvXaKYsU99wRs571330HVPfhTfye+eOP7FD75TY9nvnnny1Q+ekCfp7566x+S
vmpZs1W+VqBGXPrwppPN7UXKFf8eyV4Fvw0hzC/muPD34Y/fe2nrF59xxXNT39mh
stde6OwGwKNYyCskuxm6/uzSo7S1rW1uqxjazDa2n8mNaBS0jMfGExi4xU0gBLTP
3ma1OuEZMDw7Mxrk0Ac2oMGLI44zDPyUdcIcrfBsZQsaBEE2Q4qZL2yVAeHo4jNC
7QUqa7FzW8NQmMAWdjBtYPNOD0GGwtc0kWQnvAyPJNRApC2wayXZImB6NjcAwsxl
xOFboaRiwCl+0WEO1BcU83VBHcKthhOsY7kkmEM4nmyMTlTbH9dCQL6dEU4CdIr9
NHaakakQf37rEefa17/2PQtG+lMk5eaHEs35z4aZbGSO3DKSW23Sbwb5HNVO5yTY
OcllrkPk6FTHShIKrHUCPOLurrdLXhoPhIS0GmN6/jlMYtbul2UMZqqKuUxmiuqY
zxRmM6U5zUrFapW6S2NkqLlNbiIKd1PTEM1MlUn20cViKnQkDwlnm3RG0oeJMyVP
xickwBVpnol75CVh+Mmf3DN/7pFUlLi3pYPdLZes5FYt1xhIDNJrK3nx2nOyCEjM
yEaQb6QoxhT4xM9YEIE0fJvDJPpDKaosUOJsGcHEGSms1SdgqSoMSOm4uD1mVDd3
1Nh/7vVApkFIkufDpOQkWNIObo5XnUNnaUAD0IC+zjEya6VKWVe3ZC40pnIcF2kY
NzkG9pRCdFyJ/ngq05B2NYeAuWcVcXo0PJLtog7dy8qkirVsBjOlVF3pXBtD/iCZ
IrCNdwRsZ3Q6VD168G0ftSlH/6NHxLqQi3jsoxKJsqm73jUpiBxU1V5qH5cWcSr/
3IwlK/lO0fjzR+4zKmrbIjFMlpOTsnGcan9l2pyKVbWRfNxqj+rJfILPkXFtKumi
Csvhuq64CdvS6ZRL1YOGqJvPhW6bgnjM5iIxutfF7pigud2FZte7390Jd8XbN/CW
17yTHS9k6jqf87b3u+nlzXo9dUpQZrGT64tcKffZWy1mDraXC6o+V2vJpu03qJr7
CJFo69vy5VeSkEro6xI6MLrWUpbjZOhh/GrHr4K1sDG8YhuxGkEqfnjEJOagSL2o
rgeOlahQg1Nn63ZN/vVqtktUG16GURO4+/KWf+skX4fbidOd9jikJJXs4m5UFt3G
UD0+JTAQjfgyqeG4KqW7pXELluUB0oevCdpwQ7v4RMXWi7FsZVuZzZwus6bZj3Bt
8xJ3TK9BxtizWh7iQTeEYyt36svxEqlhUTzHnap5iX0kah4V3daGrniOGGU0WXXG
VA5habM0vqzebLxlvEoKtD0JLY93K8MmC+V+/JPt+m5bo//iFsj0zdz38GtqZtn2
heYEo6pD7WPFTHm5qAvdhEUntTwjl4QCFWFxu+teZj8Xvs/WZbOlvU1ow3fa155m
tdOLbW4v85eqzGtB39RtcvfSmpimWZ9tGU7P/vaGnD810ajTJyP/8hNhptUvrh1M
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
SiYWUmZlcsZlvplnzt5m3kRAAAA7

------------gQlR8gE7Mu6u75w3azkq8w
Content-Disposition: inline; filename=whv2_001.js
Content-Type: application/x-javascript; charset=iso-8859-1; name=whv2_001.js
Content-Location: http://us.js2.yimg.com/us.js.yimg.com/lib/smb/js/hosting/cp/js_source/whv2_001.js
Content-Transfer-Encoding: Base64

dmFyIHljc2RvbmU7CmZ1bmN0aW9uIGdlb3Zpc2l0KCkKewogIHZhciB6OwogIGlm
ICh5Y3Nkb25lKQogICAgcmV0dXJuOwogIHo9IiZyPSIrZXNjYXBlKGRvY3VtZW50
LnJlZmVycmVyKTsKICB6PXorIiZiPSIrZXNjYXBlKG5hdmlnYXRvci5hcHBOYW1l
KyIgIituYXZpZ2F0b3IuYXBwVmVyc2lvbik7CiAgdz1wYXJzZUZsb2F0KG5hdmln
YXRvci5hcHBWZXJzaW9uKTsKICBpZiAodyA+IDIuMCkgewogICAgej16KyImcz0i
K3NjcmVlbi53aWR0aCsieCIrc2NyZWVuLmhlaWdodDsKICAgIHo9eisiJm89Iitu
YXZpZ2F0b3IucGxhdGZvcm07CiAgICB2PSIxLjIiOwogICAgaWYgKG5hdmlnYXRv
ci5hcHBOYW1lICE9ICJOZXRzY2FwZSIpIHsKICAgICAgej16KyImYz0iK3NjcmVl
bi5jb2xvckRlcHRoOwogICAgfSBlbHNlIHsKICAgICAgej16KyImYz0iK3NjcmVl
bi5waXhlbERlcHRoCiAgICB9CiAgICB6PXorIiZqPSIrbmF2aWdhdG9yLmphdmFF
bmFibGVkKCk7CiAgfSBlbHNlIHsKICAgIHY9MS4wOwogIH0KICB6PXorIiZ2PSIr
djsKICBkb2N1bWVudC53cml0ZWxuKCI8aW1nIGJvcmRlcj1cIjBcIiBzdHlsZT1c
ImRpc3BsYXk6bm9uZVwiIHNyYz1cImh0dHA6Ly92aXNpdC53ZWJob3N0aW5nLnlh
aG9vLmNvbS92aXNpdC5naWY/Iit6KyJcIj4iKTsKICB5Y3Nkb25lPTE7Cn0K

------------gQlR8gE7Mu6u75w3azkq8w--
