Files-11 files are record structured, while TECO'S text buffer is ASCII stream. Thus TECO must make format conversions when reading and writing files. The conversion depends on the record attributes of the file. While reading a file, the records are packed into the buffer. If the file is implied carriage control (the standard RSX-11 source format) or Fortran carriage control, TECO inserts a carriage return and line feed after each record to make each record appear as a line of text in the buffer, unless the record ends with ESCAPE, carriage return, line feed, vertical tab, or form feed. A record ending in form feed is interpreted as an end of page mark; it stops the read operation and the form feed is not entered in the buffer. If the file has print file carriage control, TECO interprets the carriage control bytes and inserts the resulting carriage return and line feed characters about the record. If the input file has no carriage control (also called internal carriage control), TECO simply packs the records together in the text buffer.
On output, TECO scans the text buffer for carriage return, line feed, vertical tab, and form feed characters. Each such character delimits the end of an output record. If the output file is implied or Fortran carriage control, and the record ends with exactly carriage return / line feed, the carriage return and line feed are not output with the record; Otherwise, the record is output in its entirety. The carriage return and line feed are also output with the record if the record ends with ESCAPE / carriage return / line feed.
Switches may be applied to the input and output files to control their carriage control attributes. The switch /CR forces implied carriage control; /-CR forces no (internal) carriage control; /FT forces Fortran carriage control. When a carriage control switch is applied to an input file, the file is read as if it had that attribute; when the switch is applied to an output file, the file is written with that attribute. Applying a switch to an EB file specification causes the switch to apply to both input and output files. When an output file is created, its carriage control attributes are defaulted to those of the currently open input file as follows:
Input Output implied implied none implied FORTRAN FORTRAN print file implied
Files read with the EI command have their record attributes interpreted in the same manner. This leads to an unexpected side effect with EI files containing an entire command. The last record of the file presumably contains as its last characters the two alt modes which initiate execution of the macro. If the file is implied carriage control, however, there are also the final carriage return / line feed belonging to the last record, which remain in the type in buffer while the macro executes. If the macro attempts to receive input with the <CTRL/T> command, the carriage return / line feed will be the first two characters read. Alternatively, if the macro does no type in, the carriage return / line feed will be read by TECO as the first two characters of the next command. Then no asterisk (*) will appear as the prompt for the next command. The remedy for both cases is for the macro to execute an EI` command early on. This causes the remainder of the indirect file to be discarded and further input to be read from the terminal.