Rev 855 | Rev 887 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 855 | Rev 864 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | ;; Copyright (C) KolibriOS team 2007-2008. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2007-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: 855 $ |
8 | $Revision: 864 $ |
9 | 9 | ||
Line 10... | Line 10... | ||
10 | ; Virtual-8086 mode manager |
10 | ; Virtual-8086 mode manager |
Line 47... | Line 47... | ||
47 | ; First is main page directory for V86 mode. |
47 | ; First is main page directory for V86 mode. |
48 | ; Second page: |
48 | ; Second page: |
49 | ; first half (0x800 bytes) is page table for addresses 0 - 0x100000, |
49 | ; first half (0x800 bytes) is page table for addresses 0 - 0x100000, |
50 | ; second half is for V86-to-linear translation. |
50 | ; second half is for V86-to-linear translation. |
51 | ; Third and fourth are for I/O permission map. |
51 | ; Third and fourth are for I/O permission map. |
52 | push 8000h ; blocks less than 8 pages are discontinuous |
52 | mov ecx, 2 |
53 | call kernel_alloc |
53 | call @core_alloc@4 |
54 | test eax, eax |
54 | test eax, eax |
55 | jz .fail2 |
55 | jz .fail2 |
- | 56 | add eax, OS_BASE |
|
56 | mov [ebx+V86_machine.pagedir], eax |
57 | mov [ebx+V86_machine.pagedir], eax |
57 | push edi eax |
58 | push edi eax |
58 | mov edi, eax |
59 | mov edi, eax |
59 | add eax, 1800h |
60 | add eax, 1800h |
60 | mov [ebx+V86_machine.pages], eax |
61 | mov [ebx+V86_machine.pages], eax |