An ADAM instrumentation system typically consists of a number of separate programs which are loaded into various computers and which carry out their functions in response to receiving commands. A large part of their functionality involves either sending commands to some instrument and receiving data back from it, or sending commands to other ADAM tasks. It follows that communication is a key feature of an ADAM task, and one can expect that a task spends most of its time waiting for a communication of one sort or another. Experience indicates that it is very inconvenient if a task is only sensitive to the communication it is expecting - for example, it becomes very difficult for the user to intervene because there has been a change of plan. An ADAM task written as part of an instrumentation system should, therefore, be organised such that if it is waiting for something it can also receive a command. This document describes the ADAM facilities provided to enable you to write tasks which match this idea.