Робота з портами в Турбо Паскаль



Будь-який пристрій і будь-який засіб введення / висновку має один або кілька регістрів. Доступ до цих регістрів робиться через адресний простір вводу / виводу. Регістри мають розрядність 8,16 або 32 біта, а адресний простір вводу / виводу включає 65536 адрес. Тобто поняття порту можна визначити як 8 -, 16 - або 32-розрядний апаратний регістр, який має певну адресу в адресному просторі вводу виводу. Вся робота з пристроями на низькому рівні відбувається з використанням цих портів.
Pascal здатний працювати з портами введення / виводу. Для цього в мовах Turbo Pascal і в першій версії Delphi існують зумовлені масиви PortW й Port. Це одномірні масиви індекси якого відповідають адресою порту вводу / виводу. Різниця між PortW і Port полягає в те, що в PortW - елементи мають тип word (цілочисельний тип. Можливі значення від 0 до 65535), а в масиві Port - значення byte (ціле число від 0 до 255). Запис і читання в порт здійснюється також як і зі звичайним масивом.
Port[номер_порта]: = Дані - запис даних типу byte в порт;
Змінна: = Port[номер_порта]- Читання даних типу byte з порту.
PortW[номер_порта]: = Дані - запис даних в порт. Записувані дані повинні мати тип word
Змінна: = PortW[номер_порта]- Читання даних з порту. У змінну будуть записані дані типу word.
Після появи Object Pascal - массви Port і PortW були виключені. Це проблему можна було вирішити, використовуючи стандартні засоби APIWindows. Але це підходило тільки в таких випадків, коли використовувалися стандартні порти - LPT, Com та ін При використанні інших портів - помилка не зникала. Ф. Булбак знайшов рішення проблеми, створивши динамічну бібліотеку. Чотири процедури з цієї бібліотеки дозволяють повністю відмовитися від використання елементів масивів Port і PortW:
PortOut - запис байта в порт
PortWordOut - запис даних типу word в порт
Параметрами для даних процедур є: 1 - адреса порту, 2 - дані які потрібно записати
PortIn - читання байта з порту
PortWordIn - читання даних тапа word з порту
У цих процедур всього один параметр - адреса порту.



  • Переваги вивчення системи програмування Delphi
  • Гість із недалекого майбутнього
  • Внутрішні регістри