дніх адресах в просторі введення/виведення, починаючи з базової адреси порту (BASE). Data Register (DR) - регістр даних, адреса = ВЛ5Е. Дані, записані в цей порт, виводяться на вихідні лінії інтерфейсу. Дані, лічені з цього регістра, залежно від схемотехніки адаптера відповідають або раніше записаним даними, або сигналам на тих же лініях, що не завжди одне і те ж. Якщо в порт записати байт з одиницями у всіх розрядах, а на вихідні лінії інтерфейсу через мікросхеми з виходом типу "відкритий колектор" подати якийсь код (Або з'єднати ключами якісь лінії зі схемної землею), то цей код може бути лічений з того ж регістра даних. Таким чином, на багатьох старих моделях адаптерів можна реалізувати порт введення дискретних сигналів, однак вихідним ланцюгах передавача інформації доведеться "боротися" з вихідним струмом логічної одиниці вихідних буферів адаптера. Схемотехніка ТТЛ такі рішення не забороняє, але якщо зовнішній пристрій виконано на мікросхемах КМОП, їх потужності може не вистачити для "перемоги" в цьому шинному конфлікті. Однак сучасні адаптери часто мають у вихідний ланцюга узгоджувальний резистор з опором до 50 Ом. Вихідний струм короткого замикання виходу на землю зазвичай не перевищує 30 мА. Простий розрахунок показує, що в разі короткого замикання контакту роз'єму на землю при виведенні "одиниці" на цьому резистори падає напруга 1,5 В, що вхідний схемою приймача буде сприйнято як "одиниця". Отже такий спосіб вводити не буде працювати на всіх комп'ютерах. На деяких адаптерах портів вихідний буфер відключається перемичкою на платі. Тоді порт перетворюється на звичайний порт введення.
Status Register (SR) - регістр стану; являє собою 5-бітний порт введення сигналів стану принтера (біти SR.4-SR.7), адреса == 8ЛЗЕ +7. Біт SR. 7 інвертується - низькому рівню сигналу відповідає одиничне значення біта в регістрі, і навпаки.
Призначення біт регістру стану (в дужках дано номери контактів роз'єму):
SR. 7 - Busy - інверсні відображення стану лінії Busy (11): при низькому рівні на лінії встановлюється одиничне значення біта - дозвіл на виведення чергового байта.
SR.6 - Ack (Acknowledge) - Відображення стану лінії Ack # (10). p> SR.5 - РЕ (Paper End) - відображення стану лінії Paper End (12). Одиничне значення відповідає високому рівню лінії - сигналу про кінець паперу в принтері.
SR.4 - Select - відображення стану лінії Select (13). Одиничне значення відповідає високому рівню лінії - сигналу про включення принтера.
SR.3 - Error - відображення стану лінії Error (15). Нульове значення відповідає низькому рівню лінії - сигналу про будь-яку помилку принтера.
SR.2 - PIRQ - прапор переривання по сигналу Ackft (тільки для порту PS/2). Біт обнуляється, якщо сигнал Ack # викликав апаратне переривання. Одиничне значення встановлюється за апаратному скиданню і після читання регістра стану.
SR [1: O] - зарезервовані.
Control Register (CR) - регістр управління, wpec ^ BASE +2. Як і регістр даних, цей 4-бітний порт виведення допускає запис і читання (біти 0-3), але його вихідний буфер звичайно має тип "відкритий колектор". Це дозволяє коректно використовувати лінії даного регістра як вхідні при програмуванні їх у високий рівень. Біти Про, 1, 3 інвертуються. p> Призначення біт регістру управління:
CR [7:6] - зарезервовані.
CR.5 - Direction - біт керування напрямком передачі (тільки для портів PS/2). Запис одиниці переводить порт даних в режим введення. При читанні стан біта не визначено. p> CR.4 - AcklntEn (Ack Interrupt Enable) - одиничне значення дозволяє переривання по спаду сигналу на лінії Ack # - сигнал запиту наступного байта.
CR.3 - Select In - одиничне значення біта відповідає низькому рівню на виході Select ln # (17) - Сигналу, дозволяє роботу принтера по інтерфейсу Centronics. p> CR.2 - Init - нульове значення біта відповідає низькому рівню на виході - сигналу апаратного скидання принтера.
CR. 1 - Auto LF - одиничне значення біта відповідає низькому рівню на виході Auto LF # (14) - сигналу на автоматичний переклад рядка (LF - Line Feed) по при йому байта повернення каретки (CR). Іноді сигнал і біт називають AutoFD або AutoFDXT. p> CR.O - Strobe - одиничне значення біта відповідає низькому рівню на виході Strobeft (1) - сигналу стробирования вихідних даних.
Запит апаратного переривання (обьлно IRQ7 або IRQ5) виробляється по негативному перепаду сигналу на виведення 10 роз'єму інтерфейсу (Ack #) при установці CR.4 = i. Щоб уникнути помилкових переривань контакт 10 з'єднаний резистором з шиною +5 В. Переривання виробляється, коли принтер підтверджує прийом попереднього байта. Як вже було сказано, BIOS це переривання не використовує і не обслуговує.
Процедура виведення байта по інтерфейсу Centronics включає наступні кроки (у дужках наведено необхідну кількість шинних операцій процесора):
- Висновок байта в регістр даних (1 цикл...