Changeset 221 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/EBIOS/AH42h_ExtendedReadSectors.asm
- Timestamp:
- Jan 25, 2012, 2:36:47 PM (12 years ago)
- google:author:
- aitotat@gmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/EBIOS/AH42h_ExtendedReadSectors.asm
r218 r221 24 24 ALIGN JUMP_ALIGN 25 25 AH42h_HandlerForExtendedReadSectors: 26 call AH42h_LoadDapToESSIandVerifyForTransfer 27 call CommandLookup_GetEbiosIndexToBX 26 call Prepare_ByLoadingDapToESSIandVerifyingForTransfer 28 27 mov ah, [cs:bx+g_rgbReadCommandLookup] 29 28 mov bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_DRQ, FLG_STATUS_DRQ) … … 35 34 jmp Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH 36 35 %endif 37 38 39 ;--------------------------------------------------------------------40 ; AH42h_LoadDapToESSIandVerifyForTransfer41 ; Parameters:42 ; SI: Same as in INTPACK43 ; SS:BP: Ptr to IDEPACK44 ; Parameters on INTPACK:45 ; DS:SI: Ptr to Disk Address Packet46 ; Returns:47 ; ES:SI: Ptr to Disk Address Packet (DAP)48 ; Exits from INT 13h if invalid DAP49 ; Corrupts registers:50 ; Nothing51 ;--------------------------------------------------------------------52 ALIGN JUMP_ALIGN53 AH42h_LoadDapToESSIandVerifyForTransfer:54 mov es, [bp+IDEPACK.intpack+INTPACK.ds] ; ES:SI to point Disk Address Packet55 cmp BYTE [es:si+DAP.bSize], MINIMUM_DAP_SIZE56 jb SHORT AH42h_ReturnWithInvalidFunctionError57 cmp WORD [es:si+DAP.bSectorCount], BYTE 058 je SHORT AH42h_ReturnWithInvalidFunctionError59 ret60 AH42h_ReturnWithInvalidFunctionError:61 mov ah, RET_HD_INVALID62 jmp Int13h_ReturnFromHandlerAfterStoringErrorCodeFromAH
Note: See TracChangeset
for help on using the changeset viewer.