Changeset 503 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h
- Timestamp:
- Feb 13, 2013, 6:12:04 PM (12 years ago)
- google:author:
- aitotat@gmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH0h_HReset.asm
r501 r503 38 38 ;-------------------------------------------------------------------- 39 39 AH0h_HandlerForDiskControllerReset: 40 xor bx, bx ; Zero BH to assume no errors 41 or bl, dl ; Copy requested drive to BL 40 ; Reset foreign Floppy and Hard Drives (those handled by other BIOSes) 41 xor bx, bx ; Zero BH to assume no errors 42 or bl, dl ; Copy requested drive to BL 43 xor ah, ah ; Disk Controller Reset 44 call Int13h_CallPreviousInt13hHandler ; Reset floppy drives only or floppy drives and foreign hard disks 45 call BackupErrorCodeFromTheRequestedDriveToBH 42 46 43 47 %ifdef MODULE_SERIAL_FLOPPY … … 60 64 call BackupErrorCodeFromTheRequestedDriveToBH ; only one drive), but doing it again is not harmful. 61 65 %endif 62 63 ; Reset foreign Floppy and Hard Drives (those handled by other BIOSes)64 call ResetForeignDrives65 66 test bl, bl ; If we were called with a floppy disk, then we are done, 66 67 jns SHORT .SkipHardDiskReset ; don't do hard disks. … … 77 78 mov ah, bh 78 79 jmp Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH 79 80 81 ;--------------------------------------------------------------------82 ; ResetForeignDrives83 ; Parameters:84 ; BL: Requested Floppy or Hard Drive (DL when entering AH=00h)85 ; DS: RAMVARS segment86 ; Returns:87 ; BH: Error code from requested drive (if available)88 ; Corrupts registers:89 ; AX, DL90 ;--------------------------------------------------------------------91 ResetForeignDrives:92 ; If there are drives after our drives, those are already reset93 ; since our INT 13h was called by some other BIOS.94 ; We only need to reset drives from the previous INT 13h handler.95 ; There could be more in chain but let the previous one handle them.96 mov dl, [RAMVARS.bFirstDrv]97 or dl, 80h ; We may not have our drives at all so change 0 to 80h!98 MIN_U dl, bl99 100 xor ah, ah ; Disk Controller Reset101 call Int13h_CallPreviousInt13hHandler102 ;;; fall-through to BackupErrorCodeFromTheRequestedDriveToBH103 80 104 81
Note:
See TracChangeset
for help on using the changeset viewer.