Changeset 173 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers


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).
Location:
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH8h_HParams.asm

    r150 r173  
    5858ALIGN JUMP_ALIGN
    5959AH8h_GetDriveParameters:
    60     call    AccessDPT_GetLCHSfromPCHS   ; AX=sectors, BX=cylinders, DX=heads
     60    call    AccessDPT_GetLCHS       ; AX=sectors, BX=cylinders, DX=heads
    6161    ; Fall to .PackReturnValues
    6262
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH9h_HInit.asm

    r170 r173  
    9494
    9595    ; Initialize Logical Sectors per Track and Max Head number
    96     mov     ah, [di+DPT.bPchsHeads]
     96    mov     ah, [di+DPT.bHeads]
    9797    dec     ah                          ; Max Head number
    98     mov     dl, [di+DPT.bPchsSectors]   ; Sectors per Track
     98    mov     dl, [di+DPT.bSectors]       ; Sectors per Track
    9999    mov     al, COMMAND_INITIALIZE_DEVICE_PARAMETERS
    100100    mov     bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_BSY, FLG_STATUS_BSY)
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Address.asm

    r165 r173  
    8383    ; LHead / PHeadCount and LHead % PHeadCount
    8484    eMOVZX  ax, bh                  ; Copy L-CHS Head number to AX
    85     div     BYTE [di+DPT.bPchsHeads]; AL = LHead / PHeadCount, AH = LHead % PHeadCount
     85    div     BYTE [di+DPT.bHeads]    ; AL = LHead / PHeadCount, AH = LHead % PHeadCount
    8686    mov     bh, ah                  ; Copy P-CHS Head number to BH
    8787    xor     ah, ah                  ; AX = LHead / PHeadCount
     
    124124    ; cylToSeek*headsPerCyl (18-bit result)
    125125    mov     ax, cx                  ; Copy Cylinder number to AX
    126     eMOVZX  dx, BYTE [di+DPT.bLchsHeads]
     126    eMOVZX  dx, BYTE [di+DPT.bHeads]
    127127    mul     dx                      ; DX:AX = cylToSeek*headsPerCyl
    128128
     
    133133
    134134    ; *=sectPerTrack (18-bit by 6-bit multiplication with 24-bit result)
    135     eMOVZX  cx, BYTE [di+DPT.bPchsSectors]  ; Load Sectors per Track
     135    mov     cx, LBA_ASSIST_SPT      ; Load Sectors per Track
    136136    xchg    ax, dx                  ; Hiword to AX, loword to DX
    137137    mul     cl                      ; AX = hiword * Sectors per Track
Note: See TracChangeset for help on using the changeset viewer.