1 1 Q VZ 10-1 10-2 10-3 10-4 10-5 10-6 10-7 10-8 101 100
      1 0 Q VZ 109 108 107 106 105 104 103 102 101 100
                                                                                                                                                           
      0 1 Q BEDINGUNG HAUPTBEF. ZUSÄTZE X K B H G S V W M 101 100 103 102 101 100
      OPERATION INDEX ADRESSE

 

  VZ 109 108 107 106 105 104 103 102 101 100
  ZAHL  

 
    BEDINGUNG HAUPTBEFEHL ZUSÄTZE X K B H G S V W M
  BEFEHL  

       
      INDEX   ADRESSE

 

   
    H A ANZEIGE     IZ Y

   Bereit      Stop      Pseudo   TFB TFZ   Q   Z13   Z14   Z15   ADS

Mailüfterl
Dezimaler Volltransistor-Rechenautomat

Built by Heinz Zemanek and his team at the Technical University of Vienna from 1955 to 1958.
Emulated by Norbert Kehrer in 2007 and 2017 (https://norbertkehrer.github.io).
Lochstreifen / Paper tape
 
Eingabe / Input: 1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16  
 
Ausgabe / Output: 1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16  
Trace  

Mailüfterl

DEZIMALER VOLLTRANSISTOR-RECHENAUTOMAT

Original machine built by Dr. Heinz Zemanek and his team in Vienna/Austria from 1956 to 1958.

Emulator written by Norbert Kehrer in January/February 2007 (Java version) and in June/July 2017 (JavaScript version).

Web site: https://norbertkehrer.github.io

Mailüfterl machine

The Mailüfterl was a fully transistorized, serial, decimal-and-binary drum computer with 50 words of immediate-access core storage. The 3,000-rpm drum stored 10,000 48-bit words. Instructions were of the one-address type, fully utilizing a whole word, as they included references to the core store, condition on execution, and indication of how the address is to be modified or interpreted, etc. Addition took 0.8 ms. Multiplication and division were effected by subroutines, multiplication taking 26 ms.

The machine was built by Dr. Heinz Zemanek and his team in Vienna/Austria from 1956 to 1958. The Team members were Heinz Zemanek, Kurt Bandat, Rudolf Bodo, Viktor Kudielka, Kurt Walk, Peter Lucas, and Eugen Mühldorf.

Das Mailüfterl war ein volltransistorisierter, serieller, dezimal-binärer Trommelspeicherrechner mit 50 Worten Kernspeicher für den Schnellzugriff. Die mit 3.000 Umdrehungen pro Minute rotierende Trommel konnte 10.000 48-Bit-Worte speichern. Die Befehle waren vom 1-Adress-Typ und nutzten das gesamte Maschinenwort aus, weil sie Referenzen auf den Kernspeicher, eine Bedingung für die Ausführung und Angaben zur Adressmodifikation und -interpretation usw. beinhalteten. Die Addition dauerte 0,8 Millisekunden. Multiplikation und Division waren als Unterprgramme realisiert. Eine Multiplikation dauerte dadurch 26 Millisekunden.

Der Rechner wurde von Dr. Heinz Zemanek und seinem Team in Wien/Österreich zwischen 1956 und 1958 gebaut. Die Teammitglieder waren Heinz Zemanek, Kurt Bandat, Rudolf Bodo, Viktor Kudielka, Kurt Walk, Peter Lucas und Eugen Mühldorf.

Registers / Register

Registers are 48 bits wide. / Register sind 48 Bit breit.

AK...Accumulator / Akkumulator
MR...Multiplicator / Multiplikator
MD...Multiplicand / Multiplikand
BR...Instruction register / Befehlsregister
BZ...Program counter / Befehlszähler
RS...Return address / Rückkehradresse

Instruction format / Befehlsformat

47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Tab Q Condition
Bedingung
Main instr.
Hauptbefehl
Additional instr.
Zusatz
X K B H G S V W M Index Address
Adresse

Conditions / Bedingungen

0...Z0...Unconditional / ohne Bedingung
1...Z1...LSD(MR) ≠ 0
2...Z2...(AK) ≥ (MD)
3...Z3...(AK) ≥ 0
4...Z4...(AK) < 0
5...Z5...unused / unbenutzt
6...Z6...unused / unbenutzt
7...Z7...Tetrade 11 of MR ≥ 5
8...Z8...(MD) < 0
9...Z9...(AK) contains Q mark / (AK) enthält Q-Zeichen
10...Z10...unused / unbenutzt
11...Z11...(AK) ≠ (MD)
12...Z12...(AK) = 0
13...Z13...Switch Z13 is on / Schalter Z13 eingeschaltet
14...Z14...Switch Z14 is on / Schalter Z14 eingeschaltet
15...Z15...Switch Z15 is on / Schalter Z15 eingeschaltet

Main instructions / Hauptbefehle

0...N...Zero operation / keine Operation
1...A...Decimal Addition / Dezimale Addition
2...E...Extraction / Extraktion
3...I...Conjunction / Konjunktion
4...D...Disjunction / Disjunktion
5...OA...Binary Addition / Binäre Addition
6...F...Not equivalence / Antivalenz
7...TI...Transfer to core / Kernspeichertransport
8...TN...Transfer to drum / Trommelspeichertransport
9...YA...Recurrent addition / Wiederholte Addition
10...U...Write to memory / In den Speicher schreiben
11...YN...Recurrent zero operation / Wiederholtes Nichtstun
12...J...Read from memory / Aus dem Speicher lesen
13......unused / unbenutzt
14......unused / unbenutzt
15......unused / unbenutzt

Additional instructions / Zusätze

0......No additional operation / keine zusätzliche Operation
1...C...Clear accumulator / Akkumulator löschen
2...L...Shift accumulator left / Akkumulator nach links verschieben
3...R...Shift accumulator right / Akkumulator nach rechts verschieben
4...OL...Shift accumulator left binary / Akkumulator binär nach links verschieben
5...OR...Shift accumulator right binary / Akkumulator binär nach rechts verschieben
6...PQ...Set Q mark / Q-Zeichen setzen
7...PP...Clear Q mark / Q-Zeichen löschen

Functional bits / Funktionale Bits

X...Jump / Sprung
K...Address is core store address / Adresse ist Kernspeicheradresse
B...Address is pseudo address / Adresse ist Pseudoadresse
H...Address addition (Effective address = index + address) / Adressaddition (Effektive Adresse = Index + Adresse)
G...Address substitution (Effective address = contents of address) / Adresssubstitution (Effektive Adresse = Inhalt der Adresse)
S...Subtraction / Subtraktion
V...Clear MR / MR löschen
W...Add 1 to (MR) / 1 zu (MR) addieren
M...Add -1 to (MR) / -1 zu (MR) addieren

Special combinations / Spezielle Kombinationen

XA...Jump with addition in the MR / Sprung mit Addition
XB...Recurrent jump / Wiederholungssprung
XAB...Block transfer / Blocktransport
ZkXB...Recurrent jump with condition / Bedingter Wiederholungssprung
XU...Jump with storing return instruction / Sprung mit automatischer Notierung des Rückkehrbefehls
XUB...Recurrent jump with storing return instruction / Wiederholungssprung mit automatischer Notierung des Rückkehrbefehls
ZkXUB...Conditional recurrent jump with storing return instruction / Bedingter Wiederholungssprung mit automatischer Notierung des Rückkehrbefehls

Using the Emulator / Bedienung des Emulators

Do this: And now, try out software which was written in the fifties and early sixties of the last century and probably has not been run for 60 years now!

Mache das:

Und jetzt probiere Software aus, die in den Fünfziger- und Sechziger-Jahren des vorigen Jahrhunderts geschrieben wurde und wahrscheinlich 60 Jahre lang nicht mehr gelaufen ist!

Viel Spaß wünscht euch Norbert!