/kernel/trunk/fdo.inc |
---|
1,13 → 1,11 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;; ;; |
;; Copyright (C) KolibriOS team 2004-2015. All rights reserved. ;; |
;; Copyright (C) KolibriOS team 2004-2019. All rights reserved. ;; |
;; Distributed under terms of the GNU General Public License ;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
$Revision$ |
_esp equ esp |
; |
; Formatted Debug Output (FDO) |
; Copyright (c) 2005-2006, mike.dld |
22,6 → 20,12 |
; __DEBUG__ equ 1 |
; __DEBUG_LEVEL__ equ 5 |
_esp equ esp |
macro put_board { |
call sys_msg_board |
} |
macro debug_func name { |
if used name |
name@of@func equ name |
243,7 → 247,7 |
pushad |
movzx ecx, al |
mov ebx, 1 |
call sys_msg_board |
put_board |
popad |
ret |
debug_endf |
257,7 → 261,7 |
movzx ecx, byte[edx] |
or cl, cl |
jz .l2 |
call sys_msg_board |
put_board |
inc edx |
jmp .l1 |
.l2: |
391,6 → 395,17 |
end if |
} |
macro DEBUGFG _level, _group, _format, [_arg] { |
common |
if _group eqtype |
DEBUGF _level, _format,_arg |
else |
if _level >= _group |
DEBUGF 999, _format,_arg |
end if |
end if |
} |
macro __include_debug_strings dummy,[_id,_fmt,_len] { |
common |
local c1,a1,a2 |
/programs/debug-fdo.inc |
---|
12,6 → 12,12 |
; __DEBUG__ equ 1 |
; __DEBUG_LEVEL__ equ 5 |
_esp equ esp |
macro put_board { |
mcall 63 |
} |
macro debug_func name { |
if used name |
name@of@func equ name |
52,11 → 58,11 |
jmp ..label |
..str db _str,0 |
..label: |
add esp,4*8+4 |
mov edx,..str |
sub esp,4*8+4 |
else |
esp equ esp+4*8+4 |
mov edx,_str |
esp equ _esp |
end if |
if ~_num eq |
if _num eqtype eax |
138,7 → 144,8 |
else if _dec eqtype 0 |
mov eax,_dec |
else |
add esp,4*8+4 |
; add esp,4*8+4 |
esp equ esp+4*8+4 |
if _num eq |
mov eax,dword _dec |
else if _num = 1 |
156,7 → 163,8 |
else |
mov eax,dword _dec |
end if |
sub esp,4*8+4 |
esp equ _esp |
; sub esp,4*8+4 |
end if |
mov cl,_sign |
call fdo_debug_outdec |
187,11 → 195,11 |
if ~_hex eq eax |
mov eax,_hex |
end if |
mov edx, 8 |
else if _hex in <ax,bx,cx,dx,si,di,bp,sp> |
if ~_hex eq ax |
movzx eax,_hex |
end if |
shl eax,16 |
if (_num eq) |
mov edx,4 |
end if |
199,7 → 207,6 |
if ~_hex eq al |
movzx eax,_hex |
end if |
shl eax,24 |
if (_num eq) |
mov edx,2 |
end if |
207,15 → 214,19 |
else if _hex eqtype 0 |
mov eax,_hex |
else |
add esp,4*8+4 |
; add esp,4*8+4 |
esp equ esp+4*8+4 |
mov eax,dword _hex |
sub esp,4*8+4 |
esp equ _esp |
; sub esp,4*8+4 |
end if |
if ~_num eq |
mov edx,_num |
else |
if ~_hex eqtype eax |
mov edx,8 |
end if |
end if |
call fdo_debug_outhex |
popad |
popf |
226,10 → 237,9 |
debug_func fdo_debug_outchar |
debug_beginf |
pushad |
mov cl,al |
movzx ecx, al |
mov ebx,1 |
mov eax,63 |
mcall |
put_board |
popad |
ret |
debug_endf |
236,17 → 246,18 |
debug_func fdo_debug_outstr |
debug_beginf |
mov eax,63 |
mov ebx,1 |
.l1: dec esi |
.l1: |
dec esi |
js .l2 |
mov cl,[edx] |
movzx ecx, byte[edx] |
or cl,cl |
jz .l2 |
mcall |
put_board |
inc edx |
jmp .l1 |
.l2: ret |
.l2: |
ret |
debug_endf |
debug_func fdo_debug_outdec |
260,20 → 271,23 |
mov al,'-' |
call fdo_debug_outchar |
pop eax |
@@: push 10 |
pop ecx |
@@: |
movi ecx, 10 |
push -'0' |
.l1: xor edx,edx |
.l1: |
xor edx, edx |
div ecx |
push edx |
test eax,eax |
jnz .l1 |
.l2: pop eax |
.l2: |
pop eax |
add al,'0' |
jz .l3 |
call fdo_debug_outchar |
jmp .l2 |
.l3: ret |
.l3: |
ret |
debug_endf |
debug_func fdo_debug_outhex |
284,7 → 298,8 |
add cl,8 |
shl cl,2 |
rol eax,cl |
.l1: rol eax,4 |
.l1: |
rol eax, 4 |
push eax |
and eax,0x0000000F |
mov al,[__fdo_hexdigits+eax] |