#include <stdint.h>
#include <stdbool.h>
#include "../cpu/timer/timer.h"
Go to the source code of this file.
|
enum | segment_register_select {
V8086_ES =0,
V8086_CS,
V8086_SS,
V8086_DS,
V8086_FS,
V8086_GS,
V8086_DEFAULT
} |
|
enum | repeat_prefix { V8086_NONE_REPEAT,
V8086_REPNE,
V8086_REP_REPE
} |
|
enum | instruction_set_compatibility { V8086_IS8086,
V8086_IS386
} |
|
enum | BYTE_REGISTERS {
V8086_AL =0,
V8086_CL,
V8086_DL,
V8086_BL,
V8086_AH,
V8086_CH,
V8086_DH,
V8086_BH
} |
|
enum | WORD_REGISTERS {
V8086_AX =0,
V8086_CX,
V8086_DX,
V8086_BX,
V8086_SP,
V8086_BP,
V8086_SI,
V8086_DI
} |
|
enum | DWORD_REGISTERS {
V8086_EAX =0,
V8086_ECX,
V8086_EDX,
V8086_EBX,
V8086_ESP,
V8086_EBP,
V8086_ESI,
V8086_EDI
} |
|
enum | machine_status {
V8086_OK = 0,
V8086_UNDEFINED_OPCODE = -1,
V8086_UNDEFINED_REGISTER = -2,
V8086_UNDEFINED_SEGMENT_REGISTER = -3,
V8086_UNABLE_GET_MEMORY = -4,
V8086_BAD_MOD_RM = -5,
V8086_BAD_RM = -6,
V8086_BAD_MOD = -7,
V8086_BAD_REG = -8,
V8086_BAD_WIDTH = -9,
V8086_BAD_INDEX = -10,
V8086_BAD_BASE = -11,
V8086_UNDEFINED_RECALCULATED_OPCODE = -12,
V8086_BAD_INT_NUMBER = -13,
V8086_RELATIVE_JMP_OVERFLOW = -14,
V8086_BOUND_ERROR = -15,
V8086_DIVISION_BY_ZERO = -16,
V8086_DIVISION_OVERFLOW = -17,
V8086_DEBUG_FILE_OVERFLOW = -99,
V8086_UNKNOWN_ERROR = -69
} |
|
◆ AUX_CARRY_FLAG_BIT
#define AUX_CARRY_FLAG_BIT 4u |
◆ bit_clear
#define bit_clear |
( |
|
p, |
|
|
|
m |
|
) |
| ((p) &= ~(m)) |
◆ bit_flip
#define bit_flip |
( |
|
p, |
|
|
|
m |
|
) |
| ((p) ^= (m)) |
◆ bit_get
#define bit_get |
( |
|
p, |
|
|
|
m |
|
) |
| ((p) & (m)) |
◆ bit_set
#define bit_set |
( |
|
p, |
|
|
|
m |
|
) |
| ((p) |= (m)) |
◆ bit_write
◆ CARRY_FLAG_BIT
#define CARRY_FLAG_BIT 0u |
◆ DIRECTION_FLAG_BIT
#define DIRECTION_FLAG_BIT 10u |
◆ INTERRUPT_FLAG_BIT
#define INTERRUPT_FLAG_BIT 9u |
◆ OVERFLOW_FLAG_BIT
#define OVERFLOW_FLAG_BIT 11u |
◆ PARITY_FLAG_BIT
#define PARITY_FLAG_BIT 2u |
◆ SIGN_FLAG_BIT
◆ ZERO_FLAG_BIT
◆ BYTE_REGISTERS
Enumerator |
---|
V8086_AL | |
V8086_CL | |
V8086_DL | |
V8086_BL | |
V8086_AH | |
V8086_CH | |
V8086_DH | |
V8086_BH | |
◆ DWORD_REGISTERS
Enumerator |
---|
V8086_EAX | |
V8086_ECX | |
V8086_EDX | |
V8086_EBX | |
V8086_ESP | |
V8086_EBP | |
V8086_ESI | |
V8086_EDI | |
◆ instruction_set_compatibility
Enumerator |
---|
V8086_IS8086 | |
V8086_IS386 | |
◆ machine_status
Enumerator |
---|
V8086_OK | |
V8086_UNDEFINED_OPCODE | |
V8086_UNDEFINED_REGISTER | |
V8086_UNDEFINED_SEGMENT_REGISTER | |
V8086_UNABLE_GET_MEMORY | |
V8086_BAD_MOD_RM | |
V8086_BAD_RM | |
V8086_BAD_MOD | |
V8086_BAD_REG | |
V8086_BAD_WIDTH | |
V8086_BAD_INDEX | |
V8086_BAD_BASE | |
V8086_UNDEFINED_RECALCULATED_OPCODE | |
V8086_BAD_INT_NUMBER | |
V8086_RELATIVE_JMP_OVERFLOW | |
V8086_BOUND_ERROR | |
V8086_DIVISION_BY_ZERO | |
V8086_DIVISION_OVERFLOW | |
V8086_DEBUG_FILE_OVERFLOW | |
V8086_UNKNOWN_ERROR | |
◆ repeat_prefix
Enumerator |
---|
V8086_NONE_REPEAT | |
V8086_REPNE | |
V8086_REP_REPE | |
◆ segment_register_select
Enumerator |
---|
V8086_ES | |
V8086_CS | |
V8086_SS | |
V8086_DS | |
V8086_FS | |
V8086_GS | |
V8086_DEFAULT | |
◆ WORD_REGISTERS
Enumerator |
---|
V8086_AX | |
V8086_CX | |
V8086_DX | |
V8086_BX | |
V8086_SP | |
V8086_BP | |
V8086_SI | |
V8086_DI | |
◆ v8086_call_com_program()
int16_t v8086_call_com_program |
( |
v8086 * |
machine, |
|
|
char * |
programPath |
|
) |
| |
◆ v8086_call_int()
int16_t v8086_call_int |
( |
v8086 * |
machine, |
|
|
int16_t |
num |
|
) |
| |
◆ v8086_create_machine()
v8086* v8086_create_machine |
( |
| ) |
|
◆ v8086_destroy_machine()
void v8086_destroy_machine |
( |
v8086 * |
machine | ) |
|
◆ v8086_get_address_of_int()
uint32_t v8086_get_address_of_int |
( |
v8086 * |
machine, |
|
|
int16_t |
num |
|
) |
| |
◆ v8086_set_386_instruction_set()
void v8086_set_386_instruction_set |
( |
v8086 * |
machine | ) |
|
◆ v8086_set_8086_instruction_set()
void v8086_set_8086_instruction_set |
( |
v8086 * |
machine | ) |
|