Subversion Repositories Kolibri OS

Rev

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

Rev 1131 Rev 1331
Line 3... Line 3...
3
;; Copyright (C) KolibriOS team 2004-2008. All rights reserved. ;;
3
;; Copyright (C) KolibriOS team 2004-2008. 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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 7... Line 7...
7
 
7
 
Line 8... Line 8...
8
$Revision: 1131 $
8
$Revision: 1331 $
9
 
9
 
10
 
10
 
Line 203... Line 203...
203
           shr ecx, 12 ; ecx = number of pages
203
           shr ecx, 12 ; ecx = number of pages
204
           jz .next
204
           jz .next
205
           mov edi, [ebx]
205
           mov edi, [ebx]
206
           shr edi, 12 ; edi = first page
206
           shr edi, 12 ; edi = first page
207
           mov eax, edi
207
           mov eax, edi
208
           neg eax
-
 
209
           shr edi, 5
208
           shr edi, 5
-
 
209
           shl edi, 2
210
           add edi, sys_pgmap-OS_BASE
210
           add edi, sys_pgmap-OS_BASE
211
           and eax, 31
211
           and eax, 31
212
           jz .startok
212
           jz .startok
213
           sub ecx, eax
213
           add ecx, eax
-
 
214
           sub ecx, 32
214
           jbe .onedword
215
           jbe .onedword
215
           push ecx
216
           push ecx
216
           mov ecx, eax
217
           mov ecx, eax
217
           xor eax, eax
218
           or eax, -1
218
           inc eax
-
 
219
           shl eax, cl
219
           shl eax, cl
220
           dec eax
-
 
221
           or [edi], eax
220
           or [edi], eax
222
           add edi, 4
221
           add edi, 4
223
           pop ecx
222
           pop ecx
224
.startok:
223
.startok:
225
           push ecx
224
           push ecx
226
           shr ecx, 5
225
           shr ecx, 5
227
           or eax, -1
226
           or eax, -1
228
           rep stosd
227
           rep stosd
229
           pop ecx
228
           pop ecx
230
           and ecx, 31
229
           and ecx, 31
231
           not eax
230
           neg eax
232
           shl eax, cl
231
           shl eax, cl
-
 
232
           dec eax
233
           or [edi], eax
233
           or [edi], eax
234
           jmp .next
234
           jmp .next
235
.onedword:
235
.onedword:
-
 
236
           add ecx, 32
236
           add ecx, eax
237
           sub ecx, eax
237
@@:
238
@@:
238
           dec eax
-
 
239
           bts [edi], eax
239
           bts [edi], eax
-
 
240
           inc eax
240
           loop @b
241
           loop @b
241
.next:
242
.next:
242
           add ebx, 20
243
           add ebx, 20
243
           dec edx
244
           dec edx
244
           jnz .scanmap
245
           jnz .scanmap