diff options
Diffstat (limited to 'src/Machine.hs')
-rw-r--r-- | src/Machine.hs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/Machine.hs b/src/Machine.hs index 57d4c9e..4dd40d3 100644 --- a/src/Machine.hs +++ b/src/Machine.hs @@ -370,14 +370,14 @@ getOp 4 ar s = do return (getMemory addr s, setMemory addr s) getOp 5 ar s = do pc <- readPC - incPC + skipOp 2 disp <- getMemory pc 2 addr <- readA ar 4 let addr = addr + disp return (getMemory addr s, setMemory addr s) getOp 6 ar s = do pc <- readPC - incPC + skipOp 2 prefix <- getMemory pc 1 index <- (if testBit prefix 0 then readA else readD) (extractBits prefix [1..3]) @@ -388,13 +388,13 @@ getOp 6 ar s = do return (getMemory addr s, setMemory addr s) getOp 7 2 s = do addr <- readPC - incPC + skipOp 2 disp <- getMemory addr 2 let addr = addr + disp return (getMemory addr s, setMemory addr s) getOp 7 3 s = do addr <- readPC - incPC + skipOp 2 prefix <- getMemory addr 1 index <- (if testBit prefix 0 then readA else readD) (extractBits prefix [1..3]) @@ -404,7 +404,7 @@ getOp 7 3 s = do return (getMemory addr s, setMemory addr s) getOp 7 0 s = do pc <- readPC - incPC + skipOp 2 addr <- getMemory pc 2 return (getMemory addr s, setMemory addr s) getOp 7 1 s = do |