Мухаха! А я советую не редровить весь экран, а только строку с курсором. Я в свое время на кружке писал уже драйвер ROM диска с менюшкой. Все на отлично шустро прорисовывалось на стандартном тормозном выводе символа, т.к. рисовал только то, что нужно (т.н. "дифф"). Т.е., стираем курсор пропечатывая строку, где он был, рисуем новый опять же печатая где он должен быть. Весь скрин редровить только при тотальной смене картинки. Ну а с шустрым выводом должно просто летать.

Касаемо:
Цитата Сообщение от vinxru Посмотреть сообщение
Размер шрифта 6 пикселей, а в байте 8 символов. Поэтому пришлось делать 4 функции рисования символов (как в твоей программе). Но внезапно это вылилось в то, что функция вывода текста может рисовать текст со смещением всего в 2 пикселя.

И тут я этим активно пользуюсь.
Мы этим пользовались еще на стандартном спеце 23 года назад в кружке. Именно поэтому, в быстром выводе 4 ветки вывода символа, а в оригинальном работа через сдвиг с помощью команды DAD и сохранением результата в стеке. Это же решает проблему хранения координаты Х, которая имеет 384 точки и не влазит в байт. Храним ее как X/2. Такие дела.