I will be citing from the 1945 version of Konrad Zuse's paper Der Plankalkül, as published by the Zuse archive in a typeset version with LaTeX.
The Plankalkül language is very modular in nature. It builds complex calculations (Rechenpläne) from nested subroutines (Unterpläne, p. 13). There are no GOTO operations; only symbolic notations of places where a subroutine must be inserted into a plan.
Konrad Zuse deemed some of these plans so elementary that he tried to write them out systematically. Among the plans handling numbers there are some which might end with the result overruning the register. Therefore, they are given a second return value in the form of a bit that indicates such an overrun has happened (p. 122):
Der volle Rechenplan einer Operation enthält mitunter außer dem eigentlichen Resultat der Operation (z.B. Summe) Ergänzungsangaben wie das Signal der Stellenüberschreitung. Diese können durch das Operationszeichen nicht wiedergegeben werden. In solchen Fällen muß Kennzeichnung der Werte durch Planzeichen bzw. Resultatzeichen (z.B. R8.10) erfolgen.
DeepL translation:
The full calculation plan of an operation sometimes contains, apart from the actual result of the operation (e.g. sum), supplementary information such as the signal of the digit overrun. These cannot be represented by the operation sign. In such cases, the values must be marked with a plan or result sign (e.g. R8.10).
(The numbering of these plans is a bit confusing, probably because the editor did not fully master LaTeX typesetting.)
A summation might, for example, be written as (p.126, P8.64)
R( V, V ) ⇒ ( R, R )
V | 0 1 0 1
A | 8 8 8 0
with the second R value being annotated as Aussage: ”Stellenerhöhung“ (statement: position increase).
These signals might be undestood as exception handling, but also simply as an indication that the position increase (Erhöhung der Stellenzahl), described as P.9.26 on p. 145, must happen. This is then written out in a variation of the summation operation:
V +V ⇒ R
V | 0 1 0
A | 1.n 1.n 1.n + 1
...with more instructions following. The details are a bit beyond me, but it seems they compute the second R₁ value indicating whether a position increase actually happened.
The next part was identified by Thomas By for his answer, but I'd like to elaborate further. Zuse introduces computing with a halblogarithmische Form, a number type that resembles a floating point number in the complex number plain (p. 161ff). It is represented with a total of 32 bits, divided into three groups:
K0 |
K1 |
K2 |
I V S |
|
|
0 1 2 |
6 5 4 3 2 1 0 |
21 20 19 ... 0 |
K3 represents values in the 0...1 range in binary notation (so the lowest value is 2^-22). K1 is the binary exponent (the highest value being 2^7 - 1). The first three bits represent imaginary (I), sign (V, German Vorzeichen) and exceptional cases (S, German Sonderzeichen für Ausnahmewerte).
In case the S bit is set the K2 part is invalidated, and the meaning of the K1 part changes, representing multiple cases according to this table:
K0 |
K1 |
Meaning |
short symbol |
I V S |
|
|
|
0 1 2 |
1 2 3 4 5 |
|
|
+ |
- + + - - |
Zero |
0 |
+ |
- - + - + |
Very small |
≪ |
- + |
- - + + - |
Very large, sign unknown, real |
|∞| |
+ + |
- - + + - |
Very large, sign unknown, imaginary |
i|∞| |
- - + |
- - - + - |
Very large, negative, real |
-∞ |
- + + |
- - - + - |
Very large, positive, real |
+∞ |
+ - + |
- - - + - |
Very large, negative, imaginary |
-i∞ |
+ + + |
- - - + - |
Very large, positive, imaginary |
+i∞ |
+ |
+ - - - - |
Completely unknown |
? |
Zuse immediately mentions that the bits in K1 are not independent, so the above list of nine cases is exhaustive.
The table seems to indicate that I and V can have a third state, but it should rather be read that bits K1.2 and K1.5 invalidate the value of V, and K1.3 invalidates I.
These numbers are returned as results of computations, but can also be used as input. This way, some operations including "exceptional" values can still yield a "regular" result (like a summation with one summand being "too small"), or an exceptional result that has still a correct sign (subtraction with the second operand positive and "too large"). Algorithms for this are presented exhaustively on p. 176ff.
A paper on the reception of Zuse's Plankalkül (Katja Schunke 1998) identified the first American review of the language, a 1976 paper by Donald E. Knuth and Luis Trabb Pardo: The Early Development of Programming Languages. It tried to implement a test function f(t) = √|t| 5t^3 in 20 different languages, including the instruction to return an error code 999 meaning "too large" for some input values. They decided the PK program should return "+∞" instead of the expected error code (pp. 8-15).
In addition, I might point out that a number of plans are statements about sets or numbers (as in: "all members of the set differ from each other", p.66, P3.2). These statements might be used to decide if further operations on these sets or numbers are possible. But as far as I could see, there is no explicit notation or written-out plan that makes the positive outcome of such a statement a precondition for other computations.