Changeset 259 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers
- Timestamp:
- Feb 23, 2012, 7:14:06 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
r258 r259 22 22 eMOVZX bx, dl ; Copy requested drive to BL, zero BH to assume no errors 23 23 call ResetFloppyDrivesWithInt40h 24 25 %ifdef MODULE_SERIAL_FLOPPY 26 ; 27 ; "Reset" emulatd serial floppy drives, if any. There is nothing to actually do for this reset, 28 ; but record the proper error return code if one of these floppy drives is the drive requested. 29 ; 30 call RamVars_UnpackFlopCntAndFirstToAL 31 cbw ; Clears AH (there are flop drives) or ffh (there are not) 32 ; Either AH has success code (flop drives are present) 33 ; or it doesn't matter because we won't match drive ffh 34 35 cwd ; clears DX (there are flop drives) or ffffh (there are not) 36 37 adc dl, al ; second drive (CF set) if present 38 ; If no drive is present, this will result in ffh which 39 ; won't match a drive 40 call BackupErrorCodeFromTheRequestedDriveToBH 41 mov dl, al ; We may end up doing the first drive twice (if there is 42 call BackupErrorCodeFromTheRequestedDriveToBH ; only one drive), but doing it again is not harmful. 43 %endif 44 45 test bl, bl ; If we were called with a floppy disk, then we are done, 46 jns SHORT .SkipHardDiskReset ; don't do hard disks. 47 24 48 call ResetForeignHardDisks 25 49 call AH0h_ResetHardDisksHandledByOurBIOS … … 129 153 jb SHORT .DriveResetLoop ; If not, reset next drive 130 154 .AllDrivesReset: 131 %ifdef MODULE_SERIAL_FLOPPY 132 ; 133 ; "Reset" emulatd serial floppy drives, if any. There is nothing to actually do for this reset, 134 ; but record the proper error return code if one of these floppy drives is the drive requested. 135 ; 136 call RamVars_UnpackFlopCntAndFirstToAL 137 138 cbw ; Clears AH (there are flop drives) or ffh (there are not) 139 ; Either AH has success code (flop drives are present) 140 ; or it doesn't matter because we won't match drive ffh 141 142 cwd ; clears DX (there are flop drives) or ffffh (there are not) 143 144 adc dl, al ; second drive (CF set) if present 145 ; If no drive is present, this will result in ffh which 146 ; won't match a drive 147 call BackupErrorCodeFromTheRequestedDriveToBH 148 mov dl, al ; We may end up doing the first drive twice (if there is 149 jmp BackupErrorCodeFromTheRequestedDriveToBH ; only one drive), but doing it again is not harmful. 150 %else 151 ret 152 %endif 153 155 ret 156 157 154 158 ;-------------------------------------------------------------------- 155 159 ; .BackupErrorCodeFromMasterOrSlaveToBH
Note:
See TracChangeset
for help on using the changeset viewer.