- Timestamp:
- Feb 24, 2012, 11:12:00 AM (13 years ago)
- google:author:
- gregli@hotmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH0h_HReset.asm
r262 r264 47 47 48 48 call ResetForeignHardDisks 49 call AH0h_ResetHardDisksHandledByOurBIOS 49 50 ; Resetting our hard disks will modify dl and bl such that this call must be the last in the list 51 ; 52 call AH0h_ResetHardDisksHandledByOurBIOS 53 50 54 .SkipHardDiskReset: 51 55 mov ah, bh … … 141 145 ALIGN JUMP_ALIGN 142 146 AH0h_ResetHardDisksHandledByOurBIOS: 143 mov bl, [di+DPT.bIdevarsOffset] ; replace drive number with Idevars pointer for comparisons 147 mov bl, [di+DPT.bIdevarsOffset] ; replace drive number with Idevars pointer for cmp with dl 148 mov dl, ROMVARS.ideVars0 ; starting Idevars offset 149 144 150 mov cl, [cs:ROMVARS.bIdeCnt] ; get count of ide controllers 145 mov ch, 0 146 mov dl, 0 ; starting Idevars offset 147 mov si, IterateFindFirstDPTforIdevars ; iteration routine 151 mov ch, 0 152 jcxz .done ; just in case bIdeCnt is zero (shouldn't be) 153 154 mov si, IterateFindFirstDPTforIdevars ; iteration routine (see below) 155 148 156 .loop: 149 157 call IterateAllDPTs ; look for the first drive on this controller, if any 150 158 jc .notFound 159 151 160 call AHDh_ResetDrive ; reset master and slave on that controller 152 call BackupErrorCodeFromTheRequestedDriveToBH ; save error code if same controller as initial request 161 call BackupErrorCodeFromTheRequestedDriveToBH ; save error code if same controller as drive from entry 162 153 163 .notFound: 154 add dl, IDEVARS_size ; move pointer forward 155 loop .loop ; and repeat 164 add dl, IDEVARS_size ; move Idevars pointer forward 165 loop .loop 166 167 .done: 156 168 ret 157 169
Note:
See TracChangeset
for help on using the changeset viewer.