Transferindo arquivo “grande” da máquina MS-DOS 5.0 (sem remover o HDD)

56

Como parte de algum tipo de manutenção legal de registros, os advogados de negócios de meu pai solicitaram uma cópia do banco de dados de clientes de um computador de trabalho. A questão central é que este computador de trabalho é uma coisa AOpen ... de 1988, rodando o que parece ser uma versão modificada do DOS 5.0.

Estou muito fraco com o MS-DOS real e com o hardware mais antigo em geral, mas depois de algumas tentativas, finalmente encontrei o arquivo que o advogado precisava. A questão é que o banco de dados do cliente (leia-se: arquivo de texto delimitado por espaço) tem ~ 3MB de tamanho. Isso é muito grande para um disquete, e os dados estão em um único arquivo, o que, para meu conhecimento limitado do DOS real, me impediria de dividi-lo com os programas embutidos no computador.

Verificando a parte de trás do computador, notei uma porta serial interna, uma porta paralela em um slot de expansão e, de certa forma inexplicavelmente, uma NIC com um conector grande demais para ser RJ-11. Eu não testei se era realmente um RJ-45 porque não tinha um cabo ethernet à mão na hora. No entanto, os dois arquivos de programa que eu teria usado (de acordo com a minha pesquisa) para usar a serial estão longe de ser encontrados no computador. Além disso, não faço a menor ideia do que eu faria para alavancar a NIC.

Além disso, complicar os problemas, basta puxar o HDD deve ser relegado a um último recurso, como o computador (que é mais antigo do que eu) é usado para operações de negócios diárias e teria que ser colocado off-line por cerca de 1 dia devido a a distância entre o computador e eu, que o "cliente" não quer particularmente.

Então, o ponto crucial da minha pergunta é, com minha habilidade quase inexistente no DOS (acidentalmente corrompi um dos "bancos de dados" e estaria em má forma se eu não fizesse um backup antecipadamente), está lá? uma maneira simples de aproveitar os recursos mencionados acima (ou alguma outra coisa que eu não sei sobre o DOS) para obter esse arquivo de 3 meg sem o HDD?

    
por Tarkenfire 19.07.2013 / 17:13

10 respostas

53

Tente usar o PKZip. É um utilitário DOS antigo que forneceu alguns dos primeiros recursos de arquivos zip. Você deve fazer o download no link . Se o banco de dados é um arquivo de texto, o PKZip deve permitir que você comprima o suficiente para obter um disquete ou, caso contrário, ele deve permitir a distribuição de vários discos. Nesse ponto, seu principal problema é passar do disquete para um computador mais moderno. Não me lembro da sintaxe do PKZip, mas lembro que ele tem uma ajuda muito boa para mostrar exatamente como zipar e descompactar arquivos. Eu recomendo a versão 2.04g dos downloads, já que foi considerada universalmente como a melhor versão por muitos anos.

    
por 19.07.2013 / 17:20
17

O computador tem QBasic instalado? Se assim for, você poderá escrever um arquivo divisor simples, algo assim:

OPEN "database.dat" FOR BINARY AS #1

LET disk% = 1
LET todo& = LOF(1)

DO UNTIL todo& <= 0
    PRINT "Insert disk"; disk%; "into drive A: and press enter.";
    LINE INPUT ""; foo$

    LET file$ = "A:\chunk" + LTRIM$(RTRIM$(STR$(disk%))) + ".dat"
    OPEN file$ FOR BINARY AS #2

    LET done& = 0
    DO UNTIL done& >= 1300000 OR todo& <= 0
        LET buf$ = SPACE$(4096)
        IF todo& < LEN(buf$) THEN LET buf$ = SPACE$(todo&)
        GET #1, , buf$
        PUT #2, , buf$
        LET done& = done& + LEN(buf$)
        LET todo& = todo& - LEN(buf$)
    LOOP

    CLOSE #2
    LET disk% = disk% + 1
    BEEP
LOOP
CLOSE #1

Isso dividirá seu banco de dados em blocos de 1,3 MB, que devem caber confortavelmente em um disquete de 1,44 MB, mesmo depois de contabilizar a sobrecarga do FAT.

Editar: Aqui está uma versão atualizada usando E / S binárias, que roda muito mais rápido, não tem problemas com caracteres Ctrl-Z e manipula corretamente arquivos de entrada cujo tamanho não é um múltiplo de o tamanho do buffer. Eu testei no DOSBox e ele dividiu corretamente um arquivo de 3 MB de bytes aleatórios em pedaços.

    
por 19.07.2013 / 22:36
10

São apenas 3 megas, então usar um PKZIP com spanning seria a solução mais fácil, como outros já disseram. No entanto

Se você teve esse problema e a unidade de disquete NÃO funcionou, usar a porta serial seria muito fácil.

Para usar uma porta serial, você precisa de um programa de terminal do DOS, e você o rodaria e então usaria um protocolo como o ZMODEM, para transferir o arquivo a 115kbps, o que levaria menos de 5 minutos a 115200 kbps.

No seu laptop, ou em qualquer outro PC moderno, você precisaria de um adaptador USB para serial, um cabo de modem nulo e um programa de terminal que suporte o mesmo protocolo de transferência de arquivos. Esses cabos devem custar cerca de US $ 5 cada nas lojas de computadores mais decentes.

O melhor programa de terminal do MS-DOS que eu já usei foi o Telix versão 3.12.

    
por 19.07.2013 / 21:44
9

O PKZIP suporta vários disquetes, e a Lenovo possui um aplicativo compatível com DOS chamado CHOPPER que também fará isso.

link

O interruptor pkzip para o span do disco (a partir de docs):

-&[f|l|u Span disks [Format|format Low density|Unconditional format| ul|w|v] Unconditional Low density|Wipe disk|enable dos Verify| [s[drive]] Back up entire disk w/ subdirs (-rp) [drive to back up]]

    
por 19.07.2013 / 21:21
3

O advogado especificou explicitamente que o banco de dados deve ser fornecido em formato eletrônico?
Caso contrário, e se esse sistema de missão crítica tiver uma impressora funcional (matricial) conectada, você poderá imprimir o arquivo de texto usando o comando de impressão do DOS .
Por exemplo:

print c:\file.txt /c /d:lpt1

Supondo uma velocidade de impressão de 100 lpm (~ 2,5 ppm) e 750 páginas de texto (quantidade estimada em arquivo de texto de 3 Mb de acordo com esta calculadora ), então você deve ser capaz de produzir uma cópia completa em cerca de 5 horas.

    
por 20.07.2013 / 19:52
2

Talvez você possa dividir o arquivo de texto manualmente usando ferramentas já presentes no DOS e recombiná-las no computador de destino? Como é tudo ASCII, deve ser muito mais fácil fazer isso do que tentar dividir um arquivo binário.

    
por 19.07.2013 / 18:36
2

Eu encontrei

link

edit: para fazer o download, google SPLITV10.ZIP

e

link

Talvez você possa dividir o arquivo em 2-3 partes e copiá-lo uma parte de cada vez.

    
por 19.07.2013 / 18:48
2

Antes dos louvados dias de chips USB onipresentes e de uma NIC em todos os computadores, lembro-me de ligar dois computadores com cabos seriais e paralelos para transferências de dados em grande escala.

Eu tive que usar o Google como o método mais conveniente na idade atual, mas parece algo parecido com o que eu me lembro.

O File Maven é um utilitário de transferência de arquivos que permite fazer transferências via cabo serial ou paralelo. Você provavelmente não tem mais nada com uma porta serial, então um adaptador serial para USB lhe dará uma conexão à tecnologia moderna.

Este cabo pode precisar de um adaptador de mudança de sexo, eu esqueci qual parte um PC tinha.

Eu quero me levantar e dar uma grande salva de palmas para qualquer fabricante responsável pelo disco rígido. HDD de 25 anos ainda em execução. Você consegue imaginar as unidades SATA atuais ainda em execução em 2038?

    
por 20.07.2013 / 18:23
1

Você sempre pode encontrar uma unidade Zip / Jaz de 25 pinos no craigslist ou no ebay. No entanto, existem métodos melhores do que isso. :)

    
por 19.07.2013 / 21:24
1

Que tal tentar encontrar uma versão antiga do Laplink, com o cliente sendo uma nova versão em execução no PC em que você deseja que os dados sejam inseridos. Software disponível aqui: link

    
por 19.07.2013 / 23:18