From 603863d00ce69c4bbd3eb90b6213e3a0075ad139 Mon Sep 17 00:00:00 2001 From: "Evgeny Grechnikov (Diamond)" Date: Mon, 2 Oct 2006 12:21:10 +0000 Subject: [PATCH] Added copyright strings for author of DMA HDD code (Mario79). Fixed error handling in hd_drv.inc. git-svn-id: svn://kolibrios.org@161 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/trunk/blkdev/hd_drv.inc | 12 +++++++----- kernel/trunk/boot/bootcode.inc | 3 +++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/kernel/trunk/blkdev/hd_drv.inc b/kernel/trunk/blkdev/hd_drv.inc index c10b9db4c..c05c57deb 100755 --- a/kernel/trunk/blkdev/hd_drv.inc +++ b/kernel/trunk/blkdev/hd_drv.inc @@ -1,3 +1,5 @@ +; Low-level driver for HDD access +; DMA support by Mario79 ;************************************************************************** ; @@ -431,8 +433,7 @@ hd_read_error: mov esi,hd_read_str call sys_msg_board_str pop edx eax - jmp return_01 -; jmp $ + ret hd_write_error: @@ -440,8 +441,7 @@ hd_write_error: call clear_application_table_status mov esi,hd_write_str call sys_msg_board_str - jmp return_02 -; jmp $ + ret hd_write_error_dma: call clear_hd_cache @@ -449,7 +449,7 @@ hd_write_error_dma: mov esi, hd_write_str call sys_msg_board_str pop esi - jmp return_02 + ret hd_lba_error: call clear_hd_cache @@ -520,6 +520,7 @@ wait_for_sector_buffer: pop edx eax ret +; \begin{Mario79} align 4 wait_for_sector_dma_ide0: push eax @@ -852,3 +853,4 @@ do_write_dma: uglobal IDEContrRegsBaseAddr dw ? endg +; \end{Mario79} diff --git a/kernel/trunk/boot/bootcode.inc b/kernel/trunk/boot/bootcode.inc index 2b1c76f95..168ae9d7a 100644 --- a/kernel/trunk/boot/bootcode.inc +++ b/kernel/trunk/boot/bootcode.inc @@ -364,6 +364,8 @@ sayerr: push 0 pop es and word [es:0x9031], 0 +; \begin{Mario79} +; find HDD IDE DMA PCI device ; check for PCI BIOS mov ax, 0xB101 int 0x1A @@ -400,6 +402,7 @@ sayerr: and cx, 0xFFF0 ; clear address decode type mov [es:0x9031], cx .nopci: +; \end{Mario79} mov al,0xf6 ; Ñáðîñ êëàâèàòóðû, ðàçðåøèòü ñêàíèðîâàíèå out 0x60,al