terça-feira, 1 de dezembro de 2009

Drives novos em micros antigos (antigos mesmo!)

Havia uma época em que um drive de disquete era um luxo. Quando eu falo para meus colegas mais novos sobre gravar programas em fita, eles costumam pensar em DAT ou Exabyte; custam a acreditar que usavam-se fitas cassete mesmo.

Tenho umas revistas antigas guardadas e numa delas, de 1986, um drive de 5.25" e densidade simples está anunciado por 75 libras. Pela cotação de hoje, seriam R$215. Mas eu achei uma calculadora de inflação que calculou que as 75 libras hoje equivaleriam a 165, que, por sua vez, equivalem a R$472. Pois, fui a uma loja de informática, das mais caras, e comprei um drive de 3.5" e alta densidade por R$15. Não concebo como um aparelho razoavelmente complexo consiga ser fabricado na China, enviado para o outro lado do mundo e vendido num shopping por R$15. Maravilhas da globalização.

Pois bem, uma vez comprado o aparelho procedi a conectá-lo a um micro pré-histórico: um BBC B+ 128KB. Este micro já foi chamado de Rolls-Royce dos microcomputadores. Eu também gosto dele e por isso o guardo até hoje. Ele foi comprado em 1985. Há quase 25 anos, portanto.

Ele usa uma controladora Western Digital 1770 (WD1770 para os íntimos), que foi muita usada em micros de 8 e 16 bits. A WD1700 suporta densidade simples e dupla, mas o BBC veio equipado com o DFS (Disc Filing System), que suporta apenas densidade simples. Em densidade simples, cada setor comporta 256 bytes. O DFS permite 40 ou 80 trilhas de 10 setores cada. Usando os dois lados de um disquete (e não eram todos que podiam!), era possível gravar impressionantes 400KB numa única mídia. Era mais do que um PC alcançava; mesmo com densidade dupla, os PCs usavam apenas 40 trilhas de 9 setores, resultando em 360KB por disquete.

De qualquer forma, os drives atuais têm uma característica importante: assim como os órgãos vestigiais que o homem mantém para lembrar-se do seu passado, eles gravam em densidades simples (SD), dupla (DD) e alta (HD). E qual a diferença? Entre a densidade simples e a dupla, a única é a codificação. A primeira usa FM (Frequency Modulation) e a segunda usa MFM (Modified Frequency Modulation). A controladora envia os dados já codificados para o drive e este nem toma conhecimento da diferença. Com alta densidade, no entanto, a trama engrossa. Os disquetes de alta densidade possuem um furo extra (logo, possuem dois - um para proteção e outro para indicar a densidade alta) e características físicas um pouco diferentes. Por causa da densidade maior, o drive precisa gravar os dados com uma coercitividade maior. Densidade simples e dupla são gravadas a 600oe (oersteds) e a densidade alta é gravada a 720oe.

Existiu também uma densidade quadrupla (QD) em drives fabricados pela DEC. Eles permitiam gravar 2.88MB num disquete, a 900oe e com um furo adicional (três ao todo, portanto). Só vi uma vez um drive desses.

Usando um cabo plano (flat) normal de PC (de 34 vias) conectei o drive ao micro. Ele só funcionou no conector do meio. O PC chama o drive do meio do cabo de B e o da ponta de A. O BBC trata o do meio como o primeiro drive e distingue as cabeças de leitura, sendo a de baixo a 1 e a superior a 3. O drive da ponta é o primeiro, com as cabeças 0 e 2. Quando o sistema de disco tem que caber num ROM de 16KB, algumas esquisitices acabam aparecendo.

Pois bem, após muitas investigações descobri que o BBC usa o cabeamento Shugart e o PC usa o Shugart com leves modificações. O Shugart permite até 3 drives. O pino 16 indica quem um drive pode girar e os pinos 10, 12 e 14 indicam qual drive. No PC, para simplificar o hardware, o pino 10 envia a ordem de ligar e o pino 14 indica que a ordem é para drive 2 (A). Os pinos 12 e 16 fazem o mesmo pelo drive 1 (B).

O que eu precisava então, era do cabo certo. Fui a uma loja de eletrônica e tive a grata surpresa de descobrir que os cabos planos são amplamente usados na eletrônica. Eles não foram projetados apenas para ligar micros a drives. Existem cabos planos de diversos tipos e números de pinos. Basta comprar um metro de cabo, três terminadores e trocar o pino 10 pelo 12.

Os cabos de PC também têm uma voltinha. Essa voltinha existe porque os drives são todos fabricados como drive B. Para economizar alguns centavos na montagem dos PCs, as fábricas passaram a deixar os drives sempre na mesma configuração; o cabo engana o computador a tratar o drive da ponta como o A. A tal voltinha abrange todos os pinos do 10 ao 16, mas os pinos 13 e 14 apenas carregam o terra. Com o tempo, o jumper que alterava a configuração sumiu da maioria dos drives.

Tive medo de que as mídias de alta densidade não funcionassem bem com densidade simples. Ainda é possível conseguir mídias de densidade dupla, mas são mais caras e não estão disponíveis em qualquer loja. Há algumas lojas na Alemanha que ainda vendem esses disquetes; é herança do Amiga, que foi muito popular por lá. Tapando o segundo furo de uma mídia HD, enganei o drive a tratá-la como uma mídia SD/DD. Gravei um "Hello World" em BASIC e, por sorte, consegui ler de volta o programa.

Os fabricantes mantiveram o mesmo padrão quando evoluiram dos drives de 8" para os de 5.25" e finalmente para os de 3.5". Se alguém tiver um micro realmente antigo com um drive de 8", provavelmente conseguirá conectar um drive de 3.5" novo, sem grandes dificuldades.

Nenhum comentário: