| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Nes.CPU.Instructions.Arith
Synopsis
- adc :: AddressingMode -> CPU r ()
- sbc :: AddressingMode -> CPU r ()
- inc :: AddressingMode -> CPU r ()
- inx :: CPU r ()
- iny :: CPU r ()
- isb :: AddressingMode -> CPU r ()
- dec :: AddressingMode -> CPU r ()
- dex :: CPU r ()
- dey :: CPU r ()
- addToRegisterA :: Byte -> CPU r ()
Operate on register A with carry
adc :: AddressingMode -> CPU r () Source #
Regisiter A + (_value in memory_) + Carry
https://www.nesdev.org/obelisk-6502-guide/reference.html#ADC
sbc :: AddressingMode -> CPU r () Source #
Regisiter A - (_value in memory_) - (1 - Carry)
https://www.nesdev.org/obelisk-6502-guide/reference.html#SBC
Increment
inc :: AddressingMode -> CPU r () Source #
Increment value in memory
https://www.nesdev.org/obelisk-6502-guide/reference.html#INC
Increment the value of the X register
https://www.nesdev.org/obelisk-6502-guide/reference.html#INX
Increment the value of the Y register
https://www.nesdev.org/obelisk-6502-guide/reference.html#INY
isb :: AddressingMode -> CPU r () Source #
(Unofficial) Equivalent to INC value then SBC value
Aka ISC
Decrement
dec :: AddressingMode -> CPU r () Source #
Decrement value in memory
https://www.nesdev.org/obelisk-6502-guide/reference.html#DEC
Decrement X register
https://www.nesdev.org/obelisk-6502-guide/reference.html#DEX
Decrement Y register
https://www.nesdev.org/obelisk-6502-guide/reference.html#DEY
Internal
addToRegisterA :: Byte -> CPU r () Source #
Does the computation and sets Carry and Overflow accordingly