Have you any other data statements in your program? You don't need to execute data statements to make them available. There is an internal pointer that points at the first data statement when your program start. Each time you `read` some data, the pointer moves to the next available data. So, something like this:
Function RegisterBlockPos()
restore startdata
For t=1 to 7
For r=1 to 4
For y=1 to 4
for x=1 to 4
Read Bl$(t,r,x,y)
Next x
NEXT y
Read SprOff(t,r).x
Read SprOff(t,r).y
Next r
Next t
EndFunction
startdata:
//Tri
DATA "t","1"," "," "
DATA "1","o1","1"," "
DATA " "," "," "," "
DATA " "," "," "," "
DATA 2,2
DATA "t","1"," "," "
DATA " ","o1","1"," "
DATA " ","1"," "," "
DATA " "," "," "," "
DATA 2,2
DATA "t"," "," "," "
DATA "1","o1","1"," "
DATA " ","1"," "," "
DATA " "," "," "," "
DATA 2,2
DATA "t","1"," "," "
DATA "1","o1"," "," "
DATA " ","1"," "," "
DATA " "," "," "," "
DATA 2,2
//Stick
DATA " "," "," "," "
DATA "s1","1","1","1"
DATA " "," "," "," "
DATA " "," "," "," "
DATA 2,2
DATA " ","1"," "," "
DATA " ","1"," "," "
DATA " ","1"," "," "
DATA " ","1"," "," "
DATA 1,1
DATA " "," "," "," "
DATA "1","1","1","s1"
DATA " "," "," "," "
DATA " "," "," "," "
DATA 1,4
DATA " ","1"," "," "
DATA " ","1"," "," "
DATA " ","1"," "," "
DATA " ","s1"," "," "
DATA 1,1
//Cube
DATA "c1","1"," "," "
DATA "1","1"," "," "
DATA " "," "," "," "
DATA " "," "," "," "
DATA 1,1
DATA "1","c1"," "," "
DATA "1","1"," "," "
DATA " "," "," "," "
DATA " "," "," "," "
DATA 2,1
DATA "1","1"," "," "
DATA "1","c1"," "," "
DATA " "," "," "," "
DATA " "," "," "," "
DATA 2,2
DATA "1","1"," "," "
DATA "c1","1"," "," "
DATA " "," "," "," "
DATA " "," "," "," "
DATA 1,2
//Z
DATA "Z","1","1"," "
DATA "1","1"," "," "
DATA " "," "," "," "
DATA " "," "," "," "
DATA 1,1
DATA "Z1"," "," "," "
DATA "1","1"," "," "
DATA " ","1"," "," "
DATA " "," "," "," "
DATA 1,1
DATA "Z","1","1"," "
DATA "1","1"," "," "
DATA " "," "," "," "
DATA " "," "," "," "
DATA 1,1
DATA "Z1"," "," "," "
DATA "1","1"," "," "
DATA " ","1"," "," "
DATA " "," "," "," "
DATA 1,1
//ZRev
DATA "z1","1"," "," "
DATA " ","1","1"," "
DATA " "," "," "," "
DATA " "," "," "," "
DATA 1,1
DATA "z","1"," "," "
DATA "1","1"," "," "
DATA "1"," "," "," "
DATA " "," "," "," "
DATA 1,1
DATA "z1","1"," "," "
DATA " ","1","1"," "
DATA " "," "," "," "
DATA " "," "," "," "
DATA 1,1
DATA "z","1"," "," "
DATA "1","1"," "," "
DATA "1"," "," "," "
DATA " "," "," "," "
DATA 1,1
//L
DATA "L1"," "," "," "
DATA "1"," "," "," "
DATA "1"," "," "," "
DATA "1","1"," "," "
DATA 1,1
DATA "L1","1","1","1"
DATA "1"," "," "," "
DATA " "," "," "," "
DATA " "," "," "," "
DATA 1,1
DATA "L1","1"," "," "
DATA " ","1"," "," "
DATA " ","1"," "," "
DATA " ","1"," "," "
DATA 1,1
DATA "L"," "," ","1"
DATA "1","1","1","1"
DATA " "," "," "," "
DATA " "," "," "," "
DATA 1,1
//LRev
DATA "l","1"," "," "
DATA " ","1"," "," "
DATA " ","1"," "," "
DATA "1","1"," "," "
DATA 1,1
DATA "l1"," "," "," "
DATA "1","1","1","1"
DATA " "," "," "," "
DATA " "," "," "," "
DATA 1,1
DATA "l1","1"," "," "
DATA "1"," "," "," "
DATA "1"," "," "," "
DATA "1"," "," "," "
DATA 1,1
DATA "l1","1","1","1"
DATA " "," "," ","1"
DATA " "," "," "," "
DATA " "," "," "," "
DATA 1,1
I too ran your code and as far as I can see, everything reads into the correct variable. But if you have other data statements then it may be reading values from there and causing your error.
Is that error actually generated when you read the data statements? Because even if I changed the data to the wrong expected type it still read them without an error. (Just resulting in zero or blank string)