Страница 14 из 20
Раздел 3. Посылка данных на принтер. Посылка данных на принтер тривиальна в языках высокого уровня, а для программиста на языке ассемблера имеется ряд функций опера- ционной системы, которые делают задачу также достаточно простой. Программирование на низком уровне требует больше работы, но зато предоставляет больше возможностей. Как правило, процедуры печати низкого уровня посылают символ на принтер, а затем постоянно проверяет регистр статуса ввода порта, к которому присоединен принтер. Следующий символ посылается только тогда, когда принтер сигнализирует, что он готов (принтер может не печатать символ сразу, а запасать его в своем буфере, до тех пор пока не будет получена целая строка символов для печати). Кроме того, процедуры низкого уровня могут использовать преры- вание принтера или могут имитировать действие этого прерывания. С помощью специального программирования можно сделать так, что принтер будет делать прерывание проценссора, когда он готов к приему следующего символа. Процедура обработки прерывания посы- лает следующий символ, после чего процессор может продолжать заниматься своими делами. Этот метод используется для фоновой печати (которую называют также спулингом). Поскольку физические перемещения деталей принтера намного медленнее, чем скорость электроники компьютера, то вывод символов на принтер занимает лишь малую долю процессорного времени. Использование прерывания позволяет использовать это время эффективно. При посылке данных на принтер требуется сравнительно небольшие усилия, чтобы добиться ужасно сложного вывода. Все сложные кар- тинки, которые может выводить принтер, достигаются за счет комби- нирования текстовых и графических данных, а также многочисленных кодов управления принтером, обсуждавшихся ранее в этой главе. Комбинируя в одной строке текстовый и графический режимы, можно добиться выравнивания правого поля и пропорциональной печати. Кроме того любой графический принтер может создавать специальные символы произвольного вида, а за счет аккуратного манипулирования надпечатки и межстрочного интервала могут выводиться любые симво- лы псевдографики.
|