Hi Again Martin,
A lot of useful information from that link, thanks again. There is a
temptation to use C for these core (foundation words - mcu assembly words)
since compilers these days can generate very efficient code. The issue is
amForth tries to be compatible with the 2012 forth standard whereas other C
based forths like ueForth don't. It still makes more sense just to make the
adjustments to amForth assembly code keeping in mind the C forth code
(looked at) compiled with -S (for the assembler code) may deviate from this
standard.

Best Regards,
John S






On Tue, Jan 13, 2026 at 9:15 AM John Sarabacha <[email protected]> wrote:

> Thanks Martin,
> That information saves me a lot of time, what I was also thinking of doing
> is letting the compiler tell me
> how to be compatible, this is where ueForth (being in C) can help, for
> each C word compile with -S and
> see what the assembly listing looks like and compare this to what the
> amForth word has and make the adjustments.
>
> Thanks again,
> John S
>
> On Tue, Jan 13, 2026 at 8:52 AM Martin Kobetic <[email protected]> wrote:
>
>> Hi John,
>> That is a sweet looking board. I need to resist the urge to get one too.
>> I've got plenty that I didn't even use yet :).
>>
>> I'm not that well versed in ARM yet, but the errors sound like the
>> instruction mode
>> is being switched around for some reason. Maybe we need to ensure somehow
>> that
>> it sticks with Thumb? There may also be some issue with interworking, I
>> haven't quite
>> wrapped my head around that either. A lot to do still.
>>
>> Some interesting references
>>
>> https://stackoverflow.com/questions/28669905/what-is-the-difference-between-the-arm-thumb-and-thumb-2-instruction-encodings
>>
>> https://developer.arm.com/documentation/dui0203/j/interworking-arm-and-thumb/about-interworking
>>
>> Best regards,
>> Martin
>>
>> On Tue, Jan 13, 2026 at 12:40 AM John Sarabacha <[email protected]>
>> wrote:
>>
>> > Hi Martin,
>> > The Cortex-M7 doesn't like the assembler instructions for arm/words,
>> some
>> > examples:
>> > ./words/dup.s:4: Error: Thumb does not support this addressing mode --
>> `str
>> > tos,[psp,#-4]!'
>> > ./words/nip.s:4: Error: instruction not supported in Thumb16 mode --
>> `adds
>> > psp,#4'
>> > ./words/abs.s:4: Error: Thumb does not support conditional execution
>> > ./words/abs.s:5: Error: incorrect condition in IT block -- `b DO_NEXT
>> >
>> > Tried different options for the GCC compiler/assembler without success.
>> >
>> > FYI
>> > John S
>> >
>> > On Mon, Jan 12, 2026 at 1:13 PM John Sarabacha <[email protected]>
>> > wrote:
>> >
>> > > Hi Martin,
>> > > Some information on my Cortex-M7 based target platform, Arduino
>> > > development environment is being is used
>> > > https://www.pjrc.com/store/teensy41.html
>> > >
>> > > Regards,
>> > > John S
>> > >
>> > > On Mon, Jan 12, 2026 at 12:04 PM John Sarabacha <[email protected]
>> >
>> > > wrote:
>> > >
>> > >> Hi Martin,
>> > >> I will be trying to host amForth on an arm-m7 (600Mhz) platform which
>> > was
>> > >> being evaluated a few years ago. I will be using the same process as
>> I
>> > used
>> > >> for CH32X033. Any learning I will pass on, M7 is significantly
>> different
>> > >> than M4 so by sticking to thumb type instructions there should be
>> some
>> > >> common issues.
>> > >>
>> > >> Regards,
>> > >> 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

Reply via email to