X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=dcpu16.h;h=005aad3a858fbe656adfd8bc9df92841c7f26696;hb=8e7b08b2dd8bb2d45aeec0034e55aff729b1f12a;hp=af964e7e46c561f1923e5f49ff8dc5f8768623e8;hpb=0b4991bc7e50f503769a2d2a1a4b5c1690251899;p=dcpu16 diff --git a/dcpu16.h b/dcpu16.h index af964e7..005aad3 100644 --- a/dcpu16.h +++ b/dcpu16.h @@ -11,12 +11,11 @@ typedef unsigned short DCPU16_WORD; typedef unsigned int dcpu16_acct_event_; #define DCPU16_ACCT_EV_READ (1<<1) #define DCPU16_ACCT_EV_WRITE (1<<2) -#define DCPU16_ACCT_RAM (1<<3) +#define DCPU16_ACCT_EV_NOP (1<<3) struct dcpu16_acct_cb { void (*fn)(dcpu16_acct_event_ e, DCPU16_WORD addr); - dcpu16_acct_event_ match_all; - dcpu16_acct_event_ match_any; + dcpu16_acct_event_ mask; }; /* a self-contained dcpu16 core */ @@ -46,11 +45,11 @@ void dcpu16_state_print(struct dcpu16 *); /* print the contents of ram from second to third argument */ void dcpu16_dump_ram(struct dcpu16 *, DCPU16_WORD, DCPU16_WORD); -/* print the instruction at the specified address */ -void dcpu16_disassemble_print(struct dcpu16 *, DCPU16_WORD); +/* print the instruction at the specified address, returns number of words consumed in decoding */ +DCPU16_WORD dcpu16_disassemble_print(struct dcpu16 *, DCPU16_WORD); /* register a callback for an accounting event */ -int dcpu16_acct_add(struct dcpu16 *, dcpu16_acct_event_ match_all, dcpu16_acct_event_ match_any, void (*fn)(dcpu16_acct_event_, DCPU16_WORD)); +int dcpu16_acct_add(struct dcpu16 *, dcpu16_acct_event_ mask, void (*fn)(dcpu16_acct_event_, DCPU16_WORD)); /* execute the next instruction */ void dcpu16_step(struct dcpu16 *);