Rev 5201 | Rev 6078 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5201 | Rev 5565 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ;; ;; |
2 | ;; ;; |
3 | ;; Copyright (C) KolibriOS team 2007-2012. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2007-2015. 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: 5201 $ |
8 | $Revision: 5565 $ |
9 | 9 | ||
Line 10... | Line 10... | ||
10 | ; Virtual-8086 mode manager |
10 | ; Virtual-8086 mode manager |
Line 76... | Line 76... | ||
76 | ; physical address = 0x9C000 |
76 | ; physical address = 0x9C000 |
77 | ; linear address = 0x8009C000 |
77 | ; linear address = 0x8009C000 |
78 | ; (I have seen one computer with EBDA segment = 0x9D80, |
78 | ; (I have seen one computer with EBDA segment = 0x9D80, |
79 | ; all other computers use less memory) |
79 | ; all other computers use less memory) |
Line 80... | Line 80... | ||
80 | 80 | ||
81 | mov eax, PG_UW |
81 | mov eax, PG_UWR |
82 | mov [page_tabs], eax |
82 | mov [page_tabs], eax |
Line 83... | Line 83... | ||
83 | invlpg [eax] |
83 | invlpg [eax] |
84 | 84 | ||
85 | mov byte [0x500], 0xCD |
85 | mov byte [0x500], 0xCD |
86 | mov byte [0x501], 0x13 |
86 | mov byte [0x501], 0x13 |
87 | mov byte [0x502], 0xF4 |
87 | mov byte [0x502], 0xF4 |
88 | mov byte [0x503], 0xCD |
88 | mov byte [0x503], 0xCD |
Line 89... | Line 89... | ||
89 | mov byte [0x504], 0x10 |
89 | mov byte [0x504], 0x10 |
90 | mov byte [0x505], 0xF4 |
90 | mov byte [0x505], 0xF4 |
91 | 91 | ||
92 | mov eax, 0x99000+PG_UW |
92 | mov eax, 0x99000+PG_UWR |
93 | mov edi, page_tabs+0x99*4 |
93 | mov edi, page_tabs+0x99*4 |
94 | mov edx, 0x1000 |
94 | mov edx, 0x1000 |
Line 99... | Line 99... | ||
99 | loop @b |
99 | loop @b |
Line 100... | Line 100... | ||
100 | 100 | ||
101 | ; addresses 0xC0000 - 0xFFFFF - BIOS code (shared between all machines!) |
101 | ; addresses 0xC0000 - 0xFFFFF - BIOS code (shared between all machines!) |
Line 102... | Line 102... | ||
102 | ; physical address = 0xC0000 |
102 | ; physical address = 0xC0000 |
103 | 103 | ||
104 | mov eax, 0xC0000+PG_UW |
104 | mov eax, 0xC0000+PG_UWR |
105 | mov edi, page_tabs+0xC0*4 |
105 | mov edi, page_tabs+0xC0*4 |
106 | mov ecx, 64 |
106 | mov ecx, 64 |
107 | @@: |
107 | @@: |