При выполнении графической задачи может возникнуть необходимость изменить уже установленную палитру, а спустя некоторое время восстановить ее. Чаше всего это делается при полном изменении находящейся на экране картинки, или при переходе к другой странице видеопамяти. В таких случаях перед изменением текущей палитры содержимое всех 256-ти регистров цвета надо сохранить в оперативной памяти. Для сохранения текущей палитры в памяти необходимо выделить пространство (буфер) размером в 3x256 = 768 байтов. Где именно будет расположен этот буфер, не имеет значения, но для возможности его использования в сегменте данных задачи надо выделить два слова и поместить в них смещение (адрес в сегменте) и значение сегмента, содержащего буфер.
Зарезервировать эти два слова можно, например, так:
BuffPal dw 0 ; для указания смещения буфера от начала сегмента
dw 0 ; для указания значения сегмента, содержащего буфер
При выполнении задачи в эти слова вместо нулей должны быть записаны конкретные значения сегмента и смещения в нем. Распределение пространства оперативной памяти обычно производится в начале выполнения задачи, как это делается, описано в приложении Б данной книги. Если местонахождение буфера известно при составлении программы, то оно указывается в Приведенных выше директивах вместо нулей.
В