Ignore:
Timestamp:
Mar 10, 2013, 3:46:59 PM (11 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Hopefully fixed problems with recent changes to AH=00h.
  • Timeout error code is no longer displayed when trying to boot from floppy drive.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/FindDPT.asm

    r489 r521  
    136136
    137137;--------------------------------------------------------------------
    138 ; FindDPT_ForIdevarsOffsetInDL
     138; FindDPT_MasterOrSingleForIdevarsOffsetInDL
    139139;   Parameters:
    140140;       DL:     Offset to IDEVARS to search for
     
    147147;       SI
    148148;--------------------------------------------------------------------
    149 FindDPT_ForIdevarsOffsetInDL:
     149FindDPT_MasterOrSingleForIdevarsOffsetInDL:
    150150    mov     si, IterateFindFirstDPTforIdevars           ; iteration routine (see below)
    151151    jmp     SHORT FindDPT_IterateAllDPTs                ; look for the first drive on this controller, if any
    152152
    153153;--------------------------------------------------------------------
    154 ; Iteration routine for FindDPT_ForIdevarsOffsetInDL,
    155 ; for use with IterateAllDPTs
     154; FindDPT_SlaveForIdevarsOffsetInDL
     155;   Parameters:
     156;       DL:     Offset to IDEVARS to search for
     157;       DS:     RAMVARS segment
     158;   Returns:
     159;       DS:DI:      Ptr to second DPT with same IDEVARS as in DL
     160;       CF:         Clear if wanted DPT found
     161;                   Set if DPT not found, or no DPTs present
     162;   Corrupts registers:
     163;       SI
     164;--------------------------------------------------------------------
     165FindDPT_SlaveForIdevarsOffsetInDL:
     166    mov     si, IterateFindSecondDPTforIdevars          ; iteration routine (see below)
     167    jmp     SHORT FindDPT_IterateAllDPTs                ; look for the second drive on this controller, if any
     168
     169;--------------------------------------------------------------------
     170; Iteration routines for FindDPT_MasterOrSingleForIdevarsOffsetInDL and
     171; FindDPT_SlaveForIdevarsOffsetInDL, for use with IterateAllDPTs
    156172;
    157173; Returns when DPT is found on the controller with Idevars offset in DL
    158174;
     175; IterateFindSecondDPTforIdevars
    159176; IterateFindFirstDPTforIdevars
    160177;       DL:     Offset to IDEVARS to search from DPTs
     
    164181;               Set if wrong DPT
    165182;--------------------------------------------------------------------
     183IterateFindSecondDPTforIdevars:
     184    call    IterateFindFirstDPTforIdevars
     185    jc      SHORT IterateFindFirstDPTforIdevars.done    ; Wrong controller
     186
     187    ; We have found DPT for Master Drive,
     188    ; next DPT is for slave drive or master for another controller
     189    add     di, BYTE LARGEST_DPT_SIZE
     190    ; Fall to IterateFindFirstDPTforIdevars
     191
    166192IterateFindFirstDPTforIdevars:
    167193    cmp     dl, [di+DPT.bIdevarsOffset]         ; Clears CF if matched
     
    293319    pop     cx
    294320    ret
    295 
Note: See TracChangeset for help on using the changeset viewer.