insan-e wrote
// Implementation: the ALU logic manipulates the x and y inputs
// and operates on the resulting values, as follows:
// if (zx == 1) set x = 0        // 16-bit constant
// if (nx == 1) set x = !x       // bitwise not
It is not clear to me should the second operation (bitwise not) depend on previous value of x or the first one.
 
This is a program-like description of the ALU. If 
x was a variable, the first "if" will replace the value of 
x, so the second "if" will affect the new value of 
x.
If 
zx = 
nx = 1, then 
x = ! 0. (0xFFFF or -1.)
--Mark