ИФК: письмо на актуальную тему пришло от Ильи Пивена (Selina Space Studio).
КОРР: разбирая работу, изложенных в "ЭТЮДАХ" программ, связанных с увеличенными символами: печать символов двойной высоты и пр., я наткнулся на один интересный факт, о котором в выпусках РЕВЮ совсем нет информации. Речь идет вот о чем. Ни одна из оттестированных программ не учитывала того, что экранная область памяти SPECCY сегментирована. Это не имеет значения тогда, когда печать выполняется внутри сегментов, но никак не на их границе.
ИФК: Подробно вопросы сегментации экрана рассмотрены в книге "Элементарная графика".
КОРР: таким образом, есть две "опасные" Y-координаты - 7 и 15, и, соответственно, две возможности некорректной работы программы печати. Для наиболее простой проверки вышеизложенного, рекомендую в программе печати Игоря Комарова (ZX РЕВЮ 95/2, стр.45) в строке 230 подставить "опасные" Y-координаты. Наиболее быстрый и доступный способ решения проблемы такой экранной несовместимости -специально указывать, что какая-либо программа не учитывает сегментированности экранной памяти SPECCY. Но это никоим образом не решает проблему в корне. Решить ее - значит создать дополнительные процедуры проверки Y-координаты позиции печати и соответствующей настройки программы.
ИФК: действительно, существуют два пути решения: либо вставлять в программу дополнительные операторы проверки, либо указывать на ограничения в применении данной программы. Все зависит от задач, которые Вы ставите перед собой при написании программы. Если Вы четко знаете, что печать текста будет происходить только в одном сегменте, то встраивать дополнительные операторы проверки - только лишний расход памяти. Если же Вы собираетесь написать универсальную программу с возможностью печати в любой точке экрана, тогда Вам волей-неволей придется решать проблемы, связанные с сегментированием экрана.