if ( #chardir <> 2 ) && ( #charX <> %mastX )
I honestly cant remember much of EUO syntax, but I do believe that it requires "&&" as opposed to "&".
Parenthesis are in relation to what you want to be compared first. It's just good practice to use them imo. For longer compares it really matters though.