From 071edf621a6722f94027f37720a5a5f73d9696c0 Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Tue, 17 Mar 2020 15:07:20 -0400 Subject: Revamped the opcode table, made the emulator more efficient, and ported SuBEditor to C. I revamped the opcode table to add another prefix bit for the addressing mode, finally giving access to all addresses, without wasting any bytes. I made the stack based operations more efficient, by sort of applying Duff's device to it. And I ported SuBEditor to C, to make it easier for me to figure out how to implement SuBAsm. --- programs/c-ports/subeditor.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 programs/c-ports/subeditor.h (limited to 'programs/c-ports/subeditor.h') diff --git a/programs/c-ports/subeditor.h b/programs/c-ports/subeditor.h new file mode 100644 index 0000000..f20088d --- /dev/null +++ b/programs/c-ports/subeditor.h @@ -0,0 +1,36 @@ +#include +#include +#include +#include + +#define debug 0 + +extern char *buffer; +extern char *cmd_buf; + +extern uint8_t scr_row = 0; +extern uint8_t scr_col = 0; +extern uint8_t scr_trow = 0; +extern uint8_t scr_tcol = 0; +extern uint16_t scr_ptr = 0; + +extern uint8_t byte = 0; +extern uint8_t mask = 0; + +extern uint8_t a = 0; +extern uint8_t b = 0; +extern uint8_t c = 0; +extern uint8_t d = 0; +extern uint8_t e = 0; +extern uint8_t f = 0; + +extern uint8_t bitmask = 0; +extern uint8_t bitabl[16]; + +extern uint8_t scr_str = 0; +extern uint8_t scr_end = 23; +extern uint8_t wrapped = 0; + +extern void print_str(const char *str); +int16_t str_cmp(const char *s0, uint16_t i, const char *s1, uint16_t j) +extern void subasm(); -- cgit v1.2.3-13-gbd6f