nly present if data 
is present.<BR> 
The checksum is calculated by taking the lower 16 bits of the sum of the data bytes, as shown below:</P> 
<PRE>int calculateChecksum(unsigned char* data, unsigned short datalength) { 
   unsigned short x, checksum; 
   for(x=0; x&lt;datalength; x++) { 
      checksum+=data[x];  //overflow automatically limits to 16 bits 
   } 
   return checksum; 
}</PRE> 
<CENTER> 
<H3> 
<HR ALIGN="CENTER"> 
<A NAME="varheader"></A>Variable Headers</H3> 
</CENTER> 
<P>A Variable header