Changeset 550 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Menus/DriveXlate.asm


Ignore:
Timestamp:
Apr 27, 2013, 5:30:50 PM (11 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • CREATE_COMPATIBLE_DPT is now MODULE_COMPATIBLE_TABLES.
  • DPTs pointed by INT 41h and INT 46h are now swapped when swapping drives 81h and 80h.
  • Block mode commands are no longer used when block size is set to 1 with AH=24h.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Menus/DriveXlate.asm

    r547 r550  
    9696    test    dl, ah                  ; Hard disk?
    9797    jnz     SHORT .SwapDrive        ; If so, jump to swap
     98
    9899    mov     al, [RAMVARS.xlateVars+XLATEVARS.bFDSwap]
    99100    cbw
     
    106107    jne     SHORT .RestoreAXandReturn
    107108    mov     al, ah
     109
    108110ALIGN JUMP_ALIGN
    109111.SwapToXXhInAL:
    110112    mov     dl, al
     113
     114%ifdef MODULE_COMPATIBLE_TABLES
     115    cmp     al, 81h
     116    jne     SHORT .RestoreAXandReturn
     117
     118    ; Since swapping drive 80h <=> 81h, we need to swap
     119    ; DPT pointers in interrupt vectors 41h and 46h.
     120    push    ds
     121    LOAD_BDA_SEGMENT_TO ds, ax
     122    mov     ax, [HD0_DPT_POINTER_41h*4]
     123    xchg    [HD1_DPT_POINTER_46h*4], ax
     124    mov     [HD0_DPT_POINTER_41h*4], ax
     125    mov     ax, [HD0_DPT_POINTER_41h*4+2]
     126    xchg    [HD1_DPT_POINTER_46h*4+2], ax
     127    mov     [HD0_DPT_POINTER_41h*4+2], ax
     128    pop     ds
     129%endif ; MODULE_COMPATIBLE_TABLES
     130
    111131ALIGN JUMP_ALIGN
    112132.RestoreAXandReturn:
Note: See TracChangeset for help on using the changeset viewer.