Changeset 99 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Initialization/DriveXlate.asm
- Timestamp:
- Jan 31, 2011, 11:27:17 AM (13 years ago)
- google:author:
- aitotat
- 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 6 2 ; Description : Functions for swapping drive letters. 7 3 … … 100 96 DriveXlate_SwapFloppyDriveOrHardDisk: 101 97 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: 119 112 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 ;-------------------------------------------------------------------- 125 ALIGN JUMP_ALIGN 126 .SwapHardDisk: 136 127 mov ah, 80h 137 128 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 144 133 ; Parameters: 145 134 ; AL: Drive number to swap to 00h/80h … … 151 140 ; Nothing 152 141 ;-------------------------------------------------------------------- 153 ;ALIGN JUMP_ALIGN 154 DriveXlate_SwapDrive: 142 SwapDrive: 155 143 cmp ah, dl ; Swap DL from 00h/80h to xxh? 156 144 je SHORT .SwapToXXhInAL … … 201 189 DriveXlate_SetDriveToSwap: 202 190 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: 220 193 mov [RAMVARS.xlateVars+XLATEVARS.bFDSwap], dl 221 194 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: 195 ALIGN JUMP_ALIGN 196 .SetHardDiskToSwap: 237 197 mov [RAMVARS.xlateVars+XLATEVARS.bHDSwap], dl 238 198 ret
Note: See TracChangeset
for help on using the changeset viewer.