diff --git a/OSBindings/Mac/Clock SignalTests/Z80ContentionTests.mm b/OSBindings/Mac/Clock SignalTests/Z80ContentionTests.mm index 22020f11a..ceb31e8f4 100644 --- a/OSBindings/Mac/Clock SignalTests/Z80ContentionTests.mm +++ b/OSBindings/Mac/Clock SignalTests/Z80ContentionTests.mm @@ -236,9 +236,85 @@ struct ContentionCheck { // page I could find seems to have heard of 'NOPD'. for(const auto &sequence : std::vector>{ - // sro d (i.e. RLC, RRC, RL, RR, SLA, SRA, SRL and SLL) + // SRO d (i.e. RLC, RRC, RL, RR, SLA, SRA, SRL and SLL) {0xcb, 0x00}, {0xcb, 0x01}, {0xcb, 0x02}, {0xcb, 0x03}, {0xcb, 0x04}, {0xcb, 0x05}, {0xcb, 0x07}, + {0xcb, 0x08}, {0xcb, 0x09}, {0xcb, 0x0a}, {0xcb, 0x0b}, + {0xcb, 0x0c}, {0xcb, 0x0d}, {0xcb, 0x0f}, + {0xcb, 0x10}, {0xcb, 0x11}, {0xcb, 0x12}, {0xcb, 0x13}, + {0xcb, 0x14}, {0xcb, 0x15}, {0xcb, 0x17}, + {0xcb, 0x18}, {0xcb, 0x19}, {0xcb, 0x1a}, {0xcb, 0x1b}, + {0xcb, 0x1c}, {0xcb, 0x1d}, {0xcb, 0x1f}, + {0xcb, 0x20}, {0xcb, 0x21}, {0xcb, 0x22}, {0xcb, 0x23}, + {0xcb, 0x24}, {0xcb, 0x25}, {0xcb, 0x27}, + {0xcb, 0x28}, {0xcb, 0x29}, {0xcb, 0x2a}, {0xcb, 0x2b}, + {0xcb, 0x2c}, {0xcb, 0x2d}, {0xcb, 0x2f}, + {0xcb, 0x30}, {0xcb, 0x31}, {0xcb, 0x32}, {0xcb, 0x33}, + {0xcb, 0x34}, {0xcb, 0x35}, {0xcb, 0x37}, + {0xcb, 0x38}, {0xcb, 0x39}, {0xcb, 0x3a}, {0xcb, 0x3b}, + {0xcb, 0x3c}, {0xcb, 0x3d}, {0xcb, 0x3f}, + + // BIT b, r + {0xcb, 0x40}, {0xcb, 0x41}, {0xcb, 0x42}, {0xcb, 0x43}, + {0xcb, 0x44}, {0xcb, 0x45}, {0xcb, 0x47}, + {0xcb, 0x48}, {0xcb, 0x49}, {0xcb, 0x4a}, {0xcb, 0x4b}, + {0xcb, 0x4c}, {0xcb, 0x4d}, {0xcb, 0x4f}, + {0xcb, 0x50}, {0xcb, 0x51}, {0xcb, 0x52}, {0xcb, 0x53}, + {0xcb, 0x54}, {0xcb, 0x55}, {0xcb, 0x57}, + {0xcb, 0x58}, {0xcb, 0x59}, {0xcb, 0x5a}, {0xcb, 0x5b}, + {0xcb, 0x5c}, {0xcb, 0x5d}, {0xcb, 0x5f}, + {0xcb, 0x60}, {0xcb, 0x61}, {0xcb, 0x62}, {0xcb, 0x63}, + {0xcb, 0x64}, {0xcb, 0x65}, {0xcb, 0x67}, + {0xcb, 0x68}, {0xcb, 0x69}, {0xcb, 0x6a}, {0xcb, 0x6b}, + {0xcb, 0x6c}, {0xcb, 0x6d}, {0xcb, 0x6f}, + {0xcb, 0x70}, {0xcb, 0x71}, {0xcb, 0x72}, {0xcb, 0x73}, + {0xcb, 0x74}, {0xcb, 0x75}, {0xcb, 0x77}, + {0xcb, 0x78}, {0xcb, 0x79}, {0xcb, 0x7a}, {0xcb, 0x7b}, + {0xcb, 0x7c}, {0xcb, 0x7d}, {0xcb, 0x7f}, + + // RES b, r + {0xcb, 0x80}, {0xcb, 0x81}, {0xcb, 0x82}, {0xcb, 0x83}, + {0xcb, 0x84}, {0xcb, 0x85}, {0xcb, 0x87}, + {0xcb, 0x88}, {0xcb, 0x89}, {0xcb, 0x8a}, {0xcb, 0x8b}, + {0xcb, 0x8c}, {0xcb, 0x8d}, {0xcb, 0x8f}, + {0xcb, 0x90}, {0xcb, 0x91}, {0xcb, 0x92}, {0xcb, 0x93}, + {0xcb, 0x94}, {0xcb, 0x95}, {0xcb, 0x97}, + {0xcb, 0x98}, {0xcb, 0x99}, {0xcb, 0x9a}, {0xcb, 0x9b}, + {0xcb, 0x9c}, {0xcb, 0x9d}, {0xcb, 0x9f}, + {0xcb, 0xa0}, {0xcb, 0xa1}, {0xcb, 0xa2}, {0xcb, 0xa3}, + {0xcb, 0xa4}, {0xcb, 0xa5}, {0xcb, 0xa7}, + {0xcb, 0xa8}, {0xcb, 0xa9}, {0xcb, 0xaa}, {0xcb, 0xab}, + {0xcb, 0xac}, {0xcb, 0xad}, {0xcb, 0xaf}, + {0xcb, 0xb0}, {0xcb, 0xb1}, {0xcb, 0xb2}, {0xcb, 0xb3}, + {0xcb, 0xb4}, {0xcb, 0xb5}, {0xcb, 0xb7}, + {0xcb, 0xb8}, {0xcb, 0xb9}, {0xcb, 0xba}, {0xcb, 0xbb}, + {0xcb, 0xbc}, {0xcb, 0xbd}, {0xcb, 0xbf}, + + // SET b, r + {0xcb, 0xc0}, {0xcb, 0xc1}, {0xcb, 0xc2}, {0xcb, 0xc3}, + {0xcb, 0xc4}, {0xcb, 0xc5}, {0xcb, 0xc7}, + {0xcb, 0xc8}, {0xcb, 0xc9}, {0xcb, 0xca}, {0xcb, 0xcb}, + {0xcb, 0xcc}, {0xcb, 0xcd}, {0xcb, 0xcf}, + {0xcb, 0xc0}, {0xcb, 0xd1}, {0xcb, 0xd2}, {0xcb, 0xd3}, + {0xcb, 0xd4}, {0xcb, 0xd5}, {0xcb, 0xd7}, + {0xcb, 0xd8}, {0xcb, 0xd9}, {0xcb, 0xda}, {0xcb, 0xdb}, + {0xcb, 0xdc}, {0xcb, 0xdd}, {0xcb, 0xdf}, + {0xcb, 0xe0}, {0xcb, 0xe1}, {0xcb, 0xe2}, {0xcb, 0xe3}, + {0xcb, 0xe4}, {0xcb, 0xe5}, {0xcb, 0xe7}, + {0xcb, 0xe8}, {0xcb, 0xe9}, {0xcb, 0xea}, {0xcb, 0xeb}, + {0xcb, 0xec}, {0xcb, 0xed}, {0xcb, 0xef}, + {0xcb, 0xf0}, {0xcb, 0xf1}, {0xcb, 0xf2}, {0xcb, 0xf3}, + {0xcb, 0xf4}, {0xcb, 0xf5}, {0xcb, 0xf7}, + {0xcb, 0xf8}, {0xcb, 0xf9}, {0xcb, 0xfa}, {0xcb, 0xfb}, + {0xcb, 0xfc}, {0xcb, 0xfd}, {0xcb, 0xff}, + + // NEG + {0xed, 0x04}, {0xed, 0x0c}, {0xed, 0x14}, {0xed, 0x1c}, + {0xed, 0x24}, {0xed, 0x2c}, {0xed, 0x34}, {0xed, 0x3c}, + + // IM 0/1/2 + {0xed, 0x06}, {0xed, 0x0e}, {0xed, 0x16}, {0xed, 0x1e}, + {0xed, 0x26}, {0xed, 0x2e}, {0xed, 0x36}, {0xed, 0x3e}, }) { CapturingZ80 z80(sequence); z80.run_for(8);