A typical GT.M application is largely interactive and uses terminals extensively. By default, a GT.M process directs its terminal I/O to $PRINCIPAL. $PRINCIPAL identifies the terminal that the user signed onto in VMS.
While all terminals support the CTRAP deviceparameter, which optionally allows terminal input to optionally redirect program flow, only $PRINCIPAL supports CENABLE, which optionally allows the terminal user to invoke the Direct Mode shell.
Directly connected printers often appear to GT.M as a terminal (although printers generally do not provide input) regardless of whether the printer is connected to the computer with a high speed parallel interface, or an asynchronous terminal controller.