Changeset 505 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h
- Timestamp:
- Feb 25, 2013, 4:23:09 PM (12 years ago)
- google:author:
- krille_n_@hotmail.com
- Location:
- trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH0h_HReset.asm
r503 r505 39 39 AH0h_HandlerForDiskControllerReset: 40 40 ; Reset foreign Floppy and Hard Drives (those handled by other BIOSes) 41 xor bx, bx ; Zero BH to assume no errors42 or bl, dl ; Copy requested drive to BL 41 eMOVZX bx, dl ; Copy requested drive to BL and zero BH to assume no errors 42 43 43 xor ah, ah ; Disk Controller Reset 44 44 call Int13h_CallPreviousInt13hHandler ; Reset floppy drives only or floppy drives and foreign hard disks -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH1Eh_XTCF.asm
r491 r505 102 102 out dx, al 103 103 104 ; We always need to enable 8-bit mode since 16-bit mode is restored 105 ; when controller is reset (AH=00h or 0Dh) 106 ePUSH_T bx, AH23h_Enable8bitPioMode 107 104 108 ; Convert Control Register Contents to device code 105 109 test al, al … … 108 112 jae SHORT .SetMemoryMappedMode 109 113 114 ; We need to limit block size here. Consider this scenario; 115 ; 1. While in PIO mode or memory mapped mode, the drive is set to do 116 ; block transfers larger than XTCF_DMA_MODE_MAX_BLOCK_SIZE. 117 ; 2. A call is subsequently made to change device mode to DEVICE_8BIT_XTCF_DMA. 118 ; 3. The call to AH24h_SetBlockSize fails but the change in device mode has been made. 119 110 120 ; Set DMA Mode 111 121 mov BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_DMA 112 122 mov al, [di+DPT_ATA.bBlockSize] 113 call AH24h_SetBlockSize ; AH=24h limits block size if necessary114 jmp SHORT .Enable8bitPioMode123 MIN_U al, XTCF_DMA_MODE_MAX_BLOCK_SIZE 124 jmp SHORT AH24h_SetBlockSize ; Returns via AH23h_Enable8bitPioMode 115 125 116 126 .SetMemoryMappedMode: 117 mov BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_MEMMAP118 jmp SHORT .Enable8bitPioMode127 mov al, DEVICE_8BIT_XTCF_MEMMAP 128 SKIP2B bx 119 129 120 130 .Set8bitPioMode: 121 mov BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_PIO8 122 ; Fall to .Enable8bitPioMode 123 124 ; We always need to enable 8-bit mode since 16-bit mode is restored 125 ; when controller is reset (AH=00h or 0Dh) 126 .Enable8bitPioMode: 127 jmp AH23h_Enable8bitPioMode 131 mov al, DEVICE_8BIT_XTCF_PIO8 132 mov [di+DPT_ATA.bDevice], al 133 ret ; Via AH23h_Enable8bitPioMode 128 134 129 135 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH9h_HInit.asm
r493 r505 101 101 call Device_SelectDrive 102 102 STORE_ERROR_FLAG_TO_DPT FLG_INITERROR_FAILED_TO_SELECT_DRIVE 103 %ifdef USE_386 104 jc .ReturnWithErrorCodeInAH 105 %else 103 106 jnc SHORT .ContinueInitializationSinceDriveSelectedSuccesfully 104 107 jmp .ReturnWithErrorCodeInAH 105 108 .ContinueInitializationSinceDriveSelectedSuccesfully: 109 %endif 106 110 107 111
Note:
See TracChangeset
for help on using the changeset viewer.