Deutsch English Français Italiano |
<vq4m3k$1cv3v$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: sjack@dontemail.me (sjack) Newsgroups: comp.lang.forth Subject: FigForth MIX Date: Mon, 3 Mar 2025 16:41:25 -0000 (UTC) Organization: A noiseless patient Spider Lines: 37 Message-ID: <vq4m3k$1cv3v$1@dont-email.me> Reply-To: sdwjack69@gmail.com Injection-Date: Mon, 03 Mar 2025 17:41:25 +0100 (CET) Injection-Info: dont-email.me; posting-host="747c1876cd3fd069d7f2cf6441dea844"; logging-data="1473663"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+CrTUHLJuea8JyXkKcG53H" User-Agent: tin/2.6.4-20240224 ("Banff") (Linux/6.8.0-54-generic (x86_64)) Cancel-Lock: sha1:X2sEI5ix22Kj0rNtmdy/uYAE4Mc= Bytes: 1519 A FigForth MIX ( support ) ( : i. ." --> " ; ) ( Sample 'MIX'(ish) in high level FigForth ) Vocabulary MIX immediate MIX definitions : sto ( n a -- ) ! ; : add ( n a -- ) +! ; ( 'i:' starts inline definition ) i: mov ( a1 a2 -- ) >r @ r> ! ; i: xor ( a1 a2 -- ) >r @ r @ forth xor r> ! ; i: xchg ( a1 a2 -- ) dup >r @ over @ r> ! swap ! ; ( some registers ) 0 variable r1 0 variable r2 ( Test run ) MIX 1 r1 sto r1 r2 mov 1 r2 add i. r1 ? --> 1 i. r2 ? --> 2 r1 r2 xchg i. r1 ? --> 2 i. r2 ? --> 1 r1 r2 xor r2 r1 xor r1 r2 xor i. r1 ? --> 1 i. r2 ? --> 2 -fin- OK