From 9532d0487b9944c797e9110b58d00e2202a1833a Mon Sep 17 00:00:00 2001 From: Joscha Date: Wed, 6 Nov 2019 14:00:10 +0000 Subject: [PATCH] Run a MiMa until it halts --- src/Mima/State.hs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Mima/State.hs b/src/Mima/State.hs index 84f7784..10283b4 100644 --- a/src/Mima/State.hs +++ b/src/Mima/State.hs @@ -9,6 +9,7 @@ module Mima.State , AbortReason(..) , ExecException(..) , step + , run ) where import Data.Bits @@ -98,3 +99,9 @@ executeLargeOpcode HALT ms = in Left $ ExecException addr word Halted executeLargeOpcode NOT ms = incrementIp ms{msAcc = complement (msAcc ms)} executeLargeOpcode RAR ms = incrementIp ms{msAcc = rotateR (msAcc ms) 1} + +run :: MimaState -> (MimaState, ExecException) +run ms = + case step ms of + Left e -> (ms, e) + Right ms' -> run ms'