Ignore:
Timestamp:
May 22, 2021, 9:33:59 PM (3 years ago)
Author:
aitotat
Message:

Now actually fixed the problem some drives had when crossing 8GB. The problem only occurred with LBA48 commands. Sector count high was outputted to LBA(31:24) and vice versa.

File:
1 edited

Legend:

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

    r610 r611  
    174174%ifdef MODULE_EBIOS
    175175    eMOVZX  ax, [bp+IDEPACK.bLbaLowExt]     ; Zero sector count
     176    xchg    al, ah      ; LBA low ext to AH, zero sectors to AL
    176177    mov     cx, [bp+IDEPACK.wLbaMiddleAndHighExt]
    177178    call    OutputSectorCountAndAddress
     
    245246    ; drives (CF cards, 1.8" HDDs etc) have some internal sleep modes that
    246247    ; might cause trouble? Normal HDDs seem to work fine.
    247     mov     al, [bp+IDEPACK.bDrvAndHead]
    248     OUTPUT_AL_TO_IDE_REGISTER   DRIVE_AND_HEAD_SELECT_REGISTER
     248    ;
     249    ; Now commented away since this fix was not necessary. Let's keep it here
     250    ; if some drive someday has problems crossing 8GB
     251    ;mov        al, [bp+IDEPACK.bDrvAndHead]
     252    ;OUTPUT_AL_TO_IDE_REGISTER  DRIVE_AND_HEAD_SELECT_REGISTER
    249253
    250254    ; Ignore errors from IDE Error Register (set by previous command)
Note: See TracChangeset for help on using the changeset viewer.