Ignore:
Timestamp:
Jun 23, 2013, 3:52:31 PM (11 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • Building the BIOS Drive Information Tool now works again.
  • Moved all XT-CF related code to MODULE_8BIT_IDE_ADVANCED. I don't see how an XT-CF card could work without *_ADVANCED anyway but if I'm wrong, feel free to undo this. Note! The autodetection code in XTIDECFG has NOT been changed to reflect this (still relies on MODULE_8BIT_IDE).
  • Optimizations and fixes in general.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeTransfer.asm

    r545 r558  
    209209;       ES:SI:  Normalized pointer
    210210;       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)
    212212;               Cleared if success
    213213;   Corrupts registers:
     
    295295    ret
    296296%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
    298298
    299299
     
    305305;   Returns:
    306306;       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)
    309309;               Cleared if success
    310310;   Corrupts registers:
     
    319319%ifdef USE_AT
    320320    xor     dl, dl
    321     shl     dx, 1
     321    eSHL_IM dx, 1
    322322    dec     dx      ; Prevents normalization when bytes + offset will be zero
    323323    add     dx, si
     
    329329    NORMALIZE_FAR_POINTER   es, si, ax, dx
    330330%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
    335334%endif
    336335    ret
Note: See TracChangeset for help on using the changeset viewer.