                         IMP Core Environment Standard

                         Section 12: Archaic Procedures

       The procedures described in this section are never available as
    pre-defined objects.  Instead, they are provided by use of a pre-defined
    IMP include file as follows:

                from IMP include Archaisms

    *       string(255) function IN FILE NAME

               This procedure is identical to the predefined procedure INPUT
            NAME.

    *       integer function IN STREAM

               This procedure is identical to the predefined procedure INPUT
            STREAM.

    *       byte map LENGTH ( string(*) name S )

               Where the predefined procedure LENGTH returns the current
            length of the string S, this procedure returns a reference to
            that value, allowing the length of the string to be modified "on
            the fly".  This "hole" in the checking mechanisms defined in the
            IMP language is the reason for the change in definition.
            Adjustment of string length should normally be performed by the
            predefined procedure TRIM.

    *       routine NEW PAGE

               As with the NEW LINE procedure, NEW PAGE simply passes a
            single 8-bit data item to the procedure PRINT SYMBOL for
            processing by the stream facility associated with the currently
            selected output stream:

                routine New Page
                   Print Symbol(12)
                end

            Here the data item has value 12, which is the ISO/ASCII code for
            the FF (Form Feed) function.  This function requests that the
            output medium is advanced to the top of the next page, a concept
            which is clearly highly dependent on the physical device
            involved.  This complex device-dependence is the reason for the
            removal of NEW PAGE from the main body of the environment

            standard; its presence in the standard might lead users to
            expect that implementations should always do "the obvious thing"
            with this procedure; this requirement leads to excessive
            complexity in the otherwise simple text-handling facilities to
            identify devices and process them accordingly.  Most stream
            facilities will simply treat the value 12 as a normal data item,
            without attempting any special action.

    *       string(255) function OUT FILE NAME

               This procedure is identical to the predefined procedure
            OUTPUT NAME.

    *       integer function OUT STREAM

               This procedure is identical to the predefined procedure
            OUTPUT STREAM.

    *       constant string(1) SNL

               This string contains a single character whose value is NL.