"Роберт Джордайн. Справочное пособие программиста - 2 (ассемблер, операционная система MS DOS)" - читать интересную книгу автора

кальной нотации: длительность ноты увеличивается наполовину.
Вторая точка продолжит длительность еще наполовину.
По умолчанию ноты играются 7/8 указанной длительности. Чтобы
они исполнялись полную длительность (легато), поместите в строку
ML. Чтобы они исполнялись 3/4 длительности (стаккато), поместите
в строку MS. Чтобы вернуться к нормальному стилю надо указать MN.
Обычно, вся прочая деятельность программы прекращается до тех
пор, пока не будет сыграна строка. Для того чтобы выполнялись
операторы, следующие за оператором PLAY, а строка исполнялась в
фоновом режиме, поместите в строку MB. Для восстановления нор-
мальной ситуации напишите MF.
Наконец, оператор PLAY позволяет исполнять подстроки внутри
длинной строки. Имеется в виду, что часть исполняемой строки
может быть введена как обычная строковая переменная, а затем эта
переменная может быть вызвана из строки сформированной в операто-
ре PLAY. Например, если S$ = "EEEEE", то в операторе PLAY
"CDXS$;FG" нота E будет повторена 5 раз. Отметим, что имени пере-
менной должна предшествовать буква X, а за именем следовать точка
с запятой (;). (Для компилируемых программ применяется другой
метод, использующий переменную VARPTR$ - детали см. в руководстве
по Бейсику).
В приведенном примере исполняется знакомый бой дедушкиных
часов. В строке сначала устанавливается стиль исполнения легато,
затем темп и начальная октава, и, наконец, четыре ноты, пауза, и
те же самые четыре ноты, но в обратном порядке. Пробелы в строке
включены исключительно для удобства программиста - Бейсик игнори-
рует их.

100 PLAY "ML T40 O3 ECDDEC"

Благодаря наличию генератора звука PCjr добавляет к оператору
PLAY две возможности. Во-первых, допускается параметр V, устанав-
ливающий громкость. Выражение V5 устанавливает (или изменяет)
громкость на уровень 5. Допустимый диапазон от 0 до 15, причем по
умолчанию берется 8. 0 полностью подавляет звук. Во-вторых, с
помощью оператора PLAY можно одновременно исполнять три звуковых
строки. Поместите все три строки в одну программную строку, раз-
деляя их запятыми. Для того чтобы иметь возможность использовать
эти специальные свойства, Вы должны предварительно разрешить
внешний динамик с помощью оператора SOUND ON.

100 SOUND ON
110 PLAY "...........","..........","............"

Низкий уровень.

В примере для генерации звука используется микросхема таймера
8253. Здесь просто исполняются 8 нот, но небольшая модификация
может сильно расширить возможности этой процедуры. Имеется три
строки данных. Первая устанавливает длительность каждой ноты, как