From d5548c4b4d59370f1cdbc46366be6c265268c465 Mon Sep 17 00:00:00 2001 From: Aleksey Veresov Date: Sun, 21 Mar 2021 23:25:05 +0300 Subject: . --- src/Machine.hs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'src/Machine.hs') diff --git a/src/Machine.hs b/src/Machine.hs index 42e1c60..537c2fc 100644 --- a/src/Machine.hs +++ b/src/Machine.hs @@ -209,6 +209,44 @@ isCarry = with sr $ \sr -> do return $ testBit sr 15 +setTracing :: Bool -> Emulator () +setTracing b = with sr $ \sr -> do + srval <- readIORef sr + writeIORef sr $ (if b then setBit else clearBit) srval 0 + +setSupervisor :: Bool -> Emulator () +setSupervisor = with sr $ \sr -> do + srval <- readIORef sr + writeIORef sr $ (if b then setBit else clearBit) srval 2 + +-- setInterruptLevel :: Int -> Emulator () + +setExtend :: Bool -> Emulator () +setExtend = with sr $ \sr -> do + srval <- readIORef sr + writeIORef sr $ (if b then setBit else clearBit) srval 11 + +setNegative :: Bool -> Emulator () +setNegative = with sr $ \sr -> do + srval <- readIORef sr + writeIORef sr $ (if b then setBit else clearBit) srval 12 + +setZero :: Bool -> Emulator () +setZero = with sr $ \sr -> do + srval <- readIORef sr + writeIORef sr $ (if b then setBit else clearBit) srval 13 + +setOverflow :: Bool -> Emulator () +setOverflow = with sr $ \sr -> do + srval <- readIORef sr + writeIORef sr $ (if b then setBit else clearBit) srval 14 + +setCarry :: Bool -> Emulator () +setCarry = with sr $ \sr -> do + srval <- readIORef sr + writeIORef sr $ (if b then setBit else clearBit) srval 15 + + ------------------------------------------------------------------------------- -- Memmory Access -- cgit v1.2.3