Changeset 521 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs
- Timestamp:
- Mar 10, 2013, 3:46:59 PM (12 years ago)
- google:author:
- aitotat@gmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/FindDPT.asm
r489 r521 136 136 137 137 ;-------------------------------------------------------------------- 138 ; FindDPT_ ForIdevarsOffsetInDL138 ; FindDPT_MasterOrSingleForIdevarsOffsetInDL 139 139 ; Parameters: 140 140 ; DL: Offset to IDEVARS to search for … … 147 147 ; SI 148 148 ;-------------------------------------------------------------------- 149 FindDPT_ ForIdevarsOffsetInDL:149 FindDPT_MasterOrSingleForIdevarsOffsetInDL: 150 150 mov si, IterateFindFirstDPTforIdevars ; iteration routine (see below) 151 151 jmp SHORT FindDPT_IterateAllDPTs ; look for the first drive on this controller, if any 152 152 153 153 ;-------------------------------------------------------------------- 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 ;-------------------------------------------------------------------- 165 FindDPT_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 156 172 ; 157 173 ; Returns when DPT is found on the controller with Idevars offset in DL 158 174 ; 175 ; IterateFindSecondDPTforIdevars 159 176 ; IterateFindFirstDPTforIdevars 160 177 ; DL: Offset to IDEVARS to search from DPTs … … 164 181 ; Set if wrong DPT 165 182 ;-------------------------------------------------------------------- 183 IterateFindSecondDPTforIdevars: 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 166 192 IterateFindFirstDPTforIdevars: 167 193 cmp dl, [di+DPT.bIdevarsOffset] ; Clears CF if matched … … 293 319 pop cx 294 320 ret 295
Note:
See TracChangeset
for help on using the changeset viewer.