From 565721668bae7e832bbbb03d687874fbadb7debf Mon Sep 17 00:00:00 2001 From: Sjoerd van der Berg Date: Tue, 18 Nov 2003 22:25:49 +0000 Subject: [PATCH] Changes for new interrupts Some privileged instructions. Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1448 --- src/cpu/core_normal.cpp | 2 +- src/cpu/core_normal/prefix_none.h | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/cpu/core_normal.cpp b/src/cpu/core_normal.cpp index 34c95897..467451da 100644 --- a/src/cpu/core_normal.cpp +++ b/src/cpu/core_normal.cpp @@ -210,7 +210,7 @@ static Bits CPU_Core_Normal_Decode_Trap(void) { core.trap.skip=false; Bits ret=CPU_Core_Normal_Decode(); - if (!core.trap.skip) Interrupt(1); + if (!core.trap.skip) CPU_SW_Interrupt(1,0); CPU_Cycles = oldCycles-1; cpudecoder = &CPU_Core_Normal_Decode; diff --git a/src/cpu/core_normal/prefix_none.h b/src/cpu/core_normal/prefix_none.h index bd44cbe7..ac649c59 100644 --- a/src/cpu/core_normal/prefix_none.h +++ b/src/cpu/core_normal/prefix_none.h @@ -253,7 +253,7 @@ CASE_B(0x65) /* SEG GS: */ DO_PREFIX_SEG(gs);break; CASE_B(0x66) /* Operand Size Prefix */ - core.opcode_index^=OPCODE_SIZE; + core.opcode_index=core.index_default^OPCODE_SIZE; goto restart_opcode; CASE_B(0x67) /* Address Size Prefix */ DO_PREFIX_ADDR(); @@ -751,7 +751,7 @@ return debugCallback; } #endif - CPU_SW_Interrupt(3); + CPU_SW_Interrupt(3,core.ip_lookup-core.op_start); #if CPU_TRAP_CHECK core.trap.skip=true; #endif @@ -765,7 +765,7 @@ return debugCallback; } #endif - CPU_SW_Interrupt(num); + CPU_SW_Interrupt(num,core.ip_lookup-core.op_start); #if CPU_TRAP_CHECK core.trap.skip=true; #endif @@ -775,7 +775,7 @@ CASE_B(0xce) /* INTO */ if (get_OF()) { LEAVECORE; - CPU_SW_Interrupt(4); + CPU_SW_Interrupt(4,core.ip_lookup-core.op_start); #if CPU_TRAP_CHECK core.trap.skip=true; #endif @@ -950,7 +950,7 @@ break; CASE_B(0xf4) /* HLT */ LEAVECORE; - CPU_HLT(); + CPU_HLT(core.ip_lookup-core.op_start); return CBRET_NONE; CASE_B(0xf5) /* CMC */ FillFlags();