Видеопрограмма BIOS выполняет сдвиги с помощью переноса символов и атрибутов в дисплейном буфере. Программа сдвига не меняет стартового адреса дисплейного буфера; такой метод сдвига был бы быстрее, но не позволяет прикладной программе определять, куда должны попасть отдельные символы. Способ сдвига, реализуемый в BIOS, подходит для обычной работы экрана. Заметим также, что программа сдвигает изображение при необходимости более чем на одну строку. Обычно программа сдвигает изображение на одну строку. Функция сдвига видеопрограммы BIOS позволяет сдвинуть содержимое экрана на несколько строк. Если же количество строк сдвига равно нулю, программа BIOS очищает экран. Это - быстрый способ очистки всего экрана или его части.
Когда программа работает в 80-символьном режиме на цветном графическом адаптере, она не может записывать или читать его текст в произвольные моменты времени. Если программа будет модифицировать буфер не в строго определенные моменты времени, на экране появятся помехи. Так как программа сдвига читает и записывает большие количества данных, она должна быть написана с учетом проблемы помех. Если посмотреть текст программы обслуживания операции сдвига, то можно увидеть, что BIOS обслуживает режим 80*25 цветной платы (переменная CRT_MODE равна 2 или 3), как специальный случай. В случае операций сдвига эта подпрограмма BIOS ждет до тех пор, пока не возникнет вертикальный обратный ход луча дисплея. Это означает, что аппаратура адаптера выдала на экран все содержимое буфера и готова начать новый кадр. (Аппаратура адаптера повторяет этот процесс регенерации экрана 60 раз в секунду). При появлении вертикального обратного хода программа BIOS выключает дисплей и выполняет сдвиг. Когда программа сдвига переместит все символы, она снова включает дисплей. Это вызывает короткое мигание дисплея. Если вы внимательно посмотрите на экран во время сдвига, то заметите, что верхние его шесть строк несколько темнее остальных. Это происходит из-за того, что операция сдвига занимает несколько большее время, чем один период регенерации экрана. Поэтому верхние шесть строк выключаются на два интервала регенерации, а весь остальной экран - только на один интервал. Метод, допускающий появление помех на экране, настолько непригляден, что описанный метод предпочтительнее. Вы можете написать несколько программ, чтобы попробовать другие методы.
Когда экран находится в графическом режиме, начинает работать другая часть программы сдвига. Хотя это и существенная часть программы BIOS, ее обсуждение отложим до тех пор, пока не рассмотрим чтение и запись символов на экран.