sixty-five-oh-two/README.md

765 B

A 65C02 Assembly DSL for Haskell

Example image

... shut up, show me the code!

Here's some example code utilizing all of the features of the eDSL:

import SixtyFiveOhTwo.Instruction

accumulatorLoadNStore :: Instruction
accumulatorLoadNStore = do
    lda (Immediate 0x10)
    sta (Absolute 0x0200)
    rts (Implied)

myProgram :: Instruction
myProgram = do
    define "accumulatorLoadNStore" accumulatorLoadNStore
    call "accumulatorLoadNStore"

Here's a fun little snippet that adds 10 to the accumulator using Haskell Monad Magic:

test3f2 :: Instruction
test3f2 = replicateM_ 10 (inc (Accumulator))

More documentation coming soon!