Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Абель.docx
Скачиваний:
13
Добавлен:
26.11.2018
Размер:
569.84 Кб
Скачать

Глава 19 Печать

__________________________________________________________________________

Ц е л ь: Описать возможности программ на языке ассемблера для вывода

информации на печатающее устройство (принтер).

ВВЕДЕНИЕ

________________________________________________________________

Вывод на принтер несколько проще операций с экраном и диском. Для

печати существует несколько операций, выполняющихся через DOS INT 21H и

BIOS INT 17H. Команды, посылаемые на принтер, включают коды "конец

страницы", "конец строки" и "возврат каретки".

Принтеры классифицируются по качеству печати. Матричный принтер

формирует символы в виде матрицы точек и обеспечивает нормальный, узкий и

широкий форматы символов. Более совершенные матричные принтеры

обеспечивают точечную графику, наклонный шрифт, жирную печать и двойную

плотность, а также могут печатать, например, символы игральных карт и

другие алфавитно-цифровые символы. Высококачественные печатающие

устройства ограничены набором символов на сменной "ромашке" или барабане,

но обеспечивают отличное качество печати и большое разнообразие принтеров.

Многие высококачественные принтеры обеспечивают печать 10, 12 или 15

символов на дюйм, а также пропорциональное расположение пробелов,

подчеркивание, теневую и полужирную печать. Лазерные принтеры обладают

преимуществами как для матричной графики, так и для качественной печати

текстов.

Другая классификация печатающих устройств связана с интерфейсами.

Компьютеры IBM PC имеют параллельный интерфейс, позволяющий передавать

одновременно восемь битов из процессора на принтер. Кроме того, существует

последовательный интерфейс, который выполняет побитовую передачу данных.

Многие принтеры имеют буфер памяти, объемом в несколько тысяч байтов.

Принтеры также могут принимать биты контроля на четность (нечетность).

Принтеры должны "понимать" специальные сигналы из процессора, например,

для прогона листа, перевода строки или горизонтальной табуляции. В свою

очередь, процессор должен "понимать" сигналы от принтера, указывающие на

конец бумаги или состояние "занято".

К сожалению многие типы принтеров по разному реагируют на сигналы

процессора и одной из наиболее сложных проблем для программистов -

обеспечить соответствие собственных программ имеющимся печатающим

устройством.

СИМВОЛЫ УПРАВЛЕНИЯ ПЕЧАТЬЮ

________________________________________________________________

Стандартными символами управления печатью являются следующие:

Десятичн. Шест. Назначение

08 08 Возврат на шаг

09 09 Горизонтальная табуляция

10 0A Перевод строки

11 0B Вертикальная табуляция

12 0C Прогон страницы

13 0D Возврат каретки

Г о р и з о н т а л ь н а я т а б у л я ц и я. Горизонтальная

табуляция (шест. 09) возможна только на принтерах, имеющих соответствующее

обеспечение, иначе символы табуляции игнорируются. В последнем случае

можно имитировать табуляцию выводом соответствующего числа пробелов.

П е р е в о д с т р о к и. Символ перевода строки (шест.OA)

используется для прогона листа на один интервал. Соответственно для печати

через два интервала используется два символа перевода строки.

П р о г о н с т р а н и ц ы. Установка бумаги после включения

принтера определяет начальную позицию печати страницы. Длина страницы по

умолчанию составляет 11 дюймов. Ни процессор, ни принтер автоматически не

определяют конец страницы. Если ваша программа продолжает печатать после

конца страницы, то произойдет переход через межстраничную перфорацию на на

чало следующей страницы. Для управления страницами необходимо подсчитывать

число напечатанных строк и при достижении максимального значения

(например, 55 строк) выдать код прогона страницы (шест.0C) и, затем,

сбросить счетчик строк в 0 или 1.

В конце печати необходимо выдать символ "перевода строки" или

"прогона страницы" для вывода на печать данные последней строки,

находящиеся в буфере печатающего устройства. Использование последнего

символа "прогон страницы" позволяет установить напечатанный последний лист

в положение для отрыва.

ФУНКЦИИ ПЕЧАТИ В РАСШИРЕННОЙ ВЕРСИИ DOS

________________________________________________________________

В операционной системе DOS 2.0 имеются файловые указатели, которые

были показаны в главах по управлению экраном дисплея и дисковой печати.

Для вывода на печатающее устройство используется функция DOS шест.40 и

стандартный файловый номер 04. Следующий пример демонстрирует печать 25

символов из области HEADG:

HEADG DB 'Industrial Bicycle Mfrs', 0DH, 0AH

...

MOV AH,40H ;Запрос печати

MOV BX,04 ;Файловый номер принтера

MOV CX,25 ;25 символов

LEA DX,HEADG ;Область вывода