mirror of
https://github.com/wnayes/macutils.git
synced 2025-01-18 05:29:48 +00:00
45 lines
757 B
C
45 lines
757 B
C
/* crc.c; do crc calculation. */
|
|
|
|
#include <stdio.h>
|
|
#include "hexbin.h"
|
|
#include "crc.h"
|
|
#include "../util/masks.h"
|
|
#include "globals.h"
|
|
|
|
extern void exit();
|
|
|
|
unsigned long crc;
|
|
|
|
#ifdef HQX
|
|
void comp_q_crc(c)
|
|
register unsigned int c;
|
|
{
|
|
unsigned char cc = c;
|
|
|
|
crc = binhex_updcrc(crc, &cc, 1);
|
|
}
|
|
|
|
void comp_q_crc_n(s, e)
|
|
register unsigned char *s, *e;
|
|
{
|
|
crc = binhex_updcrc(crc, s, e - s);
|
|
}
|
|
#endif /* HQX */
|
|
|
|
void verify_crc(calc_crc, file_crc)
|
|
unsigned long calc_crc, file_crc;
|
|
{
|
|
calc_crc &= WORDMASK;
|
|
file_crc &= WORDMASK;
|
|
|
|
if(calc_crc != file_crc) {
|
|
(void)fprintf(stderr, "CRC mismatch: got 0x%04lx, need 0x%04lx\n",
|
|
file_crc, calc_crc);
|
|
#ifdef SCAN
|
|
do_error("hexbin: CRC error");
|
|
#endif /* SCAN */
|
|
exit(1);
|
|
}
|
|
}
|
|
|