Changeset 238 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeWait.asm


Ignore:
Timestamp:
Feb 5, 2012, 12:59:20 PM (12 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Makefile now builds small (8k) and large versions.
  • Completely untested support for JR-IDE/ISA.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeWait.asm

    r160 r238  
    1616;       AL, BX, CX, DX
    1717;--------------------------------------------------------------------
    18 IdeWait_IRQorDRQ:
     18IDEDEVICE%+Wait_IRQorDRQ:
    1919    mov     bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_DRQ, FLG_STATUS_DRQ)
     20%ifdef ASSEMBLE_SHARED_IDE_DEVICE_FUNCTIONS     ; JR-IDE/ISA does not support IRQ
    2021    test    BYTE [bp+IDEPACK.bDeviceControl], FLG_DEVCONTROL_nIEN
    21     jnz     SHORT IdeWait_PollStatusFlagInBLwithTimeoutInBH ; Interrupt disabled
     22    jnz     SHORT IDEDEVICE%+Wait_PollStatusFlagInBLwithTimeoutInBH ; Interrupt disabled
     23%endif
    2224    ; Fall to IdeWait_IRQorStatusFlagInBLwithTimeoutInBH
    2325
     
    3537;       AL, BX, CX, DX
    3638;--------------------------------------------------------------------
    37 IdeWait_IRQorStatusFlagInBLwithTimeoutInBH:
     39IDEDEVICE%+Wait_IRQorStatusFlagInBLwithTimeoutInBH:
     40%ifdef ASSEMBLE_SHARED_IDE_DEVICE_FUNCTIONS     ; JR-IDE/ISA does not support IRQ
    3841    call    IdeIrq_WaitForIRQ
     42%endif
    3943    ; Always fall to IdeWait_PollStatusFlagInBLwithTimeoutInBH for error processing
    4044
     
    5256;       AL, BX, CX, DX
    5357;--------------------------------------------------------------------
    54 IdeWait_PollStatusFlagInBLwithTimeoutInBH:
     58IDEDEVICE%+Wait_PollStatusFlagInBLwithTimeoutInBH:
    5559    mov     ah, bl
    5660    mov     cl, bh
    5761    call    Timer_InitializeTimeoutWithTicksInCL
    5862    and     ah, ~FLG_STATUS_BSY
    59     jz      SHORT PollBsyOnly
     63    jz      SHORT IDEDEVICE%+PollBsyOnly
    6064    ; Fall to PollBsyAndFlgInAH
    6165
     
    7276;       AL, BX, CX, DX
    7377;--------------------------------------------------------------------
     78%ifdef ASSEMBLE_SHARED_IDE_DEVICE_FUNCTIONS
    7479PollBsyAndFlgInAH:
    75     call    ReadIdeStatusRegisterToAL           ; Discard contents for first read
     80    call    IDEDEVICE%+ReadIdeStatusRegisterToAL; Discard contents for first read
    7681ALIGN JUMP_ALIGN
    7782.PollLoop:
    78     call    ReadIdeStatusRegisterToAL
     83    call    IDEDEVICE%+ReadIdeStatusRegisterToAL
    7984    test    al, FLG_STATUS_BSY                  ; Controller busy?
    8085    jnz     SHORT .UpdateTimeout                ;  If so, jump to timeout update
    8186    test    al, ah                              ; Test secondary flag
    82     jnz     SHORT IdeError_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL
     87    jnz     SHORT IDEDEVICE%+Error_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL
    8388.UpdateTimeout:
    8489    call    Timer_SetCFifTimeout
    8590    jnc     SHORT .PollLoop                     ; Loop if time left
    86     call    IdeError_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL
     91    call    IDEDEVICE%+Error_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL
    8792    jc      SHORT .ReturnErrorCodeInAH
    8893    mov     ah, RET_HD_TIMEOUT                  ; Expected bit never got set
     
    9095.ReturnErrorCodeInAH:
    9196    ret
     97%endif
    9298
    9399
     
    103109;       AL, BX, CX, DX
    104110;--------------------------------------------------------------------
    105 PollBsyOnly:
    106     call    ReadIdeStatusRegisterToAL           ; Discard contents for first read
     111IDEDEVICE%+PollBsyOnly:
     112    call    IDEDEVICE%+ReadIdeStatusRegisterToAL; Discard contents for first read
    107113ALIGN JUMP_ALIGN
    108114.PollLoop:
    109     call    ReadIdeStatusRegisterToAL
     115    call    IDEDEVICE%+ReadIdeStatusRegisterToAL
    110116    test    al, FLG_STATUS_BSY                  ; Controller busy?
    111     jz      SHORT IdeError_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL
     117    jz      SHORT IDEDEVICE%+Error_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL
    112118    call    Timer_SetCFifTimeout                ; Update timeout counter
    113119    jnc     SHORT .PollLoop                     ; Loop if time left (sets CF on timeout)
    114     jmp     SHORT IdeError_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL
     120    jmp     SHORT IDEDEVICE%+Error_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL
    115121
    116122
     
    125131;--------------------------------------------------------------------
    126132ALIGN JUMP_ALIGN
    127 ReadIdeStatusRegisterToAL:
    128     mov     dl, STATUS_REGISTER_in
    129     jmp     IdeIO_InputToALfromIdeRegisterInDL
     133IDEDEVICE%+ReadIdeStatusRegisterToAL:
     134    JUMP_TO_INPUT_TO_AL_FROM_IDE_REGISTER STATUS_REGISTER_in
Note: See TracChangeset for help on using the changeset viewer.