aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkdx <kikoodx@paranoici.org>2023-04-13 23:28:24 +0200
committerkdx <kikoodx@paranoici.org>2023-04-13 23:28:24 +0200
commite1e94814565bfe659e6d879fcd1dcd4fe575d965 (patch)
tree6517692093cfd2a287b467b2ddb79737ca168e69 /src
parenta0615ea6f7496e97a5d9f837e9cf80fd6ec3acd0 (diff)
downloadorga-e1e94814565bfe659e6d879fcd1dcd4fe575d965.tar.gz
INC DEC
Diffstat (limited to 'src')
-rw-r--r--src/ops.h4
-rw-r--r--src/orgaemu.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/src/ops.h b/src/ops.h
index 2ad2285..de30ea2 100644
--- a/src/ops.h
+++ b/src/ops.h
@@ -32,6 +32,8 @@ enum {
OP_LSF,
OP_RSF,
OP_SLP,
+ OP_INC,
+ OP_DEC,
};
static const char ops[][4] = {
@@ -66,4 +68,6 @@ static const char ops[][4] = {
[OP_LSF] = "LSF",
[OP_RSF] = "RSF",
[OP_SLP] = "SLP",
+ [OP_INC] = "INC",
+ [OP_DEC] = "DEC",
};
diff --git a/src/orgaemu.c b/src/orgaemu.c
index cdadb69..cb1d6e2 100644
--- a/src/orgaemu.c
+++ b/src/orgaemu.c
@@ -143,6 +143,12 @@ exec_data(uint16_t *mem)
case OP_XOR:
push(pop() ^ pop());
break;
+ case OP_INC:
+ push(pop() + 1);
+ break;
+ case OP_DEC:
+ push(pop() - 1);
+ break;
default:
fprintf(stderr, "unhandled opcode %04x\n", mem[pc]);
if (mem[pc] <= OP_SLP)