Rev 4659 | Rev 6023 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4659 | Rev 4710 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ;; ;; |
2 | ;; ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2013. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2014. All rights reserved. ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; ;; |
5 | ;; ;; |
6 | ;; Written by hidnplayr@kolibrios.org ;; |
6 | ;; Written by hidnplayr@kolibrios.org ;; |
7 | ;; ;; |
7 | ;; ;; |
8 | ;; GNU GENERAL PUBLIC LICENSE ;; |
8 | ;; GNU GENERAL PUBLIC LICENSE ;; |
Line 20... | Line 20... | ||
20 | ; ebx is ptr to window |
20 | ; ebx is ptr to window |
21 | align 4 |
21 | align 4 |
22 | user_add: |
22 | user_add: |
Line 23... | Line 23... | ||
23 | 23 | ||
24 | cmp [ebx + window.users], MAX_USERS |
24 | cmp [ebx + window.users], MAX_USERS |
Line 25... | Line 25... | ||
25 | jae fail |
25 | jae .fail |
26 | 26 | ||
27 | mov edi, [ebx + window.data_ptr] |
27 | mov edi, [ebx + window.data_ptr] |
28 | add edi, window_data.names |
28 | add edi, window_data.names |
Line 113... | Line 113... | ||
113 | xor al, al |
113 | xor al, al |
114 | stosb |
114 | stosb |
Line 115... | Line 115... | ||
115 | 115 | ||
116 | inc [ebx + window.users] |
116 | inc [ebx + window.users] |
117 | or [ebx + window.flags], FLAG_UPDATED |
117 | or [ebx + window.flags], FLAG_UPDATED |
118 | 118 | .fail: |
|
Line 126... | Line 126... | ||
126 | ; ebx is ptr to window |
126 | ; ebx is ptr to window |
127 | align 4 |
127 | align 4 |
128 | user_remove: |
128 | user_remove: |
Line 129... | Line 129... | ||
129 | 129 | ||
130 | call user_find |
130 | call user_find |
Line 131... | Line 131... | ||
131 | jz fail |
131 | jz .fail |
132 | 132 | ||
133 | lea esi, [edi + MAX_NICK_LEN] |
133 | lea esi, [edi + MAX_NICK_LEN] |
134 | mov ecx, [ebx + window.data_ptr] |
134 | mov ecx, [ebx + window.data_ptr] |
135 | add ecx, window_data.names + MAX_NICK_LEN * MAX_USERS |
135 | add ecx, window_data.names + MAX_NICK_LEN * MAX_USERS |
136 | sub ecx, esi |
136 | sub ecx, esi |
Line 137... | Line 137... | ||
137 | shr ecx, 2 |
137 | shr ecx, 2 |
138 | rep movsd |
138 | rep movsd |
139 | 139 | ||
140 | dec [ebx + window.users] |
140 | dec [ebx + window.users] |
Line 141... | Line 141... | ||
141 | or [ebx + window.flags], FLAG_UPDATED |
141 | or [ebx + window.flags], FLAG_UPDATED |
Line 152... | Line 152... | ||
152 | align 4 |
152 | align 4 |
153 | user_find: |
153 | user_find: |
Line 154... | Line 154... | ||
154 | 154 | ||
155 | mov eax, [ebx + window.users] |
155 | mov eax, [ebx + window.users] |
156 | test eax, eax |
156 | test eax, eax |
157 | jz fail |
157 | jz .fail |
158 | mov edi, [ebx + window.data_ptr] |
158 | mov edi, [ebx + window.data_ptr] |
Line 159... | Line 159... | ||
159 | add edi, window_data.names |
159 | add edi, window_data.names |
160 | 160 | ||
Line 167... | Line 167... | ||
167 | ; TODO: check byte[esi] too! |
167 | ; TODO: check byte[esi] too! |
168 | pop edi esi |
168 | pop edi esi |
169 | add edi, MAX_NICK_LEN |
169 | add edi, MAX_NICK_LEN |
170 | dec eax |
170 | dec eax |
171 | jnz .loop |
171 | jnz .loop |
172 | jmp fail |
172 | jmp .fail |
Line 173... | Line 173... | ||
173 | 173 | ||
174 | .got_it: |
174 | .got_it: |
175 | pop edi esi |
175 | pop edi esi |
- | 176 | test edi, edi ; to clear zero flag |
|
Line -... | Line 177... | ||
- | 177 | ret |
|
- | 178 | ||
176 | test edi, edi ; to clear zero flag |
179 | .fail: |
Line 177... | Line -... | ||
177 | - | ||
Line -... | Line 180... | ||
- | 180 | xor edi, edi |
|
- | 181 | ret |
|
178 | ret |
182 | |
- | 183 | ||
- | 184 | ||
- | 185 | user_remove_all: |
|
- | 186 | ||
- | 187 | xor eax, eax |
|
- | 188 | mov edi, [window_print] |
|
- | 189 | mov [edi + window.users], eax |
|
- | 190 | mov [edi + window.selected], eax |
|
179 | 191 | mov edi, [edi + window.data_ptr] |
|
180 | 192 | add edi, window_data.names |