Ignore:
Timestamp:
May 29, 2012, 7:24:58 PM (12 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Motor spin up is now waited when resetting drive.
  • Optimized boot sector loading a bit.
File:
1 edited

Legend:

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

    r398 r428  
    106106    push    cx
    107107    push    ax
    108     call    AH9h_InitializeDriveForUse          ; Reset Master and Slave (Master will come first in DPT list)
     108    call    AHDh_WaitUnilDriveMotorHasReachedFullSpeed
     109    call    AH9h_InitializeDriveForUse          ; Initialize Master or Slave (Master will come first in DPT list)
    109110
    110111%ifdef MODULE_ADVANCED_ATA
     
    130131    ret
    131132
     133
     134;--------------------------------------------------------------------
     135; AHDh_WaitUnilDriveMotorHasReachedFullSpeed
     136;   Parameters:
     137;       DS:DI:  Ptr to DPT
     138;   Returns:
     139;       AH:     Int 13h return status
     140;       CF:     0 if successful, 1 if error
     141;   Corrupts registers:
     142;       AL, BX, CX, DX
     143;--------------------------------------------------------------------
     144AHDh_WaitUnilDriveMotorHasReachedFullSpeed:
     145%ifdef MODULE_SERIAL
     146    test    BYTE [di+DPT.bFlagsHigh], FLGH_DPT_SERIAL_DEVICE
     147    jz      SHORT .WaitSinceRealHardDisk
     148    ret
     149.WaitSinceRealHardDisk:
     150%endif
     151
     152    mov     bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_MOTOR_STARTUP, FLG_STATUS_BSY)
     153    jmp     IdeWait_PollStatusFlagInBLwithTimeoutInBH
Note: See TracChangeset for help on using the changeset viewer.