Subversion Repositories Kolibri OS

Rev

Rev 2434 | Rev 3626 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2465 Serge 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                              ;;
3
;; Copyright (C) KolibriOS team 2004-2011. All rights reserved. ;;
4
;; Distributed under terms of the GNU General Public License    ;;
5
;;                                                              ;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
426 mikedld 7
 
8
__REV = 0
9
 
10
macro $Revision a {
11
  match =: Num =$,a \{
12
    if __REV < Num
13
      __REV = Num
14
    end if
15
  \}
16
}
17
 
18
$Revision: 2465 $
19
 
593 mikedld 20
 
426 mikedld 21
;// mike.dld, 2006-29-01 [
22
 
23
; macros definition
24
macro diff16 title,l1,l2
25
{
26
  local s,d
27
  s = l2-l1
28
  display title,': 0x'
506 mikedld 29
  repeat 16
30
    d = 48 + s shr ((16-%) shl 2) and $0F
426 mikedld 31
    if d > 57
32
      d = d + 65-57-1
33
    end if
34
    display d
35
  end repeat
36
  display 13,10
37
}
38
macro diff10 title,l1,l2
39
 {
40
  local s,d,z,m
41
  s = l2-l1
42
  z = 0
43
  m = 1000000000
44
  display title,': '
45
  repeat 10
46
   d = '0' + s / m
47
   s = s - (s/m)*m
48
   m = m / 10
49
   if d <> '0'
50
    z = 1
51
   end if
52
   if z <> 0
53
    display d
54
   end if
55
  end repeat
56
  display 13,10
57
 }
58
 
521 diamond 59
include 'kglobals.inc'
60
 
426 mikedld 61
; \begin{diamond}[29.09.2006]
62
; may be useful for kernel debugging
63
; example 1:
64
;       dbgstr 'Hello, World!'
65
; example 2:
66
;       dbgstr 'Hello, World!', save_flags
67
macro dbgstr string*, f
68
{
69
local a
70
iglobal_nested
71
a db 'K : ',string,13,10,0
72
endg_nested
73
if ~ f eq
2434 Serge 74
        pushfd
426 mikedld 75
end if
2434 Serge 76
        push    esi
77
        mov     esi, a
78
        call    sys_msg_board_str
79
        pop     esi
426 mikedld 80
if ~ f eq
2434 Serge 81
        popfd
426 mikedld 82
end if
83
}
84
; \end{diamond}[29.09.2006]
1055 Galkov 85
 
86
macro Mov op1,op2,op3 ; op1 = op2 = op3
87
 {
2434 Serge 88
        mov     op2, op3
89
        mov     op1, op2
1055 Galkov 90
 }
2143 serge 91
 
92
macro __list_add new, prev, next
93
{
2434 Serge 94
        mov     [next+LHEAD.prev], new
95
        mov     [new+LHEAD.next], next
96
        mov     [new+LHEAD.prev], prev
97
        mov     [prev+LHEAD.next], new
2143 serge 98
}
99
 
100
macro list_add new, head
101
{
2434 Serge 102
        mov     eax, [head+LHEAD.next]
2143 serge 103
    __list_add new, head, eax
104
}
105
 
106
macro list_add_tail new, head
107
{
2434 Serge 108
        mov     eax, [head+LHEAD.prev]
2143 serge 109
    __list_add new, eax, head
110
}
111
 
112
macro list_del entry
113
{
2434 Serge 114
        mov     edx, [entry+list_fd]
115
        mov     ecx, [entry+list_bk]
116
        mov     [edx+list_bk], ecx
117
        mov     [ecx+list_fd], edx
2143 serge 118
}
119