mirror of
https://github.com/mcanlas/6502-opcodes.git
synced 2024-06-01 00:41:36 +00:00
fmt
This commit is contained in:
parent
f126f9e3b0
commit
d646020d55
|
@ -9,7 +9,7 @@ maxColumn = 120
|
|||
|
||||
align.openParenCallSite = false
|
||||
|
||||
align = more
|
||||
align.preset = more
|
||||
|
||||
docstrings = ScalaDoc
|
||||
docstrings.blankFirstLine = yes
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
package com.htmlism.nescant
|
||||
|
||||
/**
|
||||
* @param name A name for this location, used to alias its address
|
||||
* @param name
|
||||
* A name for this location, used to alias its address
|
||||
*
|
||||
* @tparam A The input type of the write and the output type of the read
|
||||
* @tparam A
|
||||
* The input type of the write and the output type of the read
|
||||
*/
|
||||
case class ReadWriteLocation[A](name: String, address: ZeroPageAddress)
|
||||
|
||||
|
|
|
@ -5,9 +5,11 @@ package com.htmlism.nescant
|
|||
/**
|
||||
* For a memory-mapped device that may return different values across multiple reads (e.g. a random number generator)
|
||||
*
|
||||
* @param name A name for this device, used to alias its address
|
||||
* @param name
|
||||
* A name for this device, used to alias its address
|
||||
*
|
||||
* @tparam A The output type of the read
|
||||
* @tparam A
|
||||
* The output type of the read
|
||||
*/
|
||||
case class VolatileDevice[A](name: String, address: ZeroPageAddress)
|
||||
|
||||
|
|
|
@ -224,7 +224,7 @@ object MatchOpcodes {
|
|||
def wideColumns: Seq[Int] =
|
||||
for {
|
||||
cc <- 0 to 3
|
||||
y <- 0 to 1
|
||||
y <- 0 to 1
|
||||
xx <- 0 to 3
|
||||
} yield (xx << 3) + (y << 2) + cc
|
||||
|
||||
|
|
|
@ -45,6 +45,6 @@ abstract class PrimitiveBitExtractor(val length: Int) extends BitExtractor[Int]
|
|||
Some(n & mask)
|
||||
}
|
||||
|
||||
object OneBit extends PrimitiveBitExtractor(1)
|
||||
object TwoBits extends PrimitiveBitExtractor(2)
|
||||
object OneBit extends PrimitiveBitExtractor(1)
|
||||
object TwoBits extends PrimitiveBitExtractor(2)
|
||||
object ThreeBits extends PrimitiveBitExtractor(3)
|
||||
|
|
|
@ -84,7 +84,8 @@ class DefinitionGroupContext {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param comment Typically used by resources to describe their type safety
|
||||
* @param comment
|
||||
* Typically used by resources to describe their type safety
|
||||
*/
|
||||
case class Definition[A](name: String, x: A, comment: Option[String])(implicit ev: DefinitionValue[A]) {
|
||||
lazy val value: String =
|
||||
|
|
|
@ -49,20 +49,20 @@ object Color {
|
|||
x.toString
|
||||
}
|
||||
|
||||
case object Black extends Color
|
||||
case object White extends Color
|
||||
case object Red extends Color
|
||||
case object Cyan extends Color
|
||||
case object Purple extends Color
|
||||
case object Green extends Color
|
||||
case object Blue extends Color
|
||||
case object Yellow extends Color
|
||||
case object Orange extends Color
|
||||
case object Brown extends Color
|
||||
case object LightRed extends Color
|
||||
case object DarkGrey extends Color
|
||||
case object Grey extends Color
|
||||
case object Black extends Color
|
||||
case object White extends Color
|
||||
case object Red extends Color
|
||||
case object Cyan extends Color
|
||||
case object Purple extends Color
|
||||
case object Green extends Color
|
||||
case object Blue extends Color
|
||||
case object Yellow extends Color
|
||||
case object Orange extends Color
|
||||
case object Brown extends Color
|
||||
case object LightRed extends Color
|
||||
case object DarkGrey extends Color
|
||||
case object Grey extends Color
|
||||
case object LightGreen extends Color
|
||||
case object LightBlue extends Color
|
||||
case object LightGrey extends Color
|
||||
case object LightBlue extends Color
|
||||
case object LightGrey extends Color
|
||||
}
|
||||
|
|
|
@ -3,7 +3,8 @@ package com.htmlism.mos6502.dsl
|
|||
trait NamedResource[A] {
|
||||
|
||||
/**
|
||||
* A `Definable` can emit multiple definitions. Usually in the case of `word`s being split across two byte-definitions
|
||||
* A `Definable` can emit multiple definitions. Usually in the case of `word`s being split across two
|
||||
* byte-definitions
|
||||
*/
|
||||
def toDefinitions(x: A): List[Definition[_]]
|
||||
}
|
||||
|
|
|
@ -3,9 +3,11 @@ package com.htmlism.mos6502.dsl
|
|||
import com.htmlism.mos6502.model._
|
||||
|
||||
/**
|
||||
* @param name A name for this location, used to alias its address
|
||||
* @param name
|
||||
* A name for this location, used to alias its address
|
||||
*
|
||||
* @tparam A The input type of the write and the output type of the read
|
||||
* @tparam A
|
||||
* The input type of the write and the output type of the read
|
||||
*/
|
||||
case class ReadWriteLocation[A: Operand](name: String, address: ZeroAddress) {
|
||||
def read(implicit ctx: AssemblyContext): Unit = {
|
||||
|
|
|
@ -5,9 +5,11 @@ package com.htmlism.mos6502.dsl
|
|||
/**
|
||||
* For a memory-mapped device that may return different values across multiple reads (e.g. a random number generator)
|
||||
*
|
||||
* @param name A name for this device, used to alias its address
|
||||
* @param name
|
||||
* A name for this device, used to alias its address
|
||||
*
|
||||
* @tparam A The return type of the read
|
||||
* @tparam A
|
||||
* The return type of the read
|
||||
*/
|
||||
case class VolatileDevice[A](name: String, address: ZeroAddress) {
|
||||
def read(implicit ctx: AssemblyContext): Unit = {
|
||||
|
|
|
@ -2,17 +2,17 @@ package com.htmlism.mos6502.model
|
|||
|
||||
sealed trait AddressingMode
|
||||
|
||||
case object Immediate extends AddressingMode
|
||||
case object ZeroPage extends AddressingMode
|
||||
case object ZeroPageX extends AddressingMode
|
||||
case object ZeroPageY extends AddressingMode
|
||||
case object Absolute extends AddressingMode
|
||||
case object AbsoluteX extends AddressingMode
|
||||
case object AbsoluteY extends AddressingMode
|
||||
case object Indirect extends AddressingMode // used by jump
|
||||
case object IndirectX extends AddressingMode
|
||||
case object IndirectY extends AddressingMode
|
||||
case object Relative extends AddressingMode // used by branches
|
||||
case object Immediate extends AddressingMode
|
||||
case object ZeroPage extends AddressingMode
|
||||
case object ZeroPageX extends AddressingMode
|
||||
case object ZeroPageY extends AddressingMode
|
||||
case object Absolute extends AddressingMode
|
||||
case object AbsoluteX extends AddressingMode
|
||||
case object AbsoluteY extends AddressingMode
|
||||
case object Indirect extends AddressingMode // used by jump
|
||||
case object IndirectX extends AddressingMode
|
||||
case object IndirectY extends AddressingMode
|
||||
case object Relative extends AddressingMode // used by branches
|
||||
case object Accumulator extends AddressingMode
|
||||
case object Implied extends AddressingMode
|
||||
case object NoMode extends AddressingMode
|
||||
case object Implied extends AddressingMode
|
||||
case object NoMode extends AddressingMode
|
||||
|
|
|
@ -91,8 +91,8 @@ class DslSpec extends AnyFlatSpec with should.Matchers {
|
|||
sealed trait Triforce
|
||||
|
||||
case object Courage extends Triforce
|
||||
case object Wisdom extends Triforce
|
||||
case object Power extends Triforce
|
||||
case object Wisdom extends Triforce
|
||||
case object Power extends Triforce
|
||||
|
||||
object Triforce {
|
||||
implicit val enumTriforce: EnumAsm[Triforce] =
|
||||
|
@ -113,9 +113,9 @@ object Triforce {
|
|||
|
||||
sealed trait TestDirection
|
||||
|
||||
case object Up extends TestDirection
|
||||
case object Down extends TestDirection
|
||||
case object Left extends TestDirection
|
||||
case object Up extends TestDirection
|
||||
case object Down extends TestDirection
|
||||
case object Left extends TestDirection
|
||||
case object Right extends TestDirection
|
||||
|
||||
object TestDirection {
|
||||
|
|
|
@ -19,7 +19,7 @@ object Direction {
|
|||
|
||||
sealed trait Direction
|
||||
|
||||
case object Up extends Direction
|
||||
case object Down extends Direction
|
||||
case object Left extends Direction
|
||||
case object Up extends Direction
|
||||
case object Down extends Direction
|
||||
case object Left extends Direction
|
||||
case object Right extends Direction
|
||||
|
|
|
@ -68,12 +68,12 @@ class Easy6502Spec extends AnyFlatSpec with should.Matchers {
|
|||
}
|
||||
|
||||
"snake" should "compile" in {
|
||||
val sysRandom = VolatileDevice[Int]("sysRandom", 0xfe.z)
|
||||
val sysRandom = VolatileDevice[Int]("sysRandom", 0xfe.z)
|
||||
val sysLastKey = VolatileDevice[AsciiValue]("sysLastKey", 0xff.z)
|
||||
|
||||
val appleLocation = ReadWriteLocation[Int]("appleLocation", 0x00.z)
|
||||
val appleLocation = ReadWriteLocation[Int]("appleLocation", 0x00.z)
|
||||
val snakeDirection = ReadWriteLocation[Direction]("snakeDirection", 0x02.z)
|
||||
val snakeLength = ReadWriteLocation[Int]("snakeLength", 0x03.z)
|
||||
val snakeLength = ReadWriteLocation[Int]("snakeLength", 0x03.z)
|
||||
|
||||
val initSnake =
|
||||
sub("initSnake") { implicit a =>
|
||||
|
|
Loading…
Reference in New Issue
Block a user