русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Работа с двумя принтерами одновременно


Дата добавления: 2015-06-12; просмотров: 583; Нарушение авторских прав


При наличии в ПЭВМ двух параллельных портов LPT1 и LPT2 одновременно можно использовать два принтера. При этом часто возникает проблема направления данных на тот или иной принтер без переделки соответствующих программ. Эта проблема легко решается программным путем. Достаточно лишь поменять местами адреса {390} портов, записанные в системных ячейках памяти $0000:$0408 (порт LРТ1, он же PRN) и $0000:$040А (порт LPT2). Резидентная версия программы перестановки адресов приведена на рис. 17.4. После нажатия клавиши PrintScreen (PrtScr) адреса меняются местами, о чем свидетельствует звуковая сигнализация. Количество сигналов соответствует номеру порта, а порядок следования — их текущему перенаправлению.

{$M 1024,0,0, F-,R-,S-,I-,N-} USES CRT, DOS; VAR LPT1, LPT2 : Word; { значения адресов } CONST OrderIsChanged : Boolean = False; { состояние обмена } PROCEDURE Beep; { процедура выдачи одиночного сигнала } BEGIN Sound( 200 ); Delay( 100 ); NoSound; Delay( 20 ) END; {$F+} { подставляемая процедура обработки прерывания} PROCEDURE NewInt05; INTERRUPT; BEGIN OrderIsChanged:=not OrderIsChanged; {порядок изменяется } if OrderIsChanged then begin {обратный порядок } MemW[ 0:$0408 ] := LPT2; { адреса меняются } MemW[ 0:$040A ] := LPT1; Beep; Beep; Delay( 200 ); Beep {2+1 сигнала звуком } end else begin { исходный порядок } MemW[ 0:$0408 ] := LPT1; { адреса меняются } MemW[ 0:$040A ] := LPT2; Beep; Delay( 200 ); Beep; Beep {1+2 сигнала звуком } end; END; {$f-} BEGIN { запускающая часть примера } HighVideo; WriteLn( #10#13'LPT1 <--> LPT2'#10 ); WriteLn('НАЖИМАЙТЕ PrintScreen', ' ДЛЯ ПЕРЕНАПРАВЛЕНИЯ'#10);

Рис. 17.4 {391}

LowVideo; LPT1:=MemW[ $0000:$0408]; {исходный адрес порта 'LPT1' } LPT2:=MemW[$0000:$040А]; {исходный адрес порта 'LPT2' } SetIntVec($00, SaveInt00); {нужно для резидентности } SetIntVec($1B, SaveInt1B); {нужно для резидентности } SetIntVec($05, @NewInt05); {подстановка прерывания 05 } Кеер(0) {программа будет резидентной } END.

Рис. 17.4 (окончание)



Программу на рис. 17.4 легко переделать при необходимости в обычную нерезидентную процедуру перестановки адресов и использовать ее в других приложениях. {392}



<== предыдущая лекция | следующая лекция ==>
Низкоуровневые средства работы с принтером | Правила оформления оверлейных программ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.726 сек.