Changeset 218 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Device/Idepack.asm


Ignore:
Timestamp:
Jan 23, 2012, 9:10:05 PM (12 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Number of sectors to transfer is now limited to 1-128 for old INT 13h functions.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Device/Idepack.asm

    r181 r218  
    4040Idepack_ConvertDapToIdepackAndIssueCommandFromAH:
    4141    mov     [bp+IDEPACK.bCommand], ah
    42     mov     ax, [es:si+DAP.wSectorCount]
     42    mov     al, [es:si+DAP.bSectorCount]
    4343    mov     [bp+IDEPACK.bSectorCount], al
    44     mov     [bp+IDEPACK.bSectorCountHighExt], ah
    4544
    4645    mov     al, [es:si+DAP.qwLBA]       ; LBA byte 0
     
    6665;   Parameters:
    6766;       AH:     IDE command to issue
    68 ;       AL:     Number of sectors to transfer (1...255, 0=256)
     67;       AL:     Number of sectors to transfer
    6968;       BH:     Timeout ticks
    7069;       BL:     IDE Status Register flag to wait after command
     
    7372;               Bits 5...0: Starting sector number (1...63)
    7473;       DH:     Starting head number (0...255)
    75 ;       ES:SI:  Ptr to data buffer
    7674;       DS:DI:  Ptr to DPT (in RAMVARS segment)
    77 ;       SS:BP:  Ptr to IDEPACK
     75;       SS:BP:  Ptr to IDEPACK (containing INTPACK)
     76;   Parameters on INTPACK:
     77;       ES:BX:  Ptr to data buffer
    7878;   Returns:
    7979;       AH:     INT 13h Error Code
     
    8484ALIGN JUMP_ALIGN
    8585Idepack_TranslateOldInt13hAddressAndIssueCommandFromAH:
     86    mov     [bp+IDEPACK.bSectorCount], al
    8687    mov     [bp+IDEPACK.bCommand], ah
    8788
    88     xor     ah, ah
    89     cmp     ah, al
    90     cmc
    91     adc     ah, ah
    92 
    93     mov     [bp+IDEPACK.bSectorCount], al
    94     mov     [bp+IDEPACK.bSectorCountHighExt], ah
    95 
    9689    push    bx
     90    call    PrepareBuffer_ToESSIforOldInt13hTransfer
    9791    call    Address_OldInt13hAddressToIdeAddress
    9892    call    AccessDPT_GetDriveSelectByteToAL
     
    135129    mov     [bp+IDEPACK.wSectorCountAndLbaLow], dx
    136130    mov     [bp+IDEPACK.wLbaMiddleAndHigh], cx
    137     mov     BYTE [bp+IDEPACK.bSectorCountHighExt], 0
    138131
    139132    ; Drive and Head select byte
Note: See TracChangeset for help on using the changeset viewer.