1
0
mirror of https://github.com/rkujawa/rk65c02.git synced 2024-06-29 08:29:27 +00:00

Move reg_state struct to header, rename op to opcode.

This commit is contained in:
Radosław Kujawa 2017-01-17 11:18:48 +01:00
parent 0da3d6dc5f
commit d515954f44
2 changed files with 14 additions and 15 deletions

View File

@ -11,18 +11,6 @@
static bool run = false; static bool run = false;
struct reg_state {
uint8_t A; /* accumulator */
uint8_t X; /* index X */
uint8_t Y; /* index Y */
uint16_t PC; /* program counter */
uint8_t SP; /* stack pointer */
uint8_t P; /* status */
};
typedef struct reg_state reg_state_t;
instruction_t instruction_t
instruction_fetch(bus_t *b, uint16_t addr) instruction_fetch(bus_t *b, uint16_t addr)
{ {
@ -31,7 +19,7 @@ instruction_fetch(bus_t *b, uint16_t addr)
i.opcode = bus_read_1(b, addr); i.opcode = bus_read_1(b, addr);
i.def = instrs[i.opcode]; i.def = instrs[i.opcode];
assert(i.def.op != OP_UNIMPL); assert(i.def.opcode != OP_UNIMPL);
/* handle operands */ /* handle operands */
switch (i.def.mode) { switch (i.def.mode) {

View File

@ -18,8 +18,20 @@ typedef enum {
IABSOLUTEX IABSOLUTEX
} addressing_t; } addressing_t;
struct reg_state {
uint8_t A; /* accumulator */
uint8_t X; /* index X */
uint8_t Y; /* index Y */
uint16_t PC; /* program counter */
uint8_t SP; /* stack pointer */
uint8_t P; /* status */
};
typedef struct reg_state reg_state_t;
struct instrdef { struct instrdef {
uint8_t op; uint8_t opcode;
const char *mnemonic; const char *mnemonic;
addressing_t mode; addressing_t mode;
uint8_t size; uint8_t size;
@ -36,7 +48,6 @@ struct instruction {
typedef struct instruction instruction_t; typedef struct instruction instruction_t;
#define OP_BRK 0x00 #define OP_BRK 0x00
#define OP_TSB_ZP 0x04 #define OP_TSB_ZP 0x04
#define OP_JSR 0x20 #define OP_JSR 0x20