Ignore:
Timestamp:
Jan 29, 2012, 11:22:19 PM (12 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Some small optimizations
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Address.asm

    r227 r230  
    8686Address_OldInt13hAddressToIdeAddress:
    8787        call    Address_ExtractLCHSparametersFromOldInt13hAddress
    88            
     88
    8989        AccessDPT_GetUnshiftedAddressModeToALZF
    90        
    91 ;;; 0: ADDR_DPT_LCHS       
    92         jz      DoNotConvertLCHS   
    93        
     90
     91;;; 0: ADDR_DPT_LCHS
     92        jz      DoNotConvertLCHS
     93
    9494;;; 1: ADDR_DPT_PCHS
    95         ; 
     95        ;
    9696        ; Since we are only checking for zero, we can do our math in the high order bits,
    9797        ; in this case effectively subtracting 1 from the address mode.
    9898        ;
    9999        sub     al,(1<<ADDRESSING_MODE_FIELD_POSITION)
    100         jz      ConvertLCHStoPCHS   
     100        jz      ConvertLCHStoPCHS
    101101
    102 ;;; 2: ADDR_DPT_LBA28 and 3: ADDR_DPT_LBA48             
    103         ; Fall through to ConvertLCHStoLBARegisterValues 
    104        
     102;;; 2: ADDR_DPT_LBA28 and 3: ADDR_DPT_LBA48
     103        ; Fall through to ConvertLCHStoLBARegisterValues
     104
    105105;---------------------------------------------------------------------
    106106; Converts LCHS parameters to 28-bit LBA address.
     
    129129    ; cylToSeek*headsPerCyl (18-bit result)
    130130    mov     ax, cx                  ; Copy Cylinder number to AX
     131    ; We could save a byte here by using CWD instead of the XOR DH, DH in eMOVZX
     132    ; but I'm not sure how that would affect speed.
     133
    131134    eMOVZX  dx, BYTE [di+DPT.bLbaHeads]
    132135    mul     dx                      ; DX:AX = cylToSeek*headsPerCyl
Note: See TracChangeset for help on using the changeset viewer.