public void setValueAt( Object aValue, int row, int column )
    {
    	boolean onlyThisRowChanged = true ;
	    Row r = rows.elementAt( row ) ;
	    String strValue ;
	    
        if ( aValue instanceof String )
            strValue = (String)aValue ;
        else
            strValue = aValue.toString() ;

	    if ( column == C_VALUE )
	    {
	    	Instruction instr = Instruction.findByCode( Utils.fromHex( strValue ) ) ;
	    	if ( instr != null )
	    	{
	    		onlyThisRowChanged = ! r.replaceInstr( row, instr ) ;
	    	}
	    }
	    else if ( column == C_ADDRESS )
	    {
	    }
	    else if ( column == C_INSTR )
	    {
	    	Instruction instr = Instruction.findByRepr( strValue ) ;
	    	if ( instr != null )
	    	{
	    		onlyThisRowChanged = ! r.replaceInstr( row, instr ) ;
	    	}
	    }
	    else if ( column == C_ARG1 )
	    {
	    	memory.setAt( r.memLoc + 1, strValue ) ;
	    }
	    else if ( column == C_ARG2 )
	    {
	    	memory.setAt( r.memLoc + 2, strValue ) ;
	    }

	    if ( ! onlyThisRowChanged )
	        fireTableRowsUpdated( row+1, getRowCount()-1 ) ;

    }