bam_crc.c


/****************************************************************************/
/*     MODULE: bam_crc.c                                                    */
/*   FUNCTION: CRC check programming routines.                              */
/*  PROCESSOR: 8xC196KC                                                     */
/*   CONTAINS:																*/
/*    HISTORY:  4-11-96 L.R. Erickson - Original							*/
/****************************************************************************/

#define SRC_BAM_CRC

#include "jkc_defs.h"
#include "jkc_sfrs.h"
#include "jkc_extr.h"
#include "jkc_func.h"

#include "bam_loop.h"
#include "bam_main.h"
#include "bam_defs.h"

#include "bam_ser.h"
#include "bam_comm.h"
#include "bam_eep.h"

#include "bam_crc.h"



/* File Global Vars */

unsigned char *crc_char_add ;
unsigned int  crc_chk_sum ;

/* load the lookup table */

#include "crc_lut.c"
// #include "crc_lut1.c" 


/********************************************************/
/*    ROUTINE:chk_crc    								*/
/*   FUNCTION:Keep a running CRC check on the           */
/*   EEPROM.                                            */
/********************************************************/
void 
chk_crc(void)
{

unsigned int lut_index ;

    lut_index = ((unsigned int) *crc_char_add) ^
                    (crc_chk_sum &0xff) ;
    crc_chk_sum = crc_chk_sum>>8 ;
    crc_chk_sum = crc_chk_sum ^ crc_lut[lut_index] ;

    if(crc_char_add == (unsigned char*) 0x9fff)
       if(crc_chk_sum != 0) crc_chk_err() ; 
    else if(crc_char_add == (unsigned char*) 0xcfff)
       if(crc_chk_sum != 0) crc_chk_err() ; 
    else if(crc_char_add == (unsigned char*) 0xffff)
       if(crc_chk_sum != 0) crc_chk_err() ; 
    
    crc_char_add++ ;
    if(crc_char_add == (unsigned char*) 0) 
           crc_char_add = (unsigned char *) 0x8000 ;

}

/********* end of chk_crc  *****************************/


/********************************************************/
/*    ROUTINE: init_crc    								*/
/*   FUNCTION:Initialize the CRC check variables.       */
/*                                                      */
/********************************************************/
void 
init_crc(void)
{

    crc_char_add = (unsigned char *) 0x8000 ;
    crc_chk_sum = 0 ;

}

/************** end of init_crc *************************/

/********************************************************/
/*    ROUTINE: crc_chk_err */
/*   FUNCTION:Handle any CRC errors                     */
/*                                                      */
/********************************************************/
void 
crc_chk_err(void)
{

    return ;

}

/************** end of crc_chk_err *************************/