Если поменять функции HL и DE, то вместо
можно писатьКод:LD С,(DE) ~ROLL С LD A,(HL) OR C LD (HL),A
Так чуть короче, чуть быстрее, и регистр BC полностью свободен.Код:LD A,(DE) ~ROLL A OR (HL) LD (HL),A
Когда литеру шлёпаем в два знакоместа, то можно первое знакоместо проходить вниз, а второе вверх. Убираются PUSH POP, и сразу получаем адрес для следующего символа.
Шесть сдвигов можно заменить двумя циклическими сдвигами в другую сторону с одним AND.
Если размер важнее скорости, то можно свернуть все DUP-ы.
А если скорость важнее размера, то можно как нибудь свести эти четыре варианта печати, чтобы они друг друга по очереди вызывали. Или если печатать не символ, а сразу строку, то вообще шли друг за другом по кольцу.
Или может быть печатали сразу с двух литер в одно знакоместо.
Или даже имели сразу сдвинутые шрифты.





Ответить с цитированием
