• Known types:
    NameShortLengthMinMaxAccuracySynonyms
    BYTEB1-128+1271
    UBYTEUB102551CHAR
    WORDW2-32768+327671HALF, INT
    UWORDUW20655351UHALF
    LONGL4-2147483648+21474836471
    ULONGUL4042949672961
    FLOATF41.17549435e-383.40282347e+381.19209290e-07SINGLE
    DOUBLED82.225073858507201e-3081.797693134862316e+3082.2204460492503131e-16
    BOOL-20non zero-
    PTR-4
    32bit
    address-


  • Multiple pointers:
    If you would like to use more then two dimensional fields, you cant do it like above:
        field:PTR TO PTR TO PTR TO PTR TO ...
    

    You have to do it like here (the following are same):
        field[][][][]:LONG
        field[][]:PTR TO PTR TO LONG
    


  • Multiple arrays:
    The following are same:
      DEF field[10,20]:LONG
      field[3,4]:=123
    
      DEF field[10*20]:LONG
      field[4*10+3]:=123
    


  • Multiple arrays through pointers:
    The two examples above allocates 10*20*SIZEOF_LONG bytes of memory, but you can do it also without memory allocation (good when using fields as arguments in PROCedures): Is enough to add before the first field size specification character ":" (the following are same):
      DEF field[:10]:LONG
      ...
      memory allocation for field
      ...
      field[3,4]:=123
    
    
      DEF field:PTR TO LONG
      ...
      memory allocation for field
      ...
      field[4*10+3]:=123
    

    This allocates nothing, but stores information about field width.