! ( 16b addr --- ) Stores 16 at addr. # ( +d1 --- +d2 ) +d1 is divided by BASE and the quotient is placed onto the stack. The remainder is con- verted to an ASCII character and appended to the output string toward lower memory ad- dresses. #>; ( 32b --- addr +n ) Terminates formatted (or pictured) output string (ready for TYPE ). #S ( +d --- 0 0 ) Converts all digits of an entire number into string. #TIB ( --- addr ) Returns the address of the user variable that holds the number of characters input. ' ( --- addr ) Returns <;name>;'s compilation address, addr. ( ( --- ) Starts a comment input. Comment is ended by a ) . (E.) (F:r -- )( -- addr +n) Convert the top number on the floating-point stack to its character string representation using the scientific notation. Addr is the address of the location where the character string representation of r is stored, and +n is the number of bytes. (F.) (F:r -- )( -- addr +n) Convert the top number on the floating-point stack to its character string representation using the fixed- point notation. Addr is the address of the location where the character string representation of r is stored, and +n is the num- ber of bytes. * ( w1 w2 --- w3 ) Multiplies w2 by w1 and leaves the product w3 onto the stack. */ ( n1 n2 n3 --- n4 ) Multiplies n2 by n1 and divides the product by n3. The quotient, n4 is placed on the stack. */MOD ( n1 n2 n3 --- n4 n5 ) n1 is multiplied by n2 producing a product which is divided by n3. The remainder, n4 and the quotient, n5 are then placed on the stack. + (w1 w2 --- w3 ) Adds w2 and w1 then leaves the sum, w3 on the stack. +! ( w1 addr --- ) Adds w1 to the value at addr then stores the sum at addr replacing its previous value. +LOOP ( n --- ), ( sys --- ) (compiling) Increments the DO LOOP index by n. , ( 16b --- ) Reserves 16b of space in the dictionary. - ( w1 w2 --- w3 ) Subtracts w2 from w1 and leaves the result, w3 on the stack. -ROLL ( n --- ) Removes the value on the top of stack and in- serts it to the nth place from the top of stack. -TRAILING ( addr +n1 --- addr +n2 ) Counts +n1 characters starting at addr and sub- tracts 1 from the count when a blank is encoun- tered. Leaves on the stack the final string count, n2 and addr. . ( n --- ) Removes n from the top of stack and displays it. ."; ( --- ) Displays the characters following it up to the delimiter "; . .( ( --- ) Displays string following .( delimited by ) . .LINE ( n1 n2 --- ) Display line of text from mass storage. .R ( n +n --- ) Displays the value n right justified in a field +n characters wide according to the value of BASE. .S ( --- ) Display stack contents without modifying the stack. / ( n1 n2 --- n3 ) Divides n1 by n2 and leaves the quotient n3 on the stack. /MOD ( n1 n2 --- n3 n4 ) Divides n1 by n2 then leaves on the stack the remainder n3 and the quotient n4. 0<; ( n --- flag ) Leaves a true flag if n is less than zero. 0= ( w --- flag ) Leaves a true flag if w is equal to zero. 0>; ( n --- flag ) Leaves a true flag if n is greater than zero. 1+ ( w1 --- w2 ) Adds 1 to w1 then leaves the sum, w2 on the stack. 1+! ( addr --- ) Adds one to the value at addr and stores the result at addr. 1- ( w1 --- w2 ) Subtract 1 from w1 then leaves the difference, w2 on the stack. 1-! ( addr --- ) Subtracts one from the value at addr and stores the result at addr. 2! ( 32b addr --- ) Stores 32b at addr. 2* ( w1 --- w2 ) Multiplies w1 by 2 to give w2. 2**X (F: r1 -- r2) Raise 2 to the r1 power giving r2. 2+ ( w1 --- w2 ) Adds two to w1 and leaves the sum, w2 on the stack. 2- ( w1 --- w2 ) Subtracts two from w1 and leaves the result, w2 on the stack. 2/ ( n1 --- n2 ) divides n1 by 2, giving n2 as the result. 2@ ( addr --- 32b ) Returns 32b from addr. 2CONSTANT ( 32b --- ) Creates a double length constant for a <;name>;. When <;name>; is executed, 32b is left on the stack. 2DROP ( 32b --- ) Removes 32b from the stack. 2DUP ( 32b --- 32b 32b ) Duplicates 32b. 2OVER ( 32b1 32b2 --- 32b1 32b2 32b3 ) 32b3 is a copy of 32b1 2ROT ( 32b1 32b2 32b3 --- 32b2 32b3 32b1 ) Rotates 32b1 to the top of the stack. 2SWAP ( 32b1 32b2 --- 32b2 32b1 ) Swaps 32b1 and 32b2 on the stack. 2VARIABLE ( --- ) Creates double-length variable for <;name>;. when <;name>; is executed, its parameter field address is placed on the stack. : ( --- sys ) Starts the definition of a word. Definition is terminated by a ; . :CASE ( n --- ), ( --- sys ) (compiling) Creates a dictionary entry for <;name>; in cur- rent and sets the compile mode. ; ( sys --- ) Terminates a colon-definiton. ;CODE ( --- ), ( sys1 --- sys2 ) (compiling) Terminates a defining-word. May only be used in compilation mode. ;S ( --- ) Stop interpretation. <; ( n1 n2 --- flag ) Leaves a true flag on stack if n1 is less than n2. <;# ( --- ) Starts a formatted (pictured) numeric output. Terminated by #>; . <;BUILDS ( --- ) Creates a new dictionary entry for <;name>; <;MARK ( --- addr ) Leaves current dictionary location to be resolved by <;RESOLVE . <;RESOLVE ( addr --- ) Compiles branch offset to location previously left by <;MARK . = ( w1 w2 --- flag ) Returns a true flag if w1 is equal to w2. >; ( n1 n2 --- flag ) Returns a true flag if n1 is greater than n2. >;<; ( 8b1/8b2 --- 8b2/8b1 ) Swaps the upper and lower bytes of the value on the stack. >;BODY ( addr1 --- addr2 ) Leaves on the stack the parameter field ad- dress, addr2 of a given field address, addr1. >;IN ( --- addr ) Leaves the address of the user variable >;IN which contains the number of bytes from the beginning of the input stream at any particular moment during interpretation. >;MARK ( --- addr ) Compiles zero in place of forward branch offset and marks it for future resolve. >;R ( 16b --- ) Removes 16b from user stack and place it onto return stack. >;RESOLVE ( addr --- ) Corrects branch offset previously compiled by >;mark to current dictionary location. ? ( addr --- ) Displays the contents of addr. ?BRANCH ( flag --- ) Compiles a conditional branch operation. ?COMP ( -- ) Checks for compilation mode, gives error if not. ?CSP ( -- ) Checks for stack integrity through defining process, gives error if not. ?DUP ( 16b --- 16b 16b ), ( 0 --- 0 ) Duplicates 16b if it is a non-zero. ?ERROR (flag n -- ) If flag is true, error n is initiated. ?EXEC ( -- ) Checks for interpretation mode, gives error if not. ?PAIRS (n1 n2 -- ) Checks for matched structure pairs, gives error if not. ?STACK ( --- ) Checks to see if stack is within limits, gives error if not ?TERMINAL ( --- flag ) True if any key is depressed. @ ( addr --- 16b ) Replaces addr with its 16b contents on top of the stack. @! ( 16b addr --- ) Stores 16 at address pointed to by addr. @@ ( addr --- 16b ) Replaces addr with 16b, 16b is contents of address pointed to by addr. [ ( --- ) Places the system into interpret state to ex- ecute non-immediate word/s during compilation. ['] ( --- addr ), ( --- ) Returns and compiles the code field address of a word in a colon-definition. [COMPILE] ( --- ) Causes an immediate word to be compiled. ] ( --- ) Places the system into compilation state. ] places a non-zero value into the user variable STATE. ABORT ( --- ) Clears the data stack and performs the function of QUIT . ABORT"; ( flag --- ), ( --- ) (compiling) If flag is true, message that follows "; is dis- played and the ABORT function is performed. If flag is false, the flag is dropped and execu- tion continues. ABS ( n --- u ) Leaves on the stack the absolute value, u of n. AGAIN ( --- ), ( sys --- ) (compiling) Affect an unconditional jump back to the start of a BEGIN-AGAIN loop. ALLOT ( w --- ) Reserves w bytes of dictionary space. AND ( 16b1 16b2 --- 16b3 ) Leaves the bitwise logical AND of 16b1 and 16b2 as 16b3. ATO4 ( --- n ) Returns address of subroutine call to high level word as indicated in D register. AUTOSTART ( addr --- ) Prepare autostart vector at addr which will cause <;name>; to be executed upon reset. Note: addr must be on a 1K byte boundary. BASE ( --- addr ) Leaves the address of the user variable contain- ing the numeric numeric conversion radix. BEGIN ( --- ), ( --- sys ) (compiling) Marks the start of a loop. BL ( --- 32 ) Puts the ASCII code for a space (decimal 32) on the stack. BLANK ( addr u --- ) Sets u bytes of memory beginning at addr to the ASCII code for space (decimal 32). BLK ( --- addr ) Leaves the address of the user variable contain- ing the the number of block that is currently being interpreted. BRANCH ( --- ) Compiles an unconditional branch operation. C! ( 16b addr --- ) Stores the least significant byte of 16b into addr. C, ( 16b --- ) Stores the least significant byte of 16b into a byte at the next available dictionary location. C/L ( --- n ) Maximum number of characters per line. C@ ( addr --- 8b ) Fetches the 8b contents from addr. CFA ( pfa --- cfa ) Alter parameter field pointer address to code field address. CMOVE ( addr1 addr2 u --- ) Moves towards high memory the u bytes at ad- dresses addr1 and addr2. CMOVE>; ( addr1 addr2 u --- ) Moves u bytes beginning at addr1 to addr2. CODE ( --- sys ) Creates an assembler definition. CODE-SUB ( --- sys ) Creates an assembler definition subroutine. COLD ( --- ) Cold starts FORTH. COMPILE ( --- ) Copies the compilation address of the next non- immediate word following COMPILE. CONSTANT ( 16b --- ) Creates a dictionary entry for <;name>;. CONTEXT ( --- addr ) Returns the address of a user variable that determines the vocabulary to be searched first in the dictionary. CONVERT ( +d1 addr1 --- +d2 addr2 ) Converts an input string into a number. COUNT ( addr1 --- addr2 +n ) Leaves the address, addr2 and the character count +n of text beginning at addr1. CR ( --- ) Generates a carriage return and line feed. CREATE ( --- ) Creates a dictionary entry for <;name>;. CURRENT ( --- addr ) Returns the address of the user variable specifying the vocabulary into which new word definitions will be entered. D+ ( wd1 wd2 --- wd3 ) Adds wd1 and wd2 and leaves the result, wd3 on stack. D- ( wd1 wd2 --- wd3 ) Subtracts wd2 from wd1 and returns the dif- ference wd3. D. ( d --- ) Displays the value of d. D.R ( d +n --- ) Displays the value of d right justified in a field +n characters wide. D0= ( wd --- flag ) Returns a true flag if wd is equal to zero. D2/ ( d1 --- d2 ) Divides d1 by 2 and gives quotient d2. D<; ( d1 d2 --- flag ) Leaves a true flag if d1 is less than d2; other- wise leaves a false flag. D= ( wd1 wd2 --- flag ) Returns a true flag if wd1 is equal to wd2. D>;F (d -- )(F: -- r) R is the floating-point equivalent of d. DABS ( d --- ud ) Returns the absolute value of d as ud. DECIMAL ( --- ) Sets the input-output numeric conversion base to ten. DEFUZZIFY ( addr1 addr2 8b --- u ) Combine raw fuzzy outputs to produce a single composite output. DEPTH ( --- +n ) Returns count +n of numbers on the data stack. DLITERAL ( 32b --- ) Compile a system dependent operation so that when later executed, 32b will be left on the stack. DMAX ( d1 d2 --- d3 ) Returns d3 as the greater of d1 or d2. DMIN ( d1 d2 --- d3 ) Returns d3 as the lesser of d1 or d2. DNEGATE ( d1 --- d2 ) Leaves the two's complement d2 of d1. DO ( w1 w2 --- ), ( --- sys ) (compiling) Repeats execution of words between DO LOOPs and DO +LOOPs, the number of times is specified by the limit from w2 to w1. DOES>; ( --- addr ), ( --- ) (compiling) Marks the termination of the defining part of the defining word <;name>; and begins the defini- tion of the run-time action for words that will later be defined by <;name>;. DP ( --- addr ) Put Dictionary Pointer address on stack. DPL ( --- addr ) Returns the address of the user variable con- taining the number of places after the frac- tional point for input conversion. DROP ( 16b --- ) Removes 16b from the data stack. DU<; ( ud1 ud2 --- flag ) Returns a true flag if ud1 is less than ud2. DUMP ( addr u --- ) Displays u bytes of memory starting at addr. DUP ( 16b --- 16b 16b ) Duplicates 16b. e (F: -- r1) Put natural value e (=2.718282) on the floating-point stack as r1. E. ( -- )(F:r -- ) Convert the top number on the floating-point stack to its character string representation using the scientific notation. EDELAY ( --- addr ) Put EEPROM programming delay variable onto the stack. EDP ( --- addr ) Put EEPROM memory pointer onto the stack. EE! ( 16b addr --- ) Stores 16b into addr in EEPROM. EEC! ( 16b addr --- ) Stores the least significant byte of 16b into addr in EEPROM. EEMOVE ( addr1 addr2 u --- ) Moves towards high memory the u bytes at ad- dresses addr1 and addr2. addr2 should be in EEPROM. EEWORD ( --- ) Moves code of last defined word from the codes memory to the EEPROM memory. ELSE ( --- ), ( sys1 --- sys2 ) (compiling) Allows execution of words between IF and ELSE if the flag is true, otherwise, it forces execu- tion of words after ELSE. EMIT ( 16b --- ) Displays the ASCII equivalent of 16b onto the screen. END ( flag --- ), ( sys --- ) (compiling) Performs the same function as UNTIL . See UNTIL . END-CODE ( sys --- ) Terminates an assembler definition. ERASE ( addr u --- ) Sets u bytes of memory to zero, beginning at addr. ERROR ( -- ) Begins error processing. EVALUATE-RULES ( addr1 addr2 --- ) Evaluate rules at addr1 on inputs at addr2 and store outputs at addr2. EVALUATE-WRULES ( addr1 addr2 --- ) Evalute rules at addr1 using weights from addr2. EXECUTE ( addr --- ) Executes the definition found at addr. EXIT ( --- ) Causes execution to leave the current word and go back to where the word was called from. EXPECT ( addr +n --- ) Stores up to +n characters into memory begin- ning at addr. EXRAM ( --- ) Enable external RAM. F! (addr -- )(F:r -- ) Store r at addr. F* (F:r1 r2 -- r3) Multiply r1 by r2 giving r3. F** (F:r1 r2 -- r3) Raise r1 to the r2 power giving r3. F+ (F:r1 r2 -- r3) Add r1 to r2, giving r3. F, (F:r -- ) Store r as a floating-point number in the next available dictionary location. F- (F:r1 r2 -- r3) Subtract r2 from r1, giving r3. F. (F:r --)( -- ) Print the top number on the floating-point stack on the screen using fixed-point notation. F.S ( -- ) Display the contents of the floating-point stack without modifying the stack. F/ (F:r1 r2 -- r3) Divide r1 by r2, giving r3. F0<; (F:r -- )( -- flag) flag is true if r is less than zero. F0= (F:r -- )( -- flag) flag is true if r is equal to zero. F2* (F:r1 -- r2) Multiply r1 by 2 giving r2. F2/ (F:r1 -- r2) Divide r1 by 2 giving r2. F<; (F:r1 r2 -- )( -- flag) flag is true if r1 is less than r2. F>;D (F:r -- )( -- d) Convert r to d. F? (addr -- ) Display the floating-point contents stored at addr. F@ (addr -- )(F: -- r) r is the value stored at addr. FABS (F:r1 -- r2) R2 is the absolute value of r1. FALOG (F:r1 -- r2) Raise 10 to the power r1, giving r2. FATAN (F:r1 -- r2) R2 is the principal radian whose tangent is r1. FATAN2 (F:r1 r2 -- r3 ) R3 is the radian angle whose tangent is r1/r2. FCONSTANT (F:r -- ) Define a constant <;name>; with value r. FCOS (F:r1 -- r2) r2 is the cosine of the radian angle r1. FDEPTH ( -- +n) +n is the number of values contained on separate floating point stack. FDP ( -- addr ) Place flash memory pointer onto stack. FDROP (F:r-- ) Remove r from the floating-point stack. FDUP (F:r -- r r) Duplicate r. FEXP (F:r1 -- r2) Raise e to the power r1, giving r2. FILL ( addr u 8b --- ) Fills u bytes, beginning at addr, with byte pat- tern 8b. FIND ( addr1 --- addr2 n ) Obtains an address of counted strings, addr1 from the stack. Searches the dictionary for the string. FL! ( 16b addr --- ) Store 16b into flash memory location addr FLASH ( --- ) Launch the Flash memory programmer. FLC! ( 8b addr --- ) Store byte 8b into flash location addr FLD ( --- addr ) Returns the address of the user variable which contains the value of the field length reserved for a number during output conversion. FLITERAL (F:r -- ) Compile r as a floating point literal. FLMOVE ( addr1 addr2 u --- ) Moves towards high memory the u bytes at addr1 and addr2. addr2 should be in flash ROM. FLN (F:r1 -- r2) R2 is the natural logarithm of r1. FLOAT+ (addr1 -- addr2) Add 6 to addr1. FLOATS (n1 -- n2) n2 is the size, in bytes, of n1 floating-point numbers. FLOG (F:r1 -- r2 ) R2 is the base 10 logarithm of r1. FLOOR (F:r1 -- r2) Round r1 using the ";round to negative infinity"; rule, giving r2. FLWORD ( --- ) Moves code of last defined word from the codes memory to the flash memory. FMAX (F:r1 r2 -- r3) r3 is the maximum of r1 and r2. FMIN (F:r1 r2 -- r3) r3 is the minimum of r2 and r3. FNEGATE (F:r1 -- r2) r2 is the negation of r1. FNIP (F:r1 r2 -- r2) Remove second number down from floating-point stack. FNUMBER (+d1 addr1 -- +d2 addr2) Converts an input string into a number. FORGET ( --- ) Deletes <;name>; from the dictionary. FORTH-83 ( --- ) Initializes FORTH-83 into the system. FOVER (F:r1 r2 -- r1 r2 r1) Place a copy of r1 on top of the floating-point stack. FROUND (F:r1 -- r2) Round r1 using the ";round to even"; rule, giving r2. FSIN (F:r1 -- r2 ) R2 is the sine of the radian angle r1. FSP ( -- addr) User variable holds floating-point stack pointer. FSP0 ( -- addr) User variable holds initial value of floating- point stack pointer. FSQRT (F:r1 -- r2) R2 is the square root of r1. FSWAP (F:r1 r2 -- r2 r1) Exchange the top two floating-point stack items. FTAN (F:r1 -- r2) R2 is the tangent of the radian angle r1. FUZZIFY ( addr1 addr2 u 8b --- ) Fuzzify value 8b into table addr2 with u membership functions pointed to by addr1. FVARIABLE ( -- ) Create a floating-point variable. Reserve 6 bytes of data memory in the dictionary. HERE ( --- addr ) Leaves the address of the next available dic- tionary location. HEX ( --- ) Sets the numeric input-output conversion base to sixteen. HOLD ( char --- ) Inserts character into a pictured numeric out- put string. I ( --- w ) Places the loop index onto the stack. ID. ( nfa --- ) Print <;name>; given name field address (NFA). IF ( flag --- ), ( --- sys ) (compiling) Allows a program to branch on condition. IMMEDIATE ( --- ) Marks the most recently created dictionary entry as a word that will be executed im- mediately even if FORTH is in compile mode. INTERPRET ( --- ) Begins text interpretation at the character in- dexed by the contents of >;IN relative to the block number contained in BLK, continuing until the input stream is exhausted. J ( --- w ) Returns the index of the next outer loop. K ( --- w ) Returns the index of the second outer loop in nested do loops. KEY ( --- 16b) Pauses to wait for a key to be pressed and then places the ASCII value of the key (n) on the stack. LATEST ( --- nfa ) Leaves name field address (nfa) of top word in CURRENT. LEAVE ( --- ) Forces termination of a DO LOOP. LFA ( pfaptr --- lfa ) Alter parameter field pointer address to link field address. LITERAL ( 16b --- ) Compile a system dependent operation so that when later executed, 16b will be left on the stack. LOG2 (F:r1 -- r2) R2 is the base 2 logarithm of r1. LOOP ( ---- ), ( sys --- ) (compiling) Defines the end point of a do-loop. MAX ( n1 n2 --- n3 ) Leaves the greater of n1 and n2 as n3. MESSAGE (n -- ) Prints error message # n. MIN ( n1 n2 --- n3 ) Leaves the lessr of n1 and n2 as n3. MOD ( n1 n2 --- n3 ) Divides n1 by n2 and leaves the remainder n3. NEGATE ( n1 --- n2 ) Leaves the two's complement n2 of n1. NFA ( pfaptr - nfa ) Alter parameter field pointer address to name field address. NOT ( 16b1 --- 16b2 ) Leaves the one's complement 16b2 of 16b1. NUMBER ( addr --- d ) Converts the counted string at addr to d accord- ing to the value of BASE . ODD-POLY (F: -- r1)(addr -- ) Evaluate odd-polynomial giving r1. OR ( 16b1 16b2 --- 16b3 ) Leaves the inclusive-or 16b3 of 16b1 an 16b2. OVER ( 16b1 16b2 --- 16b1 16b2 16b3 ) 16b3 is a copy of 16b1. PAD ( --- addr ) Puts onto stack the starting address in memory of scratchpad. PFAPTR ( nfa --- pfaptr ) Alter name field address to parameter field pointer address. PI (F: -- r1) Put the numerical value of pi on the floating- point stack as r1. PICK ( +n --- 16b ) Copies the data stack's +nth item onto the top. PLACES (n -- ) Set the number of decimal places (digits to the right of the radix point) displayed by E. and F. POLY (F: -- r1)(addr -- ) Evaluate polynomial giving r1. QUERY ( --- ) Stores input characters into text input buffer. QUIT ( --- ) Clears the return stack, stops compilation and returns control to current input device. R0 ( -- addr) Returns the address of the variable containing the initial value of the bottom of the return stack. R>; ( --- 16b ) 16b is removed from the return stack and placed onto the data stack. R@ ( --- 16b ) 16b is a copy of the top of the return stack. RAND_MAX ( --- +n ) The maximum random number. RANDOM ( --- +n ) Generate a random positive number. RECURSE ( --- ) Compile the compilation address of definition currently being defined. REPEAT ( --- ), ( sys --- ) (compiling) Terminates a BEGIN...WHILE...REPEAT loop. ROLL ( +n --- ) Removes the stack's nth item and places it onto the top of stack. ROT ( 16b1 16b2 16b3 --- 16b2 16b3 16b1 ) Rotates 16b1 to the top of the stack. RP! ( -- ) Initializes the bottom of the return stack. RP@ ( -- addr) addr is the address of the top of the return stack just before RP@ was executed. S->;D ( n --- d ) Sign extend single number to double number. S0 ( --- addr ) Returns the address of the variable containing the initial value of the bottom of the stack. S>;F (n--)(F: -- r) R is the floating-point equivalent of n. seed ( --- addr ) Place the variable on the stack. SF! (addr -- )(F:r -- ) Store the floating point number r as a 32 bit IEEE single precision number at addr. SF@ ( addr -- ) (F: -- r) Fetch the 32-bit IEEE single precision number stored at addr to the floating-point stack as r in the internal representation. SIGN ( n --- ) Appends an ASCII "; - "; (minus sign) to the start of a pictured numeric output string if n is negative. SMUDGE ( -- ) Toggles visibility bit in head, enabling defini- tions to be found. SP! ( -- ) Initializes the bottom of the parameter stack. SP@ ( --- addr ) addr is the address of the top of the parameter stack just before SP@ was executed. SPACE ( --- ) Sends a space (blank) to the current output device. SPACES ( +n --- ) Sends +n spaces (blanks) to the current output device. SPAN ( --- addr ) Returns the address of the user variable that contains the count of characters received and stored by the most recent execution of EXPECT . STATE ( --- addr ) Returns the address of the user variable that contains a value defining the compilation state. SWAP ( 16b1 16b2 --- 16b2 16b1 ) Exchanges positions of the top two items of the stack. TASK ( --- ) A dictionary marker null word. THEN ( --- ), ( sys --- ) (compiling) Marks the end of a conditional branch or marks where execution will continue relative to a cor- responding IF or ELSE . TIB ( --- addr ) Returns the address of the start of the text- input buffer. TOGGLE (addr b -- ) Toggles setting of bits with mask b at addr. TRAVERSE ( addr n --- addr ) Adjust addr positively or negatively until con- tents of addr is greater then $7F. TYPE ( addr +n --- ) Displays a string of +n characters starting with the character at addr. U. ( u --- ) Displays the unsigned value of u followed by a space. U.R ( u +n --- ) Displays the value of u right justified in a field +n characters wide according to the value of BASE. U<; ( u1 u2 --- flag ) Returns a true flag if u1 is less then u2. UABORT ( -- addr) User variable points to ABORT routine. UM* ( u1 u2 --- ud ) Multiplies u1 and u2 returning the double length product ud. UM/MOD ( ud u1 --- u2 u3 ) Divides the double length unsigned number ud by u1 and returns the single length remainder u2 and the single length quotient u3. UNDO ( --- ) Forget the latest definition regardless of smudge condition. UNTIL ( flag --- ), ( sys --- ) (compiling) Marks the end of an indefinite loop. USER ( n --- ) Create a user variable. VARIABLE ( --- ) Creates a single length variable. WARNING ( -- ) User variable controls error handling. WHILE ( flag --- ) ( sys1 --- sys2 ) (compiling) Decides the continuation or termination of a BEGIN...WHILE...REPEAT loop. WORD ( char --- addr) Generates a counted string until an ASCII code, char is encountered or the input stream is ex- hausted. Returns addr which is the beginning address of where the counted string are stored. WORDS ( --- ) Lists all the words in the CURRENT vocabulary. XOR ( 16b1 16b2 --- 16b3 ) Performs a bit-by-bit exclusive or of 16b1 with 16b2 to give 16b3.