The Nodal Language

Historical Notes

Recovered Fragments of documentation

Here you will find pointers to a small number of historic fragments concerning the Nodal programming language. Nodal was initally designed to control the CERN Super Proton Synchrotron (SPS) The construction work started around 1972, and the SPS was commissioned in 1975. At that time it was controlled by a distributed computer system. The Nord-10 (soon to be followed by Nord-100) computers were supplied by Norsk Data, Oslo. The equipment for the data communication links was supplied by TITN, Paris. The application programs were written in the Nodal language. The language provided facilities for data acquisition, human interaction devices and graphic display.

With the advent of microprocessors, scaled-down Nodal versions were ported to Pace (from National Semiconductor, Santa Clara), to mc68000 (from Motorola, Schaumburg) and possibly also to other architectures. The Touch Terminal which served as an operator interface to a Nord-100 harnessed with Nodal, also incorporated Nodal on a mc68000. Notably, this was the setup that helped Simon van der Meer in his work on the CERN Antiproton Accumulator (AA). Work which qualified him for his share of the 1984 Nobel price in physics.

The original versions of Nodal were written in assembly code of the target computer architecture. Macros somewhat eased porting to other architectures. An early port to Modula-2 was attempted, but with the advent of Unix a pragmatic port to the C-language was completed.

Subsequent additions greatly enlarged the available features. For control purposes, the ultimate version was prepared for the CERN Proton Synchrotron (PS). The language was maintained at CERN, at least until 1998. For obscure reasons, the language fell out of favor in accelerator control; much to the advantage of other, presumably more structured and object oriented languages. With that transition, the ability for the equipment groups to program the applications themselves, without engaging professional software engineers, was effectively sacrificed.

Versions of Nodal are known to have been ported to at least the following computer systems:

Below is a small collection of recovered documents; some with their original references:

Title / Subject Brief Description of the Topic Publication Reference / Comment
Nodal and Controls Publications related to Nodal and Controls. Reference to Nodal and Controls on the CERN Document Server.
The man page for the PS Nodal This is a comprehensive discription of the functions and features of Nodal made available in the CERN Proton Synchrotron Accelerator (PS) . This is a Web-a-lized version of the man-page found in the Nodal C-Source Distribution.
Nodal - the second life of the accelerator control language This paper describes the C implementation of Nodal. CERN-PS-93-52-CO
Presented at ICALEPS, Berlin, October 1993
Nodal Functions for the PC-AT Xenix This is a bare-bone list of the user functions available on the PC-AT Xenix version of Nodal. Web-a-lized from:
SPS/ACC/Note/87-8
LEP Controls Note 81
Nodal for the PC-AT Xenix This is a guide for the user of Nodal on the IBM PC/AT running Xenix. It is an addendum to the suite of Nodal related manuals with the specific operational details of Xenix Nodal. SPS/ACC/Note 87-7
LEP Controls Note 80
Timing: mc68000 versus IBM PC-AT This document shows a comparison of the Nodal execution speed on the Motorola mc68000 and the IBM PC-AT, vintage 1986. Private communication 1986
Experience with the MacIntrotte This paper describes the use of the MacIntrotte during the commissioning of the CERN-LEP pre-injector. PROCEEDINGS OF THE 1987 IEEE Particle Accelerator Conference
The MacIntrotte Mobile Console Description of the MacIntrotte IEEE Transactions on Nuclear Science, Vol. NS-32, No. 5, October 1985
Proposal for the LEP Control System This is Michael C. Crowley-Milling's proposal for the control system of the CERN Large Electron–Positron Collider (LEP). CERN-LEP/DI/83-20
Nodal Course Material This is course material (in the French tongue) which was used to train the SPS operators working in the main control room. CERN/SPS/83-24 (EBS)
A Multi-Processor Multi-Task Control Structure for the CERN SPS Chris Saltmarsh elaborates on the future software structure to control accelerators. SPS/AOP/Note/83-8/0325T
Evolution of Control Systems for Accelerators Michael C. Crowley-Milling exposes his view on accelerator contol in 1982. 7th CERN School of Computing, Zinal, Switzerland, 29 Aug - 11 Sep 1982
Evolution of Control Systems for Accelerators This reference contains a description of the Touch Terminal Topical Conference on the Application of Microprocessors to High-energy Physics Experiments, Geneva, Switzerland, 4 - 6 May 1981
NODAL in the Touch Terminal This note describes the entry and return conditions for the subroutines which make up the Nodal interpreter as implemented in the Independent Crate Controller (ICC) for the Touch Terminal. SPS/AOP/CO/Note/79-29

Sessions:

  1. MINI-COMPUTER SYSTEMS AND NODAL
  2. MACHINE CODE SUBROUTINES
  3. PROGRAMMING FOR THE CONSOLES
Course material presented to the SPS Operations team, prepared by C.G. Harrison/CERN

Related Notes:

  1. SPS/AOP/DV/Note/77-25
  2. SPS/AOP/DV/Note/77-26
  3. SPS/AOP/DV/Note/77-29
THE NODAL SYSTEM FOR THE SPS - 1974 In this report M.C. Crowley-Milling, J.T. Hyman and G.C. Shering present a description of the Nodal language as it was originally set up for the control system of the CERN Super Proton Synchrotron (SPS) then under construction. Lab II-CO/74-2-EN
LE SYSTEME NODAL POUR LE SPS - 1974 Le document ci-dessus présenté en français. Lab II-CO/74-2-FR
NODAL User Functions
Short Descriptions and Parameter Formats
Brief specifications are given of all Nodal user functions that were available at the console/display computer system in Block 1, lab. 2-A17, in 1974. Lab II-CO/CE/Int. Note/PF/74-24

__________

2017-09-24 (psa) some lost references replaced, HTML simplified
2007-11-16 (psa) corrections prompted by Alastair Bland
2007-11-15 (psa) initial compilation of retrieved documents