summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2021-07-10 15:19:57 +0200
committerAki <please@ignore.pl>2021-07-10 15:19:57 +0200
commit5809ce4c5438702977164a8193b9556609f8e537 (patch)
tree9adec0ea4535855dec92285f3c4cd23a620573e4
parente880c087cec5876c5e6aaaa7980c1ae6274fdb6c (diff)
downloadlc3-5809ce4c5438702977164a8193b9556609f8e537.zip
lc3-5809ce4c5438702977164a8193b9556609f8e537.tar.gz
lc3-5809ce4c5438702977164a8193b9556609f8e537.tar.bz2
Made sure that kbsr interrupt can be toggled
-rw-r--r--lc3.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lc3.c b/lc3.c
index 9740b19..aea29b7 100644
--- a/lc3.c
+++ b/lc3.c
@@ -169,7 +169,7 @@ uint16_t read_memory(const uint16_t address)
{
if (check_key())
{
- memory[MEMORY_KBSR] = 1u << 15;
+ memory[MEMORY_KBSR] |= 1u << 15;
uint8_t c;
ssize_t r = read(0, &c, 1);
die(r, "read_memory read()");
@@ -177,7 +177,7 @@ uint16_t read_memory(const uint16_t address)
}
else
{
- memory[MEMORY_KBSR] = 0;
+ memory[MEMORY_KBSR] &= ~(1u << 15);
}
}
else if (MEMORY_DSR == address)