2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
5 * PURPOSE: Exported functions for manipulating registers
6 * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
9 /* INCLUDES *******************************************************************/
15 /* PUBLIC FUNCTIONS ***********************************************************/
21 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_AX
].Long
;
28 EmulatorContext
.GeneralRegs
[EMULATOR_REG_AX
].Long
= Value
;
35 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_AX
].LowWord
;
42 EmulatorContext
.GeneralRegs
[EMULATOR_REG_AX
].LowWord
= Value
;
49 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_AX
].HighByte
;
56 EmulatorContext
.GeneralRegs
[EMULATOR_REG_AX
].HighByte
= Value
;
63 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_AX
].LowByte
;
70 EmulatorContext
.GeneralRegs
[EMULATOR_REG_AX
].LowByte
= Value
;
77 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_BX
].Long
;
84 EmulatorContext
.GeneralRegs
[EMULATOR_REG_BX
].Long
= Value
;
91 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_BX
].LowWord
;
98 EmulatorContext
.GeneralRegs
[EMULATOR_REG_BX
].LowWord
= Value
;
105 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_BX
].HighByte
;
112 EmulatorContext
.GeneralRegs
[EMULATOR_REG_BX
].HighByte
= Value
;
119 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_BX
].LowByte
;
126 EmulatorContext
.GeneralRegs
[EMULATOR_REG_BX
].LowByte
= Value
;
135 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_CX
].Long
;
142 EmulatorContext
.GeneralRegs
[EMULATOR_REG_CX
].Long
= Value
;
149 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_CX
].LowWord
;
156 EmulatorContext
.GeneralRegs
[EMULATOR_REG_CX
].LowWord
= Value
;
163 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_CX
].HighByte
;
170 EmulatorContext
.GeneralRegs
[EMULATOR_REG_CX
].HighByte
= Value
;
177 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_CX
].LowByte
;
184 EmulatorContext
.GeneralRegs
[EMULATOR_REG_CX
].LowByte
= Value
;
193 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_DX
].Long
;
200 EmulatorContext
.GeneralRegs
[EMULATOR_REG_DX
].Long
= Value
;
207 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_DX
].LowWord
;
214 EmulatorContext
.GeneralRegs
[EMULATOR_REG_DX
].LowWord
= Value
;
221 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_DX
].HighByte
;
228 EmulatorContext
.GeneralRegs
[EMULATOR_REG_DX
].HighByte
= Value
;
235 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_DX
].LowByte
;
242 EmulatorContext
.GeneralRegs
[EMULATOR_REG_DX
].LowByte
= Value
;
251 return EmulatorGetRegister(EMULATOR_REG_SP
);
258 EmulatorSetStack(EmulatorGetRegister(EMULATOR_REG_SS
), Value
);
265 return LOWORD(EmulatorGetRegister(EMULATOR_REG_SP
));
272 EmulatorSetStack(EmulatorGetRegister(EMULATOR_REG_SS
), Value
);
281 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_BP
].Long
;
288 EmulatorContext
.GeneralRegs
[EMULATOR_REG_BP
].Long
= Value
;
295 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_BP
].LowWord
;
302 EmulatorContext
.GeneralRegs
[EMULATOR_REG_BP
].LowWord
= Value
;
311 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_SI
].Long
;
318 EmulatorContext
.GeneralRegs
[EMULATOR_REG_SI
].Long
= Value
;
325 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_SI
].LowWord
;
332 EmulatorContext
.GeneralRegs
[EMULATOR_REG_SI
].LowWord
= Value
;
341 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_DI
].Long
;
348 EmulatorContext
.GeneralRegs
[EMULATOR_REG_DI
].Long
= Value
;
355 return EmulatorContext
.GeneralRegs
[EMULATOR_REG_DI
].LowWord
;
362 EmulatorContext
.GeneralRegs
[EMULATOR_REG_DI
].LowWord
= Value
;
371 return EmulatorGetProgramCounter();
378 EmulatorExecute(EmulatorGetRegister(EMULATOR_REG_CS
), Value
);
385 return LOWORD(EmulatorGetProgramCounter());
392 EmulatorExecute(EmulatorGetRegister(EMULATOR_REG_CS
), Value
);
401 return EmulatorGetRegister(EMULATOR_REG_CS
);
408 EmulatorSetRegister(EMULATOR_REG_CS
, Value
);
415 return EmulatorGetRegister(EMULATOR_REG_SS
);
422 EmulatorSetRegister(EMULATOR_REG_SS
, Value
);
429 return EmulatorGetRegister(EMULATOR_REG_DS
);
436 EmulatorSetRegister(EMULATOR_REG_DS
, Value
);
443 return EmulatorGetRegister(EMULATOR_REG_ES
);
450 EmulatorSetRegister(EMULATOR_REG_ES
, Value
);
457 return EmulatorGetRegister(EMULATOR_REG_FS
);
464 EmulatorSetRegister(EMULATOR_REG_FS
, Value
);
471 return EmulatorGetRegister(EMULATOR_REG_GS
);
478 EmulatorSetRegister(EMULATOR_REG_GS
, Value
);
487 return EmulatorGetFlag(EMULATOR_FLAG_CF
);
495 EmulatorSetFlag(EMULATOR_FLAG_CF
);
497 EmulatorClearFlag(EMULATOR_FLAG_CF
);
504 return EmulatorGetFlag(EMULATOR_FLAG_PF
);
512 EmulatorSetFlag(EMULATOR_FLAG_PF
);
514 EmulatorClearFlag(EMULATOR_FLAG_PF
);
521 return EmulatorGetFlag(EMULATOR_FLAG_AF
);
529 EmulatorSetFlag(EMULATOR_FLAG_AF
);
531 EmulatorClearFlag(EMULATOR_FLAG_AF
);
538 return EmulatorGetFlag(EMULATOR_FLAG_ZF
);
546 EmulatorSetFlag(EMULATOR_FLAG_ZF
);
548 EmulatorClearFlag(EMULATOR_FLAG_ZF
);
555 return EmulatorGetFlag(EMULATOR_FLAG_SF
);
563 EmulatorSetFlag(EMULATOR_FLAG_SF
);
565 EmulatorClearFlag(EMULATOR_FLAG_SF
);
572 return EmulatorGetFlag(EMULATOR_FLAG_IF
);
580 EmulatorSetFlag(EMULATOR_FLAG_IF
);
582 EmulatorClearFlag(EMULATOR_FLAG_IF
);
589 return EmulatorGetFlag(EMULATOR_FLAG_DF
);
597 EmulatorSetFlag(EMULATOR_FLAG_DF
);
599 EmulatorClearFlag(EMULATOR_FLAG_DF
);
606 return EmulatorGetFlag(EMULATOR_FLAG_OF
);
614 EmulatorSetFlag(EMULATOR_FLAG_OF
);
616 EmulatorClearFlag(EMULATOR_FLAG_OF
);
625 return 0; // UNIMPLEMENTED