Hi Dave,
Sorry for the delay in getting back to you, I think I now have all the information that you need. I'll answer the questions you asked in order.
1: The functions of NI-DAQ changed between versions 7.0 and 7.1 for users on Macintosh partly to bring the drivers in line across operating systems, National Instruments is trying to get all users on to the NI-DAQmx part of the driver. Also the large changes in the Mac operating system forced a re-design of the driver.
2: The readme file is a good source of information, this describes how to create tasks and why. Also the 'Getting Started Guide' that installs as part of the documentation has a section on creating and configuring tasks.
By adopting this method of creating a task, you can setup the measurement channels with extra information, such as timing or triggering. You will need to create the task, either using the method I described earlier, using the 'Create Task' function, or, you can use the 'NI-DAQmx Base Configuration Utility' (installed as part of the driver). Using this utility should populate the task constant you described with the tasks that you have created, allowing you to bypass the use of the 'Create Task' function.
3: In this version of the driver, it is currently not possible to read from/write to individual lines of a port. Only the read/write of the whole port is supported.
4: In order to keep track of the values being written out, if you are using the same sort of while loop method to write data out as in your example, you can create a shift register. Do this by right clicking on the border of the while/for loop and select 'Create Shift Register' this will add a black terminal on the right and left hand side of the while/for loop. If you wire the data that you are writing out into the right hand terminal as well as the DAQmx function, this information will be passed through to the next iteration of the loop, and will be available at the left hand terminal. This will allow you to perform the bitwise operations you require.
5: There is a similar method to that described in point 4 that can be used within a subvi to act as as global variable, called a functional global variable. The shift register will keep hold of the values whilst in memory. I have included a link to an example which shows you how to do this. It also shows how to use the built in global variables with LabVIEW.
I hope that this information is useful to you, if you have any further questions, please feel free to ask.
Regards
Hannah
NI