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

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