I got it working, as far as i understood what your problem was.
I made a little program in which you control x and y (very similar to athe players x and y position,
but these coordinates must actually be used for the upper left tile to be pasted, thats the first tile i mean) so, using the formula within the code should allow you to access the proper byte/data (whatever...). When you reach an x position of 32, the byte thing says 1024, if you reach y on 32, byte goes to 8192, which i think is correct according to your explanation of how the map is done. Of course, it also works if both variables are used at the same time, so x=32 and y=32 would be 9217... try it out, its a very simple program, i doubt you'll have difficulties understanding it, and of course, tell me if it's what you where asking for.
Heres the code... no media:
sync on
sync rate 60
do
cls
gosub _control
gosub _print
sync
loop
_control:
if upkey()=1 and key=0 then inc y : key=1
if downkey()=1 and key=0 then dec y : key=1
if leftkey()=1 and key=0 then dec x : key=1
if rightkey()=1 and key=0 then inc x : key=1
if upkey()=0 and downkey()=0 and leftkey()=0 and rightkey()=0 then key=0
b=(x+992*(x/32))+(32*y)+7168*(y/32)
return
_print:
set cursor 0,0
print "x: "+str$(x-offsetx)
print "y: "+str$(y-offsety)
print "byte: "+str$(b)
return
Hope it helps...