Всё, облом. Под DOS невозможно писать, ибо существует всего два варианта сделать его многозадачным: перевести в защищённый режим (но тогда он не будет линковаться с готовыми модулями, использующими DOS), то есть написать многозадачную операционную систему (с однозадачной справиться нетрудно. Яркий пример — NoobIX16 — 700 — 800 строк кода на NASM’е — загрузчик + ядро + шелл + пара программ), либо писать свой менеджер многозадачности (попробуйте реализовать Round-Robin в DOS’е, думаю не у всех это получится, хотя у кого-то, если не ошибаюсь получилось).
Поэтому есть предложение писать под Linux. Преимущества очевидны: не надо изобретать педалистый велосипед, создавая свой драйвер для звуковой карты под DOS лишь для вывода пилообразной волны. Смотри себе пиши в /dev/snd/pcm*, /dev/snd/control* и подобные, либо используй готовое API, которое хоть и трудно, но реально изучить. Ещё одно преимущество — система потоков aka pThread’ы, позволяющая не задумываться как одновременно читать звук, писать звук и умудряться всё это синхронизировать. Благодаря мутексам и семафорам можно устроить всё пучком. На этом спешу откланяться и продолжить читать архивы рассылки linux-audio-dev и курить ALSA API