mirror of
https://github.com/mcanlas/6502-opcodes.git
synced 2025-02-11 02:30:45 +00:00
use typeclass maybe
This commit is contained in:
parent
943a466ac1
commit
e7432eb5aa
@ -6,18 +6,24 @@ package object syntax:
|
||||
new PartiallyAppliedWrite(reg, x)
|
||||
|
||||
class PartiallyAppliedWrite[A: Loadable, B <: Address](reg: WriteAddress[B], x: A):
|
||||
def apply[C: Register]: String =
|
||||
def apply[C: Load: Store: Register]: String =
|
||||
val literal =
|
||||
summon[Loadable[A]].show(x)
|
||||
|
||||
val register =
|
||||
summon[Register[C]].self
|
||||
|
||||
val loadInstruction =
|
||||
Load[C].init // TODO load action needs to interact with encoder
|
||||
|
||||
val storeInstruction =
|
||||
Store[C].to // TODO store action needs to interact with encoder
|
||||
|
||||
val first =
|
||||
s"LD$register $literal"
|
||||
s"$loadInstruction $literal"
|
||||
|
||||
val second =
|
||||
s"ST$register ${reg.addr.n.toString}"
|
||||
s"$storeInstruction ${reg.addr.n.toString}"
|
||||
|
||||
val desc =
|
||||
s"${reg.addr.alias} = $literal, via $register"
|
||||
|
Loading…
x
Reference in New Issue
Block a user