package cpu const ( FlagC uint8 = 1 << 0 FlagZ uint8 = 1 << 1 FlagI uint8 = 1 << 2 FlagD uint8 = 1 << 3 // no-op on the NES's 2A03 FlagB uint8 = 1 << 4 // only meaningful in the byte pushed by brk/irq FlagU uint8 = 1 << 5 FlagV uint8 = 1 << 6 FlagN uint8 = 1 << 7 ) func (c *CPU) setFlag(flag uint8, set bool) { if set { c.Status |= flag } else { c.Status &^= flag } } func (c *CPU) flag(flag uint8) bool { return c.Status&flag != 0 } func (c *CPU) setZN(v uint8) { c.setFlag(FlagZ, v == 0) c.setFlag(FlagN, v&0x80 != 0) }