Zitat von
Neutral General:
Ich kann mich irren, aber ich glaube es gibt da ein weiteres Problem und zwar, dass sich die Opcodes eines Befehls in 16- und 32-Bit Assembler z.T. unterscheiden.
Das sich die Opcodes regelrecht unterscheiden, kann ich mir nicht vorstellen. Höchstens, das halt die 16 Bit Äquivalente verwendet werden. Die Prozessorfamilie bleibt ja gleich (x86). Oder brauche ich mehr, um 16 Bit Code auf einer 32 Bit Maschine ausführen zu können.
Der wichtigste Punkt ist, dass Windows XP es dir enorm übel nehmen könnte, wenn du das System in einem inkonsistentem Zustand hinterlässt, wenn die Zeitscheibe deines Prozesses aufgebraucht ist (was du ja nicht beinflussen kannst). Deswegen "leben" 16-Bit Programme ja auch in der NTVDM, welche die ganzen "gefährlichen" Befehle nur emuliert. Da in
ReactOS aktuell an der Implementierung der NTVDM gearbeitet wird könnstet du dir deren
486-Emulater-Bibliothek anschauen und vielleicht verwenden, so dass du quasi eine "16-Bit Skript Engine" implementieren könntest, die dir deine 16-Bit
DLL auf Anforderung aufruft und emuliert.
Dank Dosbox klappt das ja mit DOS Programmen.
DOSBox emuliert eine komplette CPU, deswegen funktioniert das da auch ohne Probleme.
Gruß,
Sven