Ignore:
Timestamp:
Mar 27, 2012, 5:01:57 PM (12 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Errors from AH=9h are stored to DPTs again.
  • XT build fits in 8k again.
File:
1 edited

Legend:

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

    r294 r365  
    4040;       CF:     0 if successful, 1 if error
    4141;   Corrupts registers:
    42 ;       AL, BX, CX, DX
     42;       AL, CX, DX
    4343;--------------------------------------------------------------------
    4444AH24h_SetBlockSize:
     45    push    bx
     46
    4547    push    ax
    46     xchg    dx, ax          ; DL = Block size (Sector Count Register)
    47     or      BYTE [di+DPT.bFlagsHigh], FLGH_DPT_BLOCK_MODE_SUPPORTED ; Assume success
     48    xchg    dx, ax      ; DL = Block size (Sector Count Register)
    4849    mov     al, COMMAND_SET_MULTIPLE_MODE
    4950    mov     bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_DRDY, FLG_STATUS_DRDY)
    5051    call    Idepack_StoreNonExtParametersAndIssueCommandFromAL
    5152    pop     bx
    52     jnc     .StoreBlockSize
    53     mov     bl, 1   ; Disable block mode
    54     and     BYTE [di+DPT.bFlagsHigh], ~FLGH_DPT_BLOCK_MODE_SUPPORTED
    55 .StoreBlockSize:    ; Store new block size to DPT and return
    56     mov     [di+DPT_ATA.bSetBlock], bl
     53    jnc     SHORT .StoreBlockSize
     54    mov     bl, 1       ; Block size 1 will always work
     55.StoreBlockSize:        ; Store new block size to DPT and return
     56    mov     [di+DPT_ATA.bBlockSize], bl
     57
     58    pop     bx
    5759    ret
Note: See TracChangeset for help on using the changeset viewer.