Changeset 181 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Initialization/AtaID.asm
- Timestamp:
- Nov 13, 2011, 3:38:40 PM (12 years ago)
- google:author:
- krille_n_@hotmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Initialization/AtaID.asm
r174 r181 121 121 ;-------------------------------------------------------------------- 122 122 AtaID_GetTotalSectorCountToBXDXAXfromAtaInfoInESSI: 123 call Registers_ExchangeDSSIwithESDI ; ATA info now in DSDI 123 mov bx, Registers_ExchangeDSSIwithESDI 124 call bx ; ATA info now in DS:DI 125 push bx ; We will return via Registers_ExchangeDSSIwithESDI 124 126 xor bx, bx 125 127 test BYTE [di+ATA1.wCaps+1], A1_wCaps_LBA>>8 … … 133 135 ; Parameters: 134 136 ; BX: Zero 135 ; DS: SI: Ptr to 512-byte ATA information read from the drive137 ; DS:DI: Ptr to 512-byte ATA information read from the drive 136 138 ; Returns: 137 139 ; BX:DX:AX: 48-bit sector count … … 145 147 mov dx, [di+ATA6.qwLBACnt+2] 146 148 mov bx, [di+ATA6.qwLBACnt+4] 147 jmp SHORT .ExchangePtrAndReturn149 ret 148 150 149 151 .GetLba28SectorCount: 150 152 mov ax, [di+ATA1.dwLBACnt] 151 153 mov dx, [di+ATA1.dwLBACnt+2] 152 jmp SHORT .ExchangePtrAndReturn154 ret 153 155 154 156 .GetChsSectorCount: … … 156 158 mul BYTE [di+ATA1.wHeadCnt] ; AX=Sectors per track * number of heads 157 159 mul WORD [di+ATA1.wCylCnt] ; DX:AX=Sectors per track * number of heads * number of cylinders 158 .ExchangePtrAndReturn: 159 jmp Registers_ExchangeDSSIwithESDI 160 ret
Note: See TracChangeset
for help on using the changeset viewer.