aboutsummaryrefslogtreecommitdiff
path: root/src/Commands.hs
diff options
context:
space:
mode:
authorNikita Orlov <nikitf-97@mail.ru>2021-04-02 15:34:54 +0300
committerNikita Orlov <nikitf-97@mail.ru>2021-04-02 15:34:54 +0300
commita2d59f5e1aa353f29cc557a60646c7a37cb738f4 (patch)
tree24ccb63340923ca14865f4ef19334420e1e28ee7 /src/Commands.hs
parent0ecc75b1134d221f544653025150948f0ac2a743 (diff)
downloadsuem-a2d59f5e1aa353f29cc557a60646c7a37cb738f4.tar
suem-a2d59f5e1aa353f29cc557a60646c7a37cb738f4.tar.xz
suem-a2d59f5e1aa353f29cc557a60646c7a37cb738f4.zip
Operand code update
Diffstat (limited to 'src/Commands.hs')
-rw-r--r--src/Commands.hs14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/Commands.hs b/src/Commands.hs
index e12cfdf..ea0a50d 100644
--- a/src/Commands.hs
+++ b/src/Commands.hs
@@ -112,18 +112,18 @@ doTRAP _ = return ()
doLINK :: Int -> Emulator ()
doLINK a = do
incPC
- addr <- readA a
- sp <- readA 7
- writeA 7 (sp-4)
- setLong (sp-4) addr
+ addr <- readA a 4
+ sp <- readA 7 4
+ writeA 7 4 (sp - 4)
+ setLong (sp - 4) addr
doUNLK :: Int -> Emulator ()
doUNLK a = do
incPC
- addr <- readA a
+ addr <- readA a 4
val <- getLong addr
- writeA a val
- writeA 7 (addr + 4)
+ writeA a 4 val
+ writeA 7 4 (addr + 4)
doMOVEUSP :: Int -> Int -> Emulator ()
doMOVEUSP _ _ = return ()