470,7 → 470,7 |
align 4 |
; note that IDE descriptor table must be 4-byte aligned and do not cross 4K boundary |
IDE_descriptor_table: |
dd 0x284000 |
dd IDE_DMA |
dw 0x2000 |
dw 0x8000 |
|
564,7 → 564,7 |
mov eax, [esp+4] |
sub eax, [dma_cur_sector] |
shl eax, 9 |
add eax, OS_BASE+0x284000 |
add eax, (OS_BASE+IDE_DMA) |
push ecx esi edi |
mov esi, eax |
shl edi, 9 |
583,7 → 583,7 |
ret |
.notread: |
mov eax, IDE_descriptor_table |
mov dword [eax], 0x284000 |
mov dword [eax], IDE_DMA |
mov word [eax+4], 0x2000 |
sub eax, OS_BASE |
mov dx, [IDEContrRegsBaseAddr] |
675,8 → 675,8 |
shl esi, 9 |
call calculate_cache_2 |
add esi,eax |
mov edi,OS_BASE+0x284000 ;HD_CACHE |
mov dword [edx], 0x284000 ;DMA_HD_MEM |
mov edi, (OS_BASE+IDE_DMA) |
mov dword [edx], IDE_DMA |
movzx ecx, [cache_chain_size] |
shl ecx, 9 |
mov word [edx+4], cx |