Regarding flags, here is a trick I use:
Code:
ButtonA VAR WORD
 Button1 VAR ButtonA.0
 Button2 VAR ButtonA.1
 ......
 Button16 VAR ButtonA.15
This creates bit flags. To use them:
Code:
Button4 = PORTC.3