351,27 → 351,6 |
; a protected-mode interrupt handler (typically the general-protection |
; exception handler, which in turn calls the virtual 8086-mode monitor). |
|
v86_debug_exc: |
pushad |
xor eax, eax |
mov dr6, eax |
mov bl, 1 |
jmp v86_exc_c |
|
v86_page_fault: |
add esp, 4 |
pushad |
mov bl, 14 |
jmp v86_exc_c |
|
v86_except_16: |
pushad |
mov bl, 16 |
jmp v86_exc_c |
v86_except_19: |
pushad |
mov bl, 19 |
|
iglobal |
v86_exc_str1 db 'V86 : unexpected exception ',0 |
v86_exc_str2 db ' at ',0 |
387,11 → 366,12 |
endg |
|
v86_exc_c: |
mov ax, app_data |
mov ds, ax |
mov es, ax |
; Did we all that we have wanted to do? |
mov eax, [esp+v86_regs.size+10h+18h] |
cmp bl,1 |
jne @f |
xor eax, eax |
mov dr6, eax |
@@: mov eax, [esp+v86_regs.size+10h+18h] |
cmp word [esp+v86_regs.eip], ax |
jnz @f |
shr eax, 16 |