Rev 960 | Rev 979 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 960 | Rev 971 | ||
---|---|---|---|
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: 960 $ |
8 | $Revision: 971 $ |
9 | 9 | ||
Line 10... | Line 10... | ||
10 | ; Virtual-8086 mode manager |
10 | ; Virtual-8086 mode manager |
Line 477... | Line 477... | ||
477 | mov bl, 14 ; #PF exception |
477 | mov bl, 14 ; #PF exception |
478 | jmp .nogp |
478 | jmp .nogp |
479 | @@: |
479 | @@: |
480 | sub word [esp+4+v86_regs.esp], 6 |
480 | sub word [esp+4+v86_regs.esp], 6 |
481 | mov eax, [esp+4+v86_regs.eip] |
481 | mov eax, [esp+4+v86_regs.eip] |
- | 482 | cmp byte [esp+1], 0 |
|
- | 483 | jnz @f |
|
482 | inc eax |
484 | inc eax |
483 | inc eax |
485 | inc eax |
- | 486 | @@: |
|
484 | mov word [edx], ax |
487 | mov word [edx], ax |
485 | mov eax, [esp+4+v86_regs.cs] |
488 | mov eax, [esp+4+v86_regs.cs] |
486 | mov word [edx+2], ax |
489 | mov word [edx+2], ax |
487 | mov eax, [esp+4+v86_regs.eflags] |
490 | mov eax, [esp+4+v86_regs.eflags] |
488 | mov word [edx+4], ax |
491 | mov word [edx+4], ax |
489 | pop eax |
492 | pop eax |
- | 493 | mov ah, 0 |
|
490 | mov cx, [eax*4] |
494 | mov cx, [eax*4] |
491 | mov word [esp+v86_regs.eip], cx |
495 | mov word [esp+v86_regs.eip], cx |
492 | mov cx, [eax*4+2] |
496 | mov cx, [eax*4+2] |
493 | mov word [esp+v86_regs.cs], cx |
497 | mov word [esp+v86_regs.cs], cx |
494 | ; note that interrupts will be disabled globally at IRET |
498 | ; note that interrupts will be disabled globally at IRET |
Line 874... | Line 878... | ||
874 | shl ecx, 8 |
878 | shl ecx, 8 |
875 | cmp [SLOT_BASE+ecx+APPDATA.dir_table], eax |
879 | cmp [SLOT_BASE+ecx+APPDATA.dir_table], eax |
876 | jnz .notcurrent |
880 | jnz .notcurrent |
877 | lea eax, [edi+8] |
881 | lea eax, [edi+8] |
878 | cmp al, 10h |
882 | cmp al, 10h |
- | 883 | mov ah, 1 |
|
879 | jb @f |
884 | jb @f |
880 | add al, 60h |
885 | add al, 60h |
881 | @@: |
886 | @@: |
882 | jmp v86_exc_c.simulate_int |
887 | jmp v86_exc_c.simulate_int |
883 | .notcurrent: |
888 | .notcurrent: |