Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #42045
| From | "HAA" <someone@microsoft.com> |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Re: old `leave` renamed to `exhaust` |
| Date | 2015-09-17 15:15 +1000 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <mtdi68$5nh$1@speranza.aioe.org> (permalink) |
| References | (3 earlier) <2015Sep14.103356@mips.complang.tuwien.ac.at> <mt8f9i$qm3$1@speranza.aioe.org> <y7pior0acvxj.ch2dlom72stl$.dlg@40tude.net> <mtafsr$j8m$1@speranza.aioe.org> <2015Sep16.081024@mips.complang.tuwien.ac.at> |
Anton Ertl wrote:
> "HAA" <someone@microsoft.com> writes:
> >Coos Haak wrote:
> >>
> >> Is there any description of what /LOOP and \LOOP are supposed to do?
> >> I've never found an implementation of them, even several versions
> >> of Gforth don't have them.
> >
> >/LOOP \LOOP use unsigned limit/index and are defined in the Forth-79
> >Reference Word Set.
>
> Thanks. This says:
>
> /LOOP n -- "up-loop"
> A DO-LOOP terminating word. The loop index is incremented by
> the unsigned magnitude of n. Until the resultant index
> exceeds the limit, execution returns to just after the
> corresponding DO: otherwise, the index and limit are
> discarded. Magnitude logic is used.
>
> \LOOP n -- I,C "down-loop"
> A DO-LOOP terminating word. The loop index is decremented by
> n and the loop terminated when the resultant index becomes
> equal to or less than the limit. Magnitude logic is used, and
> n must be positive.
>
> Not sure what they meant by "magnitude logic"; "magnitude" occurs only
> in U< /LOOP and \LOOP in the Forth-79 document, with no definition.
Forth-83 document has this:
/LOOP +n -- C,I "up-loop"
sys -- (compiling)
A do-loop terminating word. The loop index is incremented
by the positive value +n. If the unsigned magnitude of the
resultant index is greater than the limit, then the loop is
terminated, otherwise execution returns to the corresponding
DO . The comparison is unsigned magnitude. sys is balanced
with its corresponding DO . See: DO
\LOOP +n -- C,I "down-loop"
sys -- (compiling)
A do-loop terminating word. The loop index is decremented
by the positive value +n. If the unsigned magnitude of the
resultant index is less than or equal to the limit, then the
loop is terminated, otherwise execution returns to the
corresponding DO . The comparison is unsigned. sys is
balanced with its corresponding DO . See: DO
"Reference Words" were intended to describe existing practice. Output
below is from 8086 PolyForth /LOOP. I was unable to test \LOOP as
there was none in the implementation I had.
: TEST DO I U. 1 /LOOP ; ok
0 10 TEST 10 ok
10 0 TEST 0 1 2 3 4 5 6 7 8 9 ok
HEX ok
FFFF FFF8 TEST FFF8 FFF9 FFFA FFFB FFFC FFFD FFFE ok
0 FFF8 TEST FFF8 ok
Note the full 64K range was not possible (unlike 83 +LOOP)
Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
old `leave` renamed to `exhaust` Marcos Cruz <null_email_so_use_my_contact_page@programandala.net> - 2015-09-07 20:29 +0000
Re: old `leave` renamed to `exhaust` "HAA" <someone@microsoft.com> - 2015-09-08 14:52 +1000
Re: old `leave` renamed to `exhaust` Mark Wills <markwills1970@gmail.com> - 2015-09-08 00:57 -0700
Re: old `leave` renamed to `exhaust` Bernd Paysan <bernd.paysan@gmx.de> - 2015-09-08 15:19 +0200
Re: old `leave` renamed to `exhaust` Marcos Cruz <null_email_so_use_my_contact_page@programandala.net> - 2015-09-08 16:25 +0000
Re: old `leave` renamed to `exhaust` "HAA" <someone@microsoft.com> - 2015-09-09 11:39 +1000
Re: old `leave` renamed to `exhaust` Marcos Cruz <null_email_so_use_my_contact_page@programandala.net> - 2015-09-09 10:42 +0000
Re: old `leave` renamed to `exhaust` "HAA" <someone@microsoft.com> - 2015-09-10 14:05 +1000
Re: old `leave` renamed to `exhaust` Marcos Cruz <null_email_so_use_my_contact_page@programandala.net> - 2015-09-10 13:33 +0000
Re: old `leave` renamed to `exhaust` Coos Haak <chforth@hccnet.nl> - 2015-09-10 22:04 +0200
Re: old `leave` renamed to `exhaust` Coos Haak <chforth@hccnet.nl> - 2015-09-10 22:13 +0200
Re: old `leave` renamed to `exhaust` "HAA" <someone@microsoft.com> - 2015-09-11 13:14 +1000
Re: old `leave` renamed to `exhaust` Coos Haak <chforth@hccnet.nl> - 2015-09-11 12:30 +0200
Re: old `leave` renamed to `exhaust` "HAA" <someone@microsoft.com> - 2015-09-11 21:47 +1000
Re: old `leave` renamed to `exhaust` Bernd Paysan <bernd.paysan@gmx.de> - 2015-09-11 14:09 +0200
Re: old `leave` renamed to `exhaust` "HAA" <someone@microsoft.com> - 2015-09-12 11:29 +1000
Re: old `leave` renamed to `exhaust` "Elizabeth D. Rather" <erather@forth.com> - 2015-09-11 16:05 -1000
Re: old `leave` renamed to `exhaust` "HAA" <someone@microsoft.com> - 2015-09-14 12:25 +1000
Re: old `leave` renamed to `exhaust` "Elizabeth D. Rather" <erather@forth.com> - 2015-09-13 17:53 -1000
Re: old `leave` renamed to `exhaust` anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-09-14 08:33 +0000
Re: old `leave` renamed to `exhaust` "HAA" <someone@microsoft.com> - 2015-09-15 16:55 +1000
Re: old `leave` renamed to `exhaust` hughaguilar96@gmail.com - 2015-09-15 01:46 -0700
Re: old `leave` renamed to `exhaust` Coos Haak <chforth@hccnet.nl> - 2015-09-15 15:14 +0200
Re: old `leave` renamed to `exhaust` anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-09-15 15:13 +0000
Re: old `leave` renamed to `exhaust` hughaguilar96@gmail.com - 2015-09-15 16:13 -0700
Re: old `leave` renamed to `exhaust` jim.brakefield@ieee.org - 2015-09-15 17:05 -0700
Re: old `leave` renamed to `exhaust` hughaguilar96@gmail.com - 2015-09-15 18:35 -0700
Re: old `leave` renamed to `exhaust` "HAA" <someone@microsoft.com> - 2015-09-19 11:42 +1000
Re: old `leave` renamed to `exhaust` anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-09-19 10:48 +0000
Re: old `leave` renamed to `exhaust` "HAA" <someone@microsoft.com> - 2015-09-20 00:01 +1000
Re: old `leave` renamed to `exhaust` anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-09-19 15:02 +0000
Re: old `leave` renamed to `exhaust` "HAA" <someone@microsoft.com> - 2015-09-21 15:51 +1000
Re: old `leave` renamed to `exhaust` "Elizabeth D. Rather" <erather@forth.com> - 2015-09-15 08:45 -1000
Re: old `leave` renamed to `exhaust` "HAA" <someone@microsoft.com> - 2015-09-16 11:18 +1000
Re: old `leave` renamed to `exhaust` anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-09-16 06:10 +0000
Re: old `leave` renamed to `exhaust` "HAA" <someone@microsoft.com> - 2015-09-17 15:15 +1000
Re: old `leave` renamed to `exhaust` anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-09-17 06:04 +0000
Re: old `leave` renamed to `exhaust` Coos Haak <chforth@hccnet.nl> - 2015-09-11 14:16 +0200
csiph-web