private void processBlock()	{
		String linesOut[]=new String[3];
		boolean divider=false;
		// Convert the block to an array of ints
		int data[]=circularBitSet.returnInts();
		// Data[4] and [5] contain the line number (bits 32 to 41)
		int lineNos=(data[4]<<3)+((data[5]&224)>>5);
		// Count the number of missing blocks
		if (bitCount>288) missingBlockCount=missingBlockCount+(bitCount/288);
		// Check if this is a divider block
		if (checkDividerBlock(data)==true)	{
			// Divide the messages with this //
			linesOut[0]="----------------------------------------------------------";
			divider=true;
		}
		else	{
			// Display the block
			linesOut[0]="Block No "+Integer.toString(lineNos);
			// If block 0 display the special information
			if (lineNos==0)	{
				// Display the total number of blocks which is encoded into block 0 bits 64,65,66,67,80,81,82
				messageTotalBlockCount=((data[8]&240)>>1)+((data[10]&224)>>5)+1;
				linesOut[0]=linesOut[0]+" : Total Message Size "+Integer.toString(messageTotalBlockCount)+" blocks";
				// Display the number of messages contained
				int mcount=(data[12]&240)>>4;
				if (mcount==1)	linesOut[0]=linesOut[0]+" : This transmission contains one message.";
				else linesOut[0]=linesOut[0]+" : This transmission contains "+Integer.toString(mcount)+" messages.";
			}
			// If block 1 display the block 1 special information
			else if (lineNos==1)	{
				linesOut[0]=linesOut[0]+" "+extractAddressee(data)+" "+extractDate(data)+" "+extractMsgNumber(data)+extractMsgType(data)+extractGroupCount(data);
				linesOut[2]=extractBlock1Mys(data);
			}
			
			linesOut[1]=circularBitSet.extractBitSetasHex();
		}
		bitCount=0;
		bitsSinceLastBlockHeader=0;
		blockCount++;
		// Display the decoded info
		if (divider==false) theApp.writeLine(linesOut[0],Color.BLUE,theApp.boldFont);
		else theApp.writeLine(linesOut[0],Color.RED,theApp.boldFont);
		theApp.writeLine(linesOut[2],Color.BLUE,theApp.boldFont);
		theApp.writeLine(linesOut[1],Color.BLACK,theApp.boldFont);
		return;
	}