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

trunk/src/emu/cpu/amis2000/amis2000.h
r243503r243504
7777   UINT8 m_callstack_bits;     // number of program counter bits held in callstack
7878   UINT16 m_callstack_mask;
7979   UINT8 m_callstack_depth;    // callstack levels: 3 on 2000/2150, 5 on 2200/2400
80   UINT16 m_callstack[5+1];    // max 5
80   UINT16 m_callstack[5];      // max 5
8181   int m_icount;
8282   UINT16 m_pc;                // 13-bit program counter
8383   UINT8 m_ppr;                // prepared page register (PP 1)
trunk/src/emu/cpu/amis2000/amis2000op.inc
r243503r243504
1717void amis2000_device::pop_callstack()
1818{
1919   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++)
2221      m_callstack[i] = m_callstack[i+1];
23      m_callstack[i+1] = 0;
24   }
2522}
2623
2724void amis2000_device::push_callstack()
trunk/src/emu/cpu/ucom4/ucom4.h
r243503r243504
133133   int m_datamask;
134134   int m_family;           // MCU family (43/44/45)
135135   int m_stack_levels;     // number of callstack levels
136   UINT16 m_stack[3+1];    // max 3
136   UINT16 m_stack[3];      // max 3
137137   UINT8 m_port_out[0x10]; // last value written to output port
138138   UINT8 m_op;
139139   UINT8 m_prev_op;        // previous opcode
trunk/src/emu/cpu/ucom4/ucom4op.inc
r243503r243504
1717void ucom4_cpu_device::pop_stack()
1818{
1919   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++)
2221      m_stack[i] = m_stack[i+1];
23      m_stack[i+1] = 0;
24   }
2522}
2623
2724void ucom4_cpu_device::push_stack()


Previous 199869 Revisions Next


© 1997-2024 The MAME Team