Previous 199869 Revisions Next

r34954 Tuesday 10th February, 2015 at 18:05:49 UTC by hap
different implementation of prev bugfix
[src/emu/cpu/amis2000]amis2000.c
[src/emu/cpu/ucom4]ucom4.c

trunk/src/emu/cpu/amis2000/amis2000.c
r243465r243466
208208{
209209   m_pc = 0;
210210   m_op = 0;
211   m_prev_op = m_op;
212211   m_skip = false;
213212   
214213   // clear i/o
r243465r243466
231230   {
232231      m_icount--;
233232     
233      // remember previous opcode
234      m_prev_op = m_op;
235
234236      debugger_instruction_hook(this, m_pc);
235237      m_op = m_program->read_byte(m_pc);
236238      m_pc = (m_pc + 1) & 0x1fff;
r243465r243466
239241      {
240242         // always skip over PP prefix
241243         m_skip = ((m_op & 0xf0) == 0x60);
242         continue;
244         m_op = 0; // nop
243245      }
244246
245247      switch (m_op & 0xf0)
r243465r243466
314316            break; // 0xff
315317
316318      } // big switch
317
318      // remember previous opcode
319      m_prev_op = m_op;
320319   }
321320}
trunk/src/emu/cpu/ucom4/ucom4.c
r243465r243466
190190   m_inte_f = 1;
191191   m_pc = 0;
192192   m_op = 0;
193   m_prev_op = m_op;
194193   m_skip = false;
195194
196195   // clear i/o
r243465r243466
204203//  execute
205204//-------------------------------------------------
206205
207void ucom4_cpu_device::increment_pc()
206inline void ucom4_cpu_device::increment_pc()
208207{
209208   // upper bits (field register) don't auto-increment
210209   m_pc = (m_pc & ~0xff) | ((m_pc + 1) & 0xff);
211210}
212211
213void ucom4_cpu_device::fetch_arg()
212inline void ucom4_cpu_device::fetch_arg()
214213{
215214   // 2-byte opcodes: STM/LDI/CLI/CI, JMP/CAL, OCD
216215   if ((m_op & 0xfc) == 0x14 || (m_op & 0xf0) == 0xa0 || m_op == 0x1e)
r243465r243466
227226   {
228227      m_icount--;
229228
229      // remember previous opcode
230      m_prev_op = m_op;
231
230232      debugger_instruction_hook(this, m_pc);
231233      m_op = m_program->read_byte(m_pc);
232234      m_bitmask = 1 << (m_op & 0x03);
r243465r243466
236238      if (m_skip)
237239      {
238240         m_skip = false;
239         continue;
241         m_op = 0; // nop
240242      }
241243     
242244      switch (m_op & 0xf0)
r243465r243466
337339            break; // 0xff
338340
339341      } // big switch
340
341      // remember previous opcode
342      m_prev_op = m_op;
343342   }
344343}


Previous 199869 Revisions Next


© 1997-2024 The MAME Team