depends what you want to achieve...
if you need a global and a function that can be called multiple times, then everytime the function is called again you're resetting the state of the variable, which it would be nice to have an ifdef, then we can check so that doesn't happen.
i'll show you what i mean
MyFunction( )
MyVariable = 20
MyFunction( )
wait key
function MyFunction( )
`{
global MyVariable as dword
text 0,0, str$( MyVariable )
endfunction
`}
what happens is you've declared the variable, and globally so you can use it outside of the function... however to print the variable we run the funciton again right.
but instead of it printing 20, you'll get 0... why?
well because what you've done is redefined the
MyVariable as a dword again which automatically resets its value as if you've not used it before.
you'll notice because if i alter the code like so
MyFunction( )
text 0,0,str$( MyVariable )
wait key
function MyFunction( )
`{
global MyVariable as dword
MyVariable = 20
endfunction
`}
now it'll print 20

remember its not the language thats the problem but how you're trying to use it... if we had an ifdef we could then check globals prior to this like we can in C
with something like
MyFunction( )
MyVariable = 20
MyFunction( )
wait key
function MyFunction( )
`{
ifdef MyVariable = 0
global MyVariable as dword
enddef
text 0,0, str$( MyVariable )
endfunction
`}
i mean the program should be keeping track of the variables declared

hopefully they'll add this later
Tsu'va Oni Ni Jyuuko Fiori Sei Tau!
One block follows the suit ... the whole suit of blocks is the path ... what have you found?