Changeset 221 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Device
- Timestamp:
- Jan 25, 2012, 2:36:47 PM (13 years ago)
- google:author:
- aitotat@gmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Device/Idepack.asm
r218 r221 25 25 ; Parameters: 26 26 ; AH: IDE command to issue 27 ; AL: Number of sectors to transfer (for xfer commands) 27 28 ; BH: Timeout ticks 28 29 ; BL: IDE Status Register flag to wait after command … … 39 40 ALIGN JUMP_ALIGN 40 41 Idepack_ConvertDapToIdepackAndIssueCommandFromAH: 42 mov [bp+IDEPACK.bSectorCount], al 41 43 mov [bp+IDEPACK.bCommand], ah 42 mov al, [es:si+DAP.bSectorCount]43 mov [bp+IDEPACK.bSectorCount], al44 44 45 45 mov al, [es:si+DAP.qwLBA] ; LBA byte 0 … … 56 56 or al, ah 57 57 mov [bp+IDEPACK.bDrvAndHead], al 58 les si, [es:si+DAP.dwMemoryAddress] 58 59 ; Normalize data buffer pointer to ES:SI 60 mov ax, [es:si+DAP.dwMemoryAddress] ; Load offset 61 mov cx, ax 62 eSHR_IM ax, 4 ; Divide offset by 16 63 add ax, [es:si+DAP.dwMemoryAddress+2] ; Add segment 64 mov es, ax ; Segment normalized 65 mov si, cx 66 and si, BYTE 0Fh ; Offset normalized 59 67 jmp SHORT GetDeviceControlByteToIdepackAndStartTransfer 60 68 %endif … … 65 73 ; Parameters: 66 74 ; AH: IDE command to issue 67 ; AL: Number of sectors to transfer 75 ; AL: Number of sectors to transfer (for xfer commands) 68 76 ; BH: Timeout ticks 69 77 ; BL: IDE Status Register flag to wait after command … … 73 81 ; DH: Starting head number (0...255) 74 82 ; DS:DI: Ptr to DPT (in RAMVARS segment) 83 ; ES:SI: Ptr to normalized data buffer (for xfer commands) 75 84 ; SS:BP: Ptr to IDEPACK (containing INTPACK) 76 ; Parameters on INTPACK:77 ; ES:BX: Ptr to data buffer78 85 ; Returns: 79 86 ; AH: INT 13h Error Code … … 88 95 89 96 push bx 90 call PrepareBuffer_ToESSIforOldInt13hTransfer91 97 call Address_OldInt13hAddressToIdeAddress 92 98 call AccessDPT_GetDriveSelectByteToAL
Note:
See TracChangeset
for help on using the changeset viewer.