On Mon, Jan 5, 2026 at 11:51 AM John Sarabacha <[email protected]> wrote:

> Still learning forth , programmed in many other languages (alot of
> assembler)
> variable X
> $AABBCCDD X !
> X @
>
> However tell me if I am wrong, you are creating a variable definition for X
> you are setting this variable X to the address $AABBCCDD and then trying to
> read a value from this
> address on to the tos.


Almost. The second line is storing value  0xAABBCCDD at the address
represented by variable X.
It is the word `variable` in previous line that allocates memory for the
variable and associates the corresponding
address with a new word `X` that simply pushes that address onto the stack
when executed.

In the test run I quoted above
---
> X
 ok
> .s
5  200002B8 200002C4 200002A8 20000288 8  ok
---
The address represented by the variable was 0x200002B8, so it was 8-byte
aligned, so should be ok alignment-wise.
But your hypothesis with alignment issues seems definitely worth checking
out as well.

Your warning about the fault interrupts is certainly worth heeding, I don't
think we do much there on the ARM side.
Another thing to follow up on.

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

Reply via email to