| Previous | 199869 Revisions | Next |
| r34992 Thursday 12th February, 2015 at 20:33:56 UTC by hap |
|---|
| don't clear stack on pop |
| [src/emu/cpu/amis2000] | amis2000.h amis2000op.inc |
| [src/emu/cpu/ucom4] | ucom4.h ucom4op.inc |
| r243503 | r243504 | |
|---|---|---|
| 77 | 77 | UINT8 m_callstack_bits; // number of program counter bits held in callstack |
| 78 | 78 | UINT16 m_callstack_mask; |
| 79 | 79 | UINT8 m_callstack_depth; // callstack levels: 3 on 2000/2150, 5 on 2200/2400 |
| 80 | UINT16 m_callstack[5 | |
| 80 | UINT16 m_callstack[5]; // max 5 | |
| 81 | 81 | int m_icount; |
| 82 | 82 | UINT16 m_pc; // 13-bit program counter |
| 83 | 83 | UINT8 m_ppr; // prepared page register (PP 1) |
| r243503 | r243504 | |
|---|---|---|
| 17 | 17 | void amis2000_device::pop_callstack() |
| 18 | 18 | { |
| 19 | 19 | m_pc = (m_pc & ~m_callstack_mask) | (m_callstack[0] & m_callstack_mask); |
| 20 | for (int i = 0; i < m_callstack_depth; i++) | |
| 21 | { | |
| 20 | for (int i = 0; i < m_callstack_depth-1; i++) | |
| 22 | 21 | m_callstack[i] = m_callstack[i+1]; |
| 23 | m_callstack[i+1] = 0; | |
| 24 | } | |
| 25 | 22 | } |
| 26 | 23 | |
| 27 | 24 | void amis2000_device::push_callstack() |
| r243503 | r243504 | |
|---|---|---|
| 133 | 133 | int m_datamask; |
| 134 | 134 | int m_family; // MCU family (43/44/45) |
| 135 | 135 | int m_stack_levels; // number of callstack levels |
| 136 | UINT16 m_stack[3 | |
| 136 | UINT16 m_stack[3]; // max 3 | |
| 137 | 137 | UINT8 m_port_out[0x10]; // last value written to output port |
| 138 | 138 | UINT8 m_op; |
| 139 | 139 | UINT8 m_prev_op; // previous opcode |
| r243503 | r243504 | |
|---|---|---|
| 17 | 17 | void ucom4_cpu_device::pop_stack() |
| 18 | 18 | { |
| 19 | 19 | m_pc = m_stack[0] & m_prgmask; |
| 20 | for (int i = 0; i < m_stack_levels; i++) | |
| 21 | { | |
| 20 | for (int i = 0; i < m_stack_levels-1; i++) | |
| 22 | 21 | m_stack[i] = m_stack[i+1]; |
| 23 | m_stack[i+1] = 0; | |
| 24 | } | |
| 25 | 22 | } |
| 26 | 23 | |
| 27 | 24 | void ucom4_cpu_device::push_stack() |
| https://github.com/mamedev/mame/commit/c120b3df506540f47b7b8faf8fa9862a5fd139f3 |
| Previous | 199869 Revisions | Next |