--- /dev/null
+@ Test 0 xor 0 = 0
+SSSSN | PUSH 0
+SSSSN | PUSH 0
+NSTTSTSTTN | JSR > 101110 (xor)
+NSTTSSTN | JSR > 1001 (print number from stack)
+
+@ Test 0 xor 1 = 1
+SSSSN | PUSH 0
+SSSTN | PUSH +1
+NSTTSTSTTN | JSR > 101110 (xor)
+NSTTSSTN | JSR > 1001 (print number from stack)
+
+@ Test 1 xor 1 = 0
+SSSTN | PUSH +1
+SSSTN | PUSH +1
+NSTTSTSTTN | JSR > 101110 (xor)
+NSTTSSTN | JSR > 1001 (print number from stack)
+
+@ Test 1 xor 1...1 = 1...10
+SSSTN | PUSH +1
+SSTTN | PUSH -1
+NSTTSTSTTN | JSR > 101110 (xor)
+NSTTSSTN | JSR > 1001 (print number from stack)
+
+@ Test 1010...1010 xor 0101...0101 = 1...1
+@ Note that -6148914691236517206 = 1010...1010 in twos-complement but we
+@ enter it in sign magnitude format so the bit pattern appears different.
+SSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTTSN | PUSH -6148914691236517206
+SSSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTN | PUSH +6148914691236517205
+NSTTSTSTTN | JSR > 101110 (xor)
+NSTTSSTN | JSR > 1001 (print number from stack)
+
+@ All done.
+NNN | DIE
+
+#include <logic.pvvs>
+#include <stdio.pvvs>
['3003_rshift', '', '+1+1+1-4611686018427387903-576460752303423478-1-1'],
['3004_and', '', '+0+0+1+1+42'],
['3005_or', '', '+0+1+1-1-1'],
+ ['3006_xor', '', '+0+1+0-2-1'],
]
for test in tests: