Um antigo ancestral do MS-DOS foi levado para um test drive pelo YouTuber e arqueólogo de retrocomputação Thomas Cherryhomes. O 86-DOS versão 0.1 C, que foi desenterrado de algum armário empoeirado e adicionado recentemente ao Internet Archive, foi instalado, inicializado e usado para traduzir e compilar um aplicativo escrito para CP/M.
Além disso, a tarefa envolveu malabarismo com formatos de disco, conversão de assembly Z80 para 8086 e uso de programas de edição em ambas as plataformas. Você pode ver seus esforços no vídeo incorporado diretamente abaixo.
Cherryhomes começou seu vídeo enfatizando a importância da recente descoberta do 86-DOS. É a cópia mais antiga do 86-DOS que existe. Além disso, como dissemos no início desta semana, o 86-DOS foi escolhido pela Microsoft como base do que viria a ser o PC-DOS e o MS-DOS. Assim, a descoberta foi de “importância muito profunda na história da computação”, afirmou o arqueólogo da computação em seu vídeo no YouTube.
Colocar o 86-DOS em funcionamento não é tão simples quanto iniciar um emulador de PC e inicializar a imagem do disco. Sim, este sistema operacional foi escrito para processadores Intel 8086, mas os sistemas alvo não usavam uma arquitetura IBM PC. Cherryhomes dá alguns detalhes sobre o computador Gazelle da Seattle Computer Products e destaca que ele foi usado pela Microsoft para o processo de vinculação final para construção do MS-DOS até a versão 5.0. Foi um sistema de computador inicial atraente para esse propósito devido à capacidade de expansão da placa de memória, que permitia equipar até um megabyte de RAM.
A maneira como as pessoas montam esses sistemas Gazelle é refletida pela maneira como os interessados em testar o 86-DOS hoje terão que configurar seu emulador SIMH. Cherryhomes discutiu o arquivo de configuração SIMH usado para construir um Gazelle virtual, para executar e testar o 86-DOS. No vídeo ele fala sobre cada um dos componentes adicionados no arquivo de configuração e porque eles são necessários. Resumindo, o arquivo de configuração adiciona várias placas S-100 Bus ao computador virtual para obter uma máquina totalmente funcional: começando com uma placa CPU, adicionando um console, porta serial, controlador de disco e ROM.
Aos 9 minutos e 30 segundos de vídeo, temos uma janela SIMH aberta no PC, com o sistema 86-DOS inicializado – você pode ver que Cherryhomes iniciou o emulador e pressionou a tecla Enter para obter um prompt e depois ‘B’ para inicialize o 86-DOS.
(Crédito da imagem: Thomas Cherryhomes)
Cherryhomes primeiro comenta o fato de que o 86-DOS usa o sistema de arquivos FAT. No entanto, nesta versão inicial, não há carimbos de data/hora ou tamanhos de arquivo. Ele explica que as entradas de diretório neste sistema de arquivos de 12 bits não têm espaço suficiente para essas informações. O arqueólogo computacional então examina os (nove) arquivos do disco do sistema e explica o que cada um deles pode fazer.
COMANDO.COM é o intérprete, assim como nas versões modernas do DOS. Ele fornece uma infinidade de comandos integrados para usuários do sistema, incluindo Dir, Erase, Type e muito mais.
RDCPM.COM permite que o sistema leia discos no formato CP/M e os copie para discos no formato FAT 86-DOS, fornecendo acesso aos dados que de outra forma seriam ilegíveis. Isso é importante porque era a única maneira de trazer o conteúdo do disco CP/M para o 86-DOS.
HEX2BIN.COM é um carregador para código assembly, alterando o código assembly hexadecimal para binário.
ASM.COM é um programa em linguagem assembly do SCP.
TRANS.COM é um programa que pega o código-fonte Z80 e o converte em código 8086.
SYS.COM é usado para criar uma cópia inicializável do sistema operacional em outro disco.
EDLIN.COM é um editor de texto básico
CHESS.COM (e DOC) – Este é um jogo de xadrez rudimentar de linha de comando (sem gráficos). Cherryhomes considera esta uma adição curiosa ao disco e se pergunta se ela foi colocada lá pelo proprietário desta cópia. É difícil dizer se foi uma adição posterior ao disco original sem carimbo de data e hora…
Test drive 86-DOS
Após cerca de 13 minutos e meio, Cherryhomes começa seu test drive de 86 DOS para valer. Ele irá escrever um pequeno software em CP/M, salvá-lo em disco, trazê-lo para o sistema 86-DOS, convertê-lo, montá-lo e executá-lo. O teste foi uma versão do clássico programa Hello World.
Usando um programa emulador CP/M em seu PC, o arqueólogo computacional escreveu Hello.ASM. O programa foi montado com sucesso (ainda em CP/M). Olhando para os arquivos de saída – um deles inclui um arquivo HEX. Este, por sua vez, foi carregado e executado no sistema CP/M emulado – sucesso. Ainda no CP/M, uma ferramenta chamada ZTRAN foi utilizada para converter o pequeno programa Hello World convertendo-o do código Z80 para 8086.
A próxima etapa do processo foi colocar esse código no emulador SIMH e, para isso, você deve copiar os arquivos por meio de uma imagem de disco. Especificamente, o sistema espera imagens de disco no formato IBM 3740 (73 trilhas, 26 setores com 128 bytes por setor para um total de 237,25 KB), segundo o arqueólogo computacional.
Cherryhomes ‘inseriu’ o disco de formato IBM 3740 gravado em CP/M na unidade B da máquina 86-DOS. Uma leitura rápida do diretório mostra lixo, pois o disco não está usando o sistema de arquivos FAT. Assim, a ferramenta 86-DOS RDCPM.COM agora entra em ação. Este utilitário rudimentar 86-DOS deve receber os parâmetros corretos para realizar seu trabalho e não há sinal de progresso ou qualquer indicação se a operação do arquivo foi bem-sucedida.
(Crédito da imagem: Thomas Cherryhomes)
Observa-se que um arquivo Hello.ASM apareceu no disco A agora. Verificar seu conteúdo com o comando Type mostra que o conjunto Z80 está lá. TRANS.COM é usado a seguir, e esta ferramenta é alimentada com o arquivo Hello.ASM, exibindo “Tradução concluída” quando terminar. Quaisquer erros são anotados no arquivo, não na saída da tela.
Na leitura do arquivo, você pode ver que há um erro Opcode, devido à instrução DEFB desconhecida. EDLIN.COM é usado para transformar DEFB em DB, e para deletar a linha 7 que serviu apenas para destacar o erro ao codificador. Continuando, ASM.COM fornecido com 86-DOS é usado para montar o código e é concluído sem erros.
HEX2BIN.COM é executado próximo ao processo Hello.HEX. Esta é outra ferramenta com pouco ou nenhum feedback, simplesmente retornando o usuário ao prompt. Uma lista de diretórios revela que Hello.COM foi realmente criado e agora pode ser executado digitando ‘hello’ no prompt e pressionando Enter – funciona!
Terminando o vídeo, Cherryhomes decide usar os últimos minutos para abordar a “anedota persistente” de que o DOS roubase o CP/M. Ele afirma que a referência cruzada do código-fonte de ambos os sistemas operacionais antigos, ambos agora disponíveis no GitHub, mostra que não há código compartilhado ou copiado.