Skip to main content

Summary

The growth of automatic programming languages for computers poses certain problems in logical design and machine code programming. Most classical computers are not very well equipped for composite actions such as searching a list, block transfer, sorting etc. There is a marked tendency in computers today to cope for these macro-actions by means of built-in features. The purpose of this article is to show some ways to build up these macro-instructions from a coding system where the programmer has immediate access to the micro-programming of the machine. Unfortunately, this subject cannot be treated without referring to a particular machine code. For this the ZEBRA code has been selected.

After a short introduction into the features of ZEBRA, a survey is given of all sorts of complicated macro-actions and how they can be expressed in this very flexible microcode. One of the key stones is the feature to repeat an instruction. In this way often a multiple use can be made of a single instruction. Another feature is the generation of pieces of coding in fast registers which are subsequently executed. These pieces were not written out in full beforehand. This technique is called “under-water programming”. A considerable ingenuity is often required to devise the macro-instructions and this has given rise to the name “trickology” for the art of using this tricky programming.

Zusammenfassung

Die Entwicklung der automatischen Programmsprachen für Rechenautomaten erlegt der logischen Planung und der Festlegung des Maschinencodes gewisse Probleme auf. Die meisten klassischen Rechenautomaten sind in bezug auf zusammengesetzte Befehlsabläufe, wie beispielsweise Durchsuchen von Listen, Blocktransfer, Sortieren usw., nicht besonders gut ausgestattet. Heute besteht bei Rechenautomaten die deutliche Tendenz, solche Makroabläufe vor allem durch besondere, in die Maschine eingebaute Befehle zu bewältigen. In diesem Beitrag sollen einige Wege aufgezeigt werden, wie man solche Makrobefehle auch in einem Programmsystem aufbauen kann, in dem der Programmierer einen direkten Zugriff zum Mikroprogramm der Maschine hat. Unglücklicherweise kann man diesen Gegenstand jedoch nicht behandeln, ohne auf einen bestimmten Maschinencode zurückzugreifen. Es wird der Befehlscode des Rechenautomaten ZEBRA zugrunde gelegt.

Nach einer kurzen Einführung in die besonderen Merkmale von ZEBRA wird ein Überblick gegeben über alle möglichen Arten von komplizierten Makroabläufen und auf welche Weise man sie in diesem sehr flexiblen Mikrocode ausdrücken kann. Hierbei besteht einer der Hauptgedanken in der Möglichkeit zur Wiederholung eines Befehls. Auf diese Weise kann häufig ein einziger Befehl vielfach gebraucht werden. Ein anderes Merkmal besteht in der Erzeugung von Teilstücken des Programms in schnellen Registern, die nachher ausgeführt werden. Diese Teilstücke waren vorher nicht voll ausgeschrieben. Dieses Verfahren wird als „Unterwasserprogrammierung” bezeichnet. Da es jedoch häufig einer gewissen Erfindungskraft beim Zurechtlegen solcher Makroabläufe bedarf, so mag es gerechtfertigt sein, diese Programmierungsart als „Trickologie” zu bezeichnen.

Résumé

L’accroissement des langages de programmation automatique pour les grandes calculatrices électroniques pose certains problèmes quant à la réalisation logique et à la programmation en code-machine. La plupart des calculatrices classiques n’est pas très bien équipée pour les actions composées, telles que le traitement des listes, le transfert en bloc des mots, le tri des mots etc. A l’heure actuelle, il y a dans le domaine des calculatrices une forte tendance à assurer ces macro-actions au moyen de dispositifs incorporés dans la machine. Le but du présent article est d’indiquer les moyens pour réaliser ces macro-instructions à partir d’un système de code dans lequel le programmeur a un accès direct à la micro-programmation de la machine. Malheureusement ce sujet ne peut être traité sans se baser sur un code-machine particulier. A cet effet, a été choisi le code de la machine ZEBRA.

Après une brève introduction expliquant les caractéristiques de la ZEBRA, l’auteur donne un aperçu de toutes sortes de macro-actions compliquées en précisant comment elles peuvent être exprimées dans ce micro-code extrêmement flexible. Un des points d’appui du système est la possibilité de répéter une instruction permettant de faire d’une seule instruction un usage multiple. Une autre caractéristique est la création des fragments de code dans des registres rapides, fragments qui sont exécutés ensuite et qui ne sont pas écrits en toutes lettres au préalable. Cette technique est appelée celle de la «programmation submergée». Souvent, la composition des macro-instructions demande une grande ingéniosité, ce qui a donné lieu à la création du mot «Trucologie», par lequel on désigne l’art de la programmation.

Acknowledgement. Many of the tricks described in this contribution have been found by other people. The most prominent among these were Dr. G. van der Mey and Mr. J. G. van Leyden who invented the more subtle tricks. It must be further understood that much of the material is a result of close teamwork. The author wishes to express his warmest thanks to all concerned.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 49.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Bibliography

  1. Samelson, K., Bauer, F. L.: Sequentielle Formelübersetzung. Elektronische Rechenanlagen 1 (Nov. 1959) No. 4, pp. 176–182. (Engl, translation entitled “Sequential Formula Translation”, Communications ACM 3 (Febr. 1960) No. 2, pp. 76–83.)

    MATH  Google Scholar 

  2. Dijkstra, E. W.: Recursive Programming. Numerische Mathematik 2 (Oct. 1960) No. 5, pp. 312–318.

    Article  MathSciNet  MATH  Google Scholar 

  3. Davis, G. M.: The English Electric KDF 9 Computer System. The Computer Bulletin 4 (Dec. 1960) No. 3, pp. 119–120.

    Google Scholar 

  4. Lonergan, W., King, P.: Design of the B 5000 System. Datamation 7 (1961) No. 5, pp. 28–32.

    Google Scholar 

  5. Programming for EDSAC 2. The University Mathematical Laboratory, Cambridge, England 1958.

    Google Scholar 

  6. van der Poel, W. L. : The Logical Principles of Some Simple Computers. Dissertation, University of Amsterdam. Uitgeverij Excelsior, ‘s-Gravenhage 1956.

    Google Scholar 

  7. Kassel, L. : George Programming Manual. Report ANL—5995. Argonne National Laboratory, Lemont, 111. 1959.

    Google Scholar 

  8. Wilkes, M. V., Wheeler, D. J., Gill, S.: The Preparation of Programs for an Electronic Digital Computer. Addison Wesley Press, Cambridge, Mass. 1951. Revised Edition 1957.

    MATH  Google Scholar 

  9. Kudielka, V., Walk, K., Bandat, K., Lucas, P., Zemanek, H.: Programs for Logical Data Processing. Research Report, Mailtifterl Volltransistor-Rechenautomat, Vienna, February 1960.

    Google Scholar 

  10. Wilkes, M. V., Stringer, J. B.: Micro-programming and the .Design of the Control Circuits in an Electronic Digital Computer. Proc. Cambridge Philosoph. Soc. 49 (April 1953) Part 2, pp. 230–238.

    Article  MathSciNet  MATH  Google Scholar 

  11. Billing, H.: Die im Max-Planck-Institut für Physik und Astrophysik entwickelte Rechenanlage G 3. Elektron. Rechenanlagen 3 (April 1961) No. 2, pp. 83–84.

    MathSciNet  Google Scholar 

  12. Billing, H., Hopmann, W.: Mikroprogramm-Steuerwerk. Elektron. Rdsch. 9 (Oct. 1955) No. 10, pp. 349–353.

    Google Scholar 

  13. TR 4 — Telefunken. Digital Computer Newsletter 12 (Oct. 1960) No. 4. Reprinted in Communications ACM 3 (Oct. 1960) No. 10, pp. 586–589.

    Google Scholar 

  14. Gilmore Jr. J. T., Peterson, H. P.: A Functional Description of the TX—0 Computer. Memorandum 6 M—4789, Lincoln Laboratories, Massachusetts Institute of Technology, Cambridge, Mass., November 20, 1956.

    Google Scholar 

  15. Carr III J. W.: Programming and Coding — Section 17, Microprogramming. In: Handbook of Automation, Computation, and Control Vol. 2 (Eds.: E. M. Graebe, et al.). John Wiley, New York 1959, pp. 2251–2257.

    Google Scholar 

  16. Gill, S.: A Process for the Step-by-step Integration of Differential Equations in an Automatic Digital Computing Machine. Proc. Cambridge Philosoph. Soc. 47 (Jan. 1951) Part 1, pp. 96–108.

    Article  MATH  Google Scholar 

  17. Stantec Zebra Program Manual. Standard Telephones & Cables, Ltd., England 1958.

    Google Scholar 

  18. Devonald, C. H., Fotheringham, J. A.: The Atlas Computer. Datamation 7 (1961) No. 5, pp. 23–27.

    Google Scholar 

  19. Gill, S.: Neue Wege beim Bau von Großrechenanlagen (Atlas). Elektron. Rechenanlagen 3 (April 1961) No. 2, pp. 81–83.

    Google Scholar 

  20. Bendix G—20 System. Communications ACM 3 (May 1960) No. 5, pp. 325–328.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Walter Hoffmann

Rights and permissions

Reprints and permissions

Copyright information

© 1962 Springer Fachmedien Wiesbaden

About this chapter

Cite this chapter

van der Poel, W.L. (1962). Micro-programming and Trickology. In: Hoffmann, W. (eds) Digitale Informationswandler / Digital Information Processors / Dispositifs traitant des informations numériques. Vieweg+Teubner Verlag, Wiesbaden. https://doi.org/10.1007/978-3-322-96260-7_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-322-96260-7_7

  • Publisher Name: Vieweg+Teubner Verlag, Wiesbaden

  • Print ISBN: 978-3-322-96126-6

  • Online ISBN: 978-3-322-96260-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics