Ignore:
Timestamp:
Mar 14, 2013, 9:45:07 PM (11 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • Made some improvements to the stack switching in Int13h.asm.
  • Added a tail-call optimized variant of the CALL_MENU_LIBRARY macro (JMP_MENU_LIBRARY).
  • Other optimizations and fixes.
File:
1 edited

Legend:

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

    r505 r525  
    112112    jae     SHORT .SetMemoryMappedMode
    113113
    114 ; We need to limit block size here. Consider this scenario;
    115 ; 1. While in PIO mode or memory mapped mode, the drive is set to do
    116 ;    block transfers larger than XTCF_DMA_MODE_MAX_BLOCK_SIZE.
    117 ; 2. A call is subsequently made to change device mode to DEVICE_8BIT_XTCF_DMA.
    118 ; 3. The call to AH24h_SetBlockSize fails but the change in device mode has been made.
    119 
    120114    ; Set DMA Mode
    121115    mov     BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_DMA
    122116    mov     al, [di+DPT_ATA.bBlockSize]
    123     MIN_U   al, XTCF_DMA_MODE_MAX_BLOCK_SIZE
    124     jmp     SHORT AH24h_SetBlockSize    ; Returns via AH23h_Enable8bitPioMode
     117    cmp     al, XTCF_DMA_MODE_MAX_BLOCK_SIZE
     118    jbe     SHORT AH24h_SetBlockSize
     119    mov     al, XTCF_DMA_MODE_MAX_BLOCK_SIZE
     120    jmp     SHORT AH24h_SetBlockSize
    125121
    126122.SetMemoryMappedMode:
Note: See TracChangeset for help on using the changeset viewer.