trunk/src/emu/cpu/ucom4/ucom4.c
| r243465 | r243466 | |
| 190 | 190 | m_inte_f = 1; |
| 191 | 191 | m_pc = 0; |
| 192 | 192 | m_op = 0; |
| 193 | | m_prev_op = m_op; |
| 194 | 193 | m_skip = false; |
| 195 | 194 | |
| 196 | 195 | // clear i/o |
| r243465 | r243466 | |
| 204 | 203 | // execute |
| 205 | 204 | //------------------------------------------------- |
| 206 | 205 | |
| 207 | | void ucom4_cpu_device::increment_pc() |
| 206 | inline void ucom4_cpu_device::increment_pc() |
| 208 | 207 | { |
| 209 | 208 | // upper bits (field register) don't auto-increment |
| 210 | 209 | m_pc = (m_pc & ~0xff) | ((m_pc + 1) & 0xff); |
| 211 | 210 | } |
| 212 | 211 | |
| 213 | | void ucom4_cpu_device::fetch_arg() |
| 212 | inline void ucom4_cpu_device::fetch_arg() |
| 214 | 213 | { |
| 215 | 214 | // 2-byte opcodes: STM/LDI/CLI/CI, JMP/CAL, OCD |
| 216 | 215 | if ((m_op & 0xfc) == 0x14 || (m_op & 0xf0) == 0xa0 || m_op == 0x1e) |
| r243465 | r243466 | |
| 227 | 226 | { |
| 228 | 227 | m_icount--; |
| 229 | 228 | |
| 229 | // remember previous opcode |
| 230 | m_prev_op = m_op; |
| 231 | |
| 230 | 232 | debugger_instruction_hook(this, m_pc); |
| 231 | 233 | m_op = m_program->read_byte(m_pc); |
| 232 | 234 | m_bitmask = 1 << (m_op & 0x03); |
| r243465 | r243466 | |
| 236 | 238 | if (m_skip) |
| 237 | 239 | { |
| 238 | 240 | m_skip = false; |
| 239 | | continue; |
| 241 | m_op = 0; // nop |
| 240 | 242 | } |
| 241 | 243 | |
| 242 | 244 | switch (m_op & 0xf0) |
| r243465 | r243466 | |
| 337 | 339 | break; // 0xff |
| 338 | 340 | |
| 339 | 341 | } // big switch |
| 340 | | |
| 341 | | // remember previous opcode |
| 342 | | m_prev_op = m_op; |
| 343 | 342 | } |
| 344 | 343 | } |