WRITEコマンドは、現デバイスへその引数で指定された文字ストリームを転送します。
WRITEコマンドのフォーマットは:
W[RITE][:tvexpr] expr|*intexpr|fcc[,...]
オプションでコマンド直後に続く真理値の式は、GT.Mがコマンドを実行するかどうかをコントロールする後置コマンドです。
式の引数は、WRITEのテキストを提供します。
WRITEの引数が整数式に続いて先頭にアスタリスク(*)が付いている場合、WRITEは、式の整数評価で指定されたASCIIコードに関連付けられている1つのASCII文字を出力します。
WRITEの引数には、書式制御文字があります; 制御文字のフォーマットは、仮想カーソルの位置を変更します: 感嘆符(!) は新しい行を生成し、番号記号 (#) は新しいページを生成し、式に続くクエスチョンマーク (?) は、仮想カーソルが指定された列の "左側" にあることを提供する式の整数評価によって指定された列へ仮想カーソルを移動します; もし仮想カーソルが指定された列の左側にない場合は、テキストは、現在のカーソル位置にプリントされます。
間接指定演算子と1つ以上のWRITEの引数リストに評価される原子式(expression atom)は、WRITEのための正当な引数を構成します。
UTF-8モードで、WRITEコマンドは、出力デバイスの文字エンコーディングとしてOPENデバイスで指定された文字セットを使用します。もし文字セットが"M"または"UTF-8"を指定している場合、GT.Mは変換なしでデータを書き込みます。もし文字セットが "UTF-16"、"UTF-16LE"、"UTF-16BE" を指定している場合、データはUTF-8でエンコードされていると仮定し、WRITEは文字セットのデバイスパラメータで指定された文字エンコーディングに変換します。
もしWRITEコマンドが、UTF-8モードで不正な文字を見つけた場合、それは、VIEW "BADCHAR" の設定に関係なく、実行時エラーを生成します。