The only way to create shared variables is by declaring them in an array I believe.
Any array is global or shared by default.
Otherwise you will have to pass your variables to your functions in the function call.
[Edit]
from the DarkBasic Classic help
Your parameter list can be left empty, or you can specify up to 255 parameter names inside the brackets. A parameter is declared by simply entering a name. If you require more than one parameter, make sure you use commas to separate them. You may enter commands for your function starting on the line following the declaration. You must declare the end of a function using the ENDFUNCTION command. If you wish your function to return a value, simply add the variable or value after the ENDFUNCTION command. You must leave a space between the endfunction command and the variable or value you wish to return.
Any variables declared in the function are what are known as local variables.
Local variables can only be recognized and used from within the function. Global variables on the other hand are variables declared outside of any function.
Your function cannot recognize or use global variables. Your program cannot recognize or use local variables if you are running outside of the function in question. This allows you to re-use variable names within a function without fear of overwriting some other global variable elsewhere in your program, amongst other advantages. The same rules apply to arrays and parameters passed into the function. Parameters declared by the function can be used in the same way you would use any local variable, in order to bring information from the outside world.
Wasting CPU Cycles since the 286 was a hot machine.