Changeset 568 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools
- Timestamp:
- Dec 21, 2014, 5:37:53 PM (10 years ago)
- google:author:
- krille_n_@hotmail.com
- Location:
- trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Address.asm
r542 r568 37 37 ALIGN JUMP_ALIGN 38 38 Address_ExtractLCHSparametersFromOldInt13hAddress: 39 mov bl, cl ; Copy sector number...40 and bl, 3Fh ; ...and limit to 1...6339 mov bl, 3Fh ; Load sector number mask 40 and bl, cl ; Sector number now in BL 41 41 sub cl, bl ; Remove from cylinder number high 42 42 eROL_IM cl, 2 ; High bits to beginning … … 75 75 ; (LCylinder << n) + (LHead / PHeadCount) 76 76 mov dx, cx ; Copy L-CHS Cylinder number to DX 77 mov cl, [di+DPT.bFlagsLow] ; Load shift count78 and cl, MASKL_DPT_CHS_SHIFT_COUNT77 mov cl, MASKL_DPT_CHS_SHIFT_COUNT ; Load shift count mask 78 and cl, [di+DPT.bFlagsLow] ; Shift count now in CL 79 79 shl dx, cl ; DX = LCylinder << n 80 80 add ax, dx ; AX = P-CHS Cylinder number … … 83 83 ret 84 84 85 ; *FIXME* The above function description doesn't match the code. 86 ; If CX has a maximum value of 1023 on entry then there is no way CX can be 16382 on return. 87 ; 1023 SHL 3 (MASKL_DPT_CHS_SHIFT_COUNT) is 8184. With the addition of AX (at most 255?) 88 ; the result is 8439. 85 89 86 90 ;-------------------------------------------------------------------- … … 102 106 ALIGN JUMP_ALIGN 103 107 Address_OldInt13hAddressToIdeAddress: 104 call Address_ExtractLCHSparametersFromOldInt13hAddress 105 ACCESSDPT__GET_UNSHIFTED_TRANSLATE_MODE_TO_AXZF 108 call Address_ExtractLCHSparametersFromOldInt13hAddress 109 mov al, [di+DPT.bFlagsLow] 110 and al, MASKL_DPT_TRANSLATEMODE 106 111 107 112 ;;; 0: ADDRESSING_MODE_NORMAL 108 113 jz SHORT DoNotConvertLCHS 109 114 110 115 ;;; 1: ADDRESSING_MODE_LARGE 111 112 116 test al, FLGL_DPT_ASSISTED_LBA 117 jz SHORT ConvertLargeModeLCHStoPCHS 113 118 114 119 ;;; 2: ADDRESSING_MODE_ASSISTED_LBA 115 ; Fall throughto ConvertAssistedLBAModeLCHStoLBARegisterValues120 ; Fall to ConvertAssistedLBAModeLCHStoLBARegisterValues 116 121 117 122 -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Prepare.asm
r567 r568 46 46 ; Make sure that sector count is valid 47 47 %ifdef USE_UNDOC_INTEL 48 eSALC; Clear AL using CF (CF is cleared since JB above fell through)48 salc ; Clear AL using CF (CF is cleared since JB above fell through) 49 49 or al, [es:si+DAP.wSectorCount] 50 50 %else
Note:
See TracChangeset
for help on using the changeset viewer.