Ignore:
Timestamp:
May 8, 2011, 8:02:52 PM (13 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Minor size optimizations.
  • Tried to minimize the time spent with interrupts disabled in IdeIrq.asm and Int13h.asm
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/FindDPT.asm

    r158 r161  
    3939FindDPT_ForDriveNumber:
    4040    push    dx
    41     push    ax
     41    xchg    di, ax  ; Save the contents of AX in DI
    4242
    4343    mov     al, LARGEST_DPT_SIZE
     
    4545    mul     dl
    4646    add     ax, BYTE RAMVARS_size
    47     xchg    di, ax
    4847
    49     pop     ax
     48    xchg    di, ax  ; Restore AX and put result in DI
    5049    pop     dx
    5150    ret
     
    119118
    120119;--------------------------------------------------------------------
    121 ; FindDPT_ToDSDIforInterruptInService
    122 ;   Parameters:
    123 ;       DS:     RAMVARS segment
    124 ;   Returns:
    125 ;       DS:DI:  Ptr to DPT
    126 ;       CF:     Set if wanted DPT found
    127 ;               Cleared if DPT not found
    128 ;   Corrupts registers:
    129 ;       SI
    130 ;--------------------------------------------------------------------
    131 ALIGN JUMP_ALIGN
    132 FindDPT_ToDSDIforInterruptInService:
    133     mov     si, IterateToDptWithInterruptInServiceFlagSet
    134     jmp     SHORT IterateAllDPTs
    135 
    136 ;--------------------------------------------------------------------
    137120; IterateToDptWithInterruptInServiceFlagSet
    138121;   Parameters:
     
    153136    clc                                     ; Clear CF since wrong DPT
    154137    ret
     138
     139
     140;--------------------------------------------------------------------
     141; FindDPT_ToDSDIforInterruptInService
     142;   Parameters:
     143;       DS:     RAMVARS segment
     144;   Returns:
     145;       DS:DI:  Ptr to DPT
     146;       CF:     Set if wanted DPT found
     147;               Cleared if DPT not found
     148;   Corrupts registers:
     149;       SI
     150;--------------------------------------------------------------------
     151ALIGN JUMP_ALIGN
     152FindDPT_ToDSDIforInterruptInService:
     153    mov     si, IterateToDptWithInterruptInServiceFlagSet
     154    ; Fall to IterateAllDPTs
    155155
    156156
Note: See TracChangeset for help on using the changeset viewer.