! ( x a-addr -- ) "store" * ( n1|u1 n2|u2 -- n3|u3 ) "star" + ( n1|u1 n2|u2 -- n3|u3 ) "plus" +loop Run-time: ( n -- ) "plus-loop" : ( "name" -- ) "colon" ; ( -- ) "semicolon" < ( n1 n2 -- flag ) "less-than" >in ( -- a-addr ) "to-in" >r ( x -- ) ( R: -- x ) "to-r" @ ( a-addr -- x ) "fetch" align ( -- ) allot ( n -- ) and ( x1 x2 -- x3 ) base ( -- a-addr ) begin ( -- ) c! ( char c-addr -- ) "c-store" c@ ( c-addr -- char ) "c-fetch" cells ( n1 -- n2 ) chars ( n1 -- n2 ) create ( "name" -- ) do Run-time: ( n1|u1 n2|u2 -- ) does> ( -- ) "does" drop ( x -- ) dup ( x -- x x ) "dupe" else ( -- ) find ( c-addr -- c-addr 0 | xt 1 | xt -1 ) here ( -- addr ) i ( -- n|u ) if Run-time: ( x -- ) immediate ( -- ) invert ( x1 -- x2 ) literal Compilation: ( x -- ) m* ( n1 n2 -- d ) "m-star" postpone Compilation: ( "name" -- ) r> ( -- x ) ( R: x -- ) "r-from" sm/rem ( d1 n1 -- n2 n3 ) "s-m-slash-rem" source ( -- c-addr u ) swap ( x1 x2 -- x2 x1 ) then ( -- ) type ( c-addr u -- ) um/mod ( ud u1 -- u2 u3 ) "u-m-slash-mod" until Run-time: ( x -- ) while Run-time: ( x -- ) word ( char "ccc" -- c-addr )