Removed the executable from the library, moved it to the test (Version bump)
This commit is contained in:
parent
25c0873519
commit
7d18d78165
56
app/Main.hs
56
app/Main.hs
|
@ -1,56 +0,0 @@
|
||||||
module Main where
|
|
||||||
|
|
||||||
import DSL.SixtyFiveOhTwo
|
|
||||||
import Control.Monad.State
|
|
||||||
import qualified Data.ByteString as B
|
|
||||||
import Data.Int
|
|
||||||
|
|
||||||
test1 :: Instruction
|
|
||||||
test1 = do
|
|
||||||
lda (Immediate 0xFF)
|
|
||||||
sta (ZeroPage 0x00)
|
|
||||||
lda (Immediate 0x00)
|
|
||||||
adc (Immediate 0x01)
|
|
||||||
cmp (ZeroPage 0x00)
|
|
||||||
bne (Relative (-0x03 :: Int8))
|
|
||||||
|
|
||||||
|
|
||||||
test2f :: Instruction
|
|
||||||
test2f = do
|
|
||||||
lda (Immediate 0x10)
|
|
||||||
sta (Absolute 0x0200)
|
|
||||||
rts (Implied)
|
|
||||||
|
|
||||||
test2 :: Instruction
|
|
||||||
test2 = do
|
|
||||||
define "accumulatorLoadNStore" test2f
|
|
||||||
call "accumulatorLoadNStore"
|
|
||||||
|
|
||||||
test3f2 :: Instruction
|
|
||||||
test3f2 = replicateM_ 10 (inc (Accumulator))
|
|
||||||
|
|
||||||
test3f1 :: Instruction
|
|
||||||
test3f1 = do
|
|
||||||
lda (Immediate 0x02)
|
|
||||||
define "addIt" test3f2
|
|
||||||
|
|
||||||
test3 :: Instruction
|
|
||||||
test3 = do
|
|
||||||
define "loadIt" test3f1
|
|
||||||
call "loadIt"
|
|
||||||
call "addIt"
|
|
||||||
|
|
||||||
main :: IO ()
|
|
||||||
main = do
|
|
||||||
putStrLn "test one: simple program"
|
|
||||||
putStrLn "========================"
|
|
||||||
print $ execState test1 emptyState
|
|
||||||
putStrLn ""
|
|
||||||
putStrLn "test two: simple function"
|
|
||||||
putStrLn "========================="
|
|
||||||
print $ execState test2 emptyState
|
|
||||||
putStrLn ""
|
|
||||||
putStrLn "test two: nested function"
|
|
||||||
putStrLn "========================="
|
|
||||||
print $ execState test3 emptyState
|
|
||||||
putStrLn ""
|
|
13
package.yaml
13
package.yaml
|
@ -1,5 +1,5 @@
|
||||||
name: sixty-five-oh-two
|
name: sixty-five-oh-two
|
||||||
version: 1.0.0.0
|
version: 1.1.0.0
|
||||||
github: "aearnus/sixty-five-oh-two"
|
github: "aearnus/sixty-five-oh-two"
|
||||||
license: MIT
|
license: MIT
|
||||||
author: "Tyler Limkemann"
|
author: "Tyler Limkemann"
|
||||||
|
@ -29,17 +29,6 @@ dependencies:
|
||||||
library:
|
library:
|
||||||
source-dirs: src
|
source-dirs: src
|
||||||
|
|
||||||
executables:
|
|
||||||
sixty-five-oh-two-exe:
|
|
||||||
main: Main.hs
|
|
||||||
source-dirs: app
|
|
||||||
ghc-options:
|
|
||||||
- -threaded
|
|
||||||
- -rtsopts
|
|
||||||
- -with-rtsopts=-N
|
|
||||||
dependencies:
|
|
||||||
- sixty-five-oh-two
|
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
sixty-five-oh-two-test:
|
sixty-five-oh-two-test:
|
||||||
main: Spec.hs
|
main: Spec.hs
|
||||||
|
|
54
test/Spec.hs
54
test/Spec.hs
|
@ -1,2 +1,54 @@
|
||||||
|
import DSL.SixtyFiveOhTwo
|
||||||
|
import Control.Monad.State
|
||||||
|
import qualified Data.ByteString as B
|
||||||
|
import Data.Int
|
||||||
|
|
||||||
|
test1 :: Instruction
|
||||||
|
test1 = do
|
||||||
|
lda (Immediate 0xFF)
|
||||||
|
sta (ZeroPage 0x00)
|
||||||
|
lda (Immediate 0x00)
|
||||||
|
adc (Immediate 0x01)
|
||||||
|
cmp (ZeroPage 0x00)
|
||||||
|
bne (Relative (-0x03 :: Int8))
|
||||||
|
|
||||||
|
|
||||||
|
test2f :: Instruction
|
||||||
|
test2f = do
|
||||||
|
lda (Immediate 0x10)
|
||||||
|
sta (Absolute 0x0200)
|
||||||
|
rts (Implied)
|
||||||
|
|
||||||
|
test2 :: Instruction
|
||||||
|
test2 = do
|
||||||
|
define "accumulatorLoadNStore" test2f
|
||||||
|
call "accumulatorLoadNStore"
|
||||||
|
|
||||||
|
test3f2 :: Instruction
|
||||||
|
test3f2 = replicateM_ 10 (inc (Accumulator))
|
||||||
|
|
||||||
|
test3f1 :: Instruction
|
||||||
|
test3f1 = do
|
||||||
|
lda (Immediate 0x02)
|
||||||
|
define "addIt" test3f2
|
||||||
|
|
||||||
|
test3 :: Instruction
|
||||||
|
test3 = do
|
||||||
|
define "loadIt" test3f1
|
||||||
|
call "loadIt"
|
||||||
|
call "addIt"
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = putStrLn "Test suite not yet implemented"
|
main = do
|
||||||
|
putStrLn "test one: simple program"
|
||||||
|
putStrLn "========================"
|
||||||
|
print $ execState test1 emptyState
|
||||||
|
putStrLn ""
|
||||||
|
putStrLn "test two: simple function"
|
||||||
|
putStrLn "========================="
|
||||||
|
print $ execState test2 emptyState
|
||||||
|
putStrLn ""
|
||||||
|
putStrLn "test two: nested function"
|
||||||
|
putStrLn "========================="
|
||||||
|
print $ execState test3 emptyState
|
||||||
|
putStrLn ""
|
||||||
|
|
Loading…
Reference in New Issue