aboutsummaryrefslogtreecommitdiff
path: root/src/Utils.hs
diff options
context:
space:
mode:
authorNikita Orlov <nikitf-97@mail.ru>2021-04-03 15:53:49 +0300
committerNikita Orlov <nikitf-97@mail.ru>2021-04-03 15:53:49 +0300
commit50570477dc1cffecc597dda663ab4738fe2660e9 (patch)
tree61775011d259e407f0987984666ed1e7da5c6a03 /src/Utils.hs
parent7955eabdbea706519f000a85531c152fa07e6700 (diff)
downloadsuem-50570477dc1cffecc597dda663ab4738fe2660e9.tar
suem-50570477dc1cffecc597dda663ab4738fe2660e9.tar.xz
suem-50570477dc1cffecc597dda663ab4738fe2660e9.zip
Flags, Bcc added
Diffstat (limited to 'src/Utils.hs')
-rw-r--r--src/Utils.hs27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/Utils.hs b/src/Utils.hs
index 1d908e1..ee1cd7a 100644
--- a/src/Utils.hs
+++ b/src/Utils.hs
@@ -37,3 +37,30 @@ combineLong update base 2 = base .&. 0xFFFF0000 .|. (convertLong update 2)
combineLong update _ 4 = update
combineLong _ _ s = error $
"Wrong size (" ++ show s ++ ") of combineLong"
+
+-------------------------------------------------------------------------------
+-- Size Casting
+
+getSize :: Int -> Int
+getSize 0 = 1
+getSize 1 = 2
+getSize 2 = 4
+
+getMoveSize :: Int -> Int
+getMoveSize 1 = 1
+getMoveSize 3 = 2
+getMoveSize 2 = 4
+
+-------------------------------------------------------------------------------
+-- Flag checker
+
+checkNegative :: Word32 -> Int -> Bool
+checkNegative x 1 = x >= 0x80
+checkNegative x 2 = x >= 0x8000
+checkNegative x 4 = x >= 0x80000000
+
+checkZero :: Word32 -> Bool
+checkZero 0 = True
+checkZero _ = False
+
+-- TODO: carry & overflow checkers