mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 06:05:48 +00:00
[SOFT386]
Stubplement opcode group handlers. svn path=/branches/ntvdm/; revision=60441
This commit is contained in:
parent
2812f2f8a5
commit
abf9647dd9
4 changed files with 181 additions and 17 deletions
|
@ -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})
|
||||
|
|
|
@ -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
127
lib/soft386/opgroups.c
Normal 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
35
lib/soft386/opgroups.h
Normal 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 */
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue