Copyright | (c) Rose 2019 |
---|---|
License | BSD3 |
Maintainer | rose@lain.org.uk |
Stability | experimental |
Portability | POSIX |
Safe Haskell | None |
Language | Haskell2010 |
This module provides a backend to format opcodes as ASM and produce assembly files which are then buildable into ROMs (with RGBDS).
Documentation
data LazyboyException Source #
Lazyboy exception type.
InvalidStackOperation | |
InvalidALoad Register16 | |
AttemptedAFPCLoad | |
InvalidRSTVector | |
IllegalHLAddition | |
IllegalModification Register16 | |
IntegerBoundsViolation Word8 | |
Unimplemented |
Instances
Show LazyboyException Source # | An instance of Show for printing exception messages. |
Defined in Lazyboy.Target.ASM showsPrec :: Int -> LazyboyException -> ShowS # show :: LazyboyException -> String # showList :: [LazyboyException] -> ShowS # | |
Exception LazyboyException Source # | An instance of Exception itself for LazyboyException. |
Defined in Lazyboy.Target.ASM |
compileROM :: Lazyboy a -> IO Text Source #
Compiles an action to an assembly source file.
This function makes use of a "bare" template, which
sets up an appropriate start location for the body of the program
and defines an entry point label main
.
Orphan instances
Show Instruction Source # | A custom Show instance which formats Instructions as assembly. |
showsPrec :: Int -> Instruction -> ShowS # show :: Instruction -> String # showList :: [Instruction] -> ShowS # | |
PrintfArg Label Source # | |
formatArg :: Label -> FieldFormatter # parseFormat :: Label -> ModifierParser # | |
PrintfArg Register16 Source # | Instances of PrintfArg |
formatArg :: Register16 -> FieldFormatter # parseFormat :: Register16 -> ModifierParser # | |
PrintfArg Register8 Source # | |
formatArg :: Register8 -> FieldFormatter # parseFormat :: Register8 -> ModifierParser # | |
PrintfArg Condition Source # | |
formatArg :: Condition -> FieldFormatter # parseFormat :: Condition -> ModifierParser # | |
PrintfArg Location Source # | |
formatArg :: Location -> FieldFormatter # parseFormat :: Location -> ModifierParser # |