@Override
    public int get_pc() {
        return m6809.pc & 0xFFFF;
    }
    /*TODO*///
    /*TODO*///
    /*TODO*////****************************************************************************
    /*TODO*/// * Set program counter
    /*TODO*/// ****************************************************************************/
    /*TODO*///void m6809_set_pc(unsigned val)
    /*TODO*///{
    /*TODO*///	PC = val;
    /*TODO*///	CHANGE_PC;
    /*TODO*///}
    /*TODO*///
    /*TODO*///
    /*TODO*////****************************************************************************
    /*TODO*/// * Return stack pointer
    /*TODO*/// ****************************************************************************/
    /*TODO*///unsigned m6809_get_sp(void)
    /*TODO*///{
    /*TODO*///	return S;
    /*TODO*///}
    /*TODO*///
    /*TODO*///
    /*TODO*////****************************************************************************
    /*TODO*/// * Set stack pointer
    /*TODO*/// ****************************************************************************/
    /*TODO*///void m6809_set_sp(unsigned val)
    /*TODO*///{
    /*TODO*///	S = val;
    /*TODO*///}
    /*TODO*///
    /*TODO*///
    /*TODO*////****************************************************************************/
    /*TODO*////* Return a specific register                                               */
    /*TODO*////****************************************************************************/
    /*TODO*///unsigned m6809_get_reg(int regnum)
    /*TODO*///{
    /*TODO*///	switch( regnum )
    /*TODO*///	{
    /*TODO*///		case M6809_PC: return PC;
    /*TODO*///		case M6809_S: return S;
    /*TODO*///		case M6809_CC: return CC;
    /*TODO*///		case M6809_U: return U;
    /*TODO*///		case M6809_A: return A;
    /*TODO*///		case M6809_B: return B;
    /*TODO*///		case M6809_X: return X;
    /*TODO*///		case M6809_Y: return Y;
    /*TODO*///		case M6809_DP: return DP;
    /*TODO*///		case M6809_NMI_STATE: return m6809.nmi_state;
    /*TODO*///		case M6809_IRQ_STATE: return m6809.irq_state[M6809_IRQ_LINE];
    /*TODO*///		case M6809_FIRQ_STATE: return m6809.irq_state[M6809_FIRQ_LINE];
    /*TODO*///		case REG_PREVIOUSPC: return PPC;
    /*TODO*///		default:
    /*TODO*///			if( regnum <= REG_SP_CONTENTS )
    /*TODO*///			{
    /*TODO*///				unsigned offset = S + 2 * (REG_SP_CONTENTS - regnum);
    /*TODO*///				if( offset < 0xffff )
    /*TODO*///					return ( RM( offset ) << 8 ) | RM( offset + 1 );
    /*TODO*///			}
    /*TODO*///	}
    /*TODO*///	return 0;
    /*TODO*///}
    /*TODO*///
    /*TODO*///
    /*TODO*////****************************************************************************/
    /*TODO*////* Set a specific register                                                  */
    /*TODO*////****************************************************************************/
    /*TODO*///void m6809_set_reg(int regnum, unsigned val)
    /*TODO*///{
    /*TODO*///	switch( regnum )
    /*TODO*///	{
    /*TODO*///		case M6809_PC: PC = val; CHANGE_PC; break;
    /*TODO*///		case M6809_S: S = val; break;
    /*TODO*///		case M6809_CC: CC = val; CHECK_IRQ_LINES; break;
    /*TODO*///		case M6809_U: U = val; break;
    /*TODO*///		case M6809_A: A = val; break;
    /*TODO*///		case M6809_B: B = val; break;
    /*TODO*///		case M6809_X: X = val; break;
    /*TODO*///		case M6809_Y: Y = val; break;
    /*TODO*///		case M6809_DP: DP = val; break;
    /*TODO*///		case M6809_NMI_STATE: m6809.nmi_state = val; break;
    /*TODO*///		case M6809_IRQ_STATE: m6809.irq_state[M6809_IRQ_LINE] = val; break;
    /*TODO*///		case M6809_FIRQ_STATE: m6809.irq_state[M6809_FIRQ_LINE] = val; break;
    /*TODO*///		default:
    /*TODO*///			if( regnum <= REG_SP_CONTENTS )
    /*TODO*///			{
    /*TODO*///				unsigned offset = S + 2 * (REG_SP_CONTENTS - regnum);
    /*TODO*///				if( offset < 0xffff )
    /*TODO*///				{
    /*TODO*///					WM( offset, (val >> 8) & 0xff );
    /*TODO*///					WM( offset+1, val & 0xff );
    /*TODO*///				}
    /*TODO*///			}
    /*TODO*///    }
    /*TODO*///}