Changeset 262 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm


Ignore:
Timestamp:
Feb 24, 2012, 10:28:31 AM (12 years ago)
Author:
gregli@…
google:author:
gregli@hotmail.com
Message:

More optimizations. Merged RamVars_IsFunction/DriveHandledByThisBIOS in with FindDPT_ForDriveNumber, since they are often used together, making a returned NULL DI pointer indicate a foreign drive in many places. Revamped the iteration done in the handlers for int13/0dh and int13h/0h. Added serial specific print string during drive detection.

File:
1 edited

Legend:

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

    r260 r262  
    2626
    2727    call    RamVars_GetSegmentToDS
     28       
    2829    call    DriveXlate_ToOrBack
    2930    mov     [RAMVARS.xlateVars+XLATEVARS.bXlatedDrv], dl
    30     call    RamVars_IsFunctionHandledByThisBIOS
    31     jc      SHORT Int13h_DirectCallToAnotherBios
    32 
    33     call    FindDPT_ForDriveNumber      ; DS:DI now points to DPT
    34 
     31       
     32    call    FindDPT_ForDriveNumberInDL              ; DS:DI points to our DPT, or NULL if not our drive
     33    jnc     SHORT .OurFunction                      ; DPT found, this is one of our drives, and thus our function
     34
     35    cmp     ah, 0
     36    jz      short .OurFunction                      ; we handle all function 0h requests (resets)
     37    cmp     ah, 8
     38%ifdef MODULE_SERIAL_FLOPPY
     39    jnz     SHORT Int13h_DirectCallToAnotherBios    ; we handle all traffic for function 08h,
     40                                                    ; as we need to wrap both hard disk and floppy drive counts
     41%else
     42    jz      SHORT .WeHandleTheFunction              ; we handle all *hard disk* (only) traffic for function 08h,
     43                                                    ; as we need to wrap the hard disk drive count
     44    test    dl, dl
     45    jns     SHORT Int13h_DirectCallToAnotherBios
     46%endif     
     47               
     48.OurFunction:   
    3549    ; Jump to correct BIOS function
    3650    eMOVZX  bx, ah
Note: See TracChangeset for help on using the changeset viewer.