public String getAddTransPhysical(MemPartition b, int logicalAddr, List<MemPartition> memory) {
		// logicalAddr belongs to process logical space

		ProcessComplete p = b.getAllocated().getParent();
		// Segment ?

		int startsegment = 0;
		ProcessComponent programSegment = null; 
		boolean found = false;
		int i = 0;
		while (i < p.getNumBlocks() && !found) {
			programSegment = p.getBlock(i);
			if (startsegment + programSegment.getSize() > logicalAddr) found = true;
			else startsegment += programSegment.getSize(); 
			i++;
		}

		int offset = logicalAddr - startsegment;

		// Segment not loaded 
		if (!programSegment.isLoad()) return Translation.getInstance().getLabel("me_87"); // segment fault 

		Iterator<MemPartition> it = memory.iterator();
		MemPartition block = null;
		found = false;
		while (it.hasNext() && !found) {
			block = it.next();
			if (block.getAllocated() != null && block.getAllocated().equals(programSegment)) found = true;  
		}
		if (found) return "@" + new Integer(block.getStart() + offset).toString();
		else return ""; // never
	}