Aufgrund von PC-DOS 1.1 / MS-DOS 1.25 - Probleme? und dem Fehlen einer deutschen PC-DOS 1.1 Version habe ich damit angefangen, aus den Binaries wieder Quelldateien zu erzeugen, mit zwei Zielen, 1.) zuerst wieder aus Assembler-Quellen genau das gleiche originale Binary-File erzeugen zu können, und danach 2.) eine deutsche Version daraus zu erzeugen, angelehnt an den Zeichenketten in der deutschen PC-DOS Version 2.0 (die habe ich auch vorliegen).
Bei den Dateien IBMBIO.COM und IBMDOS.COM bin ich schon erfolgreich gewesen, habe Stufe 1) schon geschafft, und auch schon englische Texte in IBMBIO und IBMDOS in deutsche Texte übersetzt. Die Re-Assemblierung ist da auch erfolgreich gewesen. Der Test steht noch aus, weil ich auch noch COMMAND.COM ins Deutsche übersetzen möchte.
Ich hänge aber bereits bei COMMAND.COM (von PC-DOS 1.1) bei der Phase 1), ich kann zwar fehlerfrei die COMMAND.ASM assemblieren, aber EXE2BIN scheitert am Schluß.
Ich habe dazu MASM 5.1 genommen, nicht eine neuere Version, weil ich mich mit dieser Version besser auskenne.
EXE2BIN sagt aber ohne weitere Erklärung nur, dass es die assemblierte EXE-Datei nicht in eine COM-Datei wandeln möchte (es "kann" es nicht).
Die Schritte sehen für alle drei Dateien gleich aus (unterschiedlicher Dateiname logischerweise, der Rest halt ist gleich), hier am Beispiel von IBMDOS.ASM:
masm ibmdos;
link ibmdos;
exe2bin ibmdos ibmdos.com
del ibmdos.exe
Wie gesagt, geht ohne Probleme mit IBMBIO und IBMDOS, geht *nicht* mit COMMAND - und ich weiß wirklich nicht warum...
Anbei mal die COMMAND.ASM, die einwandfrei mit MASM Version 5.1 assembliert werden kann, mit LINK geht's auch weiter, aber EXE2BIN will nicht.
Die Struktur der Assembler-Datei ist dabei eigentlich bei allen drei gleich, alle drei haben kein extra Stack-Segment (dann hätte EXE2BIN auf jeden Fall ein Problem), und alle drei erzeugen eine EXE-Datei, die kleiner als 64KB ist. Vielleicht gibt es ja eine Alternative zu EXE2BIN, ich kenne keine.