



          16.  CONTROLLED REFERENCE WORDS




                           16.  CONTROLLED REFERENCE WORDS


          The Controlled Reference Words are word definitions which,
          although not required, cannot be present with a non-standard
          definition in the vocabulary FORTH of a Standard System.  These
          words have present usage and/or are candidates for future
          standardization.

          -->          --                            I,M,79   "next-block"
                       --                            (compilation)        
               Continue interpretation on the next sequential block.  May
               be used within a colon definition that crosses a block
               boundary.

          .R           n +n --                       M,83          "dot-r"
               n is converted using BASE and then displayed right aligned
               in a field +n characters wide.  A leading minus sign is
               displayed if n is negative.  If the number of characters
               required to display n is greater than +n, an error condition
               exists.  See:  "number conversion"

          2*           w1 -- w2                      83        "two-times"
               w2 is the result of shifting w1 left one bit.  A zero is
               shifted into the vacated bit position.

          BL           -- 32                         79              "b-l"
               Leave the ASCII character value for space (decimal 32).

          BLANK        addr u --                     83                   
               u bytes of memory beginning at addr are set to the ASCII
               character value for space.  No action is taken if u is zero.

          C,           16b --                        83          "c-comma"
               ALLOT one byte then store the least-significant 8 bits of
               16b at HERE 1- .

          DUMP         addr u --                     M,79                 
               List the contents of u addresses starting at addr.  Each
               line of values may be preceded by the address of the first
               value.

          EDITOR       --                            83                   
               Execution replaces the first vocabulary in the search order
               with the EDITOR vocabulary.  See:  VOCABULARY

          EMPTY-BUFFERS --                           M,79  "empty-buffers"
               Unassign all block buffers.  UPDATEed blocks are not written
               to mass storage.  See:  BLOCK






                                         52





          16.  CONTROLLED REFERENCE WORDS


          END          flag --                       C,I,79               
                       sys --                        (compiling)          
               A synonym for UNTIL .

          ERASE        addr u --                     79
               u bytes of memory beginning at addr are set to zero.  No
               action is taken if u is zero.

          HEX          --                            29
               Set the numeric input-output conversion base to sixteen.

          INTERPRET    --                            M,83                 
               Begin text interpretation at the character indexed by the
               contents of >IN relative to the block number contained in
               BLK , continuing until the input stream is exhausted.  If
               BLK contains zero, interpret characters from the text input
               buffer.  See:  "input stream"

          K            -- w                          C,83                 
               w is a copy of the index of the second outer loop.  May only
               be used within a nested DO-LOOP or DO-+LOOP in the form, for
               example:                              
                       DO ... DO ... DO ... K ... LOOP ... +LOOP ... LOOP

          LIST         u --                          M,79                 
               The contents of screen u are displayed.  SCR is set to u.
               See:  BLOCK

          OCTAL        --                            83                   
               Set the numeric input-output conversion base to eight.

          OFFSET       -- addr                       U,83                 
               The address of a variable that contains the offset added to
               the block number on the stack by BLOCK or BUFFER to
               determine the actual physical block number.

          QUERY        --                            M,83                 
               Characters are received and transferred into the memory area
               addressed by TIB .  The transfer terminates when either a
               "return" is received or the number of characters transferred
               reaches the size of the area addressed by TIB .  The values
               of >IN and BLK are set to zero and the value of #TIB is set
               to the value of SPAN .  WORD may be used to accept text from
               this buffer.  See:  EXPECT  "input stream"

          RECURSE      --                            C,I,83               
                       --                            (compiling)          
               Compile the compilation address of the definition being
               compiled to cause the definition to later be executed
               recursively.

          SCR          -- addr                       U,79          "s-c-r"
               The address of a variable containing the number of the
               screen most recently LISTed.



                                         53





          16.  CONTROLLED REFERENCE WORDS


          SP@          -- addr                       79        "s-p-fetch"
               addr is the address of the top of the stack just before SP@
               was executed.

          THRU         u1 u2 --                      M,83                 
               Load consecutively the blocks from u1 through u2.

          U.R          u +n --                       M,83        "u-dot-r"
               u is converted using the value of BASE and then displayed as
               an unsigned number right aligned in a field +n characters
               wide.  If the number of characters required to display u is
               greater than +n, an error condition exists.  See:  "number
               conversion"












































                                         54

