Fix length mismatch condition, by Wang Cheng Yeh.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2735 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
85a6f12925
commit
7faa239ca3
|
@ -855,6 +855,7 @@ again:
|
||||||
offset = sxt24(addr);
|
offset = sxt24(addr);
|
||||||
cpu_physical_memory_read(s->dsa + offset, (uint8_t *)buf, 8);
|
cpu_physical_memory_read(s->dsa + offset, (uint8_t *)buf, 8);
|
||||||
s->dbc = cpu_to_le32(buf[0]);
|
s->dbc = cpu_to_le32(buf[0]);
|
||||||
|
s->rbc = s->dbc;
|
||||||
addr = cpu_to_le32(buf[1]);
|
addr = cpu_to_le32(buf[1]);
|
||||||
}
|
}
|
||||||
if ((s->sstat1 & PHASE_MASK) != ((insn >> 24) & 7)) {
|
if ((s->sstat1 & PHASE_MASK) != ((insn >> 24) & 7)) {
|
||||||
|
@ -864,6 +865,8 @@ again:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
s->dnad = addr;
|
s->dnad = addr;
|
||||||
|
/* ??? Set ESA. */
|
||||||
|
s->ia = s->dsp - 8;
|
||||||
switch (s->sstat1 & 0x7) {
|
switch (s->sstat1 & 0x7) {
|
||||||
case PHASE_DO:
|
case PHASE_DO:
|
||||||
s->waiting = 2;
|
s->waiting = 2;
|
||||||
|
@ -898,8 +901,6 @@ again:
|
||||||
s->sbc = s->dbc;
|
s->sbc = s->dbc;
|
||||||
s->rbc -= s->dbc;
|
s->rbc -= s->dbc;
|
||||||
s->ua = addr + s->dbc;
|
s->ua = addr + s->dbc;
|
||||||
/* ??? Set ESA. */
|
|
||||||
s->ia = s->dsp - 8;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: /* IO or Read/Write instruction. */
|
case 1: /* IO or Read/Write instruction. */
|
||||||
|
|
Reference in New Issue