def SetGlobalFloatVar(name,value,index=0,size=16):
#     vv=SM.GLVAR(name)
#     if vv.Status() == 0:
#         gg=SM.GLSM()    # need an object for declarations
#         ans=gg.defineVariable(name,8,size) # 8 bytes always doubles
#         vv=SM.GLVAR(name)
#     if vv.Status():
#         vv.Dput(value,index)
    if Globals.GetValue(name)[0]:
        Globals.DefineGlobal(name,'DOUBLE',size)
    Globals.PutValue(name,value,index)
def SetGlobalStringVar(name,value,length=256):
#     vv=SM.GLVAR(name)
#     if vv.Status() == 0:
#         gg=SM.GLSM()    # need an object for declarations
#         ans=gg.defineVariable(name,0,length)
#         vv=SM.GLVAR(name)
#     if vv.Status():
#         vv.Cput(value,len(value))
    if Globals.GetValue(name)[0]:
        Globals.DefineGlobal(name,'CHAR',length)
    Globals.PutValue(name,value,0,length)
def SetGlobalIntVar(name,value,index=0,size=16):
#     vv=SM.GLVAR(name)
#     if vv.Status() == 0:
#         gg=SM.GLSM()    # need an object for declarations
#         ans=gg.defineVariable(name,width,size)  # 4 bytes !!!
#         vv=SM.GLVAR(name)
#     if vv.Status():
#         vv.Iput(value,index)
    if Globals.GetValue(name)[0]:
        Globals.DefineGlobal(name,'INT',size)
    Globals.PutValue(name,value,index)
def _define_vars(prt=0):
    "defines vars"

    status, kind, value = Globals.GetValue('HIDEUNUSED')
    if status:
        Globals.DefineAllGlobals(0)
    lst = [
        'NUMMODES', 'NUMLOWPASS', 'MODELIST', 'MODEID', 'MODENAMES',
        'MODECLASS', 'MODEPOOL', 'BNUMBER', 'BHEIGHT', 'BUSE', 'DEBUGMODE',
        'FREQUENCY', 'FREQSTEP', 'DISPLAY', 'LOWPASS_LIMIT', 'FMTSTRING',
        'ANYGAME'
    ]

    for nm in lst:
        status, kind, value = Globals.GetValue(nm)
        if status:
            if Globals.DefineGlobal(nm, 'INT'):
                return 1  # error defining

    return 0