Changeset 173 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Inc


Ignore:
Timestamp:
Sep 18, 2011, 11:41:29 AM (13 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • L-CHS parameters are now generated differently for LBA enabled drives.
  • Booting to EBIOS partitions now seems to work (at least on one drive).
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Inc/CustomDPT.inc

    r165 r173  
    66
    77; Base DPT for all device types
    8 struc DPT   ; 8 bytes
     8struc DPT   ; 10 bytes
    99    ; General Disk Parameter Table related
    1010    .wFlags:
     
    1212    .bFlagsHigh                 resb    1
    1313    .bIdevarsOffset             resb    1   ; Offset to IDEVARS for this drive
    14 
    15     ; L-CHS to P-CHS and L-CHS to LBA28 conversion related
    16     .bLchsHeads                 resb    1   ; Number of L-CHS Heads (1...255)
     14                                resb    1
    1715
    1816    ; IDE Drive related
    19     .wPchsCylinders             resb    2   ; Number of P-CHS (IDE) Cylinders (1...16383)
    20     .wPchsHeadsAndSectors:
    21     .bPchsHeads                 resb    1   ; Number of P-CHS (IDE) Heads (1...16)
    22     .bPchsSectors               resb    1   ; Number of P-CHS (IDE) Sectors per Track (1...63)
     17    .dwCylinders                resb    4   ; Number of Cylinders
     18    .wHeadsAndSectors:
     19    .bHeads                     resb    1   ; Number of Heads (1...255)
     20    .bSectors                   resb    1   ; Number of Sectors per Track (1...63)
    2321endstruc
    2422
    2523; DPT for ATA devices
    26 struc DPT_ATA   ; 8 + 2 bytes = 10 bytes
     24struc DPT_ATA   ; 10 + 2 bytes = 12 bytes
    2725    .dpt                        resb    DPT_size
    2826
     
    6159ADDRESSING_MODE_LBA48           EQU     3   ; 48-bit LBA Addressing Mode
    6260
     61; Number of Sectors per Track is fixed to 63 for LBA assist calculation.
     62; 1024 cylinders, 256 heads, 63 sectors = 8.4 GB limit (but DOS does not support more than 255 heads)
     63MAX_LCHS_CYLINDERS              EQU     1024
     64LBA_ASSIST_SPT                  EQU     63
     65
    6366
    6467%endif ; CUSTOMDPT_INC
Note: See TracChangeset for help on using the changeset viewer.