Some system biosen (called out to by laptops) use opcodes (e.g. LIDT - 0x0f01) that x86emu does not support. This results in the emulator dying horribly, halfway through the emulation (which will be logged at the end of your trace) Should this apply to you, the following patch will ignore interrupts calling to the system bios, and should avoid this problem diff --git a/libx86emu/ops.c b/libx86emu/ops.c index 37ae2c9..17eb7a4 100644 --- a/libx86emu/ops.c +++ b/libx86emu/ops.c @@ -8856,8 +8856,9 @@ static void x86emuOp_int_IMM(u8 X86EMU_UNUSED(op1)) START_OF_INSTR(); DECODE_PRINTF("INT\t"); intnum = fetch_byte_imm(); - DECODE_PRINTF2("%x\n", intnum); + DECODE_PRINTF2("%x (ignored)\n", intnum); TRACE_AND_STEP(); +#if 0 if (_X86EMU_intrTab[intnum]) { (*_X86EMU_intrTab[intnum])(intnum); } else { @@ -8869,6 +8870,7 @@ static void x86emuOp_int_IMM(u8 X86EMU_UNUSED(op1)) push_word(M.x86.R_IP); M.x86.R_IP = mem_access_word(intnum * 4); } +#endif DECODE_CLEAR_SEGOVR(); END_OF_INSTR(); }