From a0615ea6f7496e97a5d9f837e9cf80fd6ec3acd0 Mon Sep 17 00:00:00 2001 From: kdx Date: Thu, 13 Apr 2023 14:35:21 +0200 Subject: MUL AND ORA XOR --- src/orgaemu.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/orgaemu.c b/src/orgaemu.c index b824415..cdadb69 100644 --- a/src/orgaemu.c +++ b/src/orgaemu.c @@ -100,12 +100,6 @@ exec_data(uint16_t *mem) push(a); push(a); } break; - case OP_ADD: - push(pop() + pop()); - break; - case OP_WRT: - putchar(pop()); - break; case OP_JNZ: if (pop() != 0) { pc = mem[pc + 1]; @@ -131,6 +125,24 @@ exec_data(uint16_t *mem) const uint16_t b = pop(); mem[a] = b; } break; + case OP_WRT: + putchar(pop()); + break; + case OP_ADD: + push(pop() + pop()); + break; + case OP_MUL: + push(pop() * pop()); + break; + case OP_AND: + push(pop() & pop()); + break; + case OP_ORA: + push(pop() | pop()); + break; + case OP_XOR: + push(pop() ^ pop()); + break; default: fprintf(stderr, "unhandled opcode %04x\n", mem[pc]); if (mem[pc] <= OP_SLP) -- cgit v1.2.3