StoicGoose.Unity/Assets/Plugins/StoicGooseUnity/StoicGoose.Core/CPU/V30MZ.Flags.cs

50 lines
1.2 KiB
C#

using System;
namespace StoicGoose.Core.CPU
{
public sealed partial class V30MZ
{
[Flags]
public enum Flags : ushort
{
Carry = 1 << 0, /* CF */
ReservedB1 = 1 << 1, /* (reserved) */
Parity = 1 << 2, /* PF */
ReservedB3 = 1 << 3, /* (reserved) */
Auxiliary = 1 << 4, /* AF */
ReservedB5 = 1 << 5, /* (reserved) */
Zero = 1 << 6, /* ZF */
Sign = 1 << 7, /* SF */
Trap = 1 << 8, /* TF */
InterruptEnable = 1 << 9, /* IF */
Direction = 1 << 10, /* DF */
Overflow = 1 << 11, /* OF */
ReservedB12 = 1 << 12, /* (reserved) */
ReservedB13 = 1 << 13, /* (reserved) */
ReservedB14 = 1 << 14, /* (reserved) */
ReservedB15 = 1 << 15 /* (reserved) */
}
private void SetFlags(Flags flags)
{
this.flags |= flags;
}
private void ClearFlags(Flags flags)
{
this.flags &= ~flags;
}
public bool IsFlagSet(Flags flags)
{
return (this.flags & flags) == flags;
}
private void SetClearFlagConditional(Flags flags, bool condition)
{
if (condition) this.flags |= flags;
else this.flags &= ~flags;
}
}
}