From 6e9b727b319e9ef48fce3f7045afe7f493d093eb Mon Sep 17 00:00:00 2001 From: Guy Perfect Date: Mon, 19 Oct 2026 19:01:25 -0500 Subject: [PATCH] Fix botched disassembler backport --- util/disassembler.c | 4 ++-- util/isx.c | 2 +- util/vbu.c | 34 +++++++++++++++++----------------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/util/disassembler.c b/util/disassembler.c index 573db44..dd34dee 100644 --- a/util/disassembler.c +++ b/util/disassembler.c @@ -572,7 +572,7 @@ static uint32_t dasmLine(DasmOutput *ret, unsigned index, line->isPC = isPC; /* Fetch first code halfword */ - code[0] = vbFetch(sim, address); + code[0] = vbRead(sim, address, VB_U16); line->code[0] = code[0]; line->code[1] = code[0] >> 8; @@ -583,7 +583,7 @@ static uint32_t dasmLine(DasmOutput *ret, unsigned index, /* Fetch second code halfword if necessary */ if (line->codeLength == 4) { - code[1] = vbFetch(sim, address + 2); + code[1] = vbRead(sim, address + 2, VB_U16); line->code[2] = code[1]; line->code[3] = code[1] >> 8; } else { diff --git a/util/isx.c b/util/isx.c index 7d31c3d..5c6ee1d 100644 --- a/util/isx.c +++ b/util/isx.c @@ -257,7 +257,7 @@ static void* isxFrom(uint8_t *bytes, size_t length, size_t *romLength) { src < lowMax + 0x1000001 - highMin; src <<= 1 ); - rom = VBU_REALLOC(NULL, src); + rom = VBU_MEMMGR(NULL, src); if (rom == NULL) return NULL; *romLength = src; diff --git a/util/vbu.c b/util/vbu.c index 51be0bd..872acc9 100644 --- a/util/vbu.c +++ b/util/vbu.c @@ -5,28 +5,28 @@ #include #include -/* Memory management */ -#ifndef VBU_REALLOC - #include - #define VBU_REALLOC realloc -#else - extern void* VBU_REALLOC(void *, size_t); -#endif - /***************************** Library Functions *****************************/ -/* Sign-extend an integer of variable width */ -static int32_t SignExtend(int32_t value, int32_t bits) { - #ifndef VB_SIGNED_PROPAGATE - value &= ~((uint32_t) 0xFFFFFFFF << bits); - bits = (int32_t) 1 << (bits - (int32_t) 1); - return (value ^ bits) - bits; - #else - return value << (32 - bits) >> (32 - bits); - #endif +/* Memory manager */ +#ifdef VBU_MEMMGR +extern void* VBU_MEMMGR(void *ptr, size_t size); +#else +#include +static void* VBU_MEMMGR(void *ptr, size_t size) { + + /* Free a buffer */ + if (size == 0) { + if (ptr != NULL) + free(ptr); + return NULL; + } + + /* Create or resize a buffer */ + return realloc(ptr, size); } +#endif