O que o comando SELECT fez no DOS?
A introdução ao DOS for Dummies de Greg Harvey : Quick Reference (também com o subtítulo Command Reference na primeira edição) contém esta passagem:
Este livro não apenas fornece informações detalhadas sobre cada um dos comandos do DOS - exceto DELOLDOS, FDISK e SELECT, um trio de comandos que garanto que você nunca perderá [...]
(Outra edição que eu lembro de ter em um ponto também lista DEBUGaqui.)
Agora, DEBUGe FDISKsão bastante conhecidos. Quanto a DELOLDOS, o nome do comando é sugestivo o suficiente para eu adivinhar seu propósito é excluir qualquer versão anterior do DOS após uma atualização, e algumas pesquisas na web confirmam isso . Quanto a isso SELECT, estou perplexo. Este não é um comando interno do COMMAND.COM, e ainda não há um SELECT.COM ou SELECT.EXE executável em nenhum dos meus quatro discos de instalação do MS-DOS 6.22; nada também é mencionado no sistema de ajuda online (HELP.COM). A certa altura, comecei a suspeitar que isso poderia ter sido um erro de impressão.
De onde veio esse SELECTcomando? O que isso fez? Este foi um comando real afinal?
Respostas
SELECT foi introduzido no IBM PC DOS 3.0, junto com o suporte à internacionalização, e disponibilizado no MS-DOS a partir da versão 3.3.
Seu objetivo é criar um disco inicializável com suporte para um determinado código de país e layout de teclado. A sintaxe, a partir da versão 3.2, é
SELECT [[drive1:] drive2:[path]] country keyboard
onde drive1é a unidade de origem ( Apor padrão), drive2a unidade de destino ( Bpor padrão), countryé um dos códigos de país com suporte (033 para França, 049 para Alemanha - Alemanha Ocidental no momento - etc.) e keyboardé um dos disponíveis teclados ( FR, GRetc.).
Este foi efetivamente o procedimento de instalação para versões baseadas em disquete do DOS, fora dos Estados Unidos: prepare um disquete vazio, inicialize com o disquete 1 do DOS e execute SELECTcom o país e código de teclado apropriados. Isso resultaria em um disco DOS utilizável, com todo o conteúdo do disco 1 do DOS, e um teclado configurado corretamente assim que o sistema fosse inicializado.
As versões 3.0 e 3.1 SELECTservem DISKCOPYpara copiar o disco de origem para o disco de destino, formatando este último se necessário. As versões 3.2 e 3.3 usam FORMATe em seu XCOPYlugar; a versão 3.3 suporta discos rígidos (embora a execução FDISKseja deixada como um exercício para o usuário, antes de executar SELECT). Em ambos os casos, o disco de destino é apagado e todo o conteúdo do disco de origem é copiado, não apenas os arquivos necessários para suportar o país e teclado desejados. Na versão 3.2, se o disco de origem não incluir o KEYBxxarquivo necessário para o teclado desejado, o usuário é solicitado a inserir o disco que o contém. Todas as versões então gravam um apropriado CONFIG.SYSe AUTOEXEC.BATno disco de destino, contendo respectivamente
COUNTRY=<country>
(adicionando o COUNTRY.SYScaminho também, se necessário), e
PATH ...
KEYB...
ECHO OFF
DATE
TIME
VER
O caminho padrão ( PATHacima) depende do caminho de instalação (o segundo parâmetro).
Na versão 4.0 do PC DOS e MS-DOS, SELECTpassou a ser uma ferramenta de instalação interativa, que era iniciada automaticamente a partir do disco de instalação (ou do disco “Selecionar” nos conjuntos de discos de 5,25 ”).
Na versão 5.0 do PC DOS e do MS-DOS, o programa de instalação foi renomeado para SETUP.EXEe introduziu o suporte para atualização do DOS. É DELOLDOSdaí que vem: ao atualizar, SETUPcriaria DELOLDOS, que poderia ser usado para desfazer a atualização, restaurando a versão anterior do DOS (e seu setor de boot, etc.).
Parece ter havido outra versão SELECT, escrita por Karl D. Wright para Phoenix Technologies e incluída em pelo menos algumas versões OEM do MS-DOS 3.2; uma rápida olhada nele sugere que ele faz a mesma coisa que o “oficial” SELECT.
De acordo com a The MS-DOS Encyclopedia , SELECTestava disponível em PC DOS 2.0, mas meus discos de PC DOS 2 não o tinham e não teria sido muito útil para ele no PC DOS 2, que não tinha a COUNTRYinstrução ou os KEYBxxcomandos.
TL; DR;
De onde veio esse comando SELECT?
PC-DOS
O que isso fez?
Instale o DOS em uma unidade em branco como uma unidade de inicialização completa, incluindo arquivos específicos de idioma / país.
Este foi um comando real afinal?
Sim.
Longa história:
SELECTera essencialmente como um FORMAT /S, que também copia arquivos necessários como KEYBGRpara teclado alemão ou COUNTRY.SYSe cria ajustes AUTOEXEC.BATe CONFIG.SYScom configurações apropriadas para teclado e tela.
Na minha memória SELECTsó estava disponível para PC-DOS da IBM e só funcionava a partir de drives de disquete, com A:hard codificados como fonte para todos os arquivos e B:como destino.
As versões posteriores do PC-DOS (3?) Permitiam a seleção da unidade de origem e de destino, para que pudesse ser usada para instalação no disco rígido. Mais tarde, mais uma vez, o utilitário de função fixa controlado por linha de comando foi substituído por um instalador interativo de mesmo nome, para ser finalmente (DOS 6?) Substituído por SETUP.
Este instalador / CONFIGURAÇÃO também foi o que trouxe DELOLDOS, já que apenas eles copiavam qualquer instalação anterior do DOS na unidade de destino para uma pasta chamada OLD_DOS. DELOLDOSverificado se essa pasta pode ser encontrada na unidade registrada. Se sim, ele excluiu a pasta e, por sua vez, ele próprio. Geralmente é difícil de encontrar - especialmente se alguém o usou em um sistema :)
Citando o site de suporte do MS DOS da DEW Associates de 1998 : SELECT "formata um disco e instala informações específicas do país e códigos de teclado".
Isso é relevante apenas quando você deseja inicializar a partir de um disquete. O SYS tornaria esse disco inicializável, mas não copiaria os arquivos de configuração, que você teria que copiar manualmente. SELECT faz isso por você.
Na época em que o MS DOS 6.22 surgiu, esse caso de uso era praticamente inexistente; todo mundo estava inicializando de discos rígidos. O site acima informa que "na versão 6 do DOS, este comando é armazenado no disco suplementar do DOS", e pode ser por isso que você não o encontrou; ou talvez tenha sido removido completamente.