Подумал, что я никогда не пытался даже точечку нарисовать в этом режиме. А скорость вывода текста в МикроДОС всегда навевала тоску. И решил попробовать сделать сам. Провозился день, но понял только, что МикроДОС не пальцем деланый и с учетом обстоятельств выводит текст еще даже можно сказать быстро.
Моя совсем пока неотесанная попытка (гист в прекрасме).
Сначала сделал вариант честный, который очищает сам себе знакоместо (это blx_jumptbl), как это требуется в эмуляции терминала. Потом сделал второй, который считает, что текст всегда печатается по заранее очищенной области слева направо (nblx_jumptbl). В условиях эмуляции терминала это нельзя гарантировать, но в других случаях это по-моему разумное ограничение.
Шрифт 6х8 разворачивается половинками глифов: 8 байт для плоскости A000 + 8 байт для плоскости C000 (используются младшие три бита, в Векторовской проекции это получается сдвиг на 5).
Впечатления довольно тяжкие. 512 точек -- ужасно неудобный для рисования режим, а уж 80 символов в строке, при том, что получается по три бита на знакоместо -- восьмикратно неудобный. Думаю, может быть я вообще что-то неправильно понял и можно совсем не так все делать. Было бы прикольно, если б получилось выжать за прерывание хотя бы строку. Сейчас выходит только 43 символа. То есть если 80х25, то нужна почти секунда, чтобы заполнить весь экран текстом.
Нету ли, кстати, в удобном виде шрифта, который используется в МикроДОС-е? Тот шрифт 6x8, который я нашел, только родная мама способна полюбить.