From ab05516329ccbf535ebd573d3b112d5889f97d05 Mon Sep 17 00:00:00 2001 From: Franck STAUFFER Date: Mon, 3 Aug 2020 16:36:19 +0200 Subject: [PATCH] Fix a bug where v[X] was not handled in 0xFX55 and 0xFX65, use memcpy instead of looping, increment i like in the original implementation --- src/main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main.c b/src/main.c index 47893ad..824fa21 100644 --- a/src/main.c +++ b/src/main.c @@ -388,13 +388,13 @@ op_handler(void) pc += 2; return 1; case 0xF055: - for (register uint_fast8_t t = 0; t < X; ++t) - memory[i + t] = v[t]; + memcpy(memory + i, v, ((X) + 1) * sizeof(byte)); + i += (X) + 1; pc += 2; return 1; case 0xF065: - for (register uint_fast8_t t = 0; t < X; ++t) - v[t] = memory[i + t]; + memcpy(v, memory + i, ((X) + 1) * sizeof(byte)); + i += (X) + 1; pc += 2; return 1; default: