@Override
	public boolean removeFromSystemIfPossible(AvalonSystem sys)
	{
		if(!bAddressFixed) {
			bAddressFixed = true;
			try {
				long regOffset = Long.decode(getParamValByName(EMBSW_CMACRO + ".REGISTER_OFFSET"));
				if(regOffset>0) {
					Vector<Interface> vintf = getInterfaces(SystemDataType.MEMORY_MAPPED, false);
					for(Interface intf : vintf) {
						for(Connection conn : intf.getConnections()) {
							conn.setConnValue(DTHelper.longArrAdd(conn.getConnValue(), regOffset));
						}
						intf.setInterfaceValue(DTHelper.longArrSubtract(intf.getInterfaceValue(), regOffset));
					}
				}
			} catch(Exception e) {
			}			
			return true;			
		} else {
			return false;
		}
	}