[FAST486][NTVDM]

BOP numbers are 1 byte and map to a function (over 255). But one can pass additional "parameters" to those functions by adding extra bytes, however such functions must advance "by hand" the instruction pointer.

[NTVDM]
- Take into account our previous remark for the BIOS interrupt stubs, and comment them.
- Rework EmulatorBiosOperation (move almost all of its existing code into subfunctions in bop.c) so that one can call many other BOP functions in the future (WIP). The BOP number (still called) EMULATOR_INT_BOP (of value 0xFF) is used for internal 16 --> 32 bit switching for our 32bit bios.
- It appears that the IoRead/WriteCallback and IdleCallback must not be NULL for using fast486. I'm committing a temporary fix that I will definitely fix in a subsequent commit.

svn path=/branches/ntvdm/; revision=60812
This commit is contained in:
Hermès Bélusca-Maïto 2013-11-01 00:01:07 +00:00
parent b7ac8cf58e
commit 39a527a21e
10 changed files with 216 additions and 123 deletions

View file

@ -4331,10 +4331,10 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeLdsLes)
&& (ModRegRm.SecondRegister == FAST486_REG_ESP)
&& (State->BopCallback != NULL))
{
USHORT BopCode;
UCHAR BopCode;
/* Fetch the BOP code */
if (!Fast486FetchWord(State, &BopCode))
if (!Fast486FetchByte(State, &BopCode))
{
/* Exception occurred */
return FALSE;