5.13.5 Other Parts of the I/O System This section lists some of the other parts of REXX and the environments around REXX that may be considered a part of the I/O system. [Stack.] The stack be used to communicate with external environments. At the REXX side, the interface to the stack is the instructions PUSH, PULL, PARSE PULL, and QUEUE; and the built- in function QUEUED(). These can be used to communicate with external programs by storing data to be transferred on the stack. [The STREAM() built-in function.] This function is used to control various aspects about the files manipulated with the other standard I/O functions. The standard says very little about this function, and leaves it up to the implementor to specify the rest. Operations like opening, closing, truncating, and changing modes [The SAY instruction.] The SAY instruction can be used to write data to the default output stream. If you use redirection, you can indirectly use it to write data to a file. [The ADDRESS instruction.] The ADDRESS instruction and commands can be used to operate on files, depending on the power of your host environments and operating system. [The VALUE() built-in function.] The function VALUE(), when used with three parameters, can be used to communicate with external host environments and the operating system. However, this depends on the implementation of your interpreter. [SAA API.] The SAA API provides several operations that can be used to communicate between processes. In general, SAA API allows you to perform the operations listed above from a binary program written in a language other than REXX. And of course, I/O is performed whenever a REXX program or external function is started.