load :: Memory s -> Address -> ST s MemoryValue
load mem Pc            = readSTRef (pc mem) >>= \v -> return $ MemoryValue16 v
load :: Memory s -> Address -> ST s MemoryValue
load mem Pc            = readSTRef (pc mem) >>= \v -> return $ MemoryValue16 v
load mem Pc            = readSTRef (pc mem) >>= \v -> return $ MemoryValue16 v