Ignore:
Timestamp:
Jan 31, 2011, 11:27:17 AM (13 years ago)
Author:
aitotat
google:author:
aitotat
Message:

Changes to XTIDE Universal BIOS:

  • Even more initialization code inlining.
File:
1 edited

Legend:

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

    r35 r99  
    1 ; File name     :   DriveXlate.asm
    2 ; Project name  :   IDE BIOS
    3 ; Created date  :   15.3.2010
    4 ; Last update   :   24.8.2010
    5 ; Author        :   Tomi Tilli
     1; Project name  :   XTIDE Universal BIOS
    62; Description   :   Functions for swapping drive letters.
    73
     
    10096DriveXlate_SwapFloppyDriveOrHardDisk:
    10197    test    dl, 80h                         ; Hard disk?
    102     jnz     SHORT DriveXlate_SwapHardDisk   ; If so, jump to swap
    103     ; Fall to DriveXlate_SwapFloppyDrive
    104 
    105 ;--------------------------------------------------------------------
    106 ; Swaps Floppy Drive number.
    107 ;
    108 ; DriveXlate_SwapFloppyDrive
    109 ;   Parameters:
    110 ;       DL:     Drive number to be possibly swapped
    111 ;       DS:     RAMVARS segment
    112 ;   Returns:
    113 ;       DL:     Translated drive number
    114 ;   Corrupts registers:
    115 ;       AX
    116 ;--------------------------------------------------------------------
    117 ;ALIGN JUMP_ALIGN
    118 DriveXlate_SwapFloppyDrive:
     98    jnz     SHORT .SwapHardDisk ; If so, jump to swap
     99    ; Fall to .SwapFloppyDrive
     100
     101;--------------------------------------------------------------------
     102; .SwapFloppyDrive
     103;   Parameters:
     104;       DL:     Drive number to be possibly swapped
     105;       DS:     RAMVARS segment
     106;   Returns:
     107;       DL:     Translated drive number
     108;   Corrupts registers:
     109;       AX
     110;--------------------------------------------------------------------
     111.SwapFloppyDrive:
    119112    eMOVZX  ax, BYTE [RAMVARS.xlateVars+XLATEVARS.bFDSwap]
    120     jmp     SHORT DriveXlate_SwapDrive
    121 
    122 ;--------------------------------------------------------------------
    123 ; Swaps Hard Disk number.
    124 ;
    125 ; DriveXlate_SwapHardDisk
    126 ;   Parameters:
    127 ;       DL:     Drive number to be possibly swapped
    128 ;       DS:     RAMVARS segment
    129 ;   Returns:
    130 ;       DL:     Translated drive number
    131 ;   Corrupts registers:
    132 ;       AX
    133 ;--------------------------------------------------------------------
    134 ALIGN JUMP_ALIGN
    135 DriveXlate_SwapHardDisk:
     113    jmp     SHORT SwapDrive
     114
     115;--------------------------------------------------------------------
     116; .SwapHardDisk
     117;   Parameters:
     118;       DL:     Drive number to be possibly swapped
     119;       DS:     RAMVARS segment
     120;   Returns:
     121;       DL:     Translated drive number
     122;   Corrupts registers:
     123;       AX
     124;--------------------------------------------------------------------
     125ALIGN JUMP_ALIGN
     126.SwapHardDisk:
    136127    mov     ah, 80h
    137128    mov     al, BYTE [RAMVARS.xlateVars+XLATEVARS.bHDSwap]
    138     ; Fall to DriveXlate_SwapDrive
    139 
    140 ;--------------------------------------------------------------------
    141 ; Swaps Hard Disk or Floppy Drive number.
    142 ;
    143 ; DriveXlate_SwapDrive
     129    ; Fall to SwapDrive
     130
     131;--------------------------------------------------------------------
     132; SwapDrive
    144133;   Parameters:
    145134;       AL:     Drive number to swap to 00h/80h
     
    151140;       Nothing
    152141;--------------------------------------------------------------------
    153 ;ALIGN JUMP_ALIGN
    154 DriveXlate_SwapDrive:
     142SwapDrive:
    155143    cmp     ah, dl              ; Swap DL from 00h/80h to xxh?
    156144    je      SHORT .SwapToXXhInAL
     
    201189DriveXlate_SetDriveToSwap:
    202190    test    dl, 80h             ; Floppy drive?
    203     jnz     SHORT DriveXlate_SetHardDiskToSwap
    204     ; Fall to DriveXlate_SetFloppyDriveToSwap
    205 
    206 ;--------------------------------------------------------------------
    207 ; Stores floppy drive to be swapped.
    208 ;
    209 ; DriveXlate_SetFloppyDriveToSwap
    210 ;   Parameters:
    211 ;       DL:     Drive to swap to 00h
    212 ;       DS:     RAMVARS segment
    213 ;   Returns:
    214 ;       Nothing
    215 ;   Corrupts registers:
    216 ;       Nothing
    217 ;--------------------------------------------------------------------   
    218 ALIGN JUMP_ALIGN
    219 DriveXlate_SetFloppyDriveToSwap:
     191    jnz     SHORT .SetHardDiskToSwap
     192.SetFloppyDriveToSwap:
    220193    mov     [RAMVARS.xlateVars+XLATEVARS.bFDSwap], dl
    221194    ret
    222 
    223 ;--------------------------------------------------------------------
    224 ; Stores hard disk to be swapped.
    225 ;
    226 ; DriveXlate_SetHardDiskToSwap
    227 ;   Parameters:
    228 ;       DL:     Drive to swap to 80h
    229 ;       DS:     RAMVARS segment
    230 ;   Returns:
    231 ;       Nothing
    232 ;   Corrupts registers:
    233 ;       Nothing
    234 ;--------------------------------------------------------------------   
    235 ALIGN JUMP_ALIGN
    236 DriveXlate_SetHardDiskToSwap:
     195ALIGN JUMP_ALIGN
     196.SetHardDiskToSwap:
    237197    mov     [RAMVARS.xlateVars+XLATEVARS.bHDSwap], dl
    238198    ret
Note: See TracChangeset for help on using the changeset viewer.