- Um experimento de inicializar um IBM PC usando um toca-discos (record player) em vez de uma mídia de boot comum para PC
- Uma imagem de disco RAM de 64 KB baseada em FreeDOS foi convertida em sinal de áudio analógico e gravada em um vinil de 10 polegadas
- Usando a interface de cassete do PC, o sinal de áudio foi restaurado para dados digitais, carregado na memória e usado para executar o boot
- Para minimizar a distorção do sinal, foi necessário ajustar a compensação de equalização RIAA e as configurações do amplificador
- Um experimento de boot incomum que mostra o uso criativo de sistemas legados mesmo sob limitações de hardware
Visão geral do projeto
- O experimento foi montado para inicializar um IBM PC conectado diretamente a um toca-discos
- Se o BIOS do PC falhar em outras opções de boot (disquete, disco rígido etc.), o bootloader em ROM chama a interface de cassete
- Por essa interface, ele lê o sinal de áudio reproduzido pelo toca-discos e prossegue com o processo de boot
- A imagem de boot usada é um disco RAM de 64 KB baseado no kernel do FreeDOS
- Inclui uma versão reduzida do COMMAND.COM e uma versão modificada do INTERLNK para transferência de arquivos via cabo de impressora
- O bootloader em ROM decodifica o sinal de áudio, carrega-o na memória e então inicializa o sistema
Configuração técnica
- O bootloader é uma combinação dos projetos BootLPT/86 e 5150CAXX, sem suporte à porta de impressora
- Ele é gravado na ROM do soquete de expansão do BIOS e também pode ser instalado em disco rígido ou disquete, mas neste experimento foi usado em ROM
- A conexão entre o PC e o amplificador usa a mesma estrutura de cabo do 5150CAXX, mas sem o conector de entrada de linha
- A interface de cassete é composta pelo canal 2 do timer do alto-falante do PC (saída) e pelo canal 4 da porta C do PPI 8255A-5 (entrada)
- A rotina INT 15h do BIOS é usada para fazer a modulação e demodulação por software
Sinal de áudio e produção do vinil
- A imagem de boot foi convertida de acordo com o protocolo “IBM cassette tape” e enviada para um equipamento de corte de discos
- Como o vinil é cortado com a curva de equalização RIAA, é necessário fazer compensação adicional no amplificador durante a reprodução
- Agudos em -10 dB/10 kHz, graves em +6 dB/50 Hz e tensão de saída de aproximadamente 0,7 V
- Correções de fase e loudness foram totalmente desativadas
- A qualidade do sinal é extremamente importante, e estalos e chiados podem interromper o fluxo de dados
- Ainda assim, erros de velocidade de ±2~3% e um pouco de wow (oscilação de velocidade) são tolerados
Distribuição do bootloader e da imagem
- O binário do bootloader foi projetado para o chip 2364 e também pode ser usado com chip 2764 por meio de um adaptador
- Funciona em um IBM 5150 com pelo menos 512 KB de RAM e tela monocromática
- A imagem do disco de boot está disponível no final da documentação do BootLPT/86, e a versão FLAC analógica é fornecida em um link separado
Reação da comunidade
- Nos comentários, houve muitas reações positivas como “o renascimento da tecnologia retrô” e “um conceito parecido com boot por cassete”
- Alguns usuários perguntaram sobre a possibilidade de usar entrada de Sound Blaster e a compatibilidade com BIOS open source (GlaBIOS)
- O autor deixou claro que a implementação foi feita apenas com ROM de expansão, sem modificar o BIOS
- Vários leitores também deixaram comentários bem-humorados, como “se tocar ao contrário, inicializa o Linux”
Significado
- Este experimento é um caso de conversão de mídia de áudio analógica em mídia digital de boot
- É uma tentativa técnica criativa de reaproveitar a interface de cassete e a estrutura de expansão do BIOS do IBM PC
- Em sistemas modernos isso é desnecessário, mas é um projeto interessante para explorar hardware legado e técnicas de processamento de sinais
1 comentários
Comentários do Hacker News
Talvez fosse possível se o driver do scanner e o software de OCR estivessem na BIOS. Hoje em dia, com uEFI, pode até ter ficado mais fácil
Eu tinha um scanner SCSI antigamente, e me arrependo de ter desmontado para aproveitar as peças
Talvez desse para fazer um bootloader simples que lesse um padrão preto e branco impresso em papel, carregasse na memória e inicializasse a partir disso. Fiquei curioso para saber qual seria a capacidade de armazenamento de uma folha A4
Isso também aparece na wiki de Flexi_disc, mas a confiabilidade era baixa, então as revistas orientavam a copiar primeiro para fita cassete. Normalmente, o disco só podia ser reproduzido 1 ou 2 vezes
Dizem que no Reino Unido um jogo do Thompson Twins foi distribuído assim
Às vezes distribuíam demos colando a fita na capa da revista, e também lembro de consertar fita enrolando com lápis
Também dava para copiar usando um deck duplo de fita de música
São pequenos retângulos sem partes móveis, armazenam e recuperam dados em blocos, com baixa latência e alta confiabilidade
Antigamente, o armazenamento era muito mais “físico” — lento, barulhento, sensível a campos magnéticos e cheio de partes mecânicas complexas. Só pelo som já dava para perceber que havia algum problema
É divertido vivenciar diretamente a evolução do armazenamento. Os HDs da Conner são resistentes como um tanque, e o som quando giram é incrível
Isso faz perceber de novo o quanto de engenharia impressionante existia por trás de simples bytes e blocos
O primeiro computador da nossa casa carregava programas por um toca-fitas da Radio Shack
Rebobinar a fita, apertar play e digitar o comando de load parecia quase um ritual
Quando depois ganhei um drive de disquete de 5¼ polegadas, foi realmente emocionante. Foi ali que comecei a programar
Wiki do BASICODE
Ainda existe uma gravação da primeira transmissão. Se a recepção FM fosse boa, funcionava bastante bem
Link relacionado
Não é da minha geração, mas foi uma tentativa interessante
Link do Discogs
Ele inclui faixas de boot para Atari e C64, junto com música chiptune
A ideia era dizer que 9 em cada 10 clientes gostavam da sensação tátil de tocar seus dados restaurados. Nunca foi adiante, mas rendeu boas risadas na equipe
Basta fazer streaming por sites como asciiexpress.net
Talvez também desse para fazer isso com vinil, mas eu não tenho equipamento para fazer o corte
Em intheclouds.io dá para produzir por cerca de 100 dólares
Tenho equipamento digital também, mas a satisfação de manipular diretamente aquele disco preto é insubstituível
Até pequenos erros e a imperfeição dos sulcos aparecem no som, e isso o torna mais vivo
Ao tirar do encarte, dá para saber quantas faixas existem e qual o tamanho de cada uma pelo comprimento dos sulcos, além de ir direto para a faixa desejada. É muito mais intuitivo do que fita cassete
Em vez disso havia uma interface de fita no formato de jack de áudio, e era preciso dar play e stop manualmente