@reyalp, multiply(*) is working in your D10?
It seems that a=2*2 crashes my a710, but a=2+2 works
Looks like they use space to decide if it's a pointer dereference or multiplication.
StartRedirectUART(1)
Wait(10)
a = 2 * 2
b = &a
Printf("%d %08X\n",a,b)
*b = 42
Printf("%d %08X\n",a,b)
output:
4 0034E414
42 0034E414
If I change it to 2*2 with no space, it asserts.
edit:
The same applies to & which can be bitwise and or "address of"
The C bitwise operators << >> | & all seem to produce the expected results.
!, % and ~ all appear to assert.
edit: Some more oddities
Why is there peek and poke if you can just do *ptr ? I guess MMIO might require actual byte or halfword access.
There don't seem to be any logical operators, e.g I don't see any way to say
if x = 1 and y = 3 ....
& and | have their regular bitwise meanings in conditionals. The C style && || don't work, and neither do the english AND OR.