6.1.2033 POSTPONE
CORE

Interpretation: Interpretation semantics for this word are undefined.

Compilation: ( <spaces>name -- )

Skip leading space delimiters. Parse name delimited by a space. Find name. Append the compilation semantics of name to the current definition. An ambiguous condition exists if name is not found.

See: 3.4.1 Parsing.

6.1.2050 QUIT
CORE
( -- ) ( R: i*x -- )

Empty the return stack, store zero in SOURCE-ID if it is present, make the user input device the input source, and enter interpretation state. Do not display a message. Repeat the following:

state, all processing has been completed, and no ambiguous condition exists.

See: 3.4 The Forth text interpreter.

6.1.2060 R>
r-from CORE

Interpretation: Interpretation semantics for this word are undefined.

Execution: ( -- x ) ( R: x -- )

Move x from the return stack to the data stack.

See: 3.2.3.3 Return stack, 6.1.0580 >R, 6.1.2070 R@, 6.2.0340 2>R, 6.2.0410 2R>, 6.2.0415 2R@.

6.1.2070 R@
r-fetch CORE

Interpretation: Interpretation semantics for this word are undefined.

Execution: ( -- x ) ( R: x -- x )

Copy x from the return stack to the data stack.

See: 3.2.3.3 Return stack, 6.1.0580 >R, 6.1.2060 R>, 6.2.0340 2>R, 6.2.0410 2R>, 6.2.0415 2R@.

6.1.2120 RECURSE
CORE

Interpretation: Interpretation semantics for this word are undefined.

Compilation: ( -- )

Append the execution semantics of the current definition to the current definition. An ambiguous condition exists if RECURSE appears in a definition after DOES>.

See: 6.1.1250 DOES>, 6.1.2120 RECURSE.

6.1.2140 REPEAT
CORE

Interpretation: Interpretation semantics for this word are undefined.

Compilation: ( C: orig dest -- )

Append the run-time semantics given below to the current definition, resolving the backward reference dest. Resolve the forward reference orig using the location following the appended run-time semantics.

Run-time: ( -- )

Continue execution at the location given by dest.

See: 6.1.0760 BEGIN, 6.1.2430 WHILE.

6.1.2160 ROT
rote CORE
( x1 x2 x3 -- x2 x3 x1 )

Rotate the top three stack entries.

6.1.2162 RSHIFT
r-shift CORE
( x1 u -- x2 )

Perform a logical right shift of u bit-places on x1, giving x2. Put zeroes into the most significant bits vacated by the shift. An ambiguous condition exists if u is greater than or equal to the number of bits in a cell.

6.1.2165 S"
s-quote CORE

Interpretation: Interpretation semantics for this word are undefined.

Compilation: ( ccc<quote> -- )

Parse ccc delimited by " (double-quote). Append the run-time semantics given below to the current definition.


        Run-time:       ( -- c-addr u )

Return c-addr and u describing a string consisting of the characters ccc. A program shall not alter the returned string.

See: 3.4.1 Parsing, 6.2.0855 C", 11.6.1.2165 S".

6.1.2170 S>D
s-to-d CORE
( n -- d )

Convert the number n to the double-cell number d with the same numerical value.

6.1.2210 SIGN
CORE
( n -- )

If n is negative, add a minus sign to the beginning of the pictured numeric output string. An ambiguous condition exists if SIGN executes outside of a <# #> delimited number conversion.

6.1.2214 SM/REM
s-m-slash-rem CORE
( d1 n1 -- n2 n3 )

Divide d1 by n1, giving the symmetric quotient n3 and the remainder n2. Input and output stack arguments are signed. An ambiguous condition exists if n1 is zero or if the quotient lies outside the range of a single-cell signed integer.

See: 3.2.2.1 Integer division, 6.1.1561 FM/MOD, 6.1.2370 UM/MOD.

6.1.2216 SOURCE
CORE
( -- c-addr u )

c-addr is the address of, and u is the number of characters in, the input buffer.

6.1.2220 SPACE
CORE
( -- )

Display one space.

6.1.2230 SPACES
CORE
( n -- )

If n is greater than zero, display n spaces.

6.1.2250 STATE
CORE
( -- a-addr )

a-addr is the address of a cell containing the compilation-state flag. STATE is true when in compilation state, false otherwise. The true value in STATE is non-zero, but is otherwise implementation-defined. Only the following standard words alter the value in STATE: : (colon), ; (semicolon), ABORT, QUIT, :NONAME, [ (left-bracket), and ] (right-bracket).

Note:
A program shall not directly alter the contents of STATE.

See: 3.4 The Forth text interpreter, 6.1.0450 :, 6.1.0460 ;, 6.1.0670 ABORT, 6.1.2050 QUIT, 6.1.2500 [, 6.1.2540 ], 6.2.0455 :NONAME, 15.6.2.2250 STATE.

6.1.2260 SWAP
CORE
( x1 x2 -- x2 x1 )

Exchange the top two stack items.

6.1.2270 THEN
CORE

Interpretation: Interpretation semantics for this word are undefined.

Compilation: ( C: orig -- )

Append the run-time semantics given below to the current definition. Resolve the forward reference orig using the location of the appended run-time semantics.

Run-time: ( -- )

Continue execution.

See: 6.1.1310 ELSE, 6.1.1700 IF.

6.1.2310 TYPE
CORE
( c-addr u -- )

If u is greater than zero, display the character string specified by c-addr and u.

When passed a character in a character string whose character-defining bits have a value between hex 20 and 7E inclusive, the corresponding standard character, specified by 3.1.2.1 graphic characters, is displayed. Because different output devices can respond differently to control characters, programs that use control characters to perform specific functions have an environmental dependency.

See: 6.1.1320 EMIT.

6.1.2320 U.
u-dot CORE
( u -- )

Display u in free field format.

6.1.2340 U<
u-less-than CORE
( u1 u2 -- flag )

flag is true if and only if u1 is less than u2.

See: 6.1.0480 <.

6.1.2360 UM*
u-m-star CORE
( u1 u2 -- ud )

Multiply u1 by u2, giving the unsigned double-cell product ud. All values and arithmetic are unsigned.

6.1.2370 UM/MOD
u-m-slash-mod CORE
( ud u1 -- u2 u3 )

Divide ud by u1, giving the quotient u3 and the remainder u2. All values and arithmetic are unsigned. An ambiguous condition exists if u1 is zero or if the quotient lies outside the range of a single-cell unsigned integer.

See: 3.2.2.1 Integer division, 6.1.1561 FM/MOD, 6.1.2214 SM/REM.

6.1.2380 UNLOOP
CORE

Interpretation: Interpretation semantics for this word are undefined.

Execution: ( -- ) ( R: loop-sys -- )

Discard the loop-control parameters for the current nesting level. An UNLOOP is required for each nesting level before the definition may be EXITed. An ambiguous condition exists if the loop-control parameters are unavailable.

See: 3.2.3.3 Return stack.

6.1.2390 UNTIL
CORE

Interpretation: Interpretation semantics for this word are undefined.

Compilation: ( C: dest -- )

Append the run-time semantics given below to the current definition, resolving the backward reference dest.

Run-time: ( x -- )

If all bits of x are zero, continue execution at the location specified by dest.

See: 6.1.0760 BEGIN.

6.1.2410 VARIABLE
CORE
( <spaces>name -- )

Skip leading space delimiters. Parse name delimited by a space. Create a definition for name with the execution semantics defined below. Reserve one cell of data space at an aligned address.

name is referred to as a variable.

name Execution: ( -- a-addr )

a-addr is the address of the reserved cell. A program is responsible for initializing the contents of the reserved cell.

See: 3.4.1 Parsing.

6.1.2430 WHILE
CORE

Interpretation: Interpretation semantics for this word are undefined.

Compilation: ( C: dest -- orig dest )

Put the location of a new unresolved forward reference orig onto the control flow stack, under the existing dest. Append the run-time semantics given below to the current definition. The semantics are incomplete until orig and dest are resolved (e.g., by REPEAT).

Run-time: ( x -- )

If all bits of x are zero, continue execution at the location specified by the resolution of orig.

6.1.2450 WORD
CORE
( char <chars>ccc<char> -- c-addr )

Skip leading delimiters. Parse characters ccc delimited by char. An ambiguous condition exists if the length of the parsed string is greater than the implementation-defined length of a counted string.

c-addr is the address of a transient region containing the parsed word as a counted string. If the parse area was empty or contained no characters other than the delimiter, the resulting string has a zero length. A space, not included in the length, follows the string. A program may replace characters within the string.

Note:
The requirement to follow the string with a space is obsolescent and is included as a concession to existing programs that use CONVERT. A program shall not depend on the existence of the space.

See: 3.3.3.6 Other transient regions, 3.4.1 Parsing.

6.1.2490 XOR
x-or CORE
( x1 x2 -- x3 )

x3 is the bit-by-bit exclusive-or of x1 with x2.

6.1.2500 [
left-bracket CORE

Interpretation: Interpretation semantics for this word are undefined.

Compilation: Perform the execution semantics given below.

Execution: ( -- )

Enter interpretation state. [ is an immediate word.

See: 3.4 The Forth text interpreter, 3.4.5 Compilation, 6.1.2540 ].

6.1.2510 [']
bracket-tick CORE

Interpretation: Interpretation semantics for this word are undefined.

Compilation: ( <spaces>name -- )

Skip leading space delimiters. Parse name delimited by a space. Find name. Append the run-time semantics given below to the current definition.

An ambiguous condition exists if name is not found.

Run-time: ( -- xt )

Place name's execution token xt on the stack. The execution token returned by the compiled phrase ['] X is the same value returned by ' X outside of compilation state.

See: 3.4.1 Parsing, A.6.1.0070 ', A.6.1.2033 POSTPONE, D.6.7 Immediacy.

6.1.2520 [CHAR]
bracket-char CORE

Interpretation: Interpretation semantics for this word are undefined.

Compilation: ( <spaces>name -- )

Skip leading space delimiters. Parse name delimited by a space. Append the run-time semantics given below to the current definition.

Run-time: ( -- char )

Place char, the value of the first character of name, on the stack.

See: 3.4.1 Parsing, 6.1.0895 CHAR.

6.1.2540 ]
right-bracket CORE
( -- )

Enter compilation state.

See: 3.4 The Forth text interpreter, 3.4.5 Compilation, 6.1.2500 [.

Table of Contents
Next Section