Changeset 400 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h
- Timestamp:
- Apr 20, 2012, 2:30:16 PM (13 years ago)
- google:author:
- aitotat@gmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH9h_HInit.asm
r399 r400 59 59 xor ax, ax 60 60 61 %ifdef MODULE_ADVANCED_ATA 61 62 ; Clear Initialization Error flags from DPT 62 mov [di+DPT_ATA.bInitError], al 63 mov [di+DPT_ADVANCED_ATA.bInitError], al 64 %endif 63 65 64 66 %ifdef MODULE_SERIAL … … 79 81 call Device_SelectDrive 80 82 83 %ifdef MODULE_ADVANCED_ATA 81 84 mov al, FLG_INITERROR_FAILED_TO_SELECT_DRIVE 82 85 call .SetErrorFlagFromALwithErrorCodeInAH 86 %endif 83 87 jc .ReturnWithErrorCodeInAH 84 88 … … 96 100 call Idepack_StoreNonExtParametersAndIssueCommandFromAL 97 101 102 %ifdef MODULE_ADVANCED_ATA 98 103 mov al, FLG_INITERROR_FAILED_TO_INITIALIZE_CHS_PARAMETERS 99 104 call .SetErrorFlagFromALwithErrorCodeInAH 105 %endif 100 106 .SkipInitializeDeviceParameters: 101 107 … … 110 116 call AH23h_SetControllerFeatures 111 117 118 %ifdef MODULE_ADVANCED_ATA 112 119 mov al, FLG_INITERROR_FAILED_TO_SET_WRITE_CACHE 113 120 call .SetErrorFlagFromALwithErrorCodeInAH 121 %endif 114 122 .SkipSetWriteCache: 115 123 … … 118 126 call AH11h_RecalibrateDrive 119 127 128 %ifdef MODULE_ADVANCED_ATA 120 129 mov al, FLG_INITERROR_FAILED_TO_RECALIBRATE_DRIVE 121 130 call .SetErrorFlagFromALwithErrorCodeInAH 131 %endif 122 132 123 133 ;;; InitializeBlockMode … … 138 148 jnc SHORT .TryNextBlockSize 139 149 150 %ifdef MODULE_ADVANCED_ATA 140 151 mov al, FLG_INITERROR_FAILED_TO_SET_BLOCK_MODE 141 152 call .SetErrorFlagFromALwithErrorCodeInAH 153 %endif 142 154 .BlockModeNotSupportedOrDisabled: 143 155 .SupportedBlockSizeFound: … … 173 185 call Idepack_StoreNonExtParametersAndIssueCommandFromAL 174 186 187 %ifdef MODULE_ADVANCED_ATA 175 188 mov al, FLG_INITERROR_FAILED_TO_INITIALIZE_STANDBY_TIMER 176 189 call .SetErrorFlagFromALwithErrorCodeInAH 190 %endif 177 191 .NoPowerManagementSupport: 178 192 %endif ; MODULE_FEATURE_SETS 179 193 180 194 ; There might have been several errors so just return one error code for them all 181 mov ah, [di+DPT_ATA.bInitError] 195 %ifdef MODULE_ADVANCED_ATA 196 mov ah, [di+DPT_ADVANCED_ATA.bInitError] 182 197 test ah, ah ; Clears CF 183 198 jz SHORT .ReturnWithErrorCodeInAH 184 199 mov ah, RET_HD_RESETFAIL 185 200 stc 201 %endif 186 202 187 203 .ReturnWithErrorCodeInAH: … … 191 207 192 208 209 %ifdef MODULE_ADVANCED_ATA 193 210 ;-------------------------------------------------------------------- 194 211 ; .SetErrorFlagFromALwithErrorCodeInAH … … 211 228 jbe SHORT .IgnoreInvalidCommandError 212 229 213 or [di+DPT_A TA.bInitError], al230 or [di+DPT_ADVANCED_ATA.bInitError], al 214 231 stc 215 232 .NoErrorFlagToSet: 216 233 ret 234 235 %endif 217 236 218 237 … … 221 240 db FEATURE_DISABLE_WRITE_CACHE ; DISABLE_WRITE_CACHE 222 241 db FEATURE_ENABLE_WRITE_CACHE ; ENABLE_WRITE_CACHE 223
Note:
See TracChangeset
for help on using the changeset viewer.