I have each room saved as a bgscreen called something like rm0304. When I reach the end of the room I make the player start at the opposite side of the next room, then increase/decrease a variable for my map X/Y position. I then use STR$ to turn those variables into a string then add de other stuff to what we'll call L$. For example L$="dat:rm0304_l0". Then finally I just put load L$.