Трудно предсказать, что именно съест время, поэтому все-таки сравнивать лучше эквивалентные вещи.

В моем примере все символы равноценны и их 256, так проще. Вот как у РДС получилось 2560 байт вместо 4096 -- любопытно. Предполагаю, что отрезанием непечатных и подменой глифов типа русская A / латинская A ?

Меня огорчает, что в этом развернутом хранении используются три бита от каждого байта. Обидно столько замечательных бит терять, ведь люди делали. Но все сдвиги и маскирования на 8080 даются ужасной болью.

Думаю, может быть можно что-то выгадать, если сразу принять, что строка 80 символов рисуется целиком залпом. Определенно небольшое количество вычислений координат можно упростить, но это вряд ли даст очень много - в моем бенчмарке максимум можно будет увидеть следующую букву, может полторы. Все-таки львиная доля -- это сдвиги, загрузки, маскирование.

- - - Добавлено - - -

Update: 44 символа =) Там конечно есть еще чуть чуть лишнего, но до 80 так вряд ли получится доехать.