Управление разнообразной аппаратурой компьютера – контроллером клавиатуры, видео адаптером, последовательными и параллельными портами и др., осуществляется через управляющие регистры этой аппаратуры. Каждый из регистров имеет закрепленный за ним номер в диапазоне от 0000h до FFFFh. Этот номер называется портом, и программирование аппаратуры путем непосредственного обращения к ее регистрам носит название программирования через порты.
Обращение к портам осуществляется с помощью двух команд – in (input, ввод) для ввода и out (output, вывод) для вывода. Никакие другие команды для работы с портами не годятся, поэтому непосредственно в регистрах аппаратуры нельзя выполнять арифметические или логические операции. При необходимости изменить содержимое аппаратного регистра, надо сначала с помощью команды in прочитать содержимое этого регистра в регистр процессора или ячейку памяти, там требуемым образом изменить его и затем с помощью команды out вывести новое данное в регистр аппаратуры.
Программирование звука в простейшем случае осуществляется путем периодического включения и выключения тока, протекающего через динамик, по командам программы. Если частота переключения тока лежит в пределах приблизительно от 16 Гц до 16 кГц, мы слышим звуковой тон соответствующей частоты. Для управления током динамика служит бит 1 порта с номером 61h. Установка этого бита в 1 включает ток в динамике, установка в 0 – выключает. Таким образом, для получения звукового тона программа должна непрерывно переключать этот бит, что исключает выполнение программой какой – либо работы одновременно с выводом звука. Для того, чтобы организовать звуковое сопровождение, т.е. генерацию звука одновременно с работой программы, следует воспользоваться более сложным методом.
