Instead of writing a string for the value of Grid(x,y), why don't you write it as a WORD?
for y = 0 to MapSizeY
for x = 0 to MapSizeX
write word 1,Grid(x,y)
next x
next y
If the value of Grid(x,y) will always be less than 255, you could even write a BYTE instead of a WORD.
NOTE: If you change it to write either a WORD or BYTE, you should delete the current file, as it will have STRING data saved to it.
EDIT: My bad, I forgot to include the subroutine with it:
DisplayMAP:
cpx = 100 : cpy = 100
for y = 0 to MapSizeY
for x = 0 to MapSizeX
text cpx, cpy,str$(Grid(x,y))
inc cpx,50
next x
inc cpy,20 : cpx = 100
next y
return
If you store the values as suggested and run this subroutine, it should print out the values, starting at 100,100.
So many games to code.......so little time.