OK, So the second options is still using the CASE SELECT method is it?

Does this mean that the statement will look as follows:
Code:
Button1      Var PORTC.0
Button2      Var PORTC.1
Button3      Var PORTC.2
Button4      Var PORTC.6

Main:
    MaskSwitch=0
    If PORTC.0 Then MaskSwitch.0=1
    If PORTC.1 Then MaskSwitch.1=1
    If PORTC.2 Then MaskSwitch.2=1
    If PORTC.6 Then MaskSwitch.3=1
        Select Case MaskSwitch
          Case 0
            If Button1 = 1 Then Gosub Procedure_Button1
            If Button1 = 0 THEN
            EndIf 

          Case 1
            If Button2 = 1 Then Gosub Procedure_Button2
            If Button2 = 0 THEN 
            EndIf 

          Case 2
            If Button3 = 1 Then Gosub Procedure_Button3
            If Button3 = 0 THEN
            EndIf 
.......
ie, does the MaskSwitch.1 represent Case 1 value, MaskSwitch.2 represent Case 2 etc etc?

Many thanks again,

Steve