What is the instruction set of the Z4?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
3
down vote

favorite
1












I am able to find a few instructions, such as:




  • Fin (presumably "Fine", as in the end of a musical score, ends a program),


  • Fin', (a conditional Fin),


  • St (possibly "Start" -- the need for this is unclear),


  • Up (My guess is "Unterprogramm" which means subroutine, since it apparently invokes subroutine At1,


  • x =? (Apparently checks the subroutine's return value, which is stored in location 63),

But I cannot find a complete reference to the Z4 instruction set, nor does anyone seem to have implemented any emulator. I hope this information has not been lost to obscurity!



What is the complete instruction set of the Z4?










share|improve this question

















  • 1




    Bonus points if you can comment on whether the instructions were the same or different from the other computers built by Konrad Zuse.
    – Wilson
    2 hours ago














up vote
3
down vote

favorite
1












I am able to find a few instructions, such as:




  • Fin (presumably "Fine", as in the end of a musical score, ends a program),


  • Fin', (a conditional Fin),


  • St (possibly "Start" -- the need for this is unclear),


  • Up (My guess is "Unterprogramm" which means subroutine, since it apparently invokes subroutine At1,


  • x =? (Apparently checks the subroutine's return value, which is stored in location 63),

But I cannot find a complete reference to the Z4 instruction set, nor does anyone seem to have implemented any emulator. I hope this information has not been lost to obscurity!



What is the complete instruction set of the Z4?










share|improve this question

















  • 1




    Bonus points if you can comment on whether the instructions were the same or different from the other computers built by Konrad Zuse.
    – Wilson
    2 hours ago












up vote
3
down vote

favorite
1









up vote
3
down vote

favorite
1






1





I am able to find a few instructions, such as:




  • Fin (presumably "Fine", as in the end of a musical score, ends a program),


  • Fin', (a conditional Fin),


  • St (possibly "Start" -- the need for this is unclear),


  • Up (My guess is "Unterprogramm" which means subroutine, since it apparently invokes subroutine At1,


  • x =? (Apparently checks the subroutine's return value, which is stored in location 63),

But I cannot find a complete reference to the Z4 instruction set, nor does anyone seem to have implemented any emulator. I hope this information has not been lost to obscurity!



What is the complete instruction set of the Z4?










share|improve this question













I am able to find a few instructions, such as:




  • Fin (presumably "Fine", as in the end of a musical score, ends a program),


  • Fin', (a conditional Fin),


  • St (possibly "Start" -- the need for this is unclear),


  • Up (My guess is "Unterprogramm" which means subroutine, since it apparently invokes subroutine At1,


  • x =? (Apparently checks the subroutine's return value, which is stored in location 63),

But I cannot find a complete reference to the Z4 instruction set, nor does anyone seem to have implemented any emulator. I hope this information has not been lost to obscurity!



What is the complete instruction set of the Z4?







instruction-set zuse






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 2 hours ago









Wilson

9,084541111




9,084541111







  • 1




    Bonus points if you can comment on whether the instructions were the same or different from the other computers built by Konrad Zuse.
    – Wilson
    2 hours ago












  • 1




    Bonus points if you can comment on whether the instructions were the same or different from the other computers built by Konrad Zuse.
    – Wilson
    2 hours ago







1




1




Bonus points if you can comment on whether the instructions were the same or different from the other computers built by Konrad Zuse.
– Wilson
2 hours ago




Bonus points if you can comment on whether the instructions were the same or different from the other computers built by Konrad Zuse.
– Wilson
2 hours ago










3 Answers
3






active

oldest

votes

















up vote
2
down vote













Konrad Zuse—the first relay computer




The Z4 made use of a unit called a Planfertigungsteil (program construction unit),which was used to produce punch tapes, containing instructions for the Z4 in a very easy way. For this reason, it was possible to learn the programming of the Z4 in as little as three hours. The Z4 had a large instruction set in order to calculate complicated scientific programs. The arithmetic processor was a powerful binary floating processor. The set of instructions is as follows:



  1. Instructions for Input: <-, At1, etc.: These allow numbers to be read from the punch tape.


  2. Instructions for Output: ->, D, L, etc.: These instructions cause binary numbers to be converted into their decimal equivalents and the results to be displayed with lamps, on the MERCEDES typewriter as floating or fixed point numbers, or on the punch tape.


  3. Instruction for reading from memory: A n. For example A 17. This reads the contents of memory cell 17 into the Register R1. If Register R1 is occupied, then the contents are loaded into Register R2.


  4. Instruction for writing to memory: S n. For example S 18. This writes the contents of Register R1 into the memory cell 18.


  5. Dyadic operations: +, -, x, /, MAX, and MIN.


  6. Monadic operations: x2, SQR(x), 1/x, | x | , sign(x), x*1/2, x*2, x*(-1), x*10, x*3, x*1/3, x*1/5, x*1/7, x*Pi, x*1/Pi.


  7. Instructions for comparison: x = 0, x >= 0, | x | = infinity test the value in Register R1 and set Register R1 to +1 if the condition is fulfilled, if not, then the contents of Register R1 are set to –1.


  8. A conditional branch instruction: SPR. The instruction SPR skips the punch tape to the instruction ST, if Register R1 contains +1 (if Register R1 contains –1 then there is no impact).


  9. Instructions for switching the punch tape readers (the Z4 had two punch tape readers).


Like the Z3, the Z4 supported powerful arithmetic exception handling. The computing times were: addition and memory access, half a second; multiplication, 3 seconds; division and square root, 6 seconds; overall performance, 2000 instructions, or 1000 arithmetic operations per hour.







share|improve this answer



























    up vote
    1
    down vote













    Horst Zuse (Konrad Zuse's son, a computer science professor by trade) has a Homepage where he supplies (and, partially, sells) various pieces of information, booklets and CDs and DVDs about his father's work.



    The Z4 had two floating point registers R1 and R2, that were used for calculations. Monadic operations operated on R1 only, Dyadic operations on R1 and R2. Results always went to R1, R2 was deleted.



    The "Instruction set" of the Z4 was as follows:




    • Ablesebefehl A n (e.g. A 17) - reads memory cell 17 into R1 or R2 (R2 if R1 is in use)


    • Speicherbefehl S n (e.g. S 18) - Stores R1 to memory cell 18

    • Dyadic operations: + - x / MAJ (Maximum) Min.

    • Monadic operations: x^2 SQR(x) 1/x IxI sgn(x) x*½ x*2 x*(-1) x*10 x*3 x*1/3 x*1/5 x*1/7 x*pi x*1/pi.

    • Comparison operation with zero, positive, infinite(i.e. NaN) test the number in R1 and return +1 if the condition matches, -1 if not

    • The conditional jump (SPR) was a later addition and included on specific request of the Zürich University (ETH), the first commercial customer. It allows to jump forward over code sequences when R1 is +1, the jump will not be executed when R1 is -1. Instructions up to the instruction ST will be skipped if the jump is taken. SPR was normally combined with the comparisons above

    • UP (Change punch reader, Unterplan) is something that might look like an I/O operation, but actually is much more. The next instructions after UP are read from the secondary punch tape reader, until a FIN instruction is encountered there (which switches back to the primary reader). As the Z4 didn't have loop or backwards jump instructions, this could be used to program subroutines on the secondary reader, or even loops by glueing the secondary punch tape into a (physical) loop and run it around.

    • Output instructions (D, L) transfer register contents into human-readable form and emit them to the "display" (a set of lamps), secondary punch tape (external storage), or typewriter

    The Z4 handled, like the Z3, floating point exceptions in a pretty "modern" way. Numbers that exceed the supported FP range (1E-20 - 1E20) are stored as overflow ("sehr groß") or underflow ("unbestimmt"). Once a number is stored as that, any follow-up calculation with that number is secured to never reach a valid value again (just like +NaN and -NaN in modern FPUs do).



    Some fun-facts:



    • The ETH Zürich, the first commercial customer, rented off the machine
      to third parties at 1 Swiss Rappen/instruction.

    • During its whole lifetime at ETH Zürich, the Z4 executed about 100k operations.

    • If you want to visit the machine, it's still there in the "Deutsches Museum
      München"

    • Operating frequency in today's measures was about 40Hz

    • The machine operated on 32-bit words and registers





    share|improve this answer





























      up vote
      0
      down vote













      This page, put online by his son, gives a good overview of the Z4 instruction set - most important, it's in English as well :))



      (I know, this is a link only answer, but I'm on the run, more detailed later on)






      share|improve this answer




















      • What if Up is called from the Unterprogramm?
        – Wilson
        2 hours ago










      • It looks like that page has confused "Monadic" and "Dyadic" operations, oder?
        – Wilson
        2 hours ago










      • In the list? yes - as monadic is used the right way in the paragraph right before. UP called on reader two will advance it to the next program start and execute there - AFAIR
        – Raffzahn
        1 hour ago










      Your Answer







      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "648"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      convertImagesToLinks: false,
      noModals: false,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      noCode: true, onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













       

      draft saved


      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f7930%2fwhat-is-the-instruction-set-of-the-z4%23new-answer', 'question_page');

      );

      Post as a guest






























      3 Answers
      3






      active

      oldest

      votes








      3 Answers
      3






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      2
      down vote













      Konrad Zuse—the first relay computer




      The Z4 made use of a unit called a Planfertigungsteil (program construction unit),which was used to produce punch tapes, containing instructions for the Z4 in a very easy way. For this reason, it was possible to learn the programming of the Z4 in as little as three hours. The Z4 had a large instruction set in order to calculate complicated scientific programs. The arithmetic processor was a powerful binary floating processor. The set of instructions is as follows:



      1. Instructions for Input: <-, At1, etc.: These allow numbers to be read from the punch tape.


      2. Instructions for Output: ->, D, L, etc.: These instructions cause binary numbers to be converted into their decimal equivalents and the results to be displayed with lamps, on the MERCEDES typewriter as floating or fixed point numbers, or on the punch tape.


      3. Instruction for reading from memory: A n. For example A 17. This reads the contents of memory cell 17 into the Register R1. If Register R1 is occupied, then the contents are loaded into Register R2.


      4. Instruction for writing to memory: S n. For example S 18. This writes the contents of Register R1 into the memory cell 18.


      5. Dyadic operations: +, -, x, /, MAX, and MIN.


      6. Monadic operations: x2, SQR(x), 1/x, | x | , sign(x), x*1/2, x*2, x*(-1), x*10, x*3, x*1/3, x*1/5, x*1/7, x*Pi, x*1/Pi.


      7. Instructions for comparison: x = 0, x >= 0, | x | = infinity test the value in Register R1 and set Register R1 to +1 if the condition is fulfilled, if not, then the contents of Register R1 are set to –1.


      8. A conditional branch instruction: SPR. The instruction SPR skips the punch tape to the instruction ST, if Register R1 contains +1 (if Register R1 contains –1 then there is no impact).


      9. Instructions for switching the punch tape readers (the Z4 had two punch tape readers).


      Like the Z3, the Z4 supported powerful arithmetic exception handling. The computing times were: addition and memory access, half a second; multiplication, 3 seconds; division and square root, 6 seconds; overall performance, 2000 instructions, or 1000 arithmetic operations per hour.







      share|improve this answer
























        up vote
        2
        down vote













        Konrad Zuse—the first relay computer




        The Z4 made use of a unit called a Planfertigungsteil (program construction unit),which was used to produce punch tapes, containing instructions for the Z4 in a very easy way. For this reason, it was possible to learn the programming of the Z4 in as little as three hours. The Z4 had a large instruction set in order to calculate complicated scientific programs. The arithmetic processor was a powerful binary floating processor. The set of instructions is as follows:



        1. Instructions for Input: <-, At1, etc.: These allow numbers to be read from the punch tape.


        2. Instructions for Output: ->, D, L, etc.: These instructions cause binary numbers to be converted into their decimal equivalents and the results to be displayed with lamps, on the MERCEDES typewriter as floating or fixed point numbers, or on the punch tape.


        3. Instruction for reading from memory: A n. For example A 17. This reads the contents of memory cell 17 into the Register R1. If Register R1 is occupied, then the contents are loaded into Register R2.


        4. Instruction for writing to memory: S n. For example S 18. This writes the contents of Register R1 into the memory cell 18.


        5. Dyadic operations: +, -, x, /, MAX, and MIN.


        6. Monadic operations: x2, SQR(x), 1/x, | x | , sign(x), x*1/2, x*2, x*(-1), x*10, x*3, x*1/3, x*1/5, x*1/7, x*Pi, x*1/Pi.


        7. Instructions for comparison: x = 0, x >= 0, | x | = infinity test the value in Register R1 and set Register R1 to +1 if the condition is fulfilled, if not, then the contents of Register R1 are set to –1.


        8. A conditional branch instruction: SPR. The instruction SPR skips the punch tape to the instruction ST, if Register R1 contains +1 (if Register R1 contains –1 then there is no impact).


        9. Instructions for switching the punch tape readers (the Z4 had two punch tape readers).


        Like the Z3, the Z4 supported powerful arithmetic exception handling. The computing times were: addition and memory access, half a second; multiplication, 3 seconds; division and square root, 6 seconds; overall performance, 2000 instructions, or 1000 arithmetic operations per hour.







        share|improve this answer






















          up vote
          2
          down vote










          up vote
          2
          down vote









          Konrad Zuse—the first relay computer




          The Z4 made use of a unit called a Planfertigungsteil (program construction unit),which was used to produce punch tapes, containing instructions for the Z4 in a very easy way. For this reason, it was possible to learn the programming of the Z4 in as little as three hours. The Z4 had a large instruction set in order to calculate complicated scientific programs. The arithmetic processor was a powerful binary floating processor. The set of instructions is as follows:



          1. Instructions for Input: <-, At1, etc.: These allow numbers to be read from the punch tape.


          2. Instructions for Output: ->, D, L, etc.: These instructions cause binary numbers to be converted into their decimal equivalents and the results to be displayed with lamps, on the MERCEDES typewriter as floating or fixed point numbers, or on the punch tape.


          3. Instruction for reading from memory: A n. For example A 17. This reads the contents of memory cell 17 into the Register R1. If Register R1 is occupied, then the contents are loaded into Register R2.


          4. Instruction for writing to memory: S n. For example S 18. This writes the contents of Register R1 into the memory cell 18.


          5. Dyadic operations: +, -, x, /, MAX, and MIN.


          6. Monadic operations: x2, SQR(x), 1/x, | x | , sign(x), x*1/2, x*2, x*(-1), x*10, x*3, x*1/3, x*1/5, x*1/7, x*Pi, x*1/Pi.


          7. Instructions for comparison: x = 0, x >= 0, | x | = infinity test the value in Register R1 and set Register R1 to +1 if the condition is fulfilled, if not, then the contents of Register R1 are set to –1.


          8. A conditional branch instruction: SPR. The instruction SPR skips the punch tape to the instruction ST, if Register R1 contains +1 (if Register R1 contains –1 then there is no impact).


          9. Instructions for switching the punch tape readers (the Z4 had two punch tape readers).


          Like the Z3, the Z4 supported powerful arithmetic exception handling. The computing times were: addition and memory access, half a second; multiplication, 3 seconds; division and square root, 6 seconds; overall performance, 2000 instructions, or 1000 arithmetic operations per hour.







          share|improve this answer












          Konrad Zuse—the first relay computer




          The Z4 made use of a unit called a Planfertigungsteil (program construction unit),which was used to produce punch tapes, containing instructions for the Z4 in a very easy way. For this reason, it was possible to learn the programming of the Z4 in as little as three hours. The Z4 had a large instruction set in order to calculate complicated scientific programs. The arithmetic processor was a powerful binary floating processor. The set of instructions is as follows:



          1. Instructions for Input: <-, At1, etc.: These allow numbers to be read from the punch tape.


          2. Instructions for Output: ->, D, L, etc.: These instructions cause binary numbers to be converted into their decimal equivalents and the results to be displayed with lamps, on the MERCEDES typewriter as floating or fixed point numbers, or on the punch tape.


          3. Instruction for reading from memory: A n. For example A 17. This reads the contents of memory cell 17 into the Register R1. If Register R1 is occupied, then the contents are loaded into Register R2.


          4. Instruction for writing to memory: S n. For example S 18. This writes the contents of Register R1 into the memory cell 18.


          5. Dyadic operations: +, -, x, /, MAX, and MIN.


          6. Monadic operations: x2, SQR(x), 1/x, | x | , sign(x), x*1/2, x*2, x*(-1), x*10, x*3, x*1/3, x*1/5, x*1/7, x*Pi, x*1/Pi.


          7. Instructions for comparison: x = 0, x >= 0, | x | = infinity test the value in Register R1 and set Register R1 to +1 if the condition is fulfilled, if not, then the contents of Register R1 are set to –1.


          8. A conditional branch instruction: SPR. The instruction SPR skips the punch tape to the instruction ST, if Register R1 contains +1 (if Register R1 contains –1 then there is no impact).


          9. Instructions for switching the punch tape readers (the Z4 had two punch tape readers).


          Like the Z3, the Z4 supported powerful arithmetic exception handling. The computing times were: addition and memory access, half a second; multiplication, 3 seconds; division and square root, 6 seconds; overall performance, 2000 instructions, or 1000 arithmetic operations per hour.








          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 2 hours ago









          UncleBod

          3273




          3273




















              up vote
              1
              down vote













              Horst Zuse (Konrad Zuse's son, a computer science professor by trade) has a Homepage where he supplies (and, partially, sells) various pieces of information, booklets and CDs and DVDs about his father's work.



              The Z4 had two floating point registers R1 and R2, that were used for calculations. Monadic operations operated on R1 only, Dyadic operations on R1 and R2. Results always went to R1, R2 was deleted.



              The "Instruction set" of the Z4 was as follows:




              • Ablesebefehl A n (e.g. A 17) - reads memory cell 17 into R1 or R2 (R2 if R1 is in use)


              • Speicherbefehl S n (e.g. S 18) - Stores R1 to memory cell 18

              • Dyadic operations: + - x / MAJ (Maximum) Min.

              • Monadic operations: x^2 SQR(x) 1/x IxI sgn(x) x*½ x*2 x*(-1) x*10 x*3 x*1/3 x*1/5 x*1/7 x*pi x*1/pi.

              • Comparison operation with zero, positive, infinite(i.e. NaN) test the number in R1 and return +1 if the condition matches, -1 if not

              • The conditional jump (SPR) was a later addition and included on specific request of the Zürich University (ETH), the first commercial customer. It allows to jump forward over code sequences when R1 is +1, the jump will not be executed when R1 is -1. Instructions up to the instruction ST will be skipped if the jump is taken. SPR was normally combined with the comparisons above

              • UP (Change punch reader, Unterplan) is something that might look like an I/O operation, but actually is much more. The next instructions after UP are read from the secondary punch tape reader, until a FIN instruction is encountered there (which switches back to the primary reader). As the Z4 didn't have loop or backwards jump instructions, this could be used to program subroutines on the secondary reader, or even loops by glueing the secondary punch tape into a (physical) loop and run it around.

              • Output instructions (D, L) transfer register contents into human-readable form and emit them to the "display" (a set of lamps), secondary punch tape (external storage), or typewriter

              The Z4 handled, like the Z3, floating point exceptions in a pretty "modern" way. Numbers that exceed the supported FP range (1E-20 - 1E20) are stored as overflow ("sehr groß") or underflow ("unbestimmt"). Once a number is stored as that, any follow-up calculation with that number is secured to never reach a valid value again (just like +NaN and -NaN in modern FPUs do).



              Some fun-facts:



              • The ETH Zürich, the first commercial customer, rented off the machine
                to third parties at 1 Swiss Rappen/instruction.

              • During its whole lifetime at ETH Zürich, the Z4 executed about 100k operations.

              • If you want to visit the machine, it's still there in the "Deutsches Museum
                München"

              • Operating frequency in today's measures was about 40Hz

              • The machine operated on 32-bit words and registers





              share|improve this answer


























                up vote
                1
                down vote













                Horst Zuse (Konrad Zuse's son, a computer science professor by trade) has a Homepage where he supplies (and, partially, sells) various pieces of information, booklets and CDs and DVDs about his father's work.



                The Z4 had two floating point registers R1 and R2, that were used for calculations. Monadic operations operated on R1 only, Dyadic operations on R1 and R2. Results always went to R1, R2 was deleted.



                The "Instruction set" of the Z4 was as follows:




                • Ablesebefehl A n (e.g. A 17) - reads memory cell 17 into R1 or R2 (R2 if R1 is in use)


                • Speicherbefehl S n (e.g. S 18) - Stores R1 to memory cell 18

                • Dyadic operations: + - x / MAJ (Maximum) Min.

                • Monadic operations: x^2 SQR(x) 1/x IxI sgn(x) x*½ x*2 x*(-1) x*10 x*3 x*1/3 x*1/5 x*1/7 x*pi x*1/pi.

                • Comparison operation with zero, positive, infinite(i.e. NaN) test the number in R1 and return +1 if the condition matches, -1 if not

                • The conditional jump (SPR) was a later addition and included on specific request of the Zürich University (ETH), the first commercial customer. It allows to jump forward over code sequences when R1 is +1, the jump will not be executed when R1 is -1. Instructions up to the instruction ST will be skipped if the jump is taken. SPR was normally combined with the comparisons above

                • UP (Change punch reader, Unterplan) is something that might look like an I/O operation, but actually is much more. The next instructions after UP are read from the secondary punch tape reader, until a FIN instruction is encountered there (which switches back to the primary reader). As the Z4 didn't have loop or backwards jump instructions, this could be used to program subroutines on the secondary reader, or even loops by glueing the secondary punch tape into a (physical) loop and run it around.

                • Output instructions (D, L) transfer register contents into human-readable form and emit them to the "display" (a set of lamps), secondary punch tape (external storage), or typewriter

                The Z4 handled, like the Z3, floating point exceptions in a pretty "modern" way. Numbers that exceed the supported FP range (1E-20 - 1E20) are stored as overflow ("sehr groß") or underflow ("unbestimmt"). Once a number is stored as that, any follow-up calculation with that number is secured to never reach a valid value again (just like +NaN and -NaN in modern FPUs do).



                Some fun-facts:



                • The ETH Zürich, the first commercial customer, rented off the machine
                  to third parties at 1 Swiss Rappen/instruction.

                • During its whole lifetime at ETH Zürich, the Z4 executed about 100k operations.

                • If you want to visit the machine, it's still there in the "Deutsches Museum
                  München"

                • Operating frequency in today's measures was about 40Hz

                • The machine operated on 32-bit words and registers





                share|improve this answer
























                  up vote
                  1
                  down vote










                  up vote
                  1
                  down vote









                  Horst Zuse (Konrad Zuse's son, a computer science professor by trade) has a Homepage where he supplies (and, partially, sells) various pieces of information, booklets and CDs and DVDs about his father's work.



                  The Z4 had two floating point registers R1 and R2, that were used for calculations. Monadic operations operated on R1 only, Dyadic operations on R1 and R2. Results always went to R1, R2 was deleted.



                  The "Instruction set" of the Z4 was as follows:




                  • Ablesebefehl A n (e.g. A 17) - reads memory cell 17 into R1 or R2 (R2 if R1 is in use)


                  • Speicherbefehl S n (e.g. S 18) - Stores R1 to memory cell 18

                  • Dyadic operations: + - x / MAJ (Maximum) Min.

                  • Monadic operations: x^2 SQR(x) 1/x IxI sgn(x) x*½ x*2 x*(-1) x*10 x*3 x*1/3 x*1/5 x*1/7 x*pi x*1/pi.

                  • Comparison operation with zero, positive, infinite(i.e. NaN) test the number in R1 and return +1 if the condition matches, -1 if not

                  • The conditional jump (SPR) was a later addition and included on specific request of the Zürich University (ETH), the first commercial customer. It allows to jump forward over code sequences when R1 is +1, the jump will not be executed when R1 is -1. Instructions up to the instruction ST will be skipped if the jump is taken. SPR was normally combined with the comparisons above

                  • UP (Change punch reader, Unterplan) is something that might look like an I/O operation, but actually is much more. The next instructions after UP are read from the secondary punch tape reader, until a FIN instruction is encountered there (which switches back to the primary reader). As the Z4 didn't have loop or backwards jump instructions, this could be used to program subroutines on the secondary reader, or even loops by glueing the secondary punch tape into a (physical) loop and run it around.

                  • Output instructions (D, L) transfer register contents into human-readable form and emit them to the "display" (a set of lamps), secondary punch tape (external storage), or typewriter

                  The Z4 handled, like the Z3, floating point exceptions in a pretty "modern" way. Numbers that exceed the supported FP range (1E-20 - 1E20) are stored as overflow ("sehr groß") or underflow ("unbestimmt"). Once a number is stored as that, any follow-up calculation with that number is secured to never reach a valid value again (just like +NaN and -NaN in modern FPUs do).



                  Some fun-facts:



                  • The ETH Zürich, the first commercial customer, rented off the machine
                    to third parties at 1 Swiss Rappen/instruction.

                  • During its whole lifetime at ETH Zürich, the Z4 executed about 100k operations.

                  • If you want to visit the machine, it's still there in the "Deutsches Museum
                    München"

                  • Operating frequency in today's measures was about 40Hz

                  • The machine operated on 32-bit words and registers





                  share|improve this answer














                  Horst Zuse (Konrad Zuse's son, a computer science professor by trade) has a Homepage where he supplies (and, partially, sells) various pieces of information, booklets and CDs and DVDs about his father's work.



                  The Z4 had two floating point registers R1 and R2, that were used for calculations. Monadic operations operated on R1 only, Dyadic operations on R1 and R2. Results always went to R1, R2 was deleted.



                  The "Instruction set" of the Z4 was as follows:




                  • Ablesebefehl A n (e.g. A 17) - reads memory cell 17 into R1 or R2 (R2 if R1 is in use)


                  • Speicherbefehl S n (e.g. S 18) - Stores R1 to memory cell 18

                  • Dyadic operations: + - x / MAJ (Maximum) Min.

                  • Monadic operations: x^2 SQR(x) 1/x IxI sgn(x) x*½ x*2 x*(-1) x*10 x*3 x*1/3 x*1/5 x*1/7 x*pi x*1/pi.

                  • Comparison operation with zero, positive, infinite(i.e. NaN) test the number in R1 and return +1 if the condition matches, -1 if not

                  • The conditional jump (SPR) was a later addition and included on specific request of the Zürich University (ETH), the first commercial customer. It allows to jump forward over code sequences when R1 is +1, the jump will not be executed when R1 is -1. Instructions up to the instruction ST will be skipped if the jump is taken. SPR was normally combined with the comparisons above

                  • UP (Change punch reader, Unterplan) is something that might look like an I/O operation, but actually is much more. The next instructions after UP are read from the secondary punch tape reader, until a FIN instruction is encountered there (which switches back to the primary reader). As the Z4 didn't have loop or backwards jump instructions, this could be used to program subroutines on the secondary reader, or even loops by glueing the secondary punch tape into a (physical) loop and run it around.

                  • Output instructions (D, L) transfer register contents into human-readable form and emit them to the "display" (a set of lamps), secondary punch tape (external storage), or typewriter

                  The Z4 handled, like the Z3, floating point exceptions in a pretty "modern" way. Numbers that exceed the supported FP range (1E-20 - 1E20) are stored as overflow ("sehr groß") or underflow ("unbestimmt"). Once a number is stored as that, any follow-up calculation with that number is secured to never reach a valid value again (just like +NaN and -NaN in modern FPUs do).



                  Some fun-facts:



                  • The ETH Zürich, the first commercial customer, rented off the machine
                    to third parties at 1 Swiss Rappen/instruction.

                  • During its whole lifetime at ETH Zürich, the Z4 executed about 100k operations.

                  • If you want to visit the machine, it's still there in the "Deutsches Museum
                    München"

                  • Operating frequency in today's measures was about 40Hz

                  • The machine operated on 32-bit words and registers






                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited 1 hour ago

























                  answered 1 hour ago









                  tofro

                  12.6k32672




                  12.6k32672




















                      up vote
                      0
                      down vote













                      This page, put online by his son, gives a good overview of the Z4 instruction set - most important, it's in English as well :))



                      (I know, this is a link only answer, but I'm on the run, more detailed later on)






                      share|improve this answer




















                      • What if Up is called from the Unterprogramm?
                        – Wilson
                        2 hours ago










                      • It looks like that page has confused "Monadic" and "Dyadic" operations, oder?
                        – Wilson
                        2 hours ago










                      • In the list? yes - as monadic is used the right way in the paragraph right before. UP called on reader two will advance it to the next program start and execute there - AFAIR
                        – Raffzahn
                        1 hour ago














                      up vote
                      0
                      down vote













                      This page, put online by his son, gives a good overview of the Z4 instruction set - most important, it's in English as well :))



                      (I know, this is a link only answer, but I'm on the run, more detailed later on)






                      share|improve this answer




















                      • What if Up is called from the Unterprogramm?
                        – Wilson
                        2 hours ago










                      • It looks like that page has confused "Monadic" and "Dyadic" operations, oder?
                        – Wilson
                        2 hours ago










                      • In the list? yes - as monadic is used the right way in the paragraph right before. UP called on reader two will advance it to the next program start and execute there - AFAIR
                        – Raffzahn
                        1 hour ago












                      up vote
                      0
                      down vote










                      up vote
                      0
                      down vote









                      This page, put online by his son, gives a good overview of the Z4 instruction set - most important, it's in English as well :))



                      (I know, this is a link only answer, but I'm on the run, more detailed later on)






                      share|improve this answer












                      This page, put online by his son, gives a good overview of the Z4 instruction set - most important, it's in English as well :))



                      (I know, this is a link only answer, but I'm on the run, more detailed later on)







                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered 2 hours ago









                      Raffzahn

                      37.3k483149




                      37.3k483149











                      • What if Up is called from the Unterprogramm?
                        – Wilson
                        2 hours ago










                      • It looks like that page has confused "Monadic" and "Dyadic" operations, oder?
                        – Wilson
                        2 hours ago










                      • In the list? yes - as monadic is used the right way in the paragraph right before. UP called on reader two will advance it to the next program start and execute there - AFAIR
                        – Raffzahn
                        1 hour ago
















                      • What if Up is called from the Unterprogramm?
                        – Wilson
                        2 hours ago










                      • It looks like that page has confused "Monadic" and "Dyadic" operations, oder?
                        – Wilson
                        2 hours ago










                      • In the list? yes - as monadic is used the right way in the paragraph right before. UP called on reader two will advance it to the next program start and execute there - AFAIR
                        – Raffzahn
                        1 hour ago















                      What if Up is called from the Unterprogramm?
                      – Wilson
                      2 hours ago




                      What if Up is called from the Unterprogramm?
                      – Wilson
                      2 hours ago












                      It looks like that page has confused "Monadic" and "Dyadic" operations, oder?
                      – Wilson
                      2 hours ago




                      It looks like that page has confused "Monadic" and "Dyadic" operations, oder?
                      – Wilson
                      2 hours ago












                      In the list? yes - as monadic is used the right way in the paragraph right before. UP called on reader two will advance it to the next program start and execute there - AFAIR
                      – Raffzahn
                      1 hour ago




                      In the list? yes - as monadic is used the right way in the paragraph right before. UP called on reader two will advance it to the next program start and execute there - AFAIR
                      – Raffzahn
                      1 hour ago

















                       

                      draft saved


                      draft discarded















































                       


                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f7930%2fwhat-is-the-instruction-set-of-the-z4%23new-answer', 'question_page');

                      );

                      Post as a guest













































































                      Comments

                      Popular posts from this blog

                      Long meetings (6-7 hours a day): Being “babysat” by supervisor

                      Is the Concept of Multiple Fantasy Races Scientifically Flawed? [closed]

                      Confectionery