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