Changeset 535 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeIrq.asm


Ignore:
Timestamp:
Apr 8, 2013, 5:09:44 PM (11 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • AH=48h now returns Device Parameter Table Extension when RETURN_DPTE_ON_AH48H is defined.
  • Removed few unnecessary instructions from hardware interrupt handler.
  • P-Cylinders returned by AH=48h are no longer calculated from L-CHS capacity.
File:
1 edited

Legend:

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

    r526 r535  
    2626;       DS:DI:  Ptr to DPT (in RAMVARS segment)
    2727;   Returns:
    28 ;       CF:     Set if wait done by operating system
    29 ;               Cleared if BIOS must perform task flag polling
     28;       Nothing
    3029;   Corrupts registers:
    3130;       AX
     
    3332ALIGN JUMP_ALIGN
    3433IdeIrq_WaitForIRQ:
    35 
    36 ;--------------------------------------------------------------------
    37 ; .NotifyOperatingSystemAboutWaitingForIRQ
    38 ;   Parameters:
    39 ;       Nothing
    40 ;   Returns:
    41 ;       CF:     Set if wait done by operating system
    42 ;               Cleared if BIOS must perform task flag polling
    43 ;   Corrupts registers:
    44 ;       AX
    45 ;--------------------------------------------------------------------
    46 .NotifyOperatingSystemAboutWaitingForIRQ:
    4734    push    ds
    4835
     
    5340    jc      SHORT .ReturnFromWaitNotify ;  If so, skip OS notification
    5441    int     BIOS_SYSTEM_INTERRUPT_15h   ; OS hook, device busy
    55     jnc     SHORT .ReturnFromWaitNotify ; CF cleared, BIOS handles waiting
    5642
    57     ; Make sure that OS hooks are supported, otherwise the CF means unsupported function
    58     test    ah, ah                      ; OS hook supported? (clears CF)
    59     jnz     SHORT .ReturnFromWaitNotify ; AH has error, BIOS must do the wait
    60     stc                                 ; Set CF since wait done by OS
    6143.ReturnFromWaitNotify:
    6244    sti                                 ; Enable interrupts
     
    9981
    10082    ; Issue Int 15h, function AX=9100h (Interrupt ready)
     83    clc                                 ; Must be called with CF clear
    10184    mov     ax, OS_HOOK_DEVICE_POST<<8  ; Interrupt ready, device 0 (HD)
    10285    int     BIOS_SYSTEM_INTERRUPT_15h
Note: See TracChangeset for help on using the changeset viewer.