From f8c97e31d18fb2b5f7c5bac76c90032480b3ef78 Mon Sep 17 00:00:00 2001 From: Mark Canlas Date: Sat, 15 Aug 2020 16:29:32 -0400 Subject: [PATCH] add constant test --- src/main/scala/com/htmlism/mos6502/dsl/package.scala | 10 ++++++++++ src/test/scala/com/htmlism/mos6502/dsl/DslSpec.scala | 12 ++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/main/scala/com/htmlism/mos6502/dsl/package.scala b/src/main/scala/com/htmlism/mos6502/dsl/package.scala index 6c16cca..f1bdcfd 100644 --- a/src/main/scala/com/htmlism/mos6502/dsl/package.scala +++ b/src/main/scala/com/htmlism/mos6502/dsl/package.scala @@ -34,6 +34,16 @@ package object dsl { definition } + def constant(name: String, x: Int)(implicit ctx: DefinitionGroupContext): Definition[Int] = { + val definition = + Definition(name, x) + + ctx + .push(Definition(name, x)) + + definition + } + implicit class AddressOps(n: Int) { def z: ZeroAddress = ZeroAddress(n) diff --git a/src/test/scala/com/htmlism/mos6502/dsl/DslSpec.scala b/src/test/scala/com/htmlism/mos6502/dsl/DslSpec.scala index 00d3c50..a41c81d 100644 --- a/src/test/scala/com/htmlism/mos6502/dsl/DslSpec.scala +++ b/src/test/scala/com/htmlism/mos6502/dsl/DslSpec.scala @@ -26,6 +26,11 @@ class DslSpec extends AnyFlatSpec with should.Matchers { define("sysLastKey", 0xff.z)) } + group("constants test") { implicit g => + (constant("margin", 16), + constant("secret", 42)) + } + () } @@ -35,15 +40,22 @@ class DslSpec extends AnyFlatSpec with should.Matchers { Definition("snakeDirection", 0x02.z), Definition("snakeLength", 0x03.z) )), + DefinitionGroup("ASCII values of keys controlling the snake", List( Definition("ASCII_w", 0x77.z), Definition("ASCII_a", 0x61.z), Definition("ASCII_s", 0x73.z), Definition("ASCII_d", 0x64.z) )), + DefinitionGroup("System variables", List( Definition("sysRandom", 0xfe.z), Definition("sysLastKey", 0xff.z) + )), + + DefinitionGroup("constants test", List( + Definition("margin", 16), + Definition("secret", 42) )) )) }