//void SetOutputs(unsigned char numOuts,
//				unsigned char outVals[],
//				volatile near unsigned char * outPorts[], 
//				unsigned char outBits[]) {
// function to set outputs with outVals array rather than explicitly
// keeping track of port/bit configurations
// written by Sean Montgomery, 2008.08
void SetOutputs(unsigned char numOuts,
				unsigned char outVals[],
				volatile near unsigned char * outPorts[], 
				unsigned char outBits[]) {
	unsigned char j;

//	for (j=0;j<(sizeof(outVals)/sizeof(outVals[0]));j++) {
	for (j=0;j<numOuts;j++) {
		if (outVals[j]) {
			*outPorts[j] = ((*outPorts[j]) | outBits[j]);
		} else {
			*outPorts[j] = ((*outPorts[j]) & (0b11111111 - outBits[j]));
		}
	}
}
