Reset triggered by keyboard controller should now be handled correctly by dynamic recompiler.
This commit is contained in:
parent
2323962168
commit
2efc56e882
3 changed files with 7 additions and 1 deletions
|
|
@ -1423,6 +1423,9 @@ inrecomp=0;
|
||||||
|
|
||||||
if (!abrt && !x86_was_reset)
|
if (!abrt && !x86_was_reset)
|
||||||
codegen_block_end();
|
codegen_block_end();
|
||||||
|
|
||||||
|
if (x86_was_reset)
|
||||||
|
codegen_reset();
|
||||||
// output &= ~2;
|
// output &= ~2;
|
||||||
}
|
}
|
||||||
// if (output && (SP & 1))
|
// if (output && (SP & 1))
|
||||||
|
|
|
||||||
|
|
@ -676,6 +676,7 @@ void softresetx86()
|
||||||
flags=2;
|
flags=2;
|
||||||
idt.base = 0;
|
idt.base = 0;
|
||||||
x86seg_reset();
|
x86seg_reset();
|
||||||
|
x86_was_reset = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setznp8(uint8_t val)
|
static void setznp8(uint8_t val)
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,8 @@ static int opOUT_AL_imm(uint32_t fetchdat)
|
||||||
check_io_perm(port);
|
check_io_perm(port);
|
||||||
outb(port, AL);
|
outb(port, AL);
|
||||||
CLOCK_CYCLES(10);
|
CLOCK_CYCLES(10);
|
||||||
|
if (port == 0x64)
|
||||||
|
return x86_was_reset;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static int opOUT_AX_imm(uint32_t fetchdat)
|
static int opOUT_AX_imm(uint32_t fetchdat)
|
||||||
|
|
@ -87,7 +89,7 @@ static int opOUT_AL_DX(uint32_t fetchdat)
|
||||||
check_io_perm(DX);
|
check_io_perm(DX);
|
||||||
outb(DX, AL);
|
outb(DX, AL);
|
||||||
CLOCK_CYCLES(11);
|
CLOCK_CYCLES(11);
|
||||||
return 0;
|
return x86_was_reset;
|
||||||
}
|
}
|
||||||
static int opOUT_AX_DX(uint32_t fetchdat)
|
static int opOUT_AX_DX(uint32_t fetchdat)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue