
Source: Wikimedia Commons
In our previous post we explored the basic architecture of the Z3, now let’s look at the aspect that made the Z3 so special: the ability to program it freely. In this third, and final, part of this series, we will focus on how programs were entered and processed and what limitations existed. We will also take a look at the input and output methods to get a more comprehensive picture of how users interacted with the machine.
Programmability
The programmability was based on the use of punched tape. These were used to transfer individual input commands or data or even entire programs to the machine. To enter data or programs, the “programmer” had to make holes at predefined points in these tapes using a punching tool. The holes were then read by the machine: Pins with springs pressed down when there was a hole in the strip, closing an electrical contact. Once the machine had executed the command, the tape advanced a little and the machine prepared to read the next command.

Source: flickr
Although this technique was fundamental to programming, there were significant limitations. The Z3 did not support jump instructions and could only process loops to a very limited extent. Simple loops could be realized by connecting the start and end of the tape; however, termination conditions were missing. This severely limited the possibilities and meant that the Z3 could not be considered a universal computer in today’s sense. Programs could not be changed dynamically during execution or depend on intermediate results.
Input/ Output
In addition to the input via punched tape, the Z3 could also read numbers via a typewriter keyboard. To make this possible, a command had to be executed in the program sequence via the punched tape to indicate to the control unit that a keyboard input should be read. This function made it possible, for example, to prepare programs such as multiplications with placeholders and repeat them with different values, without making changes to the program itself – remarkably similar to today’s programs with variables as inputs, which are a “template”, so to speak.

Source: Wikimedia Commons
However, the number range of inputs was limited; you were only able to enter numbers with up to 4 decimal places, followed by an exponent in the range -8 to 8. This meant, for example, that the smallest possible number was 1 × 10^-8 and the largest was 9.999 × 10^8. These limitations resulted from technical restrictions in the design of the Z3.
For the output, the number range was only slightly larger; here the largest number was 19.999 and the smallest 0.0001 – again, the exponents ranged from -8 to 8. Instead of printing results, the Z3 displayed them through rows of lamps: There was a row for each decimal place; for a particular digit, a certain number of lamps lit up according to its size – for example, five lamps for a five. In addition, there were separate rows for positive and negative exponents.
The Z3 as the Basis for Modern Computers
Many of the concepts that Konrad Zuse used in his Z3 are still fundamental components of modern computers today. The control unit and the arithmetic unit perform tasks that can also be found in today’s CPUs and the underlying logic remains remarkably similar.
Normalized floating point representation was controversial at the time, but later established itself as the standard since it provides an efficient way of dealing with large and small numbers and simplifies multiplication and division. Clock-based operations in the Z3 also resemble how today’s CPUs work, where clock cycles are crucial for synchronization.
A central feature of the Z3 was its programmability via punched tape. Although this method was limited in its possibilities, Zuse was far ahead of its time with this functionality. The separation of memory and program was only later popularized by John von Neumann, who is considered one of the fathers of computer science and laid the foundation for modern computers with his “Von Neumann architecture”. In addition, the concept of using registers in the arithmetic unit or in the CPU and thus shortening the access time to frequently used data goes back to von Zuse’s ideas.
The Often-Overlooked Importance of the Z3
Overall, it can be said that modern computers would not function as they do today without the legacy of Konrad Zuse. Many of his concepts are still being used almost 90 years after his first work – adapted and modernized by technological advances, of course.
In conclusion, however, it is important to emphasize that the achievements of Konrad Zuse and his Z3 often do not receive the recognition they deserve. While other early computer projects such as the ENIAC or the UNIVAC were in the spotlight, Zuse struggled with the difficult political situation of Nazi Germany. The Z3 also was destroyed in bombings during the Second World War, which meant that its achievements faded into the background for a long time. Only in recent years has it been increasingly recognized how groundbreaking the Z3 was for the development of computer science and what influence it had on future technologies.
Responsible for the content of this article is Marc Weerts.
Leave a Reply