@Irojo
You can use any named variable you want to read in data from a data statement
Read frog
print frog
Data 1
And you only have to use RESOTRE if you want to reset the data and read it from the beginning of the statements or where you've placed a lable. Here's a variation of your program without all the individual variables for the data lines. I use one variable to read back all of the data:
y=240
for row=0 to 8
inc y,3
x=320
for col=0 to 7
inc x,3
read somedata
if somedata=1
box x,y,x+1,y+1
endif
next col
next row
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,1,0
data 1,0,1,1,1,0,1,0
data 0,1,0,1,0,1,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,0,1,0,0,0
data 0,0,1,0,1,0,0,0
But as you get more experienced in programming, you'll find other means to store your data - like in files for example, or in memory as arrays or memblocks.
Here's an example that stores the data in an array. Though this example isn't necessarily more efficient than the last (depends on what you do with the array), it will allow you to reference and use any of the data at any time in the program by just identifying the index of the array:
rem create an array to hold all of the data
rem this create a 9 row by 8 column array
rem to hold all of your data
dim mydata(8,7)
rem read in all of the data at once
for row=0 to 8
for col=0 to 7
read mydata(row,col)
next col
next row
rem we don't have to refer to the data again because it's
rem all stored in an array
rem let's create the image
y=240
for row=0 to 8
inc y,3
x=320
for col=0 to 7
inc x,3
if mydata(row,col)=1
box x,y,x+1,y+1
endif
next col
next row
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,1,0
data 1,0,1,1,1,0,1,0
data 0,1,0,1,0,1,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,0,1,0,0,0
data 0,0,1,0,1,0,0,0
Enjoy your day.