Bits/boolean types

This test case it part of the test suite proposed for new devices.

Test case ID: R0025
Language: ST

Code:
tests2/t0025.st
(* to test words - boolean *)

PROGRAM Test1_R0025
VAR
  W1, W2, W3, W4, W5 : WORD;
  B1, B2, B3, B4 : BOOL;
END_VAR

  W1 := WORD#16;  (* 0x0010 *)
  W2 := WORD#19;  (* 0x0013 *)
  B1 := FALSE;
  W3 := XOR( W1 , W2  );  (* 3 *)
  W4 := W1 XOR  W2 ;      (* 3 *)
  W5 := NOT( 0 + W1 );  (* 0xfeff *)
  
  B2 := NOT( B1 );
  B3 := XOR( IN1:=B1 , IN2 := B2 );
  B4 := B1 XOR ( B2 AND TRUE);
  B1 := W3 = W4;
  B1 := W1 <> W2;
  B1 := NOT(W1 <> W2 AND W3 = W4);  
  
_GEB_ASSERT_(B1 = 0);
_GEB_ASSERT_(B2 = 1);
_GEB_ASSERT_(B3 = 1);
_GEB_ASSERT_(B4 = 1);
_GEB_ASSERT_(W1 = 16#10);
_GEB_ASSERT_(W2 = 16#13);
_GEB_ASSERT_(W3 = 3);
_GEB_ASSERT_(W4 = 3);
_GEB_ASSERT_(W5 = 16#ffef);

END_PROGRAM