Changeset 294 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH0h_HReset.asm
- Timestamp:
- Mar 4, 2012, 1:35:10 AM (13 years ago)
- google:author:
- krille_n_@hotmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH0h_HReset.asm
r282 r294 19 19 ; Returns with INTPACK: 20 20 ; AH: Int 13h return status (from drive requested in DL) 21 ; CF: 0 if succes full, 1 if error21 ; CF: 0 if successful, 1 if error 22 22 ;-------------------------------------------------------------------- 23 23 ALIGN JUMP_ALIGN … … 28 28 %ifdef MODULE_SERIAL_FLOPPY 29 29 ; 30 ; "Reset" emulat d serial floppy drives, if any. There is nothing to actually do for this reset,30 ; "Reset" emulated serial floppy drives, if any. There is nothing to actually do for this reset, 31 31 ; but record the proper error return code if one of these floppy drives is the drive requested. 32 32 ; … … 39 39 40 40 adc dl, al ; second drive (CF set) if present 41 ; If no drive is present, this will result in ffh which 41 ; If no drive is present, this will result in ffh which 42 42 ; won't match a drive 43 43 call BackupErrorCodeFromTheRequestedDriveToBH … … 48 48 test bl, bl ; If we were called with a floppy disk, then we are done, 49 49 jns SHORT .SkipHardDiskReset ; don't do hard disks. 50 50 51 51 call ResetForeignHardDisks 52 52 53 ; Resetting our hard disks will modify dl and bl to be idevars offset based instead of drive number based, 53 ; Resetting our hard disks will modify dl and bl to be idevars offset based instead of drive number based, 54 54 ; such that this call must be the last in the list of reset routines called. 55 55 ; … … 57 57 ; and we need to override that value if we are xlate'd into 80h with one of our drives. 58 58 ; 59 call ResetHardDisksHandledByOurBIOS 59 call ResetHardDisksHandledByOurBIOS 60 60 61 61 .SkipHardDiskReset: … … 139 139 ; Parameters: 140 140 ; DS:DI: Ptr to DPT for requested drive 141 ; If DPT pointer is not available, or error result in BH won't be used anyway, 141 ; If DPT pointer is not available, or error result in BH won't be used anyway, 142 142 ; enter through .ErrorCodeNotUsed. 143 143 ; SS:BP: Ptr to IDEPACK … … 148 148 ;-------------------------------------------------------------------- 149 149 ResetHardDisksHandledByOurBIOS: 150 mov bl, 0; Assume Null IdevarsOffset for now, assuming foreign drive150 xor bl, bl ; Assume Null IdevarsOffset for now, assuming foreign drive 151 151 test di, di 152 152 jz .ErrorCodeNotUsed 153 153 mov bl, [di+DPT.bIdevarsOffset] ; replace drive number with Idevars pointer for cmp with dl 154 155 .ErrorCodeNotUsed: ; BH will be garbage on exit if thi e entry point is used,154 155 .ErrorCodeNotUsed: ; BH will be garbage on exit if this entry point is used, 156 156 ; but reset of all drives will still happen 157 157
Note:
See TracChangeset
for help on using the changeset viewer.