From 4963898542339ea9c7e5feb3ae779c89b5591c62 Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Tue, 21 Nov 2023 18:39:28 +0100 Subject: [PATCH] WIP: ld8 --- include/ulas.h | 4 ++++ src/ulas.c | 12 ++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/include/ulas.h b/include/ulas.h index 2cbf545..e664f87 100644 --- a/include/ulas.h +++ b/include/ulas.h @@ -298,6 +298,10 @@ enum ulas_asmdir { ULAS_ASMDIR_INCBIN, }; +// amount of registers +#define ULAS_NR8 7 +#define ULAS_NR16 3 + enum ulas_asmregs { // r8 ULAS_REG_A = 7, diff --git a/src/ulas.c b/src/ulas.c index d6041d4..9c9bcfc 100644 --- a/src/ulas.c +++ b/src/ulas.c @@ -1392,13 +1392,14 @@ const char *ulas_asmregstr(enum ulas_asmregs reg) { return n; \ } -#define ULAS_LDR8(name, base, regleft, regright) \ - if (strncmp(ulas.tok.buf, (name), ulas.tok.maxlen) == 0) { \ - } - // parses ld r8, r8 int ulas_ldr8r8(char *dst, unsigned long max, char *name, int base, - enum ulas_asmregs regleft, enum ulas_asmregs regright) { + enum ulas_asmregs regleft) { + const char *left = ulas_asmregstr(regleft); + if (strncmp(ulas.tok.buf, (name), ulas.tok.maxlen) != 0) { + return 0; + } + return 1; } @@ -1428,7 +1429,6 @@ int ulas_asminstr(char *dst, unsigned long max, const char *line, ULAS_STATICINSTR("ei", 1, 0xFB); // 8 bit loads - ULAS_LDR8("ld", 0x40, ULAS_REG_B, ULAS_REG_B); ULASERR("Invalid instruction '%s'\n", ulas.tok.buf); return -1; -- 2.30.2