Parece que [COMMAND]>[FILE]
não funciona nas versões anteriores do MS-DOS. Estou usando o MS-DOS 1.25 e a expressão acima dão a declaração invalid argument
.
Atualização : Como é verdade que ele não funciona no DOS 1.x, é possível obter essa saída usando algumas funcionalidades da caixa virtual ou, digamos, obtendo a saída de alguns arquivos de log.
Respostas:
você pode usar os recursos de depuração da máquina virtual (ou gdb / outra coisa) para ler a memória diretamente. O ms-dos não possui proteção de memória nem é um sistema de várias tarefas; portanto, você pode ler a memória da máquina virtual, pode ler a máquina virtual vga para entrada.
documentação diz que existe um comando
info vgatext -- print the contents of the VGA framebuffer formatted as standard text mode
a sintaxe correta para obter a saída é: execute
VirtualBox --debug --startvm msdos1.25
, então, no console do depurador:info vgatext
saída copiada e colada:
Portanto, você pode escrever um script de depurador que conecte um valor de memória na memória do programa e despeja a tela vga quando um programa produz / ou você pode escrever um script que pausa a CPU, salva o conteúdo de maneira consistente, se a saída for alterada, salva o conteúdo atualizado, continua cpu run
Algumas opções para investigar são:
descubra como escrever um script de depuração para despejar o conteúdo da memória do seu aplicativo
encontre alguma solução de depuração de driver vga / porta serial / despejo de memória para quemu / dosbox / virtualbox
encontre algum programa utilitário ANTIGO dos anos 80 que talvez alguém tenha escrito lá para esse fim
adicione a tag freedos aqui (ou até mova / repita sua pergunta no grande stackoverflow, suponho que alguns gurus devam saber algo sobre problemas como este
Atualizarei mais tarde se encontrar algo interessante, mas você pode revelar alguns detalhes sobre por que está usando a versão 1.25. Este programa funciona em versões mais recentes do msdos? Aposto que você pode encontrar algum jovem hacker de montagem ansioso para corrigir esse programa para uma versão mais recente (ou adicionar saída de arquivo com asm) por uma pequena taxa
fonte
info vgatext
obras afinal tudo que você tem a fazer é escrever um script correto para depurador pareceParece que [COMMAND]> [FILE] não funciona nas versões anteriores do MS-DOS.
Está correto. O que você deseja fazer não é possível na v1.25.
O redirecionamento de comando (junto com muitas outras melhorias) foi adicionado na v2.0.
Fonte Avançada MS-DOS programação por Ray Duncan
O que posso fazer em vez disso?
Uma solução possível seria capturar a tela (como texto) e analisar a saída.
As respostas a esta pergunta A captura de tela no DOS lista alguns programas TSR (Terminate but Stay Resident) que são pontos de partida para você investigar.
fonte
Você pode instalar o C e escrever um programa para executar os comandos dos, executá-los em um shell e registrar os resultados. Eu recomendo que você use o Borland Turbo C 2.01. Você também pode escrever código no Quickbasic se estiver olhando para escrever código ... ;-)
https://archive.org/details/msdos_borland_turbo_c_2.01
Pessoalmente, eu usaria o DOS 5.5 ou 6, pois existem algumas coisas adicionais que você obteria.
fonte