Es scheint, dass [COMMAND]>[FILE]
funktioniert nicht in den frühen Versionen von MS-DOS. Ich verwende MS-DOS 1.25 und der obige Ausdruck gibt die Anweisung invalid argument
.
Aktualisieren : Da es wahr ist, dass es unter DOS 1.x nicht funktioniert, ist es möglich, diese Ausgabe unter Verwendung einiger Funktionen der virtuellen Box oder beispielsweise durch Abrufen der Ausgabe von einigen Protokolldateien zu erhalten.
Antworten:
Sie können die Debugging-Funktionen Ihrer virtuellen Maschine (oder gdb / etwas anderes) verwenden, um den Speicher direkt zu lesen. ms-dos verfügt weder über einen Speicherschutz noch über ein Multitasking-System. Sie können also den Arbeitsspeicher der virtuellen Maschine und vga der virtuellen Maschine zur Eingabe lesen.
Dokumentation sagt, dass es einen Befehl gibt
info vgatext -- print the contents of the VGA framebuffer formatted as standard text mode
Die korrekte Syntax für die Ausgabe lautet: Lauf
VirtualBox --debug --startvm msdos1.25
Dann in der Debugger-Konsole:info vgatext
kopiert eingefügte Ausgabe:
Sie können also ein Debugger-Skript schreiben, das einen Speicherwert im Speicher Ihres Programms festlegt und den vga-Bildschirm ausgibt, wenn ein Programm etwas ausgibt, oder Sie können ein Skript schreiben, das die CPU anhält, den Inhalt konsistent speichert, wenn sich die Ausgabe ändert, den aktualisierten Inhalt speichert und fortfährt CPU laufen
Einige zu untersuchende Optionen sind:
Hier erfahren Sie, wie Sie ein Debugging-Skript zum Speichern des Speicherinhalts Ihrer Anwendung schreiben
Finden Sie einige Debugging-VGA-Treiber / serielle Schnittstelle / Speicher-Dumping-Lösung für Quemu / Dosbox / Virtualbox
Finden Sie ein altes Hilfsprogramm aus den 80ern, das vielleicht jemand zu diesem Zweck geschrieben hat
füge hier freedos tag hinzu (oder verschiebe / wiederhole deine Frage zum großen Stackoverflow, ich nehme an, einige Gurus sollten etwas über solche Probleme wissen
Ich werde später aktualisieren, wenn ich etwas Interessantes finde, aber können Sie bitte einige Details darüber preisgeben, warum Sie 1.25 verwenden. Funktioniert dieses Programm auf neueren Versionen von MSDOS? Ich wette, Sie können einige junge Assembly-Hacker finden, die bereit sind, dieses Programm gegen eine geringe Gebühr auf eine neuere Version zu aktualisieren (oder Dateiausgaben mit asm hinzuzufügen)
quelle
info vgatext
funktioniert schließlich alles, was Sie tun müssen, ist ein korrektes Skript für den Debugger zu schreiben, wie es scheintEs scheint, dass [BEFEHL] & gt; [DATEI] in den frühen Versionen von MS-DOS nicht funktioniert.
Das ist richtig. Was Sie tun möchten, ist in Version 1.25 nicht möglich.
Befehlsumleitung (zusammen mit vielen anderen Verbesserungen) wurde in v2.0 hinzugefügt.
Quelle Erweiterte MS-DOS-Programmierung von Ray Duncan
Was kann ich stattdessen tun?
Eine mögliche Problemumgehung wäre, den Bildschirm (als Text) zu erfassen und die Ausgabe zu analysieren.
Die Antworten auf diese Frage Bildschirmaufnahme unter DOS Listen Sie einige TSR-Programme (Terminate but Stay Resident) auf, die Ausgangspunkte für Ihre Untersuchung sind.
quelle
Sie können C installieren und ein Programm schreiben, um die DOS-Befehle zu übernehmen, sie in einer Shell auszuführen und die Ergebnisse zu protokollieren. Ich würde empfehlen, dass Sie Borland Turbo C 2.01 verwenden. Sie können auch Code in Quickbasic schreiben, wenn Sie Code schreiben möchten ... ;-)
https://archive.org/details/msdos_borland_turbo_c_2.01
Persönlich würde ich DOS 5.5 oder 6 verwenden, vorausgesetzt, es gibt ein paar zusätzliche Dinge, die Sie bekommen würden.
quelle