import qualified Data.ByteString.Lazy as BL import Data.Binary.Put s_delay = 0 num_cycles = 1 colors_list = [(0x32, 0x30)] -- green magic 1 x = 2 + 6 * x color_number t = fst t * 2^8 + snd t serialiseSomething :: Put serialiseSomething = do putWord16le 0x5aa5 putWord16le s_delay putWord16le 0x101 putWord16le 0x101 putWord16le 0x1 putWord16le 0 putWord16le 0 putWord16le 0 putWord16le 0 putWord16le 0 putWord16le num_cycles putWord16le $ fromIntegral $ length colors_list putWord16le $ magic num_cycles 1 putWord16le $ fromIntegral $ color_number $ head colors_list main :: IO () main = BL.putStr $ runPut serialiseSomething