So...i'll try my best to help...
X% and y% are reset to 0 each time cause that's where drawing starts from. They are then increased by 20 pixels each loop of the FOR blocks. Try changing them and see the map move around, id suggest trying to make it auto center to the screen...for that you'll need
X% = half of _SCREENWIDTH minus (half size of the column count of the array * the block size (20))
Ill let you figure out Y%
If you resize the map array you need to resize the DATA blocks to the same size. Id suggest a REDIM SHARED for the map array and then before reading the map data read two extra bits of data to size the array. i.e for a level thats 6 * 8
Read Col%
Read Row%
REDIM SHARED MAP(Col%, Row%)
Load the data
LevelOne: '// Line ref? For use with RESTORE so you can have data stored in any order you like and then just jump to it.
DATA 5, 7
DATA .....THE level data here,
You can easily make the for loop code into a SUB so you can call it repeatedly. The FOR loops would be changed to use the Col%/Row% values.
The drawing method is just the most basic method i could think of, in this sort of thing you would usually use a tile sheet and the DATA would be tile indices. For things like platform games you use multiple arrays for background, level, special objects, sprites etc...
Happy coding and reel free to ask anything else you need help with.
Unseen