First/simdata.h

47 lines
935 B
C
Raw Normal View History

2024-01-23 19:35:57 +00:00
#ifndef SIMDATA_HEADER
#include <stdint.h>
enum CPU_STATE_t{
CPU_RUNNING,
CPU_HALTED
};
struct simdata_t{
long unsigned int current_clock;
2024-01-23 19:35:57 +00:00
uint8_t *RAM;
uint32_t PC;
2024-01-26 16:11:57 +00:00
uint32_t SP;
struct fetch_data_t *fetch_data;
struct decode_data_t *decode_data;
struct exec_data_t *exec_data;
struct registers_t *registers;
enum CPU_STATE_t cpu_state;
struct cpu_gui_hints_t *cpu_gui_hints;
};
struct instr_list_t{
uint32_t address;
struct instr_list_t *next;
};
struct cpu_gui_hints_t{
struct instr_list_t *fetching_list;
struct instr_list_t *decoding_list;
struct instr_list_t *executing_list;
};
2024-01-23 19:35:57 +00:00
struct simdata_t *init_simdata();
void free_simdata(struct simdata_t *);
int add_to_instr_list(struct instr_list_t **addr_of_toadd,uint32_t address);
void free_instr_list(struct instr_list_t **addr_of_tofree);
2024-01-23 17:38:44 +00:00
enum GUI_CPU_STATE_t{
GUI_CPU_RUNNING,
GUI_CPU_SINGLE_STEPPING,
GUI_CPU_STOPPED
2024-01-23 17:38:44 +00:00
};
2024-01-23 19:35:57 +00:00
#endif
#define SIMDATA_HEADER