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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Bibliography
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.)
Dijkstra, E. W.: Recursive Programming. Numerische Mathematik 2 (Oct. 1960) No. 5, pp. 312–318.
Davis, G. M.: The English Electric KDF 9 Computer System. The Computer Bulletin 4 (Dec. 1960) No. 3, pp. 119–120.
Lonergan, W., King, P.: Design of the B 5000 System. Datamation 7 (1961) No. 5, pp. 28–32.
Programming for EDSAC 2. The University Mathematical Laboratory, Cambridge, England 1958.
van der Poel, W. L. : The Logical Principles of Some Simple Computers. Dissertation, University of Amsterdam. Uitgeverij Excelsior, ‘s-Gravenhage 1956.
Kassel, L. : George Programming Manual. Report ANL—5995. Argonne National Laboratory, Lemont, 111. 1959.
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.
Kudielka, V., Walk, K., Bandat, K., Lucas, P., Zemanek, H.: Programs for Logical Data Processing. Research Report, Mailtifterl Volltransistor-Rechenautomat, Vienna, February 1960.
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.
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.
Billing, H., Hopmann, W.: Mikroprogramm-Steuerwerk. Elektron. Rdsch. 9 (Oct. 1955) No. 10, pp. 349–353.
TR 4 — Telefunken. Digital Computer Newsletter 12 (Oct. 1960) No. 4. Reprinted in Communications ACM 3 (Oct. 1960) No. 10, pp. 586–589.
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.
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.
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.
Stantec Zebra Program Manual. Standard Telephones & Cables, Ltd., England 1958.
Devonald, C. H., Fotheringham, J. A.: The Atlas Computer. Datamation 7 (1961) No. 5, pp. 23–27.
Gill, S.: Neue Wege beim Bau von Großrechenanlagen (Atlas). Elektron. Rechenanlagen 3 (April 1961) No. 2, pp. 81–83.
Bendix G—20 System. Communications ACM 3 (May 1960) No. 5, pp. 325–328.
Author information
Authors and Affiliations
Editor information
Rights 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