Лучше сделать базовый регистр, будет возможность спроэцировать массив регистров карты на любой из адресов памяти.
Это уже работа блиттера разные прямоугольники и квадраты из памяти вырезать. Если делать так, то тогда видео буфер должен быть 1024x1024, 512х512, 512х256 с возможностью указания базы нулевой позиции x,y отображаемой области. Тогда можно отображаемую область двигать ещё влево и вправо, типа сгролл в играх, дорисовывая только по краям