Changeset 230 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools
- Timestamp:
- Jan 29, 2012, 11:22:19 PM (13 years ago)
- google:author:
- krille_n_@hotmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Address.asm
r227 r230 86 86 Address_OldInt13hAddressToIdeAddress: 87 87 call Address_ExtractLCHSparametersFromOldInt13hAddress 88 88 89 89 AccessDPT_GetUnshiftedAddressModeToALZF 90 91 ;;; 0: ADDR_DPT_LCHS 92 jz DoNotConvertLCHS 93 90 91 ;;; 0: ADDR_DPT_LCHS 92 jz DoNotConvertLCHS 93 94 94 ;;; 1: ADDR_DPT_PCHS 95 ; 95 ; 96 96 ; Since we are only checking for zero, we can do our math in the high order bits, 97 97 ; in this case effectively subtracting 1 from the address mode. 98 98 ; 99 99 sub al,(1<<ADDRESSING_MODE_FIELD_POSITION) 100 jz ConvertLCHStoPCHS 100 jz ConvertLCHStoPCHS 101 101 102 ;;; 2: ADDR_DPT_LBA28 and 3: ADDR_DPT_LBA48 103 ; Fall through to ConvertLCHStoLBARegisterValues 104 102 ;;; 2: ADDR_DPT_LBA28 and 3: ADDR_DPT_LBA48 103 ; Fall through to ConvertLCHStoLBARegisterValues 104 105 105 ;--------------------------------------------------------------------- 106 106 ; Converts LCHS parameters to 28-bit LBA address. … … 129 129 ; cylToSeek*headsPerCyl (18-bit result) 130 130 mov ax, cx ; Copy Cylinder number to AX 131 ; We could save a byte here by using CWD instead of the XOR DH, DH in eMOVZX 132 ; but I'm not sure how that would affect speed. 133 131 134 eMOVZX dx, BYTE [di+DPT.bLbaHeads] 132 135 mul dx ; DX:AX = cylToSeek*headsPerCyl
Note:
See TracChangeset
for help on using the changeset viewer.