Системное программное обеспечение персональных ЭВМ


Пример 2



Пример 2

/*== ПРИМЕР 6.1 ==*/ /*============== Генерация звука ====================*/ #include <dos.h>

main() { unsigned int gamma[] = /* Коэффициенты деления для нот */ { 912,813,724,678,609,542,483 }; char *gnames[] = /* Названия нот */ { "до","ре","ми","фа","соль","ля","си" }; int i; for(i=0; i>8); /* Старший байт счетчика */ /* Включение динамика. Читается содержимое порта, в него записываются 1 в разряды 0, 1, затем пишется в порт */ outportb(0x61,inportb(0x61)|0x03); } /*==== Выключение звука ====*/ silence() { /* записываются 0 в разряды 0, 1 порта 0x61 */ outportb(0x61,inportb(0x61)&0xfc); }

И еще одно замечание. Большинство языков программирования высокого уровня имеют стандартные функции, аналогичные нашим tone и silence (в Турбо-Си это sound и nosound). Но высота звука для этих функций задается не коэффициентом деления, а частотой, которая связана с коэффициентом деления соотношением:

Частота = 1193180 / Коэфф.деления




- Начало -  - Назад -  - Вперед -