Commit 7faa239ca39b986a64ca99056311b32bc6cff55f

Authored by ths
1 parent 85a6f129

Fix length mismatch condition, by Wang Cheng Yeh.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2735 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 3 additions and 2 deletions
hw/lsi53c895a.c
@@ -855,6 +855,7 @@ again: @@ -855,6 +855,7 @@ again:
855 offset = sxt24(addr); 855 offset = sxt24(addr);
856 cpu_physical_memory_read(s->dsa + offset, (uint8_t *)buf, 8); 856 cpu_physical_memory_read(s->dsa + offset, (uint8_t *)buf, 8);
857 s->dbc = cpu_to_le32(buf[0]); 857 s->dbc = cpu_to_le32(buf[0]);
  858 + s->rbc = s->dbc;
858 addr = cpu_to_le32(buf[1]); 859 addr = cpu_to_le32(buf[1]);
859 } 860 }
860 if ((s->sstat1 & PHASE_MASK) != ((insn >> 24) & 7)) { 861 if ((s->sstat1 & PHASE_MASK) != ((insn >> 24) & 7)) {
@@ -864,6 +865,8 @@ again: @@ -864,6 +865,8 @@ again:
864 break; 865 break;
865 } 866 }
866 s->dnad = addr; 867 s->dnad = addr;
  868 + /* ??? Set ESA. */
  869 + s->ia = s->dsp - 8;
867 switch (s->sstat1 & 0x7) { 870 switch (s->sstat1 & 0x7) {
868 case PHASE_DO: 871 case PHASE_DO:
869 s->waiting = 2; 872 s->waiting = 2;
@@ -898,8 +901,6 @@ again: @@ -898,8 +901,6 @@ again:
898 s->sbc = s->dbc; 901 s->sbc = s->dbc;
899 s->rbc -= s->dbc; 902 s->rbc -= s->dbc;
900 s->ua = addr + s->dbc; 903 s->ua = addr + s->dbc;
901 - /* ??? Set ESA. */  
902 - s->ia = s->dsp - 8;  
903 break; 904 break;
904 905
905 case 1: /* IO or Read/Write instruction. */ 906 case 1: /* IO or Read/Write instruction. */