ATP: Asynchronous Token Protocol

- unlocked operation
- exchange verification
- static state

T: token
B: bit

T B
0 0 x: empty
0 1 o: occupied
1 0 0: 0
1 1 1: 1

TO: token out
BO: bit out
TI: token in
BI: bit in

send, receive:

T B    T B
O O    I I
0 0 -- 0 0 empty
1 ? -> 0 0 send bit
1 ? <- 0 1 receive occupied
0 0 -> 0 1 send empty
0 0 <- 0 0 receive empty

swap:

T B     T B
O O     I I
0 0 --- 0 0 empty
1 ? <-> 1 ? send and receive bit
0 1 <-> 0 1 send and receive occupied
0 0 <-> 0 0 send and receive empty
