Lass das besser bleiben. Mit "giveio" wird der direkte Hardwarezugriff
freigeschaltet, das geht bei Parallelportzugriffen nur deshalb nicht in
die Hose, weil das keine Interrupts auslöst.
Serielle Schnittstellen lassen sich aber nur mit aktiven Interrupts
sinnvoll ansprechen. Mit giveio kann zwar die Schnittstellenhardware
befummelt werden, nicht aber der Interruptvektor sinnvoll "umgebogen"
werden. Bestenfalls funktioniert einfach nur nichts, wahrscheinlicher
aber ist ein BlueScreen die Folge.
Das DOS-Programm verwendet vermutlich eine ganz besonders vergurkte
Art, mit der seriellen Schnittstelle zu kommunizieren, weil nämlich die
DOS-VDM von Windows NT (ja, XP ist NT) die Zugriffe von DOS-Programmen
auf serielle Schnittstellen abfängt und auf eine virtualisierte
Hardware umbiegt. Das funktioniert bei halbwegs erträglich
geschriebenen DOS-Programmen eigentlich ganz gut, da aber jeder unter
DOS das Rad (= Ansteuerung der seriellen Schnittstelle) neu erfinden
musste, gab es halt auch viel Murks, der von der Virtualisierung nicht
korrekt interpretiert wird.
Eventuell hilft hier der Einsatz von VMware; dank des kostenlosen
VMware Players (siehe c't von gestern) brauchst Du nur noch eine
vorinstallierte DOS-Maschine für VMware und dürftest aus dem Schneider
sein.
Gründlicher, aber nicht immer realisierbar:
DOS-Programm wegwerfen und durch was "richtiges" ersetzen.