Ignore:
Timestamp:
Feb 27, 2012, 4:24:52 PM (13 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • AH=0h (Reset) should now work but our drives are no longer reset if DL belongs to foreign drive.
File:
1 edited

Legend:

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

    r262 r271  
    3333; AHDh_ResetDrive
    3434;   Parameters:
    35 ;       DL:     Drive number
    36 ;       DS:     RAMVARS segment
     35;       DS:DI:  Ptr to DPT
    3736;       SS:BP:  Ptr to IDEPACK
    3837;   Returns:
     
    4039;       CF:     0 if succesfull, 1 if error
    4140;   Corrupts registers:
    42 ;       AL, CX, SI
     41;       AL, SI
    4342;--------------------------------------------------------------------
    44 ;ALIGN JUMP_ALIGN
    4543AHDh_ResetDrive:
    4644    push    dx
     45    push    cx
    4746    push    bx
    4847    push    di
     
    5857       
    5958    mov     si, IterateAndResetDrives
    60     call    IterateAllDPTs
     59    call    FindDPT_IterateAllDPTs
    6160
    6261    shr     ah, 1                               ; Move error code and CF into proper position
     
    6463    pop     di
    6564    pop     bx
     65    pop     cx
    6666    pop     dx
    6767    ret
     
    7676IterateAndResetDrives:
    7777    cmp     al, [di+DPT.bIdevarsOffset]         ; The right controller?
    78     jnz     .done
     78    jne     .done
    7979    push    ax
    8080    call    AH9h_InitializeDriveForUse          ; Reset Master and Slave (Master will come first in DPT list)
     
    8383    or      ah, (RET_HD_RESETFAIL << 1) | 1     ; OR in Reset Failed error code and CF, will SHR into position later
    8484.done:
    85     stc                                         ; From IterateAllDPTs perspective, the DPT is never found
     85    stc                                         ; From IterateAllDPTs perspective, the DPT is never found (continue iteration)
    8686    ret
    87        
Note: See TracChangeset for help on using the changeset viewer.