Changeset 558 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeTransfer.asm
- Timestamp:
- Jun 23, 2013, 3:52:31 PM (12 years ago)
- google:author:
- krille_n_@hotmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeTransfer.asm
r545 r558 209 209 ; ES:SI: Normalized pointer 210 210 ; AH: INT 13h Error Code (only when CF set) 211 ; CF: Set of failed to normalize pointer (segment overflow)211 ; CF: Set if failed to normalize pointer (segment overflow) 212 212 ; Cleared if success 213 213 ; Corrupts registers: … … 295 295 ret 296 296 %endif ; MODULE_8BIT_IDE_ADVANCED 297 ; Fall to IdeTransfer_NormalizePointerInESSI if no MODULE_8BIT_IDE 297 ; Fall to IdeTransfer_NormalizePointerInESSI if no MODULE_8BIT_IDE_ADVANCED 298 298 299 299 … … 305 305 ; Returns: 306 306 ; ES:SI: Normalized pointer (SI = 0...15) 307 ; AH: INT 13h Error Code ( only when CF set)308 ; CF: Set of failed to normalize pointer (segment overflow)307 ; AH: INT 13h Error Code (when USE_AT defined and normalization was attempted) 308 ; CF: Set if failed to normalize pointer (segment overflow) 309 309 ; Cleared if success 310 310 ; Corrupts registers: … … 319 319 %ifdef USE_AT 320 320 xor dl, dl 321 shldx, 1321 eSHL_IM dx, 1 322 322 dec dx ; Prevents normalization when bytes + offset will be zero 323 323 add dx, si … … 329 329 NORMALIZE_FAR_POINTER es, si, ax, dx 330 330 %ifdef USE_AT ; CF is always clear for XT builds 331 jc SHORT .SegmentOverflow 332 ret 333 .SegmentOverflow: 334 mov ah, RET_HD_INVALID 331 ; AH = RET_HD_INVALID (01) if CF set, RET_HD_SUCCESS (00) if not. CF unchanged. 332 sbb ah, ah 333 neg ah 335 334 %endif 336 335 ret
Note:
See TracChangeset
for help on using the changeset viewer.