mirror of
https://github.com/macocianradu/goboy.git
synced 2026-03-18 21:10:07 +00:00
finished first row of opcodes
This commit is contained in:
22
cpu/flags.go
22
cpu/flags.go
@@ -1,6 +1,10 @@
|
||||
package cpu
|
||||
|
||||
func Set8BitAddFlags(context op_context, byte1 byte, byte2 byte) byte {
|
||||
import (
|
||||
"radu.macocian.me/goboy/cpu/operations"
|
||||
)
|
||||
|
||||
func Add8BitsAndSetFlags(context op_context, byte1 byte, byte2 byte) byte {
|
||||
result := uint16(byte1) + uint16(byte2)
|
||||
halfcarry := (byte1&0x0F)+(byte2&0x0F) > 0x0F
|
||||
context.cpu.SetNF(false)
|
||||
@@ -17,3 +21,19 @@ func Add16BitsAndSetFlags(context op_context, op1 uint16, op2 uint16) uint16 {
|
||||
context.cpu.SetCF(result > 0xFFFF)
|
||||
return uint16(result)
|
||||
}
|
||||
|
||||
func IncAndSetFlags(context op_context, op1 *byte) {
|
||||
halfcarry := *op1&0x0F == 0x0F
|
||||
context.cpu.SetNF(false)
|
||||
context.cpu.SetHF(halfcarry)
|
||||
context.cpu.SetZF(*op1 == byte(0))
|
||||
operations.INC(op1)
|
||||
}
|
||||
|
||||
func DecAndSetFlags(context op_context, op1 *byte) {
|
||||
halfcarry := *op1&0x0F == 0x00
|
||||
context.cpu.SetZF(*op1 == byte(0))
|
||||
context.cpu.SetNF(true)
|
||||
context.cpu.SetHF(halfcarry)
|
||||
operations.DEC(op1)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user