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


Ignore:
Timestamp:
Jun 3, 2015, 12:30:54 PM (9 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • Fixed a bug in AH24h_HSetBlocks.asm from r550. Trying to set a too large block size with an XT-CF card in DMA transfer mode would corrupt the stack.
  • Fixed a bug from r545 where the list of devices under g_szDeviceTypeValues in Strings.asm was no longer up to date causing the boot menu to display the wrong string for devices numbered higher than DEVICE_8BIT_XTCF_PIO8.
  • Made some fairly significant changes to the XT-CF code to reduce size. Two changes in functionality; 1) Added a simple check to validate the request for a change of the XT-CF transfer mode. 2) Changing transfer mode to use DMA no longer calls AH24h_SetBlockSize if the block size already is within the limits of DMA transfers. UNTESTED
  • XTIDECFG now clears IDEVARS.bIRQ when changing IDE controller to a serial device to keep the boot menu from displaying it since the serial device doesn't use IRQs at all.
  • Other minor optimizations.
File:
1 edited

Legend:

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

    r567 r588  
    9797.PollLoop:
    9898    call    IdeIO_InputStatusRegisterToAL
    99     test    al, FLG_STATUS_BSY                  ; Controller busy?
    100     jnz     SHORT .UpdateTimeout                ;  If so, jump to timeout update
     99    test    al, al                              ; Controller busy? (Check for FLG_STATUS_BSY)
     100    js      SHORT .UpdateTimeout                ;  If so, jump to timeout update
    101101    test    al, ah                              ; Test secondary flag
    102102    jnz     SHORT IdeError_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL
     
    126126.PollLoop:
    127127    call    IdeIO_InputStatusRegisterToAL
    128     test    al, FLG_STATUS_BSY                  ; Controller busy?
    129     jz      SHORT IdeError_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL
     128    test    al, al                              ; Controller busy? (Check for FLG_STATUS_BSY)
     129    jns     SHORT IdeError_GetBiosErrorCodeToAHfromPolledStatusRegisterInAL
    130130    call    Timer_SetCFifTimeout                ; Update timeout counter
    131131    jnc     SHORT .PollLoop                     ; Loop if time left (sets CF on timeout)
Note: See TracChangeset for help on using the changeset viewer.