Ignore:
Timestamp:
Aug 23, 2010, 6:57:51 PM (14 years ago)
Author:
aitotat
google:author:
aitotat
Message:

OS hooks are now enabled for all builds.
IRQ waiting no longer uses HLT instruction to fix some EMM386 and VCPI issues.

File:
1 edited

Legend:

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

    r28 r34  
    22; Project name  :   IDE BIOS
    33; Created date  :   15.12.2009
    4 ; Last update   :   1.8.2010
     4; Last update   :   23.8.2010
    55; Author        :   Tomi Tilli
    66; Description   :   IDE Status Register polling functions.
     
    2525ALIGN JUMP_ALIGN
    2626HStatus_WaitIrqOrRdy:
    27     test    BYTE [bx+DPT.bDrvCtrl], FLG_IDE_CTRL_nIEN
    28     jnz     SHORT .PollRdySinceInterruptsAreDisabled
    29     jmp     HIRQ_WaitIRQ
    30 
    31 ALIGN JUMP_ALIGN
    32 .PollRdySinceInterruptsAreDisabled:
     27    call    HIRQ_WaitForIRQ
     28    jnc     SHORT .PollRdySinceNoWaitingOnOsHook
     29    jmp     HError_ProcessErrorsAfterPollingBSY
     30
     31ALIGN JUMP_ALIGN
     32.PollRdySinceNoWaitingOnOsHook:
    3333    mov     cl, B_TIMEOUT_DRQ               ; Load DRQ (not RDY) timeout
    3434    jmp     SHORT HStatus_WaitRdy           ; Jump to poll RDY
     
    5050ALIGN JUMP_ALIGN
    5151HStatus_WaitIrqOrDrq:
    52     test    BYTE [bx+DPT.bDrvCtrl], FLG_IDE_CTRL_nIEN
    53     jnz     SHORT .PollDrqSinceInterruptsAreDisabled
    54     jmp     HIRQ_WaitIRQ
    55 
    56 ALIGN JUMP_ALIGN
    57 .PollDrqSinceInterruptsAreDisabled:
     52    call    HIRQ_WaitForIRQ
     53    jnc     SHORT .PollDrqSinceNoWaitingOnOsHook
     54    jmp     HError_ProcessErrorsAfterPollingBSY
     55
     56ALIGN JUMP_ALIGN
     57.PollDrqSinceNoWaitingOnOsHook:
    5858    push    dx
    5959    push    cx
Note: See TracChangeset for help on using the changeset viewer.