Glad you liked it. That puzzle is older than dirt. Back in the olden days we used that trick to double buffer I/O. The mainframe could fill the buffer faster than the disk could write it, so we would use 2 buffer areas, and eliminate the wait for the buffer to refill before writing it to disk. Those were the days when you were very close to the machinery. Not like today, when some users think the screen is the computer.That's clever. Xor would work correctly in VB
A= 11
B= 00
Xor a,b a=11 (Syntax would be a= a xor b)
Xor b,a b= 11
Xor a,b a=00
Not a proof, but a slick process.
I use XOR in simple encryption.
A xor bitmask = B
B xor bitmask = A