Subversion Repositories Kolibri OS

Rev

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: