diff options
author | kdx <kikoodx@paranoici.org> | 2023-04-13 23:28:24 +0200 |
---|---|---|
committer | kdx <kikoodx@paranoici.org> | 2023-04-13 23:28:24 +0200 |
commit | e1e94814565bfe659e6d879fcd1dcd4fe575d965 (patch) | |
tree | 6517692093cfd2a287b467b2ddb79737ca168e69 /src | |
parent | a0615ea6f7496e97a5d9f837e9cf80fd6ec3acd0 (diff) | |
download | orga-e1e94814565bfe659e6d879fcd1dcd4fe575d965.tar.gz |
INC DEC
Diffstat (limited to 'src')
-rw-r--r-- | src/ops.h | 4 | ||||
-rw-r--r-- | src/orgaemu.c | 6 |
2 files changed, 10 insertions, 0 deletions
@@ -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) |