соответственно с типами byte и word.
Когда элементу массива Port или PortW присваивается значение, это действие интерпретируется как вывод значения в порт.
Когда элемент массива выступает как операнд в выражении, то доступ к порту понимается как ввод с порта. Например:
{ Разрешение дальнейшей работы контроллера прерываний }
Port[$20]:=$20;
{ Установка в 1 заданных линий порта }
PortW[Base]:=PortW[Base] or Maska;
{ Ожидание установки в 0 старшей линии порта }
While (Port[$82] and $80)=0 do;
Пример доступа к порту клавиатуры для управления движением курсора.
Program Kyrsor;
{ Демонстрационный пример доступа к порту клавиатуры для управления движением курсора }
Uses Crt; { используется для создания задержки }
Var Mode, { записываемый в порт байт }
Ch:byte; { число, читаемое с клавиатуры }
Begin
Writeln(' Выберите режим ввода символов:');
Writeln(' Задержка перед первым повторением:');
Writeln(' 1 - 250 мс');
Writeln(' 2 - 500 мс');
Writeln(' 3 - 750 мс');
Writeln(' 4 - 1 с');
Repeat
Read(Ch);
Until Ch in [1..4];
Case Ch of
1: Mode:=0;
2: Mode:=$20;
3: Mode:=$40;
4: Mode:=$60;
end;
Writeln(' Частота перемещения, раз/сек:');
Writeln(' 1 - 30');
Writeln(' 2 - 20');
Writeln(' 3 - 10');
Writeln(' 4 - 5');
Writeln(' 5 - 2');
Repeat
Read(Ch);
Until Ch in [1..5];
Case Ch of
2: Mode:=Mode or 4;
3: Mode:=Mode or $0a;
4: Mode:=Mode or $14;
5: Mode:=Mode or $1f;
end;
{ Команда на установку режима }
Port[$60]:=$f3;
{ Задержка на восприятие }
Delay(10);
{ Код режима }
Port[$60]:=Mode;
end.