Subversion Repositories Kolibri OS

Rev

Rev 1457 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1457 Rev 1464
Line 1... Line 1...
1
; ìàêðîñ äëÿ ñèñòåìíîé áèáëèîòåêè box_lib.obj
1
; ìàêðîñ äëÿ ñèñòåìíîé áèáëèîòåêè box_lib.obj
2
; ýëåìåíò TreeList äëÿ Kolibri OS
2
; ýëåìåíò TreeList äëÿ Kolibri OS
3
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 29.04.2010 IgorA
3
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 15.05.2010 IgorA
4
; íà êîä ïðèìåíåíà GPL2 ëèöåíçèÿ
4
; íà êîä ïðèìåíåíà GPL2 ëèöåíçèÿ
Line 5... Line 5...
5
 
5
 
6
 
6
 
Line 15... Line 15...
15
;  td dd ?   ;+16 âðåì. óäàëåíèÿ
15
;  td dd ?   ;+16 âðåì. óäàëåíèÿ
16
;ends
16
;ends
Line 17... Line 17...
17
 
17
 
18
macro use_tree_list
18
macro use_tree_list
19
{
-
 
20
;-----------------------------------------------------------------------------
-
 
21
;ôóíêöèÿ äëÿ âûäåëåíèÿ ïàìÿòè
-
 
22
;input:
-
 
23
; ecx = size data
-
 
24
;otput:
-
 
25
; eax = pointer to memory
-
 
26
align 4
-
 
27
mem_Alloc:
-
 
28
  push ebx
-
 
29
  mov eax,68
-
 
30
  mov ebx,12
-
 
31
  int 0x40
-
 
32
  pop ebx
-
 
33
  ret
-
 
34
;-----------------------------------------------------------------------------
-
 
35
;ôóíêöèÿ äëÿ îñâîáîæäåíèÿ ïàìÿòè
-
 
36
;input:
-
 
37
; ecx = pointer to memory
-
 
38
align 4
-
 
39
mem_Free:
-
 
40
  push eax ebx
-
 
41
  cmp ecx,0
-
 
42
  jz @f
-
 
43
    mov eax,68
-
 
44
    mov ebx,13
-
 
45
    int 0x40
-
 
46
  @@:
-
 
47
  pop ebx eax
-
 
48
  ret
-
 
49
 
19
{
50
align 4
20
align 4
51
tl_data_init: ;âûäåëíèå ïàìÿòè äëÿ ñòðóêòóð ñïèñêà è îñíîâíîé èíôîðìàöèè (êîíñòðóêòîð)
21
tl_data_init: ;âûäåëíèå ïàìÿòè äëÿ ñòðóêòóð ñïèñêà è îñíîâíîé èíôîðìàöèè (êîíñòðóêòîð)
52
  push ebp
22
  push ebp
53
  mov ebp,esp
23
  mov ebp,esp
Line 93... Line 63...
93
  pop edi ecx eax
63
  pop edi ecx eax
94
  pop ebp
64
  pop ebp
95
  ret 4
65
  ret 4
Line 96... Line 66...
96
 
66
 
97
align 4
67
align 4
98
tl_data_clear: ;î÷èñòêà ïàìÿòè ýëåìåíòà (äåñòðóêòîð)
68
proc tl_data_clear, tlist:dword ;î÷èñòêà ïàìÿòè ýëåìåíòà (äåñòðóêòîð)
99
  push ebp
-
 
100
  mov ebp,esp
-
 
101
    push ecx edi
69
	push edi
102
    mov edi,dword[ebp+8]
70
	mov edi,dword[tlist]
103
    cmp tl_data_img,0
71
	cmp tl_data_img,0
104
    je @f
-
 
105
      mov ecx,tl_data_img
72
	je @f
106
      call mem_Free ;÷èñòêà ñèñòåìíûõ èêîíîê
73
		stdcall mem_Free,tl_data_img ;÷èñòêà ñèñòåìíûõ èêîíîê
107
    @@:
74
	@@:
108
    cmp tl_data_img_sys,0
75
	cmp tl_data_img_sys,0
109
    je @f
-
 
110
      mov ecx,tl_data_img_sys
76
	je @f
111
      call mem_Free ;÷èñòêà ñèñòåìíûõ èêîíîê
77
		stdcall mem_Free,tl_data_img_sys ;÷èñòêà ñèñòåìíûõ èêîíîê
112
    @@:
78
	@@:
113
    mov ecx,dword[edi]
-
 
Line 114... Line 79...
114
    call mem_Free
79
	stdcall mem_Free,dword[edi]
115
 
-
 
116
    mov ecx,tl_data_nodes
80
 
117
    call mem_Free
81
	stdcall mem_Free,tl_data_nodes
118
    pop edi ecx
82
	pop edi
Line 119... Line 83...
119
  pop ebp
83
	ret
120
  ret 4
84
endp
121
 
85
 
122
align 4
86
align 4