/*																				*/
/*																				*/
/*				File:		  	hufget.c										*/
/*				Returns:	  													*/
/*				Parameters:													*/
/*																				*/
/*																				*/

#include <stdio.h>
#include <process.h>

#include "advm.h"

#include "decryp.h"


unsigned char hufget(irec, rpt, dbt, buff, bpt, rec1, rec2, bp)
int *irec;
int *rpt;
FILE *dbt;
unsigned char *buff;
unsigned char *bpt;
int rec1,rec2,bp;

	{
	unsigned char a;

	if (*irec != *rpt)
		{
		if (fseek(dbt, (long)128*(*rpt-1), 0) ||
			fread((char *)buff, sizeof(buff[0]), 128, dbt) != 128)
			{
			printf ("Error while reading text in record %d.%03d after loc %d\n",
						rec2,rec1,bp);
			exit(1);
			}
		}
	*irec = *rpt;
	assert (*bpt-1 >= 0 && *bpt-1 < 128);
	a = decryp(buff[*bpt-1],*bpt);
	trace2("Hufget: bpt = %d, char = %02.2X\n", *bpt, a);
	if (++(*bpt) > 128)
		{
		(*rpt)++;
		*bpt = 1;
		}
	return (a);
	}
								 
