public String displayGW_ShoreMMSI  (List<Integer> mm,int totalDigits)	{
		StringBuilder sb=new StringBuilder();
		int a,digitCounter=0;
		for (a=0;a<6;a++)	{
			// High nibble
			int hn=(mm.get(a)&240)>>4;
			// Low nibble
			int ln=mm.get(a)&15;
			// The following nibble
			int followingNibble;
			// Look at the next byte for this unless this is the last byte
			if (a<5) followingNibble=(mm.get(a+1)&240)>>4;
			else followingNibble=0;
			boolean alternate;
			// Low nibble
			// If the following nibble (which is in the high nibble of the next byte) is less than 0x8 then we use the alternate numbering method
			if (followingNibble<0x8) alternate=true;
			else alternate=false;
			sb.append(convertShoreNum(ln,alternate));
			digitCounter++;
			// Once digit counter is totalDigits then we are done
			if (digitCounter==totalDigits) return sb.toString();
			// High nibble
			// If the following nibble (which is in the low nibble) is less than 0x8 then we use the alternate numbering method
			if (ln<0x8) alternate=true;
			else alternate=false;
			sb.append(convertShoreNum(hn,alternate));
			digitCounter++;
			// Once the digit counter is totalDigits then we are done
			if (digitCounter==totalDigits) return sb.toString();
		}
		return sb.toString();		
	}