diff options
Diffstat (limited to '')
| -rw-r--r-- | doc/protocol | 33 | 
1 files changed, 33 insertions, 0 deletions
| diff --git a/doc/protocol b/doc/protocol new file mode 100644 index 0000000..bdff6ac --- /dev/null +++ b/doc/protocol @@ -0,0 +1,33 @@ +init: +	Select a filename. + +	Create XSI semaphore array {S = 0, W = 0, X = 1 and Q = 0} +	with random key. Store the semaphore array's key in +	decimal form on the first line in the selected file. + +	Create XSI shared memory, with an allocation of 2048 bytes, +	with a random key. Store the shared memory's key in +	decimal form on the second line in the selected file. + + +broadcast: +	with P(X): +	  Z(W) +	  Write NUL-terminate message to shared memory +	  Q := 0 +	  Z(S) + + +listen: +	V(S) with undo on exit +	forever: +	  V(Q) +	  Z(Q) +	  Read NUL-terminated message from shared memory +	  if breaking: +	    P(S) with undo on exit +	    break +	  with V(W): +	    with P(S): +	       Z(S) + | 
