public void InvalidExtendedInstructionsWorkAsNop()
 {
     // --- Act
     for (var op = 0x00; op < 0x40; op++)
     {
         Z80Tester.Test("nop", 0xED, (byte)op);
     }
     for (var op = 0xC0; op < 0x100; op++)
     {
         Z80Tester.Test("nop", 0xED, (byte)op);
     }
 }
Ejemplo n.º 2
0
 public void IndexedOps0X40WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("ld b,xh", 0xDD, 0x44);
     Z80Tester.Test("ld b,xl", 0xDD, 0x45);
     Z80Tester.Test("ld b,(ix+#3D)", 0xDD, 0x46, 0x3D);
     Z80Tester.Test("ld b,(ix-#51)", 0xDD, 0x46, 0xAF);
     Z80Tester.Test("ld c,xh", 0xDD, 0x4C);
     Z80Tester.Test("ld c,xl", 0xDD, 0x4D);
     Z80Tester.Test("ld c,(ix+#3D)", 0xDD, 0x4E, 0x3D);
     Z80Tester.Test("ld c,(ix-#51)", 0xDD, 0x4E, 0xAF);
     Z80Tester.Test("ld d,xh", 0xDD, 0x54);
     Z80Tester.Test("ld d,xl", 0xDD, 0x55);
     Z80Tester.Test("ld d,(ix+#3D)", 0xDD, 0x56, 0x3D);
     Z80Tester.Test("ld d,(ix-#51)", 0xDD, 0x56, 0xAF);
     Z80Tester.Test("ld e,xh", 0xDD, 0x5C);
     Z80Tester.Test("ld e,xl", 0xDD, 0x5D);
     Z80Tester.Test("ld e,(ix+#3D)", 0xDD, 0x5E, 0x3D);
     Z80Tester.Test("ld e,(ix-#51)", 0xDD, 0x5E, 0xAF);
     Z80Tester.Test("ld xh,b", 0xDD, 0x60);
     Z80Tester.Test("ld xh,c", 0xDD, 0x61);
     Z80Tester.Test("ld xh,d", 0xDD, 0x62);
     Z80Tester.Test("ld xh,e", 0xDD, 0x63);
     Z80Tester.Test("ld xh,xh", 0xDD, 0x64);
     Z80Tester.Test("ld xh,xl", 0xDD, 0x65);
     Z80Tester.Test("ld h,(ix+#3D)", 0xDD, 0x66, 0x3D);
     Z80Tester.Test("ld xh,a", 0xDD, 0x67);
     Z80Tester.Test("ld xl,b", 0xDD, 0x68);
     Z80Tester.Test("ld xl,c", 0xDD, 0x69);
     Z80Tester.Test("ld xl,d", 0xDD, 0x6A);
     Z80Tester.Test("ld xl,e", 0xDD, 0x6B);
     Z80Tester.Test("ld xl,xh", 0xDD, 0x6C);
     Z80Tester.Test("ld xl,xl", 0xDD, 0x6D);
     Z80Tester.Test("ld l,(ix+#3D)", 0xDD, 0x6E, 0x3D);
     Z80Tester.Test("ld xl,a", 0xDD, 0x6F);
     Z80Tester.Test("ld (ix+#3D),b", 0xDD, 0x70, 0x3D);
     Z80Tester.Test("ld (ix+#3D),c", 0xDD, 0x71, 0x3D);
     Z80Tester.Test("ld (ix+#3D),d", 0xDD, 0x72, 0x3D);
     Z80Tester.Test("ld (ix+#3D),e", 0xDD, 0x73, 0x3D);
     Z80Tester.Test("ld (ix+#3D),h", 0xDD, 0x74, 0x3D);
     Z80Tester.Test("ld (ix+#3D),l", 0xDD, 0x75, 0x3D);
     Z80Tester.Test("halt", 0xDD, 0x76);
     Z80Tester.Test("ld (ix+#3D),a", 0xDD, 0x77, 0x3D);
     Z80Tester.Test("ld a,xh", 0xDD, 0x7C);
     Z80Tester.Test("ld a,xl", 0xDD, 0x7D);
     Z80Tester.Test("ld a,(ix+#3D)", 0xDD, 0x7E, 0x3D);
 }
Ejemplo n.º 3
0
 public void BitInstructions0X70WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("bit 6,b", 0xCB, 0x70);
     Z80Tester.Test("bit 6,c", 0xCB, 0x71);
     Z80Tester.Test("bit 6,d", 0xCB, 0x72);
     Z80Tester.Test("bit 6,e", 0xCB, 0x73);
     Z80Tester.Test("bit 6,h", 0xCB, 0x74);
     Z80Tester.Test("bit 6,l", 0xCB, 0x75);
     Z80Tester.Test("bit 6,(hl)", 0xCB, 0x76);
     Z80Tester.Test("bit 6,a", 0xCB, 0x77);
     Z80Tester.Test("bit 7,b", 0xCB, 0x78);
     Z80Tester.Test("bit 7,c", 0xCB, 0x79);
     Z80Tester.Test("bit 7,d", 0xCB, 0x7A);
     Z80Tester.Test("bit 7,e", 0xCB, 0x7B);
     Z80Tester.Test("bit 7,h", 0xCB, 0x7C);
     Z80Tester.Test("bit 7,l", 0xCB, 0x7D);
     Z80Tester.Test("bit 7,(hl)", 0xCB, 0x7E);
     Z80Tester.Test("bit 7,a", 0xCB, 0x7F);
 }
Ejemplo n.º 4
0
 public void StandardInstructions0XB0WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("or b", 0xB0);
     Z80Tester.Test("or c", 0xB1);
     Z80Tester.Test("or d", 0xB2);
     Z80Tester.Test("or e", 0xB3);
     Z80Tester.Test("or h", 0xB4);
     Z80Tester.Test("or l", 0xB5);
     Z80Tester.Test("or (hl)", 0xB6);
     Z80Tester.Test("or a", 0xB7);
     Z80Tester.Test("cp b", 0xB8);
     Z80Tester.Test("cp c", 0xB9);
     Z80Tester.Test("cp d", 0xBA);
     Z80Tester.Test("cp e", 0xBB);
     Z80Tester.Test("cp h", 0xBC);
     Z80Tester.Test("cp l", 0xBD);
     Z80Tester.Test("cp (hl)", 0xBE);
     Z80Tester.Test("cp a", 0xBF);
 }
Ejemplo n.º 5
0
 public void BitInstructions0X60WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("bit 6,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x70);
     Z80Tester.Test("bit 6,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x71);
     Z80Tester.Test("bit 6,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x72);
     Z80Tester.Test("bit 6,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x73);
     Z80Tester.Test("bit 6,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x74);
     Z80Tester.Test("bit 6,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x75);
     Z80Tester.Test("bit 6,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x76);
     Z80Tester.Test("bit 6,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x77);
     Z80Tester.Test("bit 7,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x78);
     Z80Tester.Test("bit 7,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x79);
     Z80Tester.Test("bit 7,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x7A);
     Z80Tester.Test("bit 7,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x7B);
     Z80Tester.Test("bit 7,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x7C);
     Z80Tester.Test("bit 7,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x7D);
     Z80Tester.Test("bit 7,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x7E);
     Z80Tester.Test("bit 7,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x7F);
 }
Ejemplo n.º 6
0
 public void BitInstructions0XF0WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("set 6,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0xF0);
     Z80Tester.Test("set 6,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0xF1);
     Z80Tester.Test("set 6,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0xF2);
     Z80Tester.Test("set 6,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0xF3);
     Z80Tester.Test("set 6,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0xF4);
     Z80Tester.Test("set 6,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0xF5);
     Z80Tester.Test("set 6,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0xF6);
     Z80Tester.Test("set 6,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0xF7);
     Z80Tester.Test("set 7,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0xF8);
     Z80Tester.Test("set 7,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0xF9);
     Z80Tester.Test("set 7,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0xFA);
     Z80Tester.Test("set 7,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0xFB);
     Z80Tester.Test("set 7,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0xFC);
     Z80Tester.Test("set 7,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0xFD);
     Z80Tester.Test("set 7,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0xFE);
     Z80Tester.Test("set 7,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0xFF);
 }
Ejemplo n.º 7
0
 public void BitInstructions0X30WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("sll (ix+#3D),b", 0xDD, 0xCB, 0x3D, 0x30);
     Z80Tester.Test("sll (ix+#3D),c", 0xDD, 0xCB, 0x3D, 0x31);
     Z80Tester.Test("sll (ix+#3D),d", 0xDD, 0xCB, 0x3D, 0x32);
     Z80Tester.Test("sll (ix+#3D),e", 0xDD, 0xCB, 0x3D, 0x33);
     Z80Tester.Test("sll (ix+#3D),h", 0xDD, 0xCB, 0x3D, 0x34);
     Z80Tester.Test("sll (ix+#3D),l", 0xDD, 0xCB, 0x3D, 0x35);
     Z80Tester.Test("sll (ix+#3D)", 0xDD, 0xCB, 0x3D, 0x36);
     Z80Tester.Test("sll (ix+#3D),a", 0xDD, 0xCB, 0x3D, 0x37);
     Z80Tester.Test("srl (ix+#3D),b", 0xDD, 0xCB, 0x3D, 0x38);
     Z80Tester.Test("srl (ix+#3D),c", 0xDD, 0xCB, 0x3D, 0x39);
     Z80Tester.Test("srl (ix+#3D),d", 0xDD, 0xCB, 0x3D, 0x3A);
     Z80Tester.Test("srl (ix+#3D),e", 0xDD, 0xCB, 0x3D, 0x3B);
     Z80Tester.Test("srl (ix+#3D),h", 0xDD, 0xCB, 0x3D, 0x3C);
     Z80Tester.Test("srl (ix+#3D),l", 0xDD, 0xCB, 0x3D, 0x3D);
     Z80Tester.Test("srl (ix+#3D)", 0xDD, 0xCB, 0x3D, 0x3E);
     Z80Tester.Test("srl (ix+#3D),a", 0xDD, 0xCB, 0x3D, 0x3F);
 }
Ejemplo n.º 8
0
 public void BitInstructions0XA0WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("res 4,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0xA0);
     Z80Tester.Test("res 4,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0xA1);
     Z80Tester.Test("res 4,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0xA2);
     Z80Tester.Test("res 4,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0xA3);
     Z80Tester.Test("res 4,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0xA4);
     Z80Tester.Test("res 4,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0xA5);
     Z80Tester.Test("res 4,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0xA6);
     Z80Tester.Test("res 4,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0xA7);
     Z80Tester.Test("res 5,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0xA8);
     Z80Tester.Test("res 5,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0xA9);
     Z80Tester.Test("res 5,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0xAA);
     Z80Tester.Test("res 5,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0xAB);
     Z80Tester.Test("res 5,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0xAC);
     Z80Tester.Test("res 5,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0xAD);
     Z80Tester.Test("res 5,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0xAE);
     Z80Tester.Test("res 5,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0xAF);
 }
Ejemplo n.º 9
0
 public void StandardInstructions0XD0WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("ret nc", 0xD0);
     Z80Tester.Test("pop de", 0xD1);
     Z80Tester.Test("jp nc,L5678", 0xD2, 0x78, 0x56);
     Z80Tester.Test("out (#78),a", 0xD3, 0x78);
     Z80Tester.Test("call nc,L5678", 0xD4, 0x78, 0x56);
     Z80Tester.Test("push de", 0xD5);
     Z80Tester.Test("sub #34", 0xD6, 0x34);
     Z80Tester.Test("rst #10", 0xD7);
     Z80Tester.Test("ret c", 0xD8);
     Z80Tester.Test("exx", 0xD9);
     Z80Tester.Test("jp c,L5678", 0xDA, 0x78, 0x56);
     Z80Tester.Test("in a,(#78)", 0xDB, 0x78);
     Z80Tester.Test("call c,L5678", 0xDC, 0x78, 0x56);
     // -- 0xDD is the IX operation prefix
     Z80Tester.Test("sbc a,#34", 0xDE, 0x34);
     Z80Tester.Test("rst #18", 0xDF);
 }
Ejemplo n.º 10
0
 public void ExtendedInstructions0XA0WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("ldi", 0xED, 0xA0);
     Z80Tester.Test("cpi", 0xED, 0xA1);
     Z80Tester.Test("ini", 0xED, 0xA2);
     Z80Tester.Test("outi", 0xED, 0xA3);
     Z80Tester.Test("nop", 0xED, 0xA4);
     Z80Tester.Test("nop", 0xED, 0xA5);
     Z80Tester.Test("nop", 0xED, 0xA6);
     Z80Tester.Test("nop", 0xED, 0xA7);
     Z80Tester.Test("ldd", 0xED, 0xA8);
     Z80Tester.Test("cpd", 0xED, 0xA9);
     Z80Tester.Test("ind", 0xED, 0xAA);
     Z80Tester.Test("outd", 0xED, 0xAB);
     Z80Tester.Test("nop", 0xED, 0xAC);
     Z80Tester.Test("nop", 0xED, 0xAD);
     Z80Tester.Test("nop", 0xED, 0xAE);
     Z80Tester.Test("nop", 0xED, 0xAF);
 }
Ejemplo n.º 11
0
 public void ExtendedInstructions0XB0WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("ldir", 0xED, 0xB0);
     Z80Tester.Test("cpir", 0xED, 0xB1);
     Z80Tester.Test("inir", 0xED, 0xB2);
     Z80Tester.Test("otir", 0xED, 0xB3);
     Z80Tester.Test("nop", 0xED, 0xB4);
     Z80Tester.Test("nop", 0xED, 0xB5);
     Z80Tester.Test("nop", 0xED, 0xB6);
     Z80Tester.Test("nop", 0xED, 0xB7);
     Z80Tester.Test("lddr", 0xED, 0xB8);
     Z80Tester.Test("cpdr", 0xED, 0xB9);
     Z80Tester.Test("indr", 0xED, 0xBA);
     Z80Tester.Test("otdr", 0xED, 0xBB);
     Z80Tester.Test("nop", 0xED, 0xBC);
     Z80Tester.Test("nop", 0xED, 0xBD);
     Z80Tester.Test("nop", 0xED, 0xBE);
     Z80Tester.Test("nop", 0xED, 0xBF);
 }
Ejemplo n.º 12
0
 public void ExtendedInstructions0X60WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("in h,(c)", 0xED, 0x60);
     Z80Tester.Test("out (c),h", 0xED, 0x61);
     Z80Tester.Test("sbc hl,hl", 0xED, 0x62);
     Z80Tester.Test("ld (#BC9A),hl", 0xED, 0x63, 0x9A, 0xBC);
     Z80Tester.Test("neg", 0xED, 0x64);
     Z80Tester.Test("retn", 0xED, 0x65);
     Z80Tester.Test("im 0", 0xED, 0x66);
     Z80Tester.Test("rrd", 0xED, 0x67);
     Z80Tester.Test("in l,(c)", 0xED, 0x68);
     Z80Tester.Test("out (c),l", 0xED, 0x69);
     Z80Tester.Test("adc hl,hl", 0xED, 0x6A);
     Z80Tester.Test("ld hl,(#BC9A)", 0xED, 0x6B, 0x9A, 0xBC);
     Z80Tester.Test("neg", 0xED, 0x6C);
     Z80Tester.Test("retn", 0xED, 0x6D);
     Z80Tester.Test("im 0", 0xED, 0x6E);
     Z80Tester.Test("rld", 0xED, 0x6F);
 }
Ejemplo n.º 13
0
 public void ExtendedInstructions0X70WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("in (c)", 0xED, 0x70);
     Z80Tester.Test("out (c),0", 0xED, 0x71);
     Z80Tester.Test("sbc hl,sp", 0xED, 0x72);
     Z80Tester.Test("ld (#BC9A),sp", 0xED, 0x73, 0x9A, 0xBC);
     Z80Tester.Test("neg", 0xED, 0x74);
     Z80Tester.Test("retn", 0xED, 0x75);
     Z80Tester.Test("im 1", 0xED, 0x76);
     Z80Tester.Test("nop", 0xED, 0x77);
     Z80Tester.Test("in a,(c)", 0xED, 0x78);
     Z80Tester.Test("out (c),a", 0xED, 0x79);
     Z80Tester.Test("adc hl,sp", 0xED, 0x7A);
     Z80Tester.Test("ld sp,(#BC9A)", 0xED, 0x7B, 0x9A, 0xBC);
     Z80Tester.Test("neg", 0xED, 0x7C);
     Z80Tester.Test("retn", 0xED, 0x7D);
     Z80Tester.Test("im 2", 0xED, 0x7E);
     Z80Tester.Test("nop", 0xED, 0x7F);
 }
Ejemplo n.º 14
0
 public void ExtendedInstructions0X50WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("in d,(c)", 0xED, 0x50);
     Z80Tester.Test("out (c),d", 0xED, 0x51);
     Z80Tester.Test("sbc hl,de", 0xED, 0x52);
     Z80Tester.Test("ld (#BC9A),de", 0xED, 0x53, 0x9A, 0xBC);
     Z80Tester.Test("neg", 0xED, 0x54);
     Z80Tester.Test("retn", 0xED, 0x55);
     Z80Tester.Test("im 1", 0xED, 0x56);
     Z80Tester.Test("ld a,i", 0xED, 0x57);
     Z80Tester.Test("in e,(c)", 0xED, 0x58);
     Z80Tester.Test("out (c),e", 0xED, 0x59);
     Z80Tester.Test("adc hl,de", 0xED, 0x5A);
     Z80Tester.Test("ld de,(#BC9A)", 0xED, 0x5B, 0x9A, 0xBC);
     Z80Tester.Test("neg", 0xED, 0x5C);
     Z80Tester.Test("retn", 0xED, 0x5D);
     Z80Tester.Test("im 2", 0xED, 0x5E);
     Z80Tester.Test("ld a,r", 0xED, 0x5F);
 }
Ejemplo n.º 15
0
 public void StandardInstructions0XF0WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("ret p", 0xF0);
     Z80Tester.Test("pop af", 0xF1);
     Z80Tester.Test("jp p,L5678", 0xF2, 0x78, 0x56);
     Z80Tester.Test("di", 0xF3);
     Z80Tester.Test("call p,L5678", 0xF4, 0x78, 0x56);
     Z80Tester.Test("push af", 0xF5);
     Z80Tester.Test("or #34", 0xF6, 0x34);
     Z80Tester.Test("rst #30", 0xF7);
     Z80Tester.Test("ret m", 0xF8);
     Z80Tester.Test("ld sp,hl", 0xF9);
     Z80Tester.Test("jp m,L5678", 0xFA, 0x78, 0x56);
     Z80Tester.Test("ei", 0xFB);
     Z80Tester.Test("call m,L5678", 0xFC, 0x78, 0x56);
     // -- 0xFD is the IY operation prefix
     Z80Tester.Test("cp #34", 0xFE, 0x34);
     Z80Tester.Test("rst #38", 0xFF);
 }
Ejemplo n.º 16
0
 public void StandardInstructions0XE0WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("ret po", 0xE0);
     Z80Tester.Test("pop hl", 0xE1);
     Z80Tester.Test("jp po,L5678", 0xE2, 0x78, 0x56);
     Z80Tester.Test("ex (sp),hl", 0xE3);
     Z80Tester.Test("call po,L5678", 0xE4, 0x78, 0x56);
     Z80Tester.Test("push hl", 0xE5);
     Z80Tester.Test("and #34", 0xE6, 0x34);
     Z80Tester.Test("rst #20", 0xE7);
     Z80Tester.Test("ret pe", 0xE8);
     Z80Tester.Test("jp (hl)", 0xE9);
     Z80Tester.Test("jp pe,L5678", 0xEA, 0x78, 0x56);
     Z80Tester.Test("ex de,hl", 0xEB);
     Z80Tester.Test("call pe,L5678", 0xEC, 0x78, 0x56);
     // -- 0xED is the extended operation prefix
     Z80Tester.Test("xor #34", 0xEE, 0x34);
     Z80Tester.Test("rst #28", 0xEF);
 }
Ejemplo n.º 17
0
 public void BitInstructions0X80WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("res 0,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0x80);
     Z80Tester.Test("res 0,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0x81);
     Z80Tester.Test("res 0,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0x82);
     Z80Tester.Test("res 0,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0x83);
     Z80Tester.Test("res 0,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0x84);
     Z80Tester.Test("res 0,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0x85);
     Z80Tester.Test("res 0,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x86);
     Z80Tester.Test("res 0,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0x87);
     Z80Tester.Test("res 1,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0x88);
     Z80Tester.Test("res 1,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0x89);
     Z80Tester.Test("res 1,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0x8A);
     Z80Tester.Test("res 1,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0x8B);
     Z80Tester.Test("res 1,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0x8C);
     Z80Tester.Test("res 1,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0x8D);
     Z80Tester.Test("res 1,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x8E);
     Z80Tester.Test("res 1,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0x8F);
 }
Ejemplo n.º 18
0
 public void BitInstructions0XC0WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("set 0,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0xC0);
     Z80Tester.Test("set 0,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0xC1);
     Z80Tester.Test("set 0,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0xC2);
     Z80Tester.Test("set 0,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0xC3);
     Z80Tester.Test("set 0,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0xC4);
     Z80Tester.Test("set 0,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0xC5);
     Z80Tester.Test("set 0,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0xC6);
     Z80Tester.Test("set 0,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0xC7);
     Z80Tester.Test("set 1,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0xC8);
     Z80Tester.Test("set 1,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0xC9);
     Z80Tester.Test("set 1,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0xCA);
     Z80Tester.Test("set 1,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0xCB);
     Z80Tester.Test("set 1,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0xCC);
     Z80Tester.Test("set 1,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0xCD);
     Z80Tester.Test("set 1,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0xCE);
     Z80Tester.Test("set 1,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0xCF);
 }
Ejemplo n.º 19
0
 public void BitInstructions0X90WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("res 2,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0x90);
     Z80Tester.Test("res 2,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0x91);
     Z80Tester.Test("res 2,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0x92);
     Z80Tester.Test("res 2,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0x93);
     Z80Tester.Test("res 2,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0x94);
     Z80Tester.Test("res 2,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0x95);
     Z80Tester.Test("res 2,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x96);
     Z80Tester.Test("res 2,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0x97);
     Z80Tester.Test("res 3,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0x98);
     Z80Tester.Test("res 3,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0x99);
     Z80Tester.Test("res 3,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0x9A);
     Z80Tester.Test("res 3,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0x9B);
     Z80Tester.Test("res 3,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0x9C);
     Z80Tester.Test("res 3,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0x9D);
     Z80Tester.Test("res 3,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x9E);
     Z80Tester.Test("res 3,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0x9F);
 }
Ejemplo n.º 20
0
 public void BitInstructions0XE0WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("set 4,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0xE0);
     Z80Tester.Test("set 4,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0xE1);
     Z80Tester.Test("set 4,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0xE2);
     Z80Tester.Test("set 4,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0xE3);
     Z80Tester.Test("set 4,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0xE4);
     Z80Tester.Test("set 4,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0xE5);
     Z80Tester.Test("set 4,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0xE6);
     Z80Tester.Test("set 4,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0xE7);
     Z80Tester.Test("set 5,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0xE8);
     Z80Tester.Test("set 5,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0xE9);
     Z80Tester.Test("set 5,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0xEA);
     Z80Tester.Test("set 5,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0xEB);
     Z80Tester.Test("set 5,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0xEC);
     Z80Tester.Test("set 5,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0xED);
     Z80Tester.Test("set 5,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0xEE);
     Z80Tester.Test("set 5,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0xEF);
 }
Ejemplo n.º 21
0
 public void BitInstructions0XB0WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("res 6,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0xB0);
     Z80Tester.Test("res 6,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0xB1);
     Z80Tester.Test("res 6,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0xB2);
     Z80Tester.Test("res 6,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0xB3);
     Z80Tester.Test("res 6,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0xB4);
     Z80Tester.Test("res 6,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0xB5);
     Z80Tester.Test("res 6,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0xB6);
     Z80Tester.Test("res 6,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0xB7);
     Z80Tester.Test("res 7,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0xB8);
     Z80Tester.Test("res 7,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0xB9);
     Z80Tester.Test("res 7,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0xBA);
     Z80Tester.Test("res 7,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0xBB);
     Z80Tester.Test("res 7,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0xBC);
     Z80Tester.Test("res 7,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0xBD);
     Z80Tester.Test("res 7,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0xBE);
     Z80Tester.Test("res 7,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0xBF);
 }
Ejemplo n.º 22
0
 public void StandardInstructions0XC0WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("ret nz", 0xC0);
     Z80Tester.Test("pop bc", 0xC1);
     Z80Tester.Test("jp nz,L5678", 0xC2, 0x78, 0x56);
     Z80Tester.Test("jp L5678", 0xC3, 0x78, 0x56);
     Z80Tester.Test("call nz,L5678", 0xC4, 0x78, 0x56);
     Z80Tester.Test("push bc", 0xC5);
     Z80Tester.Test("add a,#34", 0xC6, 0x34);
     Z80Tester.Test("rst #00", 0xC7);
     Z80Tester.Test("ret z", 0xC8);
     Z80Tester.Test("ret", 0xC9);
     Z80Tester.Test("jp z,L5678", 0xCA, 0x78, 0x56);
     // -- 0xCB is the bit operation prefix
     Z80Tester.Test("call z,L5678", 0xCC, 0x78, 0x56);
     Z80Tester.Test("call L5678", 0xCD, 0x78, 0x56);
     Z80Tester.Test("adc a,#34", 0xCE, 0x34);
     Z80Tester.Test("rst #08", 0xCF);
 }
Ejemplo n.º 23
0
 public void BitInstructions0XD0WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("set 2,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0xD0);
     Z80Tester.Test("set 2,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0xD1);
     Z80Tester.Test("set 2,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0xD2);
     Z80Tester.Test("set 2,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0xD3);
     Z80Tester.Test("set 2,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0xD4);
     Z80Tester.Test("set 2,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0xD5);
     Z80Tester.Test("set 2,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0xD6);
     Z80Tester.Test("set 2,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0xD7);
     Z80Tester.Test("set 3,(ix+#3D),b", 0xDD, 0xCB, 0x3D, 0xD8);
     Z80Tester.Test("set 3,(ix+#3D),c", 0xDD, 0xCB, 0x3D, 0xD9);
     Z80Tester.Test("set 3,(ix+#3D),d", 0xDD, 0xCB, 0x3D, 0xDA);
     Z80Tester.Test("set 3,(ix+#3D),e", 0xDD, 0xCB, 0x3D, 0xDB);
     Z80Tester.Test("set 3,(ix+#3D),h", 0xDD, 0xCB, 0x3D, 0xDC);
     Z80Tester.Test("set 3,(ix+#3D),l", 0xDD, 0xCB, 0x3D, 0xDD);
     Z80Tester.Test("set 3,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0xDE);
     Z80Tester.Test("set 3,(ix+#3D),a", 0xDD, 0xCB, 0x3D, 0xDF);
 }
Ejemplo n.º 24
0
 public void ExtendedInstructions0X40WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("in b,(c)", 0xED, 0x40);
     Z80Tester.Test("out (c),b", 0xED, 0x41);
     Z80Tester.Test("sbc hl,bc", 0xED, 0x42);
     Z80Tester.Test("ld (#BC9A),bc", 0xED, 0x43, 0x9A, 0xBC);
     Z80Tester.Test("neg", 0xED, 0x44);
     Z80Tester.Test("retn", 0xED, 0x45);
     Z80Tester.Test("im 0", 0xED, 0x46);
     Z80Tester.Test("ld i,a", 0xED, 0x47);
     Z80Tester.Test("in c,(c)", 0xED, 0x48);
     Z80Tester.Test("out (c),c", 0xED, 0x49);
     Z80Tester.Test("adc hl,bc", 0xED, 0x4A);
     Z80Tester.Test("ld bc,(#BC9A)", 0xED, 0x4B, 0x9A, 0xBC);
     Z80Tester.Test("neg", 0xED, 0x4C);
     Z80Tester.Test("reti", 0xED, 0x4D);
     Z80Tester.Test("im 0", 0xED, 0x4E);
     Z80Tester.Test("ld r,a", 0xED, 0x4F);
 }
Ejemplo n.º 25
0
 public void BitInstructions0X10WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("rl (ix+#3D),b", 0xDD, 0xCB, 0x3D, 0x10);
     Z80Tester.Test("rl (ix+#3D),c", 0xDD, 0xCB, 0x3D, 0x11);
     Z80Tester.Test("rl (ix+#3D),d", 0xDD, 0xCB, 0x3D, 0x12);
     Z80Tester.Test("rl (ix+#3D),e", 0xDD, 0xCB, 0x3D, 0x13);
     Z80Tester.Test("rl (ix+#3D),h", 0xDD, 0xCB, 0x3D, 0x14);
     Z80Tester.Test("rl (ix+#3D),l", 0xDD, 0xCB, 0x3D, 0x15);
     Z80Tester.Test("rl (ix+#3D)", 0xDD, 0xCB, 0x3D, 0x16);
     Z80Tester.Test("rl (ix+#3D),a", 0xDD, 0xCB, 0x3D, 0x17);
     Z80Tester.Test("rr (ix+#3D),b", 0xDD, 0xCB, 0x3D, 0x18);
     Z80Tester.Test("rr (ix+#3D),c", 0xDD, 0xCB, 0x3D, 0x19);
     Z80Tester.Test("rr (ix+#3D),d", 0xDD, 0xCB, 0x3D, 0x1A);
     Z80Tester.Test("rr (ix+#3D),e", 0xDD, 0xCB, 0x3D, 0x1B);
     Z80Tester.Test("rr (ix+#3D),h", 0xDD, 0xCB, 0x3D, 0x1C);
     Z80Tester.Test("rr (ix+#3D),l", 0xDD, 0xCB, 0x3D, 0x1D);
     Z80Tester.Test("rr (ix+#3D)", 0xDD, 0xCB, 0x3D, 0x1E);
     Z80Tester.Test("rr (ix+#3D),a", 0xDD, 0xCB, 0x3D, 0x1F);
 }
Ejemplo n.º 26
0
 public void BitInstructions0X00WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("rlc (ix+#3D),b", 0xDD, 0xCB, 0x3D, 0x00);
     Z80Tester.Test("rlc (ix+#3D),c", 0xDD, 0xCB, 0x3D, 0x01);
     Z80Tester.Test("rlc (ix+#3D),d", 0xDD, 0xCB, 0x3D, 0x02);
     Z80Tester.Test("rlc (ix+#3D),e", 0xDD, 0xCB, 0x3D, 0x03);
     Z80Tester.Test("rlc (ix+#3D),h", 0xDD, 0xCB, 0x3D, 0x04);
     Z80Tester.Test("rlc (ix+#3D),l", 0xDD, 0xCB, 0x3D, 0x05);
     Z80Tester.Test("rlc (ix+#3D)", 0xDD, 0xCB, 0x3D, 0x06);
     Z80Tester.Test("rlc (ix+#3D),a", 0xDD, 0xCB, 0x3D, 0x07);
     Z80Tester.Test("rrc (ix+#3D),b", 0xDD, 0xCB, 0x3D, 0x08);
     Z80Tester.Test("rrc (ix+#3D),c", 0xDD, 0xCB, 0x3D, 0x09);
     Z80Tester.Test("rrc (ix+#3D),d", 0xDD, 0xCB, 0x3D, 0x0A);
     Z80Tester.Test("rrc (ix+#3D),e", 0xDD, 0xCB, 0x3D, 0x0B);
     Z80Tester.Test("rrc (ix+#3D),h", 0xDD, 0xCB, 0x3D, 0x0C);
     Z80Tester.Test("rrc (ix+#3D),l", 0xDD, 0xCB, 0x3D, 0x0D);
     Z80Tester.Test("rrc (ix+#3D)", 0xDD, 0xCB, 0x3D, 0x0E);
     Z80Tester.Test("rrc (ix+#3D),a", 0xDD, 0xCB, 0x3D, 0x0F);
 }
Ejemplo n.º 27
0
 public void BitInstructions0X20WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("sla (ix+#3D),b", 0xDD, 0xCB, 0x3D, 0x20);
     Z80Tester.Test("sla (ix+#3D),c", 0xDD, 0xCB, 0x3D, 0x21);
     Z80Tester.Test("sla (ix+#3D),d", 0xDD, 0xCB, 0x3D, 0x22);
     Z80Tester.Test("sla (ix+#3D),e", 0xDD, 0xCB, 0x3D, 0x23);
     Z80Tester.Test("sla (ix+#3D),h", 0xDD, 0xCB, 0x3D, 0x24);
     Z80Tester.Test("sla (ix+#3D),l", 0xDD, 0xCB, 0x3D, 0x25);
     Z80Tester.Test("sla (ix+#3D)", 0xDD, 0xCB, 0x3D, 0x26);
     Z80Tester.Test("sla (ix+#3D),a", 0xDD, 0xCB, 0x3D, 0x27);
     Z80Tester.Test("sra (ix+#3D),b", 0xDD, 0xCB, 0x3D, 0x28);
     Z80Tester.Test("sra (ix+#3D),c", 0xDD, 0xCB, 0x3D, 0x29);
     Z80Tester.Test("sra (ix+#3D),d", 0xDD, 0xCB, 0x3D, 0x2A);
     Z80Tester.Test("sra (ix+#3D),e", 0xDD, 0xCB, 0x3D, 0x2B);
     Z80Tester.Test("sra (ix+#3D),h", 0xDD, 0xCB, 0x3D, 0x2C);
     Z80Tester.Test("sra (ix+#3D),l", 0xDD, 0xCB, 0x3D, 0x2D);
     Z80Tester.Test("sra (ix+#3D)", 0xDD, 0xCB, 0x3D, 0x2E);
     Z80Tester.Test("sra (ix+#3D),a", 0xDD, 0xCB, 0x3D, 0x2F);
 }
Ejemplo n.º 28
0
 public void BitInstructions0X50WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("bit 4,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x60);
     Z80Tester.Test("bit 4,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x61);
     Z80Tester.Test("bit 4,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x62);
     Z80Tester.Test("bit 4,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x63);
     Z80Tester.Test("bit 4,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x64);
     Z80Tester.Test("bit 4,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x65);
     Z80Tester.Test("bit 4,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x66);
     Z80Tester.Test("bit 4,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x67);
     Z80Tester.Test("bit 5,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x68);
     Z80Tester.Test("bit 5,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x69);
     Z80Tester.Test("bit 5,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x6A);
     Z80Tester.Test("bit 5,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x6B);
     Z80Tester.Test("bit 5,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x6C);
     Z80Tester.Test("bit 5,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x6D);
     Z80Tester.Test("bit 5,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x6E);
     Z80Tester.Test("bit 5,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x6F);
 }
Ejemplo n.º 29
0
 public void BitInstructions0X40WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("bit 2,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x50);
     Z80Tester.Test("bit 2,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x51);
     Z80Tester.Test("bit 2,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x52);
     Z80Tester.Test("bit 2,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x53);
     Z80Tester.Test("bit 2,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x54);
     Z80Tester.Test("bit 2,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x55);
     Z80Tester.Test("bit 2,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x56);
     Z80Tester.Test("bit 2,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x57);
     Z80Tester.Test("bit 3,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x58);
     Z80Tester.Test("bit 3,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x59);
     Z80Tester.Test("bit 3,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x5A);
     Z80Tester.Test("bit 3,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x5B);
     Z80Tester.Test("bit 3,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x5C);
     Z80Tester.Test("bit 3,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x5D);
     Z80Tester.Test("bit 3,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x5E);
     Z80Tester.Test("bit 3,(ix+#3D)", 0xDD, 0xCB, 0x3D, 0x5F);
 }
Ejemplo n.º 30
0
 public void StandardInstructions0XA0WorkAsExpected()
 {
     // --- Act
     Z80Tester.Test("and b", 0xA0);
     Z80Tester.Test("and c", 0xA1);
     Z80Tester.Test("and d", 0xA2);
     Z80Tester.Test("and e", 0xA3);
     Z80Tester.Test("and h", 0xA4);
     Z80Tester.Test("and l", 0xA5);
     Z80Tester.Test("and (hl)", 0xA6);
     Z80Tester.Test("and a", 0xA7);
     Z80Tester.Test("xor b", 0xA8);
     Z80Tester.Test("xor c", 0xA9);
     Z80Tester.Test("xor d", 0xAA);
     Z80Tester.Test("xor e", 0xAB);
     Z80Tester.Test("xor h", 0xAC);
     Z80Tester.Test("xor l", 0xAD);
     Z80Tester.Test("xor (hl)", 0xAE);
     Z80Tester.Test("xor a", 0xAF);
 }