Page 41 - 4875
P. 41

порту підключений до входу GATE каналу №2 таймера. Саме цей біт
                           (при  установці  в  „1”)  дозволяє  роботу  каналу,  тобто  генерацію
                           імпульсів  заданої  частоти  на  динамік.  Крім  того  додатково  можна
                           використовувати біт „1” порта 61h, який дозволяє (при установці в „1”)
                           подавати імпульси від каналу №2 таймера на динамік. Таким чином для
                           програмування звукових ефектів необхідно виконати наступні дії:
                            1  Запрограмувати  канал  №2  таймера  на  потрібну  частоту.  Тобто
                               записати  в  регістр  лічильника  каналу  потрібне  значення.  Адреси
                               відповідно 40h...42h.
                            2  Встановити  в  „1”  обидва  молодших  байти  („0”  і  „1”)  порту  61h.
                               Оскільки  всі  інші  шість  бітів  цього  порту  використовуються
                               системою, то зміну молодших 2-ох бітів потрібно проводити таким
                               чином, щоб значення старших 6-ти не змінювалось.
                                  Відповідно для виключення звуку необхідно обнулити молодші
                           два біти  порту 61h.
                                  При формуванні звукового  ефекту (згенерованої послідовності
                           нот, розділеної паузами) необхідно для кожної ноти відповідним чином
                           програмувати канал таймера і включати динамік (за допомогою порту
                           61h)  на  час,  що  відповідає  тривалості  звучання  ноти.  Після  чого
                           динамік  відключається,  задаються  нові  параметри,  витримується  нова
                           пауза і операція виводу повторюється.
                                  Генерація  звуку  без  використання  таймера  ґрунтується  на
                           керуванні  бітом  „1”  („0”  –  обтулений)  порта  61h.  В  цьому  випадку
                           програма повинна  встановлювати  біт  „1”  значення  або  „0”,  або  „1”  з
                           деяким періодом, при чому висота генерованого звуку буде відповідати
                           цьому періоду. Також можна використовувати комбінований метод, що
                           дозволяє отримати різноманітні звукові ефекти.
                                  Реалізація  фонового  режиму  відтворення  звукових  ефектів
                           традиційно ґрунтується на перериванні int 1ch, тобто програма повинна
                           перехоплювати  це  переривання  (орієнтовно  1  раз  в  0,5с)  і  змінювати
                           ноту,  що  звучить.  Тобто  переключати  на  нову  частоту  генерування
                           імпульсів  на  динамік,  або  виключати  його  взагалі.  Однією  з  переваг
                           використання  таймерів  для  відтворення  звукових  ефектів  є
                           незалежність  констант,  що  використовуються  для  програмування
                           каналів від потужності системи.


















                                                           40
   36   37   38   39   40   41   42   43   44   45   46