"Роберт Джордайн. Справочное пособие программиста - 2 (ассемблер, операционная система MS DOS)" - читать интересную книгу авторатей, предоставляемых Бейсиком. Построение же строк звуков в ас-
семблере требует большой работы. Может быть использован любой из двух методов генерации звука, предложенных в [2.2.2] и [2.2.3]. Для обоих методов надо просто генерировать один тон в течении заданного времени, затем следующий и т.д. Каждая звуковая строка формируется из двух строк данных, одна из которых содержит часто- ты последовательных тонов, а другая хранит их длительности (при условии, что требуются разные длительности). Продолжительность звучания определяется с использованием счетчика времени суток BIOS [2.1.6]. Высокий уровень. Опреатор Бейсика PLAY предоставляет большие возможности. Опе- ратор сопровождается строкой нот, перемешанных с информацией о том, как эти ноты должны быть исполнены. Ноты записываются буква- ми A - G и последующими знаками для диезов и бемолей. Диезы обоз- начаются знаками # или +, а бемоли минусом (-). Операторы PLAY "CC#D" и PLAY "CD-D" эквивалентны, но нельзя использовать диезы и бемоли для обозначения белых клавиш. Второй способ задания нот состоит в вычислении кодового номера от 0 до 84, причем 0 соот- ветствует отсутствию звучания, а числа от 1 до 84 соответствуют 84 возможным нотам семи октав, начиная снизу. Номеру должна пред- шествовать буква N: PLAY "N3N72N44". Допустимый диапазон - семь октав, внутри каждой могут быть первой октавы соответствует октаве 3. Текущая октава может быть изменена в любой момент, за счет вставки в строку буквы O, за которой следует номер октавы. Если не было начальной установки, то используется октава 4. Оператор PLAY "O3CO4CO5CO6C" выводит ноты до последовательных октав вверх. Другой способ изменения октавы состоит во включении в строку символов > или <, которые переключают тон вверх и вниз на октаву, соответственно. Оператор PLAY "O3C>C>C>C" приводит к тому же результату, что и предыдущий. Длительность исполнения нот также может быть изменена за счет вставки кодового номера, которому предшествует буква L. Все пос- ледующие ноты будут исполняться с этой длительностью до тех пор, пока не встретится другой код длины. Код - это число от 1 до 64, причем 1 соответствует целой ноте, а 64 - 1/64. Запись L4 соот- ветствует четверти. Темп с которым исполняются ноты регулируется кодом темпа, который состоит из буквы T, за которой следует число от 32 до 255, дающее число четвертей, исполняемых в минуту. Если эти параметры не указаны, то по умолчанию берется длительность L4 и темп 120. Для изменения длительности только одной ноты надо поместить значение длины после ноты и без буквы L. Оператор PLAY "L4CDE16FG" исполнит E как шестнадцатую, а все остальные ноты как четверти. Длительность пауз берется такой же, как и длительность нот. Поместите номер от 1 до 64 после буквы P для паузы. P1 де- лает паузу интервалом в целую, а P64 - в 1/64. Помещение точки после ноты имеет тот же эффект, какой он имеет в обычной музы- |
|
|