"Роберт Джордайн. Справочное пособие программиста - 2 (ассемблер, операционная система MS DOS)" - читать интересную книгу автора BIOS (от 0 до 65535), причем в секунду происходит 18.2 импульса.
SOUND 440,91 воспроизводит ноту A в течение 5 секунд (5*18.2). Частоты первой октавы, начиная с ноты C(до) таковы: C (до) 523.3 D (ре) 587.3 E (ми) 659.3 F (фа) 698.5 G (соль) 784.0 A (ля) 880.0 B (си) 987.7 Частоты на октаву выше можно получить, удваивая эти значения, на две октавы выше - еще раз удваивая частоты. И наоборот, частоты на октаву ниже равны приблизительно половине этих значений (хоро- шо настроенное пианино точно не следует арифметическим интерва- лам). Благодаря своему генератору звука [2.2.1] PCjr может использо- вать оператор SOUND для трех независимых каналов звука, причем может управляться громкость каждого из них. В этом случае формат оператора: SOUND частота, длительность, громкость, канал. Гром- кость может меняться от 0 до 15, по умолчанию 8. Номер канала может меняться от 0 до 2, по умолчанию 0. Поскольку PCjr может использовать возможности многоголосия и контроля звука только для внешнего динамика, то надо сначала разрешить этот динамик. Это роль внутреннему динамику. Чтобы сыграть аккорд D-минор (ре-ми- нор) (D-F-A) с малой громкостью, напишите: 100 SOUND ON 'разрешение внешнего динамика 110 SOUND 587,50,3,0 'нота ре 120 SOUND 699,50,3,1 'нота фа 130 SOUND 880,50,3,1 'нота ля Низкий уровень. Генерация звука с помощью адаптера интерфейса с периферией 8255 состоит во включении и выключении с желаемой частотой бита порта B, который связан с динамиком (бит 1). Порт B имеет адрес 61H (хотя AT не имеет микросхемы интерфейса с периферией 8255 как таковой, он использует для этой цели тот же адрес порта и тот же бит). Если программа переключает значение бита с максимально возможной частотой, то частота слишком высокая, чтобы быть полез- ной. Поэтому между двумя переключениями надо вставлять пустой цикл. Помните, что бит 0 порта B управляет воротами канала 2 микросхемы таймера, который в свою очередь связан с динамиком. Поэтому этот бит должен быть сброшен, отсоединяясь от канала таймера. На рис. 2-4 показано как этот метод устанавливает часто- ту звука. В следующем примере введены две переменные. Одна, обозначенная |
|
|