2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: 386/486 CPU Emulation Library
5 * PURPOSE: Common functions used internally by Soft386 (header file).
6 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
12 /* DEFINES ********************************************************************/
15 #define FASTCALL __fastcall
18 #define SIGN_FLAG_BYTE 0x80
19 #define SIGN_FLAG_WORD 0x8000
20 #define SIGN_FLAG_LONG 0x80000000
21 #define GET_SEGMENT_RPL(s) ((s) & 3)
22 #define GET_SEGMENT_INDEX(s) ((s) & 0xFFF8)
24 typedef struct _SOFT386_MOD_REG_RM
33 } SOFT386_MOD_REG_RM
, *PSOFT386_MOD_REG_RM
;
35 /* FUNCTIONS ******************************************************************/
105 PSOFT386_STATE State
,
111 Soft386InterruptInternal
113 PSOFT386_STATE State
,
114 USHORT SegmentSelector
,
116 BOOLEAN InterruptGate
123 PSOFT386_STATE State
,
125 PSOFT386_IDT_ENTRY IdtEntry
132 PSOFT386_STATE State
,
138 Soft386CalculateParity
147 PSOFT386_STATE State
,
149 PSOFT386_MOD_REG_RM ModRegRm
154 Soft386ReadModrmByteOperands
156 PSOFT386_STATE State
,
157 PSOFT386_MOD_REG_RM ModRegRm
,
164 Soft386ReadModrmWordOperands
166 PSOFT386_STATE State
,
167 PSOFT386_MOD_REG_RM ModRegRm
,
174 Soft386ReadModrmDwordOperands
176 PSOFT386_STATE State
,
177 PSOFT386_MOD_REG_RM ModRegRm
,
184 Soft386WriteModrmByteOperands
186 PSOFT386_STATE State
,
187 PSOFT386_MOD_REG_RM ModRegRm
,
188 BOOLEAN WriteRegister
,
194 Soft386WriteModrmWordOperands
196 PSOFT386_STATE State
,
197 PSOFT386_MOD_REG_RM ModRegRm
,
198 BOOLEAN WriteRegister
,
204 Soft386WriteModrmDwordOperands
206 PSOFT386_STATE State
,
207 PSOFT386_MOD_REG_RM ModRegRm
,
208 BOOLEAN WriteRegister
,