[SOFT386]

Stubplement opcode group handlers.


svn path=/branches/ntvdm/; revision=60441
This commit is contained in:
Aleksandar Andrejevic 2013-09-28 18:56:58 +00:00
parent 2812f2f8a5
commit abf9647dd9
4 changed files with 181 additions and 17 deletions

View file

@ -4,6 +4,7 @@ include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs/soft386)
list(APPEND SOURCE list(APPEND SOURCE
soft386.c soft386.c
opcodes.c opcodes.c
opgroups.c
common.c) common.c)
add_library(soft386 ${SOURCE}) add_library(soft386 ${SOURCE})

View file

@ -18,6 +18,7 @@
#include <soft386.h> #include <soft386.h>
#include "opcodes.h" #include "opcodes.h"
#include "opgroups.h"
#include "common.h" #include "common.h"
/* PUBLIC VARIABLES ***********************************************************/ /* PUBLIC VARIABLES ***********************************************************/
@ -153,10 +154,10 @@ Soft386OpcodeHandlers[SOFT386_NUM_OPCODE_HANDLERS] =
Soft386OpcodeShortConditionalJmp, Soft386OpcodeShortConditionalJmp,
Soft386OpcodeShortConditionalJmp, Soft386OpcodeShortConditionalJmp,
Soft386OpcodeShortConditionalJmp, Soft386OpcodeShortConditionalJmp,
NULL, // TODO: OPCODE 0x80 NOT SUPPORTED Soft386OpcodeGroup80,
NULL, // TODO: OPCODE 0x81 NOT SUPPORTED Soft386OpcodeGroup81,
NULL, // TODO: OPCODE 0x82 NOT SUPPORTED Soft386OpcodeGroup82,
NULL, // TODO: OPCODE 0x83 NOT SUPPORTED Soft386OpcodeGroup83,
Soft386OpcodeTestByteModrm, Soft386OpcodeTestByteModrm,
Soft386OpcodeTestModrm, Soft386OpcodeTestModrm,
Soft386OpcodeXchgByteModrm, Soft386OpcodeXchgByteModrm,
@ -168,7 +169,7 @@ Soft386OpcodeHandlers[SOFT386_NUM_OPCODE_HANDLERS] =
Soft386OpcodeMovStoreSeg, Soft386OpcodeMovStoreSeg,
Soft386OpcodeLea, Soft386OpcodeLea,
Soft386OpcodeMovLoadSeg, Soft386OpcodeMovLoadSeg,
NULL, // TODO: OPCODE 0x8F NOT SUPPORTED Soft386OpcodeGroup8F,
Soft386OpcodeNop, Soft386OpcodeNop,
Soft386OpcodeExchangeEax, Soft386OpcodeExchangeEax,
Soft386OpcodeExchangeEax, Soft386OpcodeExchangeEax,
@ -217,14 +218,14 @@ Soft386OpcodeHandlers[SOFT386_NUM_OPCODE_HANDLERS] =
Soft386OpcodeMovRegImm, Soft386OpcodeMovRegImm,
Soft386OpcodeMovRegImm, Soft386OpcodeMovRegImm,
Soft386OpcodeMovRegImm, Soft386OpcodeMovRegImm,
NULL, // TODO: OPCODE 0xC0 NOT SUPPORTED Soft386OpcodeGroupC0,
NULL, // TODO: OPCODE 0xC1 NOT SUPPORTED Soft386OpcodeGroupC1,
Soft386OpcodeRet, Soft386OpcodeRet,
Soft386OpcodeRet, Soft386OpcodeRet,
Soft386OpcodeLdsLes, Soft386OpcodeLdsLes,
Soft386OpcodeLdsLes, Soft386OpcodeLdsLes,
NULL, // TODO: OPCODE 0xC6 NOT SUPPORTED Soft386OpcodeGroupC6,
NULL, // TODO: OPCODE 0xC7 NOT SUPPORTED Soft386OpcodeGroupC7,
Soft386OpcodeEnter, Soft386OpcodeEnter,
Soft386OpcodeLeave, Soft386OpcodeLeave,
Soft386OpcodeRetFarImm, Soft386OpcodeRetFarImm,
@ -233,10 +234,10 @@ Soft386OpcodeHandlers[SOFT386_NUM_OPCODE_HANDLERS] =
Soft386OpcodeInt, Soft386OpcodeInt,
Soft386OpcodeInt, Soft386OpcodeInt,
Soft386OpcodeIret, Soft386OpcodeIret,
NULL, // TODO: OPCODE 0xD0 NOT SUPPORTED Soft386OpcodeGroupD0,
NULL, // TODO: OPCODE 0xD1 NOT SUPPORTED Soft386OpcodeGroupD1,
NULL, // TODO: OPCODE 0xD2 NOT SUPPORTED Soft386OpcodeGroupD2,
NULL, // TODO: OPCODE 0xD3 NOT SUPPORTED Soft386OpcodeGroupD3,
Soft386OpcodeAam, Soft386OpcodeAam,
Soft386OpcodeAad, Soft386OpcodeAad,
NULL, // TODO: OPCODE 0xD6 NOT SUPPORTED NULL, // TODO: OPCODE 0xD6 NOT SUPPORTED
@ -271,16 +272,16 @@ Soft386OpcodeHandlers[SOFT386_NUM_OPCODE_HANDLERS] =
Soft386OpcodePrefix, Soft386OpcodePrefix,
Soft386OpcodeHalt, Soft386OpcodeHalt,
Soft386OpcodeComplCarry, Soft386OpcodeComplCarry,
NULL, // TODO: OPCODE 0xF6 NOT SUPPORTED Soft386OpcodeGroupF6,
NULL, // TODO: OPCODE 0xF7 NOT SUPPORTED Soft386OpcodeGroupF7,
Soft386OpcodeClearCarry, Soft386OpcodeClearCarry,
Soft386OpcodeSetCarry, Soft386OpcodeSetCarry,
Soft386OpcodeClearInt, Soft386OpcodeClearInt,
Soft386OpcodeSetInt, Soft386OpcodeSetInt,
Soft386OpcodeClearDir, Soft386OpcodeClearDir,
Soft386OpcodeSetDir, Soft386OpcodeSetDir,
NULL, // TODO: OPCODE 0xFE NOT SUPPORTED Soft386OpcodeGroupFE,
NULL, // TODO: OPCODE 0xFF NOT SUPPORTED Soft386OpcodeGroupFF,
}; };
/* PUBLIC FUNCTIONS ***********************************************************/ /* PUBLIC FUNCTIONS ***********************************************************/

127
lib/soft386/opgroups.c Normal file
View file

@ -0,0 +1,127 @@
/*
* COPYRIGHT: GPL - See COPYING in the top level directory
* PROJECT: 386/486 CPU Emulation Library
* FILE: opgroups.c
* PURPOSE: Opcode group handlers.
* PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
*/
/* INCLUDES *******************************************************************/
// #define WIN32_NO_STATUS
// #define _INC_WINDOWS
#include <windef.h>
// #define NDEBUG
#include <debug.h>
#include <soft386.h>
#include "opcodes.h"
#include "common.h"
/* PUBLIC FUNCTIONS ***********************************************************/
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroup80)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroup81)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroup82)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroup83)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroup8F)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupC0)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupC1)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupC6)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupC7)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupD0)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupD1)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupD2)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupD3)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupF6)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupF7)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupFE)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupFF)
{
UNIMPLEMENTED;
return FALSE; // TODO: NOT IMPLEMENTED
}
/* EOF */

35
lib/soft386/opgroups.h Normal file
View file

@ -0,0 +1,35 @@
/*
* COPYRIGHT: GPL - See COPYING in the top level directory
* PROJECT: 386/486 CPU Emulation Library
* FILE: opgroups.h
* PURPOSE: Opcode group handlers. (header file)
* PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
*/
#ifndef _OPGROUPS_H_
#define _OPGROUPS_H_
/* DEFINES ********************************************************************/
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroup80);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroup81);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroup82);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroup83);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroup8F);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupC0);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupC1);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupC6);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupC7);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupD0);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupD1);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupD2);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupD3);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupF6);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupF7);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupFE);
SOFT386_OPCODE_HANDLER(Soft386OpcodeGroupFF);
#endif // _OPGROUPS_H_
/* EOF */