Bit masking functionality is available in the application in order to write certain digital output without interrupting the digital output used by the scanning process. To use bit masking, use digital output call: BOOLEAN EX_Digout_Quick_BP(USHORT usDevID, BYTE bDigOut, BYTE bBitPreserve) bBitPreserve is the mask to be used. So, if you call: EX_Digout_Quick_BP(usDevID, 4, 0); (mask=00000000) then call EX_Digout_Quick_BP(usDevID, 128, 4); (mask=00000100) (10000000 over 00000100 = 10000100) 132 would be written to the digital output. The following call would produce the exact same results: EX_Digout_Quick_BP(usDevID, 128, 15); (mask=00001111) (10000000 over 10000100 = 10000100) The 4 bit still included in the mask and no change in bDigOut With no mask, the following writes whatever you send to the digital out. EX_Digout_Quick_BP(usDevID, 255, 0); (mask=00000000) (11111111 over 10000100 = 11111111)