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.