FWIW the Forth standard seems to back my interpretation based on the
prescribed test results https://forth-standard.org/standard/core/Zeroless.
Funnily the textual description of the word seems to be completely wrong in
the standard, what a wonderful mess :)

On Tue, Dec 23, 2025 at 9:58 AM Martin Kobetic <[email protected]> wrote:

> Thank you both for looking into this. I'll respond to many other points
> separately, but I want to address what's possibly my misunderstanding of
> the intent of the 0< word. My interpretation of it was that it literally
> means "is positive" i.e. 0 < tos. It seems that it is meant to be "is
> non-negative" i.e. 0 <= tos ?
>
> On Tue, Dec 23, 2025 at 4:04 AM <[email protected]> wrote:
>
>> # --------------------------------------
>>    CODEWORD  "0<", ZEROLESS # ( n -- ? )
>> # --------------------------------------
>>    srai x3, x3, 31
>>    NEXT
>>
>> This is correct for RV32. My RISC-V codebase has the
>> similar code (different register) and gives the
>> following for the usual suspects.
>>
>> AmForth-RV 7.0 RV32IMAFC WCH CH32V307 C+ASM
>> Tue 15 Oct 2024 11:52:30 BST
>> > 1 0< .    \ correct
>> 0  ok       \ ...
>> > -1 0< .   \ correct
>> -1  ok      \ ...
>> > 0 0< .    \ correct
>> 0  ok       \ ...
>>
>
> In my interpretation I'd expect 0 <0 to yield -1 not 0. Maybe that's where
> I am wrong?
>
> Cheers,
>
> Martin
>

_______________________________________________
Amforth-devel mailing list for http://amforth.sf.net/
[email protected]
https://lists.sourceforge.net/lists/listinfo/amforth-devel

Reply via email to