
	TH1  = 	0xFE;	                // 31250 BAUD RATE (Crystal = 6Mhz)	 
	SM2 =1;
	RB8 = 0;
	TB8 = 0;
	REN = 1;

	unsigned char rec_data;		//TEMPORARY BUFFER TO HOLD RECEIVED BYTE
	unsigned char volatile HW_ID;	//THE 4-BIT ID OF THIS SLAVE(0-11)

	void onSerialPortISR(void) interrupt 4 using 3
	{
		EA = 0;		//DISABLING ALL INTERRUPTS
		if(RI)// IF DATA RECEIVED
		{						
			rec_data = SBUF;    // TAKE THE DATA IN TO THE TEMP BUF       
			if(RB8)   // IF IT IS ADDRESS BYTE 
			{
				if(HW_ID == (rec_data & 0x0f)) 	//if address matches	
					SM2 = 0;//THIS ADDRESSED SLAVE CLEARS SM2
				else 
					SM2 = 1;//THIS IS UNADDRESSED SLAVE
				RB8 = 0;
			}
			else if(!SM2)//IF IT IS A DATA BYTE
			{
				--
				--	//MAKE USE OF THE RECEIVED DATA BYTES
				--
			}
			RI = 0;			// IF DATA RECEIVED, CLEAR THE FLAGS
		}
		if(TI)// IF DATA TRANSMITTED, CLEAR THE FLAGS					
		{						
			TI = 0;
		}
		EA = 1;		//ENABLING INTERRUPTS
	}
