Played with the DIO card some more. I have handshaking setup which restricts me to using groups. There are two groups setup. One for output which uses port0 and 1 and the 2nd group as input on port2,3. I couldn't get it to work with group1 as port0, and group 2 as 1,2,3. I had to write blocks and make sure that when i send a data stream on line 0, I need to add the value of the states of the other bits (line 1 to 15) otherwise the other lines are set to zero. When you write a data pattern the card automatically writes to all 16 bits. Some bit manipulation later it works! Reading data states is easier and simply requires a DIG_Line_Config() and DIO_In_Line() commands to read line states.