Hey There-
I do have it working - came up late last night and my solution looks pretty much like Enrik's suggestion. Code follows for others to use or learn:
Code:
'------------------------------------------------------------------------------------------
'Variable List
           i                var byte                        'Loop counter var
           Table            var byte[16] BANKA              'Array input is the value of the 4 inputs; 0-15 from the binary weight
           tflag            var table.3                     'timer flag
           TableIn          var byte                        'Entry into array from inputs
           temp             var byte                        'Temp var to use as a debounce
'---------------------------------------------------------------------------------------------
'#########################################################################################################################
'#	We are going to setup this Pig!
'#########################################################################################################################
Initialize:                                                   
          unsecure=0                                        'Esures the relay is not active
          lock=0                                            'Ensures lock valve is not active
          unlock=0                                          'Ensures unlock valve is not active
          i=0
          Table[0]=6
          Table[1]=2
          Table[2]=6
          Table[3]=2
          Table[4]=6
          Table[5]=6
          Table[6]=6
          Table[7]=6
          Table[8]=5
'          Table[9]=0
          Table[10]=5
'          Table[11]=0
          Table[12]=4
          Table[13]=6
          Table[14]=6
          Table[15]=6
          
          goto Startmain                                    'Steps around the subroutines
'#########################################################################################################################
'#	Subroutines
'#########################################################################################################################   

Wait2sec: pause 2000
          return

get_input:
          TableIn=PORTA & %00110011                         'Selects the correct input pins
          TableIn=(TableIn & %00000011) + (TableIn & %00110000)>>2
                                                            'Selects A0,A1 then selects A4,A5 moves to A2, A3 and adds to A0,A1
                                                            'Therefore, the array entry is (Command - DPI - Bolt - Deadlck)
                                                            'Remembering that Command and DPI are ACTIVE LOW
                                                            'When we get a command to open it is LOW, when door is closed=LOW
                                                            'Bolt and Deadlck posotion sensors are ACTIVE HIGH
          return
'#########################################################################################################################
'#	Startmain - where the MAGIC starts!
'#########################################################################################################################
Startmain:                                                  'Main wait loop
          gosub get_input                                   'Get inputs
          temp=TableIn
          pause 100
          gosub get_input
          if TableIn <> temp then goto startmain                'Var and temp var did not match so must have been noise, go back
          if TableIn = 9 then
             if tflag=1 then Main1X
             unlock=0
             unsecure=0
             lock=1
             pause 2000
             lock=0                
             tflag=1
Main1X:      lock=0
             unlock=0
             unsecure=0
             goto startmain
          endif   
          PORTC=Table[TableIn]                                  'Sets the port output to the table byte
          
          goto startmain                                    'Start all over
I really like the bit manipulation and the use of the tables - a lot.
That's the good news, the not so good news is I have discovered 2 conditions which I hadn't counted;
1. Coming out of the timed function, IF DPI goes from 0 to a 1, I just need to change state of the relay.
IF after staying at 1, DPI goes back to a 0, then start the timing sequence again....... Dang.
2. If after the timed section, if DPI=0 AND deadlock goes from a 1 to a 0 just change the relay state.

Now that I have the truth table, understand the bit manipulation, got the array to work - now I find a 'transitional' state.
Mickey Mouse logic in its day was pretty involved - almost as interesting as the relay-logic trees!

Summation, thanks for the assist, I learned quite a number of 'finer' parts of PBP and registers.
Now I am setting sites on how to know where I am, and watch for certain transitions......

-Steve