private static IAddress getMemoryAddress(final TraceLogLine traceLogLine)
	{
		if (traceLogLine.getInstruction().startsWith("PHA"))
		{
			return new Address(0x10000 + Long.valueOf(traceLogLine.getValueS(), 16));
		}

		if (traceLogLine.getInstruction().startsWith("PHP"))
		{
			return new Address(0x10000 + Long.valueOf(traceLogLine.getValueS(), 16));
		}

		if (traceLogLine.getInstruction().startsWith("PLA"))
		{
			return new Address(0x10000 + Long.valueOf(traceLogLine.getValueS(), 16));
		}

		if (traceLogLine.getInstruction().startsWith("PLP"))
		{
			return new Address(0x10000 + Long.valueOf(traceLogLine.getValueS(), 16));
		}

		if (traceLogLine.getInstruction().startsWith("RTS"))
		{
			return new Address(0x10000 + Long.valueOf(traceLogLine.getValueS(), 16));
		}

		if (traceLogLine.getInstruction().startsWith("RTI"))
		{
			return new Address(0x10000 + Long.valueOf(traceLogLine.getValueS(), 16));
		}

		if (traceLogLine.getInstruction().startsWith("JSR"))
		{
			return new Address(0x10000 + Long.valueOf(traceLogLine.getValueS(), 16));
		}

		return traceLogLine.getMemoryAddress() == null ?
			null :
			new Address(Long.valueOf(traceLogLine.getMemoryAddress(), 16));
	}