Exemple #1
0
        protected override void OnLastCycleLastM()
        {
            base.OnLastCycleLastM();

            var value = _inputPart.Data.Value;

            Registers.Flags.S  = Alu.IsNegative(value);
            Registers.Flags.Z  = Alu.IsZero(value);
            Registers.Flags.H  = false;
            Registers.Flags.PV = Alu.IsParityEven(value);
            Registers.Flags.N  = false;

            if (IsIndirect)
            {
                Registers.A = value;
            }
            else
            {
                var reg = ExecutionEngine.Opcode.Definition.Register8FromY;
                if (reg != Register8Table.HL)
                {
                    Registers[reg] = value;
                }
            }
        }
Exemple #2
0
 private void SetFlags(byte value)
 {
     Registers.Flags.S  = Alu.IsNegative(value);
     Registers.Flags.Z  = Alu.IsZero(value);
     Registers.Flags.H  = false;
     Registers.Flags.PV = Registers.Interrupt.IFF2;
     Registers.Flags.N  = false;
 }