Если будете рисовать через БИОС - и должно быть жутко медленно.
Вам проще использовать любой 256-цветный палитровый режим (1 байт на точку).
Устанавливаете требуемый режим (он должен иметь поддержку линейного режима - там бит где-то об этом говорит).
Далее отображаете область памяти видеоадаптера на память вашего процесса средствами дос-экстендера (в защищенном режиме).
И потом устанавливаете значение пиксела (Х,У) по адресу (byte*)base_addr+Y*stride+X, где stride - количество байтов в одной строке,
а base_addr - указатель на начало области памяти (видеоадаптера...).
Палитру либо загружаете через порты, либо средствами БИОС.
Как-то так, за давностью лет все уже смутно помнится.
Что касается экстендера - дело ваше. Наверное, у вас нет проблем с размером ПО.
ZRDX, насколько я помню, не обеспечивал полной совместимости с ДОС4ГВ.
Просто он раз в 10 меньше. Плюс я в него еще пихал некоторые свои функции.
В приложении - демы от SciTech SVGAKIT.