288 lines
18 KiB
C#
288 lines
18 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace Essgee.Emulation.CPU
|
|||
|
{
|
|||
|
public partial class Z80A
|
|||
|
{
|
|||
|
static SimpleOpcodeDelegate[] opcodesPrefixCB = new SimpleOpcodeDelegate[]
|
|||
|
{
|
|||
|
/* 0x00 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeftCircular(ref c.bc.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeftCircular(ref c.bc.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeftCircular(ref c.de.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeftCircular(ref c.de.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeftCircular(ref c.hl.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeftCircular(ref c.hl.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeftCircular(c.hl.Word); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeftCircular(ref c.af.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRightCircular(ref c.bc.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRightCircular(ref c.bc.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRightCircular(ref c.de.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRightCircular(ref c.de.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRightCircular(ref c.hl.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRightCircular(ref c.hl.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRightCircular(c.hl.Word); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRightCircular(ref c.af.High); }),
|
|||
|
/* 0x10 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeft(ref c.bc.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeft(ref c.bc.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeft(ref c.de.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeft(ref c.de.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeft(ref c.hl.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeft(ref c.hl.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeft(c.hl.Word); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateLeft(ref c.af.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRight(ref c.bc.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRight(ref c.bc.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRight(ref c.de.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRight(ref c.de.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRight(ref c.hl.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRight(ref c.hl.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRight(c.hl.Word); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.RotateRight(ref c.af.High); }),
|
|||
|
/* 0x20 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftArithmetic(ref c.bc.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftArithmetic(ref c.bc.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftArithmetic(ref c.de.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftArithmetic(ref c.de.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftArithmetic(ref c.hl.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftArithmetic(ref c.hl.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftArithmetic(c.hl.Word); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftArithmetic(ref c.af.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightArithmetic(ref c.bc.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightArithmetic(ref c.bc.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightArithmetic(ref c.de.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightArithmetic(ref c.de.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightArithmetic(ref c.hl.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightArithmetic(ref c.hl.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightArithmetic(c.hl.Word); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightArithmetic(ref c.af.High); }),
|
|||
|
/* 0x30 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftLogical(ref c.bc.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftLogical(ref c.bc.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftLogical(ref c.de.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftLogical(ref c.de.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftLogical(ref c.hl.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftLogical(ref c.hl.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftLogical(c.hl.Word); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftLeftLogical(ref c.af.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightLogical(ref c.bc.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightLogical(ref c.bc.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightLogical(ref c.de.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightLogical(ref c.de.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightLogical(ref c.hl.High); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightLogical(ref c.hl.Low); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightLogical(c.hl.Word); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ShiftRightLogical(ref c.af.High); }),
|
|||
|
/* 0x40 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.High, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.Low, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.High, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.Low, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.High, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Low, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Word, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.af.High, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.High, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.Low, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.High, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.Low, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.High, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Low, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Word, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.af.High, 1); }),
|
|||
|
/* 0x50 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.High, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.Low, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.High, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.Low, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.High, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Low, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Word, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.af.High, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.High, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.Low, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.High, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.Low, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.High, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Low, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Word, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.af.High, 3); }),
|
|||
|
/* 0x60 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.High, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.Low, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.High, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.Low, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.High, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Low, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Word, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.af.High, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.High, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.Low, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.High, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.Low, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.High, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Low, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Word, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.af.High, 5); }),
|
|||
|
/* 0x70 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.High, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.Low, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.High, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.Low, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.High, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Low, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Word, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.af.High, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.High, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.bc.Low, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.High, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.de.Low, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.High, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Low, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.hl.Word, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.TestBit(c.af.High, 7); }),
|
|||
|
/* 0x80 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.High, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.Low, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.High, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.Low, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.High, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.Low, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(c.hl.Word, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.af.High, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.High, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.Low, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.High, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.Low, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.High, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.Low, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(c.hl.Word, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.af.High, 1); }),
|
|||
|
/* 0x90 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.High, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.Low, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.High, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.Low, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.High, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.Low, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(c.hl.Word, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.af.High, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.High, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.Low, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.High, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.Low, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.High, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.Low, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(c.hl.Word, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.af.High, 3); }),
|
|||
|
/* 0xA0 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.High, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.Low, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.High, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.Low, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.High, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.Low, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(c.hl.Word, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.af.High, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.High, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.Low, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.High, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.Low, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.High, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.Low, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(c.hl.Word, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.af.High, 5); }),
|
|||
|
/* 0xB0 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.High, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.Low, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.High, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.Low, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.High, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.Low, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(c.hl.Word, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.af.High, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.High, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.bc.Low, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.High, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.de.Low, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.High, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.hl.Low, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(c.hl.Word, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.ResetBit(ref c.af.High, 7); }),
|
|||
|
/* 0xC0 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.High, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.Low, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.High, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.Low, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.High, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.Low, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(c.hl.Word, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.af.High, 0); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.High, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.Low, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.High, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.Low, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.High, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.Low, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(c.hl.Word, 1); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.af.High, 1); }),
|
|||
|
/* 0xD0 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.High, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.Low, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.High, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.Low, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.High, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.Low, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(c.hl.Word, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.af.High, 2); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.High, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.Low, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.High, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.Low, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.High, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.Low, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(c.hl.Word, 3); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.af.High, 3); }),
|
|||
|
/* 0xE0 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.High, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.Low, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.High, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.Low, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.High, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.Low, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(c.hl.Word, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.af.High, 4); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.High, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.Low, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.High, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.Low, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.High, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.Low, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(c.hl.Word, 5); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.af.High, 5); }),
|
|||
|
/* 0xF0 */
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.High, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.Low, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.High, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.Low, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.High, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.Low, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(c.hl.Word, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.af.High, 6); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.High, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.bc.Low, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.High, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.de.Low, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.High, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.hl.Low, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(c.hl.Word, 7); }),
|
|||
|
new SimpleOpcodeDelegate((c) => { c.SetBit(ref c.af.High, 7); }),
|
|||
|
};
|
|||
|
}
|
|||
|
}
|