Parece que [COMMAND]>[FILE]
no funciona en las primeras versiones de MS-DOS. Estoy usando MS-DOS 1.25 y la expresión anterior da la declaración invalid argument
.
Actualización : dado que es cierto que no funciona en DOS 1.x, entonces es posible obtener esa salida usando alguna funcionalidad de virtual box o, digamos, obteniendo la salida de algunos archivos de registro.
Respuestas:
puede usar las instalaciones de depuración de su máquina virtual (o gdb / algo más) para leer la memoria directamente. ms-dos no tiene protección de memoria ni es un sistema de tareas múltiples, por lo que puede leer la memoria de la máquina virtual, puede leer la máquina virtual vga para la entrada.
la documentación dice que existe un comando
info vgatext -- print the contents of the VGA framebuffer formatted as standard text mode
la sintaxis correcta para obtener la salida es: ejecutar
VirtualBox --debug --startvm msdos1.25
, luego, en la consola del depurador:info vgatext
salida copiada y pegada:
Por lo tanto, puede escribir una secuencia de comandos del depurador que se enganche en un valor de memoria dentro de la memoria de su programa y volcar la pantalla vga cuando un programa genera / o puede escribir una secuencia de comandos que pause la CPU, guarde contenido de manera constante, si la salida cambia, guarda contenido actualizado, continúa cpu run
Algunas opciones para investigar son:
encuentre cómo escribir un script de depuración para volcar el contenido de la memoria de su aplicación
encuentre alguna solución de depuración del controlador vga / puerto serie / memoria para quemu / dosbox / virtualbox
encontrar algún programa de utilidad ANTIGUO de los años 80 que tal vez alguien escribió allí para este propósito
agregue la etiqueta de freedos aquí (o incluso mueva / repita su pregunta en gran stackoverflow, supongo que algunos gurús deberían saber algo sobre problemas como este
Actualizaré más tarde si encuentro algo interesante, pero ¿pueden revelar algunos detalles sobre por qué están utilizando 1.25? ¿Funciona este programa en las versiones más recientes de msdos? Apuesto a que puedes encontrar algún hacker de ensamblaje joven ansioso por parchear este programa a una versión más nueva (o agregar salida de archivo con asm) por una pequeña tarifa
fuente
info vgatext
obras Después de todo todo lo que tiene que hacer es escribir un guión correcto para depurador pareceParece que [COMANDO]> [ARCHIVO] no funciona en las primeras versiones de MS-DOS.
Eso es correcto. Lo que quieres hacer no es posible en v1.25.
La redirección de comandos (junto con muchas otras mejoras) se agregó en v2.0.
Fuente Programación avanzada de MS-DOS por Ray Duncan
¿Qué puedo hacer en su lugar?
Una posible solución sería capturar la pantalla (como texto) y analizar la salida.
Las respuestas a esta pregunta Captura de pantalla en DOS enumeran algunos programas TSR (Terminar pero permanecer residente) que son puntos de partida para que investigue.
fuente
Puede instalar C y escribir un programa para tomar los comandos dos, ejecutarlos en un shell y registrar los resultados. Le recomendaría que use Borland Turbo C 2.01. También puede escribir código en Quickbasic si está buscando escribir código ... ;-)
https://archive.org/details/msdos_borland_turbo_c_2.01
Personalmente, usaría DOS 5.5 o 6 dado que hay algunas cosas adicionales que obtendría.
fuente