"Архитектура ввода-вывода персональных ЭВМ IBM PC" - читать интересную книгу автора (Лукач Ю.С.)

; FREQ=длительность импульса
;
in al,61h ;порт РВ
and al,not ;сброс бита 0
mov dx,N
Repeat:
or al,2
out 61h,al ;установить бит 1
mov cx,FREQ
Wait_On:
loop Wait_On
and al,not 2 ;сбросить бит 1
out 61h,al
mov cx,FREQ
Wait_Off:
loop Wait_Off
dec dx
jnz Repeat

Программирование этого способа основано на следующих
формулах. Если Т - длительность звучания в сек, f - частота
звука в Гц, а t - тактовая частота процессора ПЭВМ, то

N=T*f; FREQ=t/(34*f).

Константа 34 объясняется тем, что длительность каждого из
циклов Wait_on и Wait_off приблизительно равна (17*cx) машинных
тактов.

Неудобство этого метода состоит в том, что ЦП полностью
занят генерацией звука - любое прерывание испортит временную
диаграмму звукового сигнала. Однако он обеспечивает точную
подстройку частоты и позволяет создавать несимметричные импульсы
варьированием задержек в циклах Wait_on и Wait_off.


5. Программируемый периферийный интерфейс

5.1. Описание ППИ 8255

В состав IBM PC/XT входит программируемый периферийный
интерфейс (ППИ) 8255 (отечественный аналог КР580ИК55). ППИ
содержит три 8-разрядных порта (РА, РВ и РС) для организации
обмена между ЦП и внешними устройствами и регистр управления.
Порты сгруппированны в две группы: группа А состоит из РА и
старшей тетрады РС, группа В - из РВ и младшей тетрады РС.
Группа А может работать в трех режимах (0, 1, 2); группа В - в
двух (0 и 1). Режимы определяются содержимым регистра
управления, имеющим следуюший формат: