public void IndexedOps0X00WorkAsExpected() { // --- Act Z80Tester.Test("add ix,bc", 0xDD, 0x09); Z80Tester.Test("add ix,de", 0xDD, 0x19); Z80Tester.Test("ld ix,#1234", 0xDD, 0x21, 0x34, 0x12); Z80Tester.Test("ld (#1234),ix", 0xDD, 0x22, 0x34, 0x12); Z80Tester.Test("inc ix", 0xDD, 0x23); Z80Tester.Test("inc xh", 0xDD, 0x24); Z80Tester.Test("dec xh", 0xDD, 0x25); Z80Tester.Test("ld xh,#AB", 0xDD, 0x26, 0xAB); Z80Tester.Test("add ix,ix", 0xDD, 0x29); Z80Tester.Test("ld ix,(#1234)", 0xDD, 0x2A, 0x34, 0x12); Z80Tester.Test("dec ix", 0xDD, 0x2B); Z80Tester.Test("inc xl", 0xDD, 0x2C); Z80Tester.Test("dec xl", 0xDD, 0x2D); Z80Tester.Test("ld xl,#AB", 0xDD, 0x2E, 0xAB); Z80Tester.Test("inc (ix+#3D)", 0xDD, 0x34, 0x3D); Z80Tester.Test("inc (ix-#51)", 0xDD, 0x34, 0xAF); Z80Tester.Test("dec (ix+#3D)", 0xDD, 0x35, 0x3D); Z80Tester.Test("dec (ix-#51)", 0xDD, 0x35, 0xAF); Z80Tester.Test("ld (ix+#3D),#12", 0xDD, 0x36, 0x3D, 0x12); Z80Tester.Test("ld (ix-#51),#12", 0xDD, 0x36, 0xAF, 0x12); Z80Tester.Test("add ix,sp", 0xDD, 0x39); }
public void IndexedOps0X80WorkAsExpected() { // --- Act Z80Tester.Test("add a,yh", 0xFD, 0x84); Z80Tester.Test("add a,yl", 0xFD, 0x85); Z80Tester.Test("add a,(iy+#3D)", 0xFD, 0x86, 0x3D); Z80Tester.Test("adc a,yh", 0xFD, 0x8C); Z80Tester.Test("adc a,yl", 0xFD, 0x8D); Z80Tester.Test("adc a,(iy+#3D)", 0xFD, 0x8E, 0x3D); Z80Tester.Test("sub yh", 0xFD, 0x94); Z80Tester.Test("sub yl", 0xFD, 0x95); Z80Tester.Test("sub (iy+#3D)", 0xFD, 0x96, 0x3D); Z80Tester.Test("sbc a,yh", 0xFD, 0x9C); Z80Tester.Test("sbc a,yl", 0xFD, 0x9D); Z80Tester.Test("sbc a,(iy+#3D)", 0xFD, 0x9E, 0x3D); Z80Tester.Test("and yh", 0xFD, 0xA4); Z80Tester.Test("and yl", 0xFD, 0xA5); Z80Tester.Test("and (iy+#3D)", 0xFD, 0xA6, 0x3D); Z80Tester.Test("xor yh", 0xFD, 0xAC); Z80Tester.Test("xor yl", 0xFD, 0xAD); Z80Tester.Test("xor (iy+#3D)", 0xFD, 0xAE, 0x3D); Z80Tester.Test("or yh", 0xFD, 0xB4); Z80Tester.Test("or yl", 0xFD, 0xB5); Z80Tester.Test("or (iy+#3D)", 0xFD, 0xB6, 0x3D); Z80Tester.Test("cp yh", 0xFD, 0xBC); Z80Tester.Test("cp yl", 0xFD, 0xBD); Z80Tester.Test("cp (iy+#3D)", 0xFD, 0xBE, 0x3D); Z80Tester.Test("pop iy", 0xFD, 0xE1); Z80Tester.Test("ex (sp),iy", 0xFD, 0xE3); Z80Tester.Test("push iy", 0xFD, 0xE5); Z80Tester.Test("jp (iy)", 0xFD, 0xE9); Z80Tester.Test("ld sp,iy", 0xFD, 0xF9); }
public void IndexedOps0X00WorkAsExpected() { // --- Act Z80Tester.Test("add iy,bc", 0xFD, 0x09); Z80Tester.Test("add iy,de", 0xFD, 0x19); Z80Tester.Test("ld iy,#1234", 0xFD, 0x21, 0x34, 0x12); Z80Tester.Test("ld (#1234),iy", 0xFD, 0x22, 0x34, 0x12); Z80Tester.Test("inc iy", 0xFD, 0x23); Z80Tester.Test("inc yh", 0xFD, 0x24); Z80Tester.Test("dec yh", 0xFD, 0x25); Z80Tester.Test("ld yh,#AB", 0xFD, 0x26, 0xAB); Z80Tester.Test("add iy,iy", 0xFD, 0x29); Z80Tester.Test("ld iy,(#1234)", 0xFD, 0x2A, 0x34, 0x12); Z80Tester.Test("dec iy", 0xFD, 0x2B); Z80Tester.Test("inc yl", 0xFD, 0x2C); Z80Tester.Test("dec yl", 0xFD, 0x2D); Z80Tester.Test("ld yl,#AB", 0xFD, 0x2E, 0xAB); Z80Tester.Test("inc (iy+#3D)", 0xFD, 0x34, 0x3D); Z80Tester.Test("inc (iy-#51)", 0xFD, 0x34, 0xAF); Z80Tester.Test("dec (iy+#3D)", 0xFD, 0x35, 0x3D); Z80Tester.Test("dec (iy-#51)", 0xFD, 0x35, 0xAF); Z80Tester.Test("ld (iy+#3D),#12", 0xFD, 0x36, 0x3D, 0x12); Z80Tester.Test("ld (iy-#51),#12", 0xFD, 0x36, 0xAF, 0x12); Z80Tester.Test("add iy,sp", 0xFD, 0x39); }
public void IndexedOps0X80WorkAsExpected() { // --- Act Z80Tester.Test("add a,xh", 0xDD, 0x84); Z80Tester.Test("add a,xl", 0xDD, 0x85); Z80Tester.Test("add a,(ix+#3D)", 0xDD, 0x86, 0x3D); Z80Tester.Test("adc a,xh", 0xDD, 0x8C); Z80Tester.Test("adc a,xl", 0xDD, 0x8D); Z80Tester.Test("adc a,(ix+#3D)", 0xDD, 0x8E, 0x3D); Z80Tester.Test("sub xh", 0xDD, 0x94); Z80Tester.Test("sub xl", 0xDD, 0x95); Z80Tester.Test("sub (ix+#3D)", 0xDD, 0x96, 0x3D); Z80Tester.Test("sbc a,xh", 0xDD, 0x9C); Z80Tester.Test("sbc a,xl", 0xDD, 0x9D); Z80Tester.Test("sbc a,(ix+#3D)", 0xDD, 0x9E, 0x3D); Z80Tester.Test("and xh", 0xDD, 0xA4); Z80Tester.Test("and xl", 0xDD, 0xA5); Z80Tester.Test("and (ix+#3D)", 0xDD, 0xA6, 0x3D); Z80Tester.Test("xor xh", 0xDD, 0xAC); Z80Tester.Test("xor xl", 0xDD, 0xAD); Z80Tester.Test("xor (ix+#3D)", 0xDD, 0xAE, 0x3D); Z80Tester.Test("or xh", 0xDD, 0xB4); Z80Tester.Test("or xl", 0xDD, 0xB5); Z80Tester.Test("or (ix+#3D)", 0xDD, 0xB6, 0x3D); Z80Tester.Test("cp xh", 0xDD, 0xBC); Z80Tester.Test("cp xl", 0xDD, 0xBD); Z80Tester.Test("cp (ix+#3D)", 0xDD, 0xBE, 0x3D); Z80Tester.Test("pop ix", 0xDD, 0xE1); Z80Tester.Test("ex (sp),ix", 0xDD, 0xE3); Z80Tester.Test("push ix", 0xDD, 0xE5); Z80Tester.Test("jp (ix)", 0xDD, 0xE9); Z80Tester.Test("ld sp,ix", 0xDD, 0xF9); }
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); } }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }