I've never been good at explaining this, as I never took a "Programing 101" class, but it is one of the reasons why I tried to stop using NOT. I try to evaluate things using positive logic and I have had much better success.

Basically this is how your code is evaluating...

 Code:
? not 1 or 1 ;=1
? not 0 or 1 ;=1
? not 1 or 0 ;=0
? not 0 or 0 ;=1



_________________________
(... better days ahead)