aboutsummaryrefslogtreecommitdiff
path: root/src/Machine.hs
diff options
context:
space:
mode:
authorNikita Orlov <nikitf-97@mail.ru>2021-04-03 22:28:49 +0300
committerNikita Orlov <nikitf-97@mail.ru>2021-04-03 22:28:49 +0300
commit717a132ea55eb634eda375d59d73df826712cd8b (patch)
tree5f669aed99d8c74e3141e454bc6ac7a4c84beed7 /src/Machine.hs
parent3d4e47bb5a290c638d61ddf6dcfdf1101f6bebae (diff)
downloadsuem-717a132ea55eb634eda375d59d73df826712cd8b.tar
suem-717a132ea55eb634eda375d59d73df826712cd8b.tar.xz
suem-717a132ea55eb634eda375d59d73df826712cd8b.zip
BSR and RTS added
Diffstat (limited to 'src/Machine.hs')
-rw-r--r--src/Machine.hs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/Machine.hs b/src/Machine.hs
index 1f0b6e5..91bcca0 100644
--- a/src/Machine.hs
+++ b/src/Machine.hs
@@ -312,14 +312,14 @@ setByte a b | a < 0x8 = return ()
-- TODO: only even addresses are allowed
setWord :: Long -> Word -> Emulator ()
setWord a w = do
- setByte a (fromIntegral (rem (fromIntegral w) 256))
- setByte (a + 1) (fromIntegral (div (fromIntegral w) 256))
+ setByte a (fromIntegral (div (fromIntegral w) 256))
+ setByte (a + 1) (fromIntegral (rem (fromIntegral w) 256))
-- TODO: only even addresses are allowed
setLong :: Long -> Long -> Emulator ()
setLong a l = do
- setWord a (fromIntegral (rem (fromIntegral l) 256 * 256))
- setWord (a + 2) (fromIntegral (div (fromIntegral l) 256 * 256))
+ setWord a (fromIntegral (div (fromIntegral l) (256 * 256)))
+ setWord (a + 2) (fromIntegral (rem (fromIntegral l) (256 * 256)))
getMemory :: Long -> Int -> Emulator Long