1 Introduction

ADAM tasks consist of user code wrapped up in the ‘ADAM fixed part’. The top level of the user’s code is a subroutine with the same name as the task and a single argument STATUS conforming to the normal Starlink inherited status strategy. The ADAM fixed part is provided by the task-building scripts, alink and ilink, and handles the interface with the outside world. The two main parts of the ADAM fixed part are:

The control subsystem
provided by the DTASK and TASK libraries and the ADAM message system, AMS). This allows a task to be run directly from the shell, or to be controlled from a user-interface (or another task) and to control subsidiary tasks. It makes use of the TASK library which maintains information about the task in its COMMON blocks and provides user facilities for writing complete instrumentation systems with control tasks running subsidiary tasks. For more details on this, see ADAM – Guide to Writing Instrumentation Tasks (SUN/134).
The parameter subsystem
provided by the SUBPAR, PARSECON and LEX libraries. This allows the task to obtain parameter values from a variety of sources, to output parameter values, to remember previous values and to share ‘GLOBAL’ parameter values with other tasks.

All the subroutine libraries involved are released as the Starlink Software Item PCS.

This document describes the control subsystem and the way it interacts with the message system and the parameter system.