Исключительно потому, что основной софт пашет под ВыньДос.
.bat оформлен именно так, как ты предположил, т.е. потоковый вызов программ. В единичных случаях обрабатываются коды возврата.
На порте висит терминал сбора данных на базе MCS-51, а софт, в основном, диагностический. Используется не каждый день, но когда нужно...

ПО поводу эмуляции системы прерываний, я вообще молчу... (трудно подобрать приличные слова).
Если совсем честно, я просто прохлопал момент, в который эта байда перестала работать по человечески. А потом было уже поздно.
У меня сложилось впечатление, что перед повторной инициализацией порта либо должно пройти какое-то время, либо он наглухо блокируется GUI для конкретной задачи, причем как ОНО чувствует это я не представляю ( инициализация порта идет по физическим адресам ), если только ОНО криво обрабатывает даже прямое обращение к порту из DOS-сессии. Хотя этого я раньше не замечал.
Возникла, правда, одна идея - имитировать .bat программно ( запускать программы Exec'ом ) или использовать конвертор .bat -> .exe, но пока не пробывал. Может поможет...