Unter WinXP läuft jeder 16Bit Dos Code.
Manche Programme funktionieren allerdings nicht so wie sie sollten, da es früher auch üblich war ohne Treiber zu arbeiten und im Programm direkt auf Hardware zuzugreifen. Unter XP ist dies natürlich nicht möglich, dies kann nur interpretiert werden und hier kommt es fast immer zu Problemen. Das ist kein Fehler von WinXP, sondern "schlampige" Programmierung von der alten Software.
"Schlampig" steht dabei bewusst unter Anführungsstrichen. Früher war es einfach keine Anforderung, dass Software auch unter WinXP läuft

Es sprach auch überhaupt nichts dagegen direkt auf Hardware zuzugreifen. Es gab noch nicht eine so große Auswahl an Hardware wie etwa heute - es gab ein paar Standards (z.B. VGA/EGA/CGA,Hercules, usw. bei den Grafikkarten, die sich alle nur an der Startadresse, der Farbtiefe und der Auflösung unterschieden). Es gab keinen Grafiktreiber, die Hardware wurde direkt angesprochen. Performell war dies auch nicht mal schlecht. Man konnte mit ASM direkt in den Grafikspeicher schreiben, ohne Umweg über einen Treiber. Treiber wurden selten eingesetzt und das ist der Grund, warum manche Software heute unter WinXP nicht mehr richtig läuft. Die Software greift direkt auf die Hardware zu, was WinXP so nicht immer zulassen kann. Um wieder auf unser Beispiel mit den Grafikkarten zurückzukommen: Ich kann mir nicht vorstellen, dass einer von Euch eine EGA-Grafikkarte in seinem Rechner eingebaut hat

Die Software schreibt aber auf EGA-Adressen. Alles kann WinXP nicht interpretieren und daher laufen auch nicht alle Spiele/Programme von früher...