hd_drv.inc: now code should work correctly on any computer

kernel32.inc: added 'dbgstr' macro which may be useful for kernel debugging

git-svn-id: svn://kolibrios.org@162 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond) 2006-10-04 14:35:44 +00:00
parent 603863d00c
commit 2e850e52f6
3 changed files with 44 additions and 8 deletions

View File

@ -130,17 +130,19 @@ hd_read_pio:
ret ret
disable_ide_int: disable_ide_int:
mov edx,[hdbase] ; mov edx,[hdbase]
add edx,0x206 ; add edx,0x206
mov al,2 ; mov al,2
out dx,al ; out dx,al
cli
ret ret
enable_ide_int: enable_ide_int:
mov edx,[hdbase] ; mov edx,[hdbase]
add edx,0x206 ; add edx,0x206
mov al,0 ; mov al,0
out dx,al ; out dx,al
sti
ret ret
align 4 align 4

View File

@ -50,6 +50,31 @@ macro diff16 title,l1,l2
display 13,10 display 13,10
} }
; \begin{diamond}[29.09.2006]
; may be useful for kernel debugging
; example 1:
; dbgstr 'Hello, World!'
; example 2:
; dbgstr 'Hello, World!', save_flags
macro dbgstr string*, f
{
local a
iglobal_nested
a db 'K : ',string,13,10,0
endg_nested
if ~ f eq
pushfd
end if
push esi
mov esi, a
call sys_msg_board_str
pop esi
if ~ f eq
popfd
end if
}
; \end{diamond}[29.09.2006]
struc db [a] { common . db a struc db [a] { common . db a
if ~used . if ~used .
display 'not used db: ',`.,13,10 display 'not used db: ',`.,13,10

View File

@ -5,6 +5,10 @@ macro iglobal {
IGlobals equ IGlobals, IGlobals equ IGlobals,
macro __IGlobalBlock { } macro __IGlobalBlock { }
macro iglobal_nested {
IGlobals equ IGlobals,
macro __IGlobalBlock \{ }
;------------------------------------------------------------- ;-------------------------------------------------------------
; use 'uglobal' for inserting uninitialized global definitions. ; use 'uglobal' for inserting uninitialized global definitions.
; even when you define some data values, these variables ; even when you define some data values, these variables
@ -14,7 +18,12 @@ macro uglobal {
UGlobals equ UGlobals, UGlobals equ UGlobals,
macro __UGlobalBlock { } macro __UGlobalBlock { }
macro uglobal_nested {
UGlobals equ UGlobals,
macro __UGlobalBlock \{ }
endg fix } ; Use endg for ending iglobal and uglobal blocks. endg fix } ; Use endg for ending iglobal and uglobal blocks.
endg_nested fix \}
macro IncludeIGlobals{ macro IncludeIGlobals{
macro IGlobals dummy,[n] \{ __IGlobalBlock macro IGlobals dummy,[n] \{ __IGlobalBlock