Salve a saída do comando no arquivo MS-DOS 1.x

27

Parece que [COMMAND]>[FILE] não funciona nas versões anteriores do MS-DOS. Eu estou usando o MS-DOS 1.25 e a expressão acima dá a instrução invalid argument .

Atualização : Como é verdade que não funciona no DOS 1.x, é possível obter essa saída usando alguma funcionalidade da caixa virtual ou obter a saída de alguns arquivos de log .

    
por Blake 24.08.2016 / 23:58

3 respostas

5

você pode usar os recursos de depuração da máquina virtual (ou gdb / outra coisa) para ler a memória diretamente. ms-dos não tem proteção de memória nem é um sistema multi-tarefa, então você pode ler a memória da máquina virtual, você 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 , em seguida, no console do depurador: info vgatext

saída copiada e colada:

The COMPAQ Personal Computer DOS                                                
Version 1.11                                                                    


(C) Copyright COMPAQ Computer Corp. 1982                                        
(C) Copyright Microsoft 1981, 82                                                


A>                                                                              











--------------------------------------------------------------------------------
VBoxDbg> 

Assim, você pode escrever um script de debugger que conecta um valor de memória dentro da memória do seu programa e descarrega a tela vga quando um programa faz a saída / ou você pode escrever script que pausa a cpu, salva conteúdo consistentemente, se a saída for alterada conteúdo, 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 / solução de 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 essa finalidade

  • adicione tag freedos aqui (ou até mesmo mova / repita sua pergunta em big stackoverflow, suponho que alguns gurus devam saber algo sobre problemas como este

Vou atualizar mais tarde se encontrar algo interessante, mas você pode, por favor, revelar alguns detalhes sobre por que você está usando o 1.25, esse programa funciona em versões mais recentes do msdos? Eu aposto que você pode encontrar algum jovem hacker de montagem ansioso para consertar este programa para uma versão mais nova (ou adicionar saída de arquivo com asm) por uma pequena taxa

    
por 25.08.2016 / 22:59
40

Parece que o comando [COMMAND] > [FILE] não funciona nas primeiras versões do MS-DOS.

I am using MS-DOS 1.25 and the above expression gives the statement invalid argument

Isso está correto. O que você quer fazer não é possível na v1.25.

O redirecionamento de comandos (junto com muitas outras melhorias) foi adicionado na v2.0.

MS-DOS version 2.0 (equivalent to PC-DOS 2.0) was first released in March 1983. It was, in retrospect, a new operating system (though great care was taken to maintain compatibility with MS-DOS version 1). It contained many significant innovations and enhanced features, including those listed on the following page.

  • Support for both larger-capacity floppy disks and hard disks
  • Many UNIX/XENIX-like features, including a hierarchical file structure, file handles, I/O redirection, pipes, and filters
  • Background printing (print spooling)
  • Volume labels, plus additional file attributes
  • Installable device drivers
  • A user-customizable system-configuration file that controlled the loading of additional device drivers, the number of system disk buffers, and so forth
  • Maintenance of environment blocks that could be used to pass information between programs
  • An optional ANSI display driver that allowed programs to position the cursor and control display characteristics in a hardware-independent manner
  • Support for the dynamic allocation, modification, and release of memory by application programs
  • Support for customized user command interpreters (shells)
  • System tables to assist application software in modifying its currency, time, and date formats (known as international support)

Fonte Programação avançada do MS-DOS 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 essa pergunta Captura de tela no DOS listam alguns TSR (Terminate, mas permanecem residentes ) programas que são pontos de partida para você investigar.

    
por 25.08.2016 / 00:35
-3

Você pode instalar o C e escrever um programa para executar os comandos do 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 procurando escrever código ...; -)

link

Pessoalmente, eu usaria o DOS 5.5 ou 6, já que há algumas coisas adicionais que você obteria.

    
por 25.08.2016 / 19:59