(c) Давыдов В.М., Нижегородская
обл., с.Запрудное
Предлагаю новые темы для раз-
работок в раздел "Этюды".
Процедура получения на прин-
тере графической копии окна
произвольных размеров из экран-
ной области, которая может быть
полезной во многих прикладных
программах. Для ее написания не
обязательно иметь принтер. Мож-
но считать, что подпрограмма пе-
редачи принтеру кода, находяше-
гося в аккумуляторе, уже есть и
в нужном месте ставит CALL.
В обшем виде процедура выг-
лядит следующим образом.
1. Установка нулевого рас-
стояния между печатаемыми стро-
ками принтера. Принтеру "EPSON"
для этого требуется передать
последовательность 27,65,8 (де-
сятичные).
2. Установка графического
режима принтера. Для "EPSON" по-
следовательность 27,42,5,n1,n2,
где n1 и n2 определяют количе-
ство печатаемых вертикальных ко-
лонок = n1+n2*256.
3. Расчет адреса начала
строки знакомест в экранной об-
ласти.
4. Цикл передачи принтеру
образа строки (256 байт).
4.1. Расчет значения акку-
мулятора. При графической печа-
ти верхней игле принтера соот-
ветствует бит 7, второй сверху -
бит 6,..., нижней - бит 0.
4.2. Передача содержимого
аккумулятора на принтер.
4.3. Переход к следующей ко-
лонке.
5. Передача принтеру кодов
возврата каретки и перевода
строки (13,10).
6. Если напечатаны не все
строки, переход к п.2.
7. Восстановление интервала
между строками. Для "EPSON" ко-
ды 27,64 (перевод в состояние,
которое было после включения пи-
тания).
Практически единственным ин-
тересным моментом, с точки зре-
ния программирования, является
преобразование восьми байт зна-
коместа, совпадающих с форматом
знакогенератора, в последова-
тельность из восьми байт в фор-
мате принтера.
Еще одной полезной процеду-
рой для принтера может быть ка-
чественная печать в графическом
режиме с использованием подгру-
жаемых наборов символов.
Желательно, чтобы она под-
держивала последовательности уп-
равляющих кодов:
27,87,49 - включение двойной
ширины символов;
27,87,48 - выключение двой-
ной ширины символов;
27,69 - включение двойной
толщины символов;
27,70 - выключение двойной
толщины символов. Будет неплохо,
если кто-то встроит такую проце-
дуру в текстовый редактор.
Практически нет ни одной
серьезной программы, в которой
не используются разного рода ме-
ню. Еще одно направление для
этюдов. Вариантов может быть
много. Поскольку особое быстро-
действие не требуется, критерий
один - минимум памяти.
──────────────