@ewavr I believe the problem with that script is on the operator & that doesn't behave like in C.
The equivalent in Canon basic may be the weird operators %%MEMORY_L, %%MEMORY_S and %%MEMORY_M, but we didn't test them.
Something like this should work (tested on my G10):
private sub Initialize()
System.Create()
a=strlen("Aaaaaaaa\n")
sprintf(b,"Aa%caaaaaaa\n",0)
a=Fopen_Fut("A/test.txt","w")
Fwrite_Fut("AAAA",1,4,a)
Fwrite_Fut(b,1,6,a)
Fclose_Fut(a)
end sub
Note that you don't really need to DIM variables. And sorry but Latex screwed with the characters on the documentation and copy-paste of scripts won't work.
You guys crafted a functional firmware dumper in less than an hour? that's awesome.
EDIT: oops, didn't see that 2+2 works. Then probably it's the multiplication, we didn't test all operators.