====== DATA ====== Syntax: data varname[] = , , , ... Or in combination with the [[INCBIN|INCBIN]] directive: data varname![] = incbin "path/to/binary_file" The ''DATA'' directive allocates a one-dimensional static array in memory filled with pre-initialized data //in compile time//. The length of the array will equal to the number of elements in the list of values. Values can be of any type, but this type must match the type of the variable. If the right-hand side of the assignment is an ''INCBIN'' directive, the length of the array will equal to the length of the file and each byte in the file will become one array element. Only //byte type// arrays can be initialized this way. Example with value list: rem -- this will print: 9 data squares[] = 0, 1, 4, 9, 16 print squares[3] Example with ''INCBIN'': rem -- load a sprite data sprite![] = incbin "sprite.bin" ''DATA'' statements can be written anywhere in your program. The following will also work: print squares[3] end rem ** program data ** data squares[] = 0, 1, 4, 9, 16 The data members can be updated in runtime using the ''LET'' command: rem ** this will print 9 first, then -1 ** print squares[3] let squares[3] = -1 print squares[3] end rem ** program data ** data squares[] = 0, 1, 4, 9, 16 Again, note there is no runtime array bounds checking. Trying to write data over the array bounds may break the program.