From 78dc5325ae51a8871457b9c418fbed0495bc8910 Mon Sep 17 00:00:00 2001 From: kdx Date: Sat, 10 Jun 2023 22:09:40 +0200 Subject: LTE and GTE --- src/ops.h | 4 ++++ src/orgaemu.c | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/ops.h b/src/ops.h index 0d06f1b..e42656f 100644 --- a/src/ops.h +++ b/src/ops.h @@ -12,7 +12,9 @@ enum { OP_EQU, OP_NEQ, OP_GTH, + OP_GTE, OP_LTH, + OP_LTE, OP_JEZ, OP_JNZ, OP_JMP, @@ -49,7 +51,9 @@ static const char ops[][4] = { [OP_EQU] = "EQU", [OP_NEQ] = "NEQ", [OP_GTH] = "GTH", + [OP_GTE] = "GTE", [OP_LTH] = "LTH", + [OP_LTE] = "LTE", [OP_JEZ] = "JEZ", [OP_JNZ] = "JNZ", [OP_JMP] = "JMP", diff --git a/src/orgaemu.c b/src/orgaemu.c index a9f29d2..09fd453 100644 --- a/src/orgaemu.c +++ b/src/orgaemu.c @@ -258,6 +258,18 @@ exec_op(uint16_t *mem, long pc) push(a < b); return pc + 1; } + case OP_GTE: { + const uint16_t b = pop(); + const uint16_t a = pop(); + push(a >= b); + return pc + 1; + } + case OP_LTE: { + const uint16_t b = pop(); + const uint16_t a = pop(); + push(a <= b); + return pc + 1; + } case OP_JEZ: if (pop() == 0) return mem[pc + 1]; -- cgit v1.2.3