Changeset 421 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/EBIOS
- Timestamp:
- May 9, 2012, 7:12:53 PM (13 years ago)
- google:author:
- aitotat@gmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/EBIOS/AH48h_GetExtendedDriveParameters.asm
r376 r421 38 38 ;-------------------------------------------------------------------- 39 39 AH48h_HandlerForGetExtendedDriveParameters: 40 call AccessDPT_GetPointerToDRVPARAMStoCSBX41 push bx42 40 call AccessDPT_GetLbaSectorCountToBXDXAX 43 pop di ; CS:DI now points to DRVPARAMS44 41 45 42 ; Point DS:SI to Extended Drive Information Table to fill 43 push ds 44 pop es ; DPT now in ES:DI 46 45 mov ds, [bp+IDEPACK.intpack+INTPACK.ds] 47 46 mov cx, MINIMUM_EDRIVEINFO_SIZE … … 51 50 52 51 ; We do not support EDD Configuration Parameters so set to FFFF:FFFFh 53 mov cx, -1 ;FFFFh52 sub cx, BYTE MINIMUM_EDRIVEINFO_SIZE+1 ; CX => FFFFh 54 53 mov [si+EDRIVE_INFO.fpEDDparams], cx 55 54 mov [si+EDRIVE_INFO.fpEDDparams+2], cx … … 59 58 .SkipEddConfigurationParameters: 60 59 mov [si+EDRIVE_INFO.wSize], cx 61 mov WORD [si+EDRIVE_INFO.wFlags], FLG_DMA_BOUNDARY_ERRORS_HANDLED_BY_BIOS 60 mov WORD [si+EDRIVE_INFO.wFlags], FLG_DMA_BOUNDARY_ERRORS_HANDLED_BY_BIOS | FLG_CHS_INFORMATION_IS_VALID 62 61 63 62 ; Store total sector count … … 69 68 mov WORD [si+EDRIVE_INFO.wSectorSize], 512 70 69 70 ; Store P-CHS 71 eMOVZX dx, BYTE [es:di+DPT.bPchsHeads] 72 xor ax, ax ; Also a return code 73 mov [si+EDRIVE_INFO.dwHeads], dx 74 mov [si+EDRIVE_INFO.dwHeads+2], ax 75 76 mov dl, [es:di+DPT.bPchsSectorsPerTrack] 77 mov [si+EDRIVE_INFO.dwSectorsPerTrack], dx 78 mov [si+EDRIVE_INFO.dwSectorsPerTrack+2], ax 79 80 mov dx, [es:di+DPT.wPchsCylinders] 81 mov [si+EDRIVE_INFO.dwCylinders], dx 82 mov [si+EDRIVE_INFO.dwCylinders+2], ax 83 71 84 .ReturnWithError: 72 85 jmp Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
Note:
See TracChangeset
for help on using the changeset viewer.