+ ( t1 t2 -- t3 ) t1 t2i ea. 1 2 + ǡe 1 2i e t 3i ᣡA a. - ( t1 t2 -- t3 ) t1A t2i a. 2 1 - ǡe 2A 1i t 1i ᣡA a. * ( t1 t2 -- t3 ) t1A t2i ea. 2 3 * ǡe e t 6i ᣡA a. / ( t1 t2 -- t3 ) t1i t2 aa. 6 2 / ǡe 6i 2 a t 3i ᣡA a. MOD ( t1 t2 -- t3 ) t1i t2 a aỡi ea. 8 3 MOD ǡe 8i 3a a aỡ 2i ᣡA a. aỡ ( t1 t2 -- t3 ) t1i t2 a aỡi ea. 8 3 aỡ ǡe 8i 3a a aỡ 2i ᣡA a. . ( t -- ) ᣡ ti eA a. DUP ( t -- t t ) ᣡ ti Aa ᣡA a. 1 DUP ǡe 1i ᣡA a. Aa ( t -- t t ) ᣡ ti Aa ᣡA a. 1 Aa ǡe 1i ᣡA a. OVER ( t1 t2 -- t1 t2 t1 ) ᣡ 弁 ti Aa ᣡA a. 1 2 OVER ǡe 1, 2, 1i a ᣡA a. ( t1 t2 -- t1 t2 t1 ) " (Aa)". ᣡ 弁 ti Aa ᣡA a. 1 2 ǡe 1, 2, 1i a ᣡA a. SWAP ( t1 t2 -- t2 t1 ) ᣡ t ai aa. 1 2 SWAP ǡe ᣡ Ae 1, a A 2a a. a ( t1 t2 -- t2 t1 ) ᣡ t ai aa. 1 2 a ǡe ᣡ Ae 1, a A 2a a. DROP ( t1 -- ) ᣡ ti ៥a. a ( t1 -- ) ᣡ ti ៥a. ROT ( t1 t2 t3 -- t2 t3 t1 ) ᣡ A ti a. A 弁 ti ᐁ A a. 1 2 3 ROT ǡe 2, 3, 1i a ᣡA a. a ( t1 t2 t3 -- t2 t3 t1 ) ᣡ A ti a. A 弁 ti ᐁ A a. 1 2 3 a ǡe 2, 3, 1i a ᣡA a. >R ( tᣡ: t -- ; Aᣡ: -- t ) tᣡ ti Aᣡ a. 'DO ... LOOP'a ' ... a'a Aᣡi awaa LOOP 'a' A Aᣡi wȁ a a ea. >A ( tᣡ: t -- ; Aᣡ: -- t ) tᣡ ti Aᣡ a. 'DO ... LOOP'a ' ... a'a Aᣡi awaa LOOP 'a' A Aᣡi wȁ a a ea. R> ( tᣡ: -- t ; Aᣡ: t -- ) Aᣡ ti tᣡ a. 'DO ... LOOP'a ' ... a'a Aᣡi awaa LOOP 'a' A Aᣡi wȁ a a ea. A> ( tᣡ: -- t ; Aᣡ: t -- ) Aᣡ ti tᣡ a. 'DO ... LOOP'a ' ... a'a Aᣡi awaa LOOP 'a' A Aᣡi wȁ a a ea. R@ ( tᣡ: -- t ; Aᣡ: t -- t ) Aᣡ ti tᣡ Aa. A@ ( tᣡ: -- t ; Aᣡ: t -- t ) Aᣡ ti tᣡ Aa. = ( t1 t2 -- -1|0 ) 5 5 = ǡe ᣡA -1i 6 5 = ǡe ᣡA 0i a. == ( t1 t2 -- -1|0 ) 5 5 = ǡe ᣡA -1i 6 5 = ǡe ᣡA 0i a. > ( t1 t2 -- -1|0 ) 5 6 > ǡe ᣡA 0i 5 5 > ǡe ᣡA 0i 6 5 > ǡe ᣡA -1i a. < ( t1 t2 -- -1|0 ) 5 6 < ǡe ᣡA -1i 5 5 < ǡe ᣡA 0i 6 5 < ǡe ᣡA 0i a. AND ( t1 t2 -- t3 ) t1 t2 b {(bit)A e i ᣡA a. {qA ( t1 t2 -- t3 ) t1 t2 b {(bit)A e i ᣡA a. OR ( t1 t2 -- t3 ) t1 t2 b {(bit)A e si ᣡA a. {a ( t1 t2 -- t3 ) t1 t2 b {(bit)A e si ᣡA a. XOR ( t1 t2 -- t3 ) t1 t2 b {(bit)A e a i ᣡA a. {a ( t1 t2 -- t3 ) t1 t2 b {(bit)A e a i ᣡA a. WORDS ( -- ) i e DZiii eA a. ia ( -- ) i e DZiii eA a. .S ( -- ) tᣡ tii a. .ᣡ ( -- ) tᣡ tii a. BYE ( -- ) iΑi {a. { ( -- ) iΑi {a. CR ( -- ) eA i eea. aq ( -- ) eA i eea. HELP ( -- ) HELP aq {iA e ii a 'HFORTH.HLP'A xa a. HELP DUP ǡe 'Aa'i A ae eA a. i ( -- ) HELP aq {iA e ii a 'HFORTH.HLP'A xa a. i Aa ǡe 'Aa'i A ae eA a. CLS ( -- ) ei a. e ( -- ) ei a. CONSTANT ( t -- ) e {i a : ( -- t ) ᣡ ti 'et' aqA ae qa et(w)i eea. 5 CONSTANT FIVE ǡe 'FIVE'ae q eti eea. a a FIVE ǡe ᣡ A 5i a. et ( t -- ) e {i a : ( -- t ) ᣡ ti 'et' aqA ae qa et(w)i eea. 5 et a ǡe 'a'ae q eti eea. a a a ǡe ᣡ A 5i a. VARIABLE ( -- ) e {i a : ( -- ) VARIABLE AGE ǡe 'AGE'ae q et(e)i eea. a a AGE ǡe 'AGE' t i ᣡ A a. et ( -- ) e {i a : ( -- ) et a ǡe 'a'ae q et(e)i eea. a a a ǡe 'a' t i ᣡ A a. ! ( t -- ) ᣡ A e A ᣡ 弁 ti ea. 16 a ! ǡe et 'a'A 16i ea. @ ( -- t ) ᣡ A e A e ti ᣡA a. a @ ǡe et 'a' ti ᣡA a. : ( -- ) {i i bea. : {i {i1 {i2 {i3 ; {i '{i' i bea. ; ( -- ) {i i {a. : {i {i1 {i2 {i3 ; ea. ( ( -- ) ')' a a ii ǡ g a. '(' aa {ia A e ea aa w ᴡ ea. ( e ia.) ea. : '('e DZie ')'e DZi aa. ." ( -- ) '"' a a ii eA a. i wȁAe i a. : ." i eA aa." ; ǥ aq a ǡe eA ' i eA aa.'i a. IF a : ( t -- ) 'IF ... THEN'a 'IF ... ELSE ... THEN' ba aa. i wȁAe i a. 'IF ... THEN' ba ae ᣡ t 0 a e 'IF ... THEN' a {i aa. 'IF ... ELSE ... THEN' ba ae ᣡ t 0 ae 'IF ... THEN' a {i a, t 0e 'ELSE ... THEN' a {i aa. : ?DUP DUP IF DUP THEN ; {ii 3 ?DUP ǡe ᣡA 3i 2 a. 0 ?DUP ǡe ᣡA 0i 1 a. e a : ( t -- ) 'e ... a'a 'e ... ae ... a' ba aa. i wȁAe i a. 'e ... a' ba ae ᣡ t 0 a e 'e ... a' a {i aa. 'e ... ae ... a' ba ae ᣡ t 0 ae 'e ... a' a {i a, t 0e 'ae ... a' a {i aa. : ?Aa Aa e Aa a ; {ii 3 ?Aa ǡe ᣡA 3i 2 a. 0 ?Aa ǡe ᣡA 0i 1 a. ELSE a : ( -- ) 'IF ... ELSE ... THEN' ba aa. i wȁAe i a. ᣡ t 0 ae 'IF ... ELSE' a {i a, t 0e 'ELSE ... THEN' a {i aa. : TEST IF DUP ELSE DROP THEN ; {ii 3 1 TEST ǡe ᣡA 3i 2 a. 3 0 TEST ǡe ᣡA a gea. ae a : ( -- ) 'e ... ae ... a' ba aa. i wȁAe i a. ᣡ t 0 ae 'e ... ae' a {i a, t 0e 'ae ... a' a {i aa. : e Aa ae a a ; {ii 3 1 ǡe ᣡA 3i 2 a. 3 0 ǡe ᣡA a gea. THEN a : ( -- ) 'IF ... THEN'a 'IF ... ELSE ... THEN' ba aa. i wȁAe i a. a a : ( -- ) 'e ... a'a 'e ... ae ... a' ba aa. i wȁAe i a. ENDIF a : ( -- ) 'IF ... ENDIF'a 'IF ... ELSE ... ENDIF' ba aa. i wȁAe i a. BEGIN a : ( -- ) 'BEGIN ... UNTIL'a 'BEGIN ... WHILE ... REPEAT' ba aa sDZ qi aea. i wȁAe i a. A a : ( -- ) 'A ... a'a 'A ... e... sЁ' ba aa sDZ qi aea. i wȁAe i a. UNTIL a : ( t -- ) 'BEGIN ... UNTIL' ba aa. i wȁAe i a. 't' 0 ae sDZi a 'UNTIL' aq {i a 't' 0e 'BEGIN ... UNTIL' a {ii sǥa. : COUNTDOWN BEGIN DUP . 1 - DUP 0 = UNTIL ; {ii 5 COUNTDOWN ǡe eA '5 4 3 2 1'i a. a a : ( t -- ) 'A ... a' ba aa. i wȁAe i a. 't' 0 ae sDZi a 'a' aq {i a 't' 0e 'A ... a' a {ii sǥa. : .a.A A Aa . 1 - Aa 0 = a ; {ii 5 .a.A ǡe eA '5 4 3 2 1'i a. WHILE a : ( t -- ) 'BEGIN ... WHILE ... REPEAT' ba aa. i wȁAe i a. 't' 0 ae sDZ A 'WHILE' aq {i a 't' 0e sDZi a 'REPEAT' aq {i aa. : COUNTDOWN BEGIN DUP WHILE DUP . 1 - REPEAT ; {ii 5 COUNTDOWN ǡe eA '5 4 3 2 1'i a. e a : ( t -- ) 'A ... e... sЁ' ba aa. i wȁAe i a. 't' 0 ae sDZ A 'e' aq {i a 't' 0e sDZi a 'sЁ' aq {i aa. : .a.A A Aa e Aa . 1 - sЁ ; {ii 5 .a.A ǡe eA '5 4 3 2 1'i a. REPEAT a : ( -- ) 'BEGIN ... WHILE ... REPEAT' ba aa. i wȁAe i a. 'BEGIN' aqa sDZi ea. sЁ a : ( -- ) 'A ... e... sЁ' ba aa. i wȁAe i a. 'A' aqa sDZi ea. DO a : ( t1 t2 -- ) ea 'DO ... LOOP' ba aa. i wȁAe i a. 't2'a aa a 't1' I a 'DO ... LOOP' a {ii sǥa. : 5STARS 5 0 DO ." *" LOOP ; {ii 5STARS ǡe eA '*****'a aEa. a : ( t1 t2 -- ) ea ' ... a' ba aa. i wȁAe i a. 't2'a aa a 't1' I a ' ... a' a {ii sǥa. : ai 5 0 ." *" a ; {ii ai ǡe eA '*****'a aEa. LOOP a : ( -- ) ea 'DO ... LOOP' ba aa. i wȁAe i a. 't2'a aa a 't1' I a 'DO ... LOOP' a {ii sǥa. a a : ( -- ) ea ' ... a' ba aa. i wȁAe i a. 't2'a aa a 't1' I a ' ... a' a {ii sǥa. I a : ( -- t ) aDZ ea 'DO ... LOOP' eA ea. 't2 t1 DO I LOOP'A 'a'e a 't1'A 't2'-1 a tii ᣡA a. : COUNT 0 DO I . LOOP ; {ii 5 COUNT ǡe eA '0 1 2 3 4'i a. a a : ( -- t ) "a(DZ)." aDZ ea ' ... a' eA ea. 't2 t1 a a'A 'a'e a 't1'A 't2'-1 a tii ᣡA a. : .A 0 a . a ; {ii 5 .A ǡe eA '0 1 2 3 4'i a. IMMEDIATE ( -- ) wq e ii i wȁAᕡ ЗAe 'ai' eea. ai ( -- ) wq e ii i wȁAᕡ ЗAe 'ai' eea. ' ( -- ) "'" aqA ae {i i ᣡA qa. {ei ( -- ) '{ei' aqA ae qa, ᣡA a e {i {e i ae {ii eea. ' DUP {ei Aa ǡe DUP {e i ae {i 'Aa'i eea. e ( -- ) aᦁ iaa i ea. sin* ( b -- *sin[b] ) b A qbi e ti eea. cos* ( b -- *cos[b] ) b A qbi e ti eea. .a ( x y -- ) q aA ᦂa (x,y) i uea. eA qi ue aw ⷥ {ia. ᦂ {i 'Aa' 'eq.a'A aa. ᦂa ( -- ) eA ᦂ ae ae a. wз ( -- ) et 'wз'. ᦂ wз qa a. aá ( -- ) et 'aá'. ᦂ x aa qa a. Aá ( -- ) et 'aá'. ᦂ y aa qa a. eq.a ( a១ A១ -- ) ᦂ q a (x,y)A (x+a១, y+A១) a. {i '|a' 'ᝡ'A aa. __e.ɍ ( ១ U -- ) ១eq a 10 ea e i Ueq AΉea. {i 'e.ɍ'A aa. __E.ɍ ( ១ U -- ) ១eq a 10 Ea e i Ueq AΉea. {i 'E.ɍ'A aa. A ( -- ) ᦂ ae ai A aa. aiA ( -- ) ᦂ ae ai aiA aa. i ( -- ) ᦂ ae ai q gea. a ( -- ) ᦂ i aaa ea. e ( -- ) ᦂi Aa ei a. e ( -- ) iai a 8 Ae a. e ( -- ) iai A eA a. Aa ( -- ) ᦂ ១i ὢa Ё e aA ei a. .e ( b -- ) ᦂ wзi beq ea a. .E ( b -- ) ᦂ wзi beq Ea a. |a ( ១ -- ) ᦂ ១eq |a ea. ᝡ ( ១ -- ) ᦂ ១eq ᝡ ea. e.ɍ ( eq b -- ) ụ eq b ea ɍi aa. e. ( eq -- ) ụ eqa ea aai aa. E.ɍ ( eq b -- ) ụ eq b Ea ɍi aa. E. ( eq -- ) ụ eqa Ea aai aa. A ( a -- ụ a Ai aa. såA ( -- ) b e a 100, 200, 300, 400 Ai sa aa. aaa ( -- ) aaa i aa. i ( a -- ) i i aa. ai ( a -- ) 60 aaa i 6 i aa. aq ( -- ) aq i aa. ( a -- ) i aa. ( a -- ) 8 i aa. ae ( a -- ) ae i aa. ae ( a -- ) 6 i aa. Еi ( a -- ) i i aa. Ё ( a -- ) Ё i aa. bw ( a ១ -- ) abwi aa. i ( e_ U -- ) i i aa. abw ( a b -- ) a bA aa a abw i i aa. abwaw5 ( -- ) {i 'abw'i we aw abwaw4 ( -- ) {i 'abw'i we ae aw abwaw12 ( -- ) {i 'abw'i we ae aw a ( ab a aá -- ) aai A (recursive call) a i aa. ia ( -- ) {i 'w'A awae et w ( a -- ) aai A wa(dragon curve)i aa.