Евгений, буду благодарен если кратко обьсните принципы работы с линейным буфером при условии что весь экран в видеопамять не влазит. Как переключаются банки памяти? Или можно как-то уговорить видеоконтроллер расширить замапленную область?
Через функции ah=4Fh/int 10h можно получить список видеорежимов, их подробные параметры, в т.ч. адрес LFB. Он может быть, например, равен C0000000 или E0000000 или F1000000. Далее устанавливаешь видеорежим и пишешь туда (для такой адресации нужен либо unreal mode, либо защищённый режим. Это если по-простому. Но там есть нюансы.
Скачай спецификацию VESA 3.0, там все подробно описано.