summaryrefslogtreecommitdiff
path: root/src/Noddybox.Emulation.EightBit.Z80/Z80Flags.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Noddybox.Emulation.EightBit.Z80/Z80Flags.cs')
-rw-r--r--src/Noddybox.Emulation.EightBit.Z80/Z80Flags.cs83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/Noddybox.Emulation.EightBit.Z80/Z80Flags.cs b/src/Noddybox.Emulation.EightBit.Z80/Z80Flags.cs
new file mode 100644
index 0000000..edcd5f5
--- /dev/null
+++ b/src/Noddybox.Emulation.EightBit.Z80/Z80Flags.cs
@@ -0,0 +1,83 @@
+// This file is part of the Noddybox.Emulation C# suite.
+//
+// Noddybox.Emulation is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Noddybox.Emulation is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Noddybox.Emulation. If not, see <http://www.gnu.org/licenses/>.
+//
+// Copyright (c) 2012 Ian Cowburn
+//
+using System;
+
+namespace Noddybox.Emulation.EightBit.Z80
+{
+ /// <summary>
+ /// Defines the bits in the Z80 flag register.
+ /// </summary>
+ [Flags]
+ public enum Z80Flags
+ {
+ /// <summary>
+ /// No flags set.
+ /// </summary>
+ None = 0x00,
+
+ /// <summary>
+ /// The carry flag.
+ /// </summary>
+ Carry = 0x01,
+
+ /// <summary>
+ /// The negative flag.
+ /// </summary>
+ Neg = 0x02,
+
+ /// <summary>
+ /// The parity/overflow flag.
+ /// </summary>
+ PV = 0x04,
+
+ /// <summary>
+ /// A hidden flag. Undocumented by Zilog, but affected by most operations.
+ /// </summary>
+ Hidden3 = 0x08,
+
+ /// <summary>
+ /// The half-carry flag.
+ /// </summary>
+ HalfCarry = 0x10,
+
+ /// <summary>
+ /// A hidden flag. Undocumented by Zilog, but affected by most operations.
+ /// </summary>
+ Hidden5 = 0x20,
+
+ /// <summary>
+ /// The zero flag.
+ /// </summary>
+ Zero = 0x40,
+
+ /// <summary>
+ /// The sign flag.
+ /// </summary>
+ Sign = 0x80,
+
+ /// <summary>
+ /// A bitmask for all the hidden registers.
+ /// </summary>
+ Hidden = Hidden3 | Hidden5,
+
+ /// <summary>
+ /// All bits set.
+ /// </summary>
+ All = 0xff
+ };
+}