Насчет TSR, terminate-and-stay-resident остающийся в памяти, резидентный ( специальным образом организованные программы в однозадачной ОС, которые загружаются, остаются в ОП и могут получить управление от другой программы ). Т.е. они там не работают параллельно, а просто находятся)) Однозадачная ОС.
Как программировать, например саунд бластер можно посмотреть здесь:
http://sizov.by.ru/pubs/sbtutor.shtml и здесь:
http://sizov.by.ru/pubs/audio.shtmlА также здесь:
http://www.valley.ru/~mna/musprog.htmПереписать с паскаля на с думаю проблем не составит.
Ну а исходники декодера надо искать как было уже сказано на sourceforge, а также я думаю можно посмотреть в сторону линукс.