vous pouvez utiliser les fonctionnalités de débogage de votre machine virtuelle (ou gdb / autre chose) pour lire directement la mémoire. ms-dos n'a pas de protection de mémoire ni un système multi-tâches, vous pouvez donc lire la mémoire de la machine virtuelle, vous pouvez lire la vga de la machine virtuelle pour l'entrée.
la documentation indique qu'il existe une commande
info vgatext -- print the contents of the VGA framebuffer formatted as standard text mode
la syntaxe correcte pour obtenir la sortie est: exécutez VirtualBox --debug --startvm msdos1.25
, puis, dans la console du débogueur:
info vgatext
sortie copiée-collée:
The COMPAQ Personal Computer DOS
Version 1.11
(C) Copyright COMPAQ Computer Corp. 1982
(C) Copyright Microsoft 1981, 82
A>
--------------------------------------------------------------------------------
VBoxDbg>
Ainsi, vous pouvez écrire un script de débogage qui s'accroche à une valeur de mémoire dans la mémoire de votre programme et vide l'écran vga lorsqu'un programme génère / ou vous pouvez écrire un script qui met en pause le processeur, enregistre le contenu de manière cohérente, si la sortie change, enregistre le contenu mis à jour, continue cpu run
Quelques options à étudier sont:
découvrez comment écrire un script de débogage pour vider le contenu de la mémoire de votre application
trouver un débogage de pilote vga / port série / solution de vidage de mémoire pour quemu / dosbox / virtualbox
trouver un ancien programme utilitaire des années 80 que quelqu'un a peut-être écrit à cet effet
ajoutez la balise freedos ici (ou même déplacez / répétez votre question sur un gros stackoverflow, je suppose que certains gourous devraient savoir quelque chose sur des problèmes comme celui-ci
Je mettrai à jour plus tard si je trouve quelque chose d'intéressant, mais pouvez-vous s'il vous plaît révéler quelques détails sur la raison pour laquelle vous utilisez 1.25, ce programme fonctionne-t-il sur les nouvelles versions de msdos? Je parie que vous pouvez trouver un jeune hacker d'assemblage désireux de mettre à jour ce programme vers une version plus récente (ou d'ajouter une sortie de fichier avec asm) pour une somme modique