[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
soft386.c
opcodes.c
opgroups.c
common.c)
add_library(soft386 ${SOURCE})

View file

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