Глава 6. Принтер.

Раздел 1. Управление работой принтера.

6.1.4 Переключение между двумя или несколькими принтерами.

Kомпьютеры, оснащенные несколькими параллельными портами могут иметь одновременно подсоединенными два или более принтеров. Вывод может перенаправляться с одного принтера на другой двумя способами. Один способ состоит в том, чтобы использовать только такие операторы вывода на печать, которые указывают на какой принтер надо осуществлять вывод. Вы можете написать такой код, который позволит Вам изменять спецификацию.

Второй способ переключения принтеров состоит в использовании вывода по умолчанию на LPT1, но указания другого принтера, который будет использоваться в качестве LPT1. Это достигается изменением базового адреса, относящегося к LPT1. Этот базовый адрес хранится в области данных BIOS в ячейке 0040:0008. Поменяйте его с базовым адресом для LPT2 или 3 (хранящимися в ячейках 0040:000A и 0040:000C) и в качестве LPT1 будет использоваться другой адаптер.

Hизкий уровень.

Один способ, которым программа на ассемблере может изменить принтер, на который она посылает данные, состоит в использовании для печати только функции 0 прерывания 17H {6.3.1}. Эта функция требует, чтобы номер принтера был помещен в DX. Заведите переменную для этого номера, с тем чтобы он мог быть изменен в любой момент. Вторая возможность состоит в обмене базовых адресов LPT1 и LPT2 или LPT3. Следующая программа делает именно это. Kак и все короткие утилиты, она должна писаться в COM форме, как объяснено в {1.3.6}.
;---обмен базовыми адресами LPT1 и LPT2
MOV AX,40H ;сегмент области данных BIOS
MOV ES,AX ;ES указывает на данные
MOV BX,8 ;смещение для базового адреса LPT1
MOV DX,ES:[BX] ;сохраняем базовый адрес LPT1
MOV AX,ES:[BX]+2 ;сохраняем базовый адрес LPT2
MOV ES:[BX],AX ;меняем базовый адрес LPT2
MOV ES:[BX]+2,DX ;меняем базовый адрес LPT1


<~-6.1.3 Интерпретация ошибок принтера и восстановление после них.
Содержание
Раздел 2. Установка спецификаций печати.-~>

Сайт управляется системой uCoz