  This paper provides the first comprehensive description of the Z1, the
mechanical computer built by the German inventor Konrad Zuse in Berlin from
1936 to 1938. The paper describes the main structural elements of the machine,
the high-level architecture, and the dataflow between components. The computer
could perform the four basic arithmetic operations using floating-point
numbers. Instructions were read from punched tape. A program consisted of a
sequence of arithmetical operations, intermixed with memory store and load
instructions, interrupted possibly by input and output operations. Numbers were
stored in a mechanical memory. The machine did not include conditional
branching in the instruction set. While the architecture of the Z1 is similar
to the relay computer Zuse finished in 1941 (the Z3) there are some significant
differences. The Z1 implements operations as sequences of microinstructions, as
in the Z3, but does not use rotary switches as micro-steppers. The Z1 uses a
digital incrementer and a set of conditions which are translated into
microinstructions for the exponent and mantissa units, as well as for the
memory blocks. Microinstructions select one out of 12 layers in a machine with
a 3D mechanical structure of binary mechanical elements. The exception circuits
for mantissa zero, necessary for normalized floating-point, were lacking; they
were first implemented in the Z3. The information for this article was
extracted from careful study of the blueprints drawn by Zuse for the
reconstruction of the Z1 for the German Technology Museum in Berlin, from some
letters, and from sketches in notebooks. Although the machine has been in
exhibition since 1989 (non-operational), no detailed high-level description of
the machine's architecture had been available. This paper fills that gap.
