From 7f57adce052ed2ba556741fd6d48694e218b74da Mon Sep 17 00:00:00 2001 From: Mike Pavone Date: Wed, 8 May 2013 22:45:29 -0700 Subject: Fix handling of instructions that combine an IX/IY displacement with another prefix in test generator --- ztestgen.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ztestgen.c b/ztestgen.c index c250d1f..a8531cb 100644 --- a/ztestgen.c +++ b/ztestgen.c @@ -226,8 +226,13 @@ void z80_gen_test(z80inst * inst, uint8_t *instbuf, uint8_t instlen) } //copy instruction - memcpy(cur, instbuf, instlen); - cur += instlen; + if (instlen == 3) { + memcpy(cur, instbuf, 2); + cur += 2; + } else { + memcpy(cur, instbuf, instlen); + cur += instlen; + } //immed/displacement byte(s) if (addr_mode == Z80_IX_DISPLACE || addr_mode == Z80_IY_DISPLACE) { @@ -244,6 +249,9 @@ void z80_gen_test(z80inst * inst, uint8_t *instbuf, uint8_t instlen) if (inst->reg == Z80_USE_IMMED && inst->op != Z80_BIT && inst->op != Z80_RES && inst->op != Z80_SET) { *(cur++) = inst->immed & 0xFF; } + if (instlen == 3) { + *(cur++) = instbuf[2]; + } for (char * cur = disbuf; *cur != 0; cur++) { if (*cur == ',' || *cur == ' ') { -- cgit v1.2.3