вы можете использовать свои средства отладки виртуальной машины (или gdb/что-то еще) для прямого чтения памяти. ms-dos не имеет никакое предохранение от памяти ни многозадачная система, поэтому вы можете прочитать память виртуальной машины, вас можете прочитать VGA виртуальной машины для входного сигнала.
документация говорит, что существует команда
info vgatext -- print the contents of the VGA framebuffer formatted as standard text mode
правильный синтаксис для получения вывода:
беги VirtualBox --debug --startvm msdos1.25
, затем в консоли отладчика :
info vgatext
при копировании вывод:
The COMPAQ Personal Computer DOS
Version 1.11
(C) Copyright COMPAQ Computer Corp. 1982
(C) Copyright Microsoft 1981, 82
A>
--------------------------------------------------------------------------------
VBoxDbg>
Так, вы можете написать отладчик сценариев, который крючки на значение памяти в вашей памяти программы и дампы VGA экрана, когда программа делает вывода / или вы можете написать скрипт, который приостанавливает процессора, экономит контент последовательно, если выхода изменений, сохраняет обновляемый контент, по-прежнему процессора
некоторые варианты для изучения:
найти Как написать скрипт отладки для сброса содержимого памяти вашего применение
найти некоторые отладки VGA драйвер / последовательный порт / памяти демпинг решение для quemu/dosbox / virtualbox
найдите какую-нибудь старую утилиту из 80-х, которую, возможно, кто-то написал для этой цели
добавить тег freedos здесь (или даже переместить / повторить свой вопрос на big stackoverflow, я полагаю, что некоторые гуру должны знать что-то о таких проблемах, как это
я обновлю позже если я нахожу что-то интересное, но не могли бы вы рассказать некоторые подробности о том, почему вы используете 1.25, работает ли эта программа на новых версиях msdos? Бьюсь об заклад, вы можете найти какой-то молодой хакер сборки стремятся залатать эту программу к новой версии (или добавить вывод файла с asm) за небольшую плату