/*TITLE bitmap functions */

/****keyword-flag*** "%v %f %n" */
/* "4 20-Mar-98,22:22:50 BITFUNC.CPP" */

int setbit(char *bitmap,unsigned long element)
{
	unsigned bytenumber;
	int bitnumber;
	int byte;
	int mask;

	bytenumber = (unsigned)(element / 8);

	bitnumber = (unsigned)(element % 8);

	byte = bitmap[bytenumber];

	mask = 1 << bitnumber;

	bitmap[bytenumber] |= mask;

	if (mask & byte)
		return(1);
	else
		return(0);
}


int clearbit(char *bitmap,unsigned long element)
{
	unsigned bytenumber;
	int bitnumber;
	int byte;
	int mask;

	bytenumber = (unsigned)(element / 8);

	bitnumber = (unsigned)(element % 8);

	byte = bitmap[bytenumber];

	mask = 1 << bitnumber;

	bitmap[bytenumber] &= ~mask;

	if (mask & byte)
		return(1);
	else
		return(0);
}


int testbit(char *bitmap,unsigned long element)
{
	unsigned bytenumber;
	int bitnumber;
	int byte;
	int mask;

	bytenumber = (unsigned)(element / 8);

	bitnumber = (unsigned)(element % 8);

	byte = bitmap[bytenumber];

	mask = 1 << bitnumber;

	if (mask & byte)
		return(1);
	else
		return(0);
}

