Subversion Repositories Kolibri OS

Rev

Rev 2434 | Rev 3626 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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