Hi Tristan, The latest changes have been made available. Addition of dict_secs.c with support for ITC & DTC models and code relocatability. These C files will be used by the cross-compiler to generate an assembler based build, essentially a one to one instruction equivalent of the assembler only source build.
Regards, John S On Mon, Feb 2, 2026 at 5:42 PM John Sarabacha <[email protected]> wrote: > I forgot to mention it could also affect the relocatability of your code, > like moving forth code from flash memory to sram memory. > > On Mon, Feb 2, 2026 at 5:29 PM John Sarabacha <[email protected]> > wrote: > >> Hi Tristan, >> This gives me more confidence in the code base and saves me time >> investigating further. >> Have you tried this in sram (your own user created word) rather than >> flash resident code. >> The flash resident code won't manifest this problem but the user created >> words could. >> Anyway I will now be releasing my version of dict_secs words (with >> relative addressing) and it >> will be updated further when the AmForth codebase is more stable. >> >> Thanks for getting back to me on this, >> John S >> >> >> >> On Mon, Feb 2, 2026 at 3:49 PM <[email protected]> wrote: >> >>> Hi John, >>> >>> There is no issue with nesting or recursion and the design choice to >>> branch to an address, rather than to an offset. >>> >>> |F=./fac.f >>> |S| 1|: factorial ( n -- n! ) >>> |S| 2| dup 2 < if \ base case: if n < 2, return 1 >>> |S| 3| drop 1 >>> |S| 4| else >>> |S| 5| dup 1- \ compute n-1 >>> |S| 6| recurse \ recursive call: factorial(n-1) >>> |S| 7| * \ multiply n * factorial(n-1) >>> |S| 8| then ; >>> >>> > 10 factorial u. >>> 3628800 ok >>> >>> There are situations nowadays where relative branches would make things >>> easier, but I'm unconvinced these situations really existed on the >>> target hardware in 2007. However, it is 2026 not 2007, and so is it >>> worth looking at again? Certainly, and since AmForth is an open source >>> project, we all have that opportunity. >>> >>> Best wishes, >>> Tristan >>> >>> On 2026-02-02 18:30, John Sarabacha wrote: >>> > Hi Everyone, >>> > There is an issue (or a lack of a useful feature) in the Amforth >>> > distribution (32 bit riscv & arm, since they share the same secondary >>> > hand >>> > compiled words), I have made the adjustments to the secondary words >>> > (which >>> > I have not released yet, as I am verifying its impact). I suspect >>> these >>> > are >>> > causing some of your tests to fail. This revolves around the use of >>> > BRANCH >>> > and CONDBRANCH primary words and the addresses they are using, they >>> > should >>> > be relative addresses and not absolute addresses specified in >>> > .word(...) >>> > after the BRANCH or CONDBRANCH. If there is no nesting or recursion >>> > involving these words then no problem, but then you are limiting what >>> > you >>> > can do. >>> > >>> > Hope this helps, >>> > John S >>> > >>> > _______________________________________________ >>> > Amforth-devel mailing list for http://amforth.sf.net/ >>> > [email protected] >>> > https://lists.sourceforge.net/lists/listinfo/amforth-devel >>> >>> >>> _______________________________________________ >>> Amforth-devel mailing list for http://amforth.sf.net/ >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/amforth-devel >>> >> _______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ [email protected] https://lists.sourceforge.net/lists/listinfo/amforth-devel
