diff options
author | Nikita Orlov <nikitf-97@mail.ru> | 2021-04-03 15:53:49 +0300 |
---|---|---|
committer | Nikita Orlov <nikitf-97@mail.ru> | 2021-04-03 15:53:49 +0300 |
commit | 50570477dc1cffecc597dda663ab4738fe2660e9 (patch) | |
tree | 61775011d259e407f0987984666ed1e7da5c6a03 /src/Utils.hs | |
parent | 7955eabdbea706519f000a85531c152fa07e6700 (diff) | |
download | suem-50570477dc1cffecc597dda663ab4738fe2660e9.tar suem-50570477dc1cffecc597dda663ab4738fe2660e9.tar.xz suem-50570477dc1cffecc597dda663ab4738fe2660e9.zip |
Flags, Bcc added
Diffstat (limited to 'src/Utils.hs')
-rw-r--r-- | src/Utils.hs | 27 |
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 |