domingo, 22 de novembro de 2020

Unidade de leitora de disquetes com 4 drives!

Quem possui uma interface Beta Disk sabe, pelo menos através do manual, que ela é capaz de gerenciar até 4 unidades de drives... Coisa que muitos PCs nem conseguem fazer.  ;)
Bom, na teoria é legal, mas e na prática?

Esta tem sido minha luta nestes últimos meses, pois, apesar de aparentar uma certa simplicidade, isso é complicado quando se trata de unidades de disquetes de 3 1/2". A razão se dá pelo fato de que a grande maioria destas unidades só te permitem configurar unidade A ou B. Isso quando você consegue localizar os jumpers ou pontos de solda DS0 e DS1. É comum ter que desparafusar a lata para localizar estes pontos...   :/
Por padrão de fábrica, estes drives menores vem configurados como unidade B (DS1), por isso aquela inversão no flat cable dos PCs. Esta inversão faz justamente que a unidade pré-configurada como B, se torne A (o cabo faz o serviço do jumper). Mas atenção: Este tipo de inversão dos cabos de PC não servem para a Beta Disk! O ideal é você ter um cabo contínuo (sem inversões) e "jumpear" diretamente nos drives.

Já no caso dos drives de 5 1/4" isto é bem mais tranquilo, pois os jumpers são de fácil acesso e permitem configurar até quatro unidades (A,B,C,D ou DS0,DS1,DS2,DS3). Mas, de forma prática, não teria muita utilidade atualmente, pois trabalhamos mais com o disco menor de 3 1/2" (mais robusto e de maior capacidade).
O legal seria ter 4 unidades de 3 1/2" ou 2 unidades de 3 1/2" + 2 unidades de 5 1/4", pelo menos para efetuar cópias, restaurações, etc. Como a primeira opção eu já descartei, optei pela segunda.
Depois de encontrar uma boa fonte de 12v e 5v, que não provocasse interferência na imagem do TK (sim, isso infelizmente pode acontecer), finalmente consegui montar minha unidade de 4 floppy drives. Funcionando perfeitamente depois de uma rigorosa limpeza interna nos drives!

Segue as imagens.  ;)



Como eu recupero disquetes mofados (Tutorial de Limpeza de discos 5 1/4").

Sabemos que hoje em dia, encontrar discos de 5 1/4" em bom estado é algo muito raro. 
A maioria, mesmo estando lacrados (new old stock), podem apresentar sinais de mofo na mídia... Que dirá os discos usados e mal armazenados!
Bem, mas para tudo existe uma solução.  ;)
A que funcionou comigo e que eu compartilho neste post, poderá ajudar a "dar vida" aos velhos disquinhos e, quem sabe, recuperar dados preciosos!

Umas considerações importantes antes de começar:
- Não insira discos mofados ou sujos no drive antes de limpá-los (nem por curiosidade!). Provavelmente esta sujeira/mofo, ao ter contato com a cabeça de leitura do drive, irá arranhar o disco, provocando danos irreversíveis. Limpe primeiro o disco.
- Também convém limpar antes a cabeça de leitura do drive com um disco apropriado de limpeza (feito de uma espécie de feltro e embebecido com álcool isopropílico). Se você não achar, pode-se fabricar um caseiro com filtro de papel coador de café. Depois publico um post ensinando a fazer.
- Faça tudo por sua conta e risco. Não me responsabilizo por danos provocados durante o processo, ok?

TUTORIAL (passo-a-passo):

O disquete escolhido foi este Dysan, com 35 anos de idade!

O primeiro passo é abrir com um estilete a parte superior do disquete, pelo lado da dobra. Este é um momento delicado, pois exige firmeza nas mãos e uma lâmina bem afiada. O corte é feito pela própria folga da dobra, por cima do plástico. Jamais insira a lâmina dentro do plástico!
OBS: Alguns são fáceis de descolar manualmente e talvez nem seja necessário o estilete.

Em seguida, após retirar o disco com cuidado, mergulho ele num prato com uma solução de água e detergente. Depois vou passando o dedo suavemente por toda a mídia, em ambos os lados. Não utilize nada que possa ser abrasivo, tipo esponjas, etc. Em casos extremos, você pode acrescentar umas gotas de água sanitária na solução.

Na sequência, enxáguo em água corrente para remover o detergente.

Para secar, utilizo 2 conjuntos de toalha de papel (com 2 folhas cada - que serão dobradas).


Atenção: Apenas dobre as folhas uma sobre a outra, sem esfregar nada sobre a mídia. Faça uma pressão com os dedos para o papel absorver a água.


Depois repita a operação no segundo conjunto de folhas. Pronto! Isso já será suficiente para deixar a mídia bem sequinha. Nada de secadores por favor!

Depois é só voltar com a mídia para a embalagem. Se ao tirá-la você ver algum tipo de sujeira ou cheiro de mofo no feltro interno, poderá lavá-lo também (com muito cuidado para não danificar nada) e, secá-lo com secador em baixa temperatura (só na embalagem que pode). Se for só cheiro, pode-se borrifar álcool isopropílico dentro (que seca rapidinho).

Esta imagem acima é exemplo de um caso crítico, onde o feltro interno já está bem contaminado.
Nestes casos, costumo descartar e ler o disco em outro invólucro em melhor estado.


Agora é só fechar com fita adesiva de boa qualidade.


Colocar no drive e...

Voia-lá!!! Agora lendo perfeitamente!  :)

O ANTES...

... e o DEPOIS! Este chegou a brilhar!  :))

Mas nem sempre é tão fácil assim... Na imagem abaixo temos um exemplo de um disco irrecuperável, cuja manta magnética foi danificada (provavelmente por drives desalinhados, cabeças sujas ou resíduos que não foram limpos no próprio disquete).



Minha primeira interface da Chayenne (C.A.S.), uma réplica nacional.

Se tem uma interface que não me incomodo de ter mais de uma, é uma Beta Disk!

Recentemente adquiri um lote de itens da linha Sinclair e, para minha grata surpresa, havia uma interface beta disk da Chayenne Advanced System, reproduzida no Brasil pela Arcade Informática.
Infelizmente ela apresenta problemas no funcionamento e será necessário uma manutenção. Mas nada preocupante, pois amo fazer isso...  :)
A dificuldade neste caso é que existia um péssimo hábito da época de se raspar os integrados (para que não fossem feito cópias dos produtos)... Se pode complicar, pra quê facilitar não é mesmo?

Curiosamente ela se parece muito na montagem interna com a interface da CBI (outra que anseio adquirir um dia), utilizando um sistema de 2 placas sobrepostas e com uma impressão do circuito bem típica da época (um tanto frágil, ao meu ver).
Outra coisa que gostei muito foi o conector do cabo flat dos drives, bem prático.
Pena que este modelo não possua interface integrada de impressora (como da CBI e a IDS).
Outra coisa que me chamou a atenção foi que ela possui uma entrada auxiliar de alimentação, com direito ao regulador de tensão 7805 e um dissipador interno, pois sua caixa tampa a entrada AC dos TKs/ZXs.

Seguem as imagens (com a caixinha já devidamente personalizada).







sexta-feira, 11 de setembro de 2020

Você realmente conhece o formato de arquivos .TRD e suas possibilidades?

Eu fui inspirado a escrever este artigo quando estava estudando formas de trabalhar com arquivos externos em meus programas em Basic, achando no formato .TRD, uma ótima opção para carregar arquivos auxiliares (como telas, dados, etc.).
É óbvio que um programador experiente já deve pensar nisso de uma forma bem mais aprimorada, porém este não é o objetivo deste post. Quero apenas mostrar que este formato pode ser mais útil do que simplesmente uma forma diferente de carregar jogos ou aplicativos.

Primeiro, vamos entender o formato.


O formato TRD foi criado para armazenar imagens de disco Beta Disk (TR-DOS) para fins exclusivos de emulação. Ou seja, foi uma forma de reproduzir o conteúdo de um disquete inteiro (sua imagem) em apenas um arquivo.

Uma variedade de clones do Spectrum Russo (incluindo o Pentágono e o Scorpion ) usam o sistema operacional de disco TR-DOS com uma Interface de Disco Beta embutida, assim como as versões inglesas do ZX Spectrum (em uso conjunto com a interface Beta Disk) e os nossos clones nacionais TK90X e TK95 (com nossas versões da interface Beta da Arcade, CBI e Synchron). Nos países do antigo bloco soviético este formato predomina até hoje como o preferido (afinal, ainda são grandes desenvolvedores de programas) e no Brasil, já teve teve seu período áureo no início da década de 90 até meados de 2010, quando muitos brasileiros optaram pela comodidade de uma interface tipo divIDE. Entretanto, isso não atendia aos programadores brasileiros de plantão, pois esta interface no sistema original FatWare, não permitia gravação, mas apenas leitura de arquivos. Somente com a evolução das versões do sistema esxDOS (substituindo o FatWare na divIDE), que se passou a emular o TR-DOS da Beta (para a alegria dos programadores), tornando-se possível a gravação e manipulação direta de arquivos.

O formato TRD é membro do Easy Disk Image Formats. Este tipo de imagens de disco contém apenas os dados do setor despejado. Não há informações de cabeçalho, portanto a geometria do disco deve ser assumida, ou determinada a partir dos dados do sistema de arquivos colocados na imagem do disco.

Estas imagens não podem armazenar dados fora do padrão, como:

  • setores excluídos
  • faixas não formatadas de maneira uniforme
  • dados fracos do setor (algumas proteções de cópia têm o que é descrito como dados “fracos”, “aleatórios” ou “flutuantes”. Cada vez que o setor “fraco” é lido, um ou mais bytes mudam. Seu valor  pode ser aleatório entre leituras consecutivas do mesmo setor. Dados fracos só podem ser gravados usando hardware modificado, portanto, você não pode copiar facilmente esses discos. Apenas os formatos de imagem de disco Extended DSK e UDI 1.1 gravam este tipo de dados. Este sistema de proteção era muito utilizado no discos do ZX Spectrum +3.)

Estrutura do arquivo TRD

As imagens TRD podem armazenar imagens de disco de 40 ou 80 trilhas de uma ou dupla face.

Cabeçalho do Arquivo

Não há nenhum cabeçalho ou assinatura de arquivo (bytes mágicos).

Layout do setor

Setores dispostos do primeiro ao último em uma trilha:

  • Setor 1
  • Setor 2

...

  • Último setor

As trilhas seguem o esquema “alt”:

  • Lado: 0 Faixa: 0
  • Lado: 1 Faixa: 0
  • Lado: 0 Faixa: 1

...

  • Lado: 0 Faixa: 79
  • Lado: 1 faixa: 79

Comprimento do arquivo

TR-DOS usa 256 BPS e 16 SPT para discos, então um

  • O comprimento da imagem dos lados da trilha 1 é 163840 bytes (1 × 40 × 16 × 256)
  • O comprimento da imagem de 40 faixas 2 lados é 327680 bytes
  • O comprimento da imagem do lado 80 da trilha 1 é 327680 bytes
  • O comprimento da imagem de 80 faixas 2 lados é 655360 bytes

Imagens parciais

Os arquivos TRD podem terminar antes do comprimento total calculado, se os setores até o final não contiverem dados.

Por exemplo, no jogo Prince of Persia - PRINCE_P.TRD (imagem de disco de 2 lados com 80 trilhas) tem apenas 255488 bytes de comprimento, porque o último setor que contém dados é h0t31s6 (2 × 31 × 16 + 6) × 256.

O formato alternativo/compactado .SCL

O formato SCL é um formato de armazenamento alternativo para imagens do sistema de arquivos TR-DOSEm vez de uma imagem TRD, o SCL armazena apenas a estrutura do diretório e os dados dos arquivos. Eu diria que é uma forma compactada dos arquivos TRD.



Bom, agora que entendemos como funciona este formato, retornamos a motivação que me levou a escrever este artigo.

Como a maioria dos arquivos que encontramos no formato TRD utilizam o espaço máximo do disco (640k), podemos concluir que isto é o que temos para trabalhar (pelo menos em um único disco). Em termos de programação em Basic Sinclair é muita coisa! 

Se fossemos armazenar num disco apenas um banco de imagens (telas .SCR completas, por exemplo), caberiam aproximadamente 27 telas. Se fossem apenas 1 bloco de tela (lembra que o Spectrum trata a carga de imagens em 3 blocos distintos?), seriam aproximadamente 81 telas (com 1/3 do tamanho exibido).

Ok. Não preciso dizer que a carga em disco real já é bem rápida (apesar das limitações do Basic), portanto num arquivo .TRD será ainda mais veloz. Então imagine você chamando um arquivo no "disco" (.TRD) direto do teu programa em Basic... Não é uma opção interessante? Consegue ver como o padrão TRD é útil para um programador e para o desenvolvimento de programas mais complexos?

Caso tenha se interessado em experimentar programar no sistema TR-DOS, basta baixar os manuais disponíveis neste blog e aprender a utilizar os novos comandos. Não preciso dizer que a maioria dos bons emuladores já são compatíveis com este padrão de arquivos, facilitando em muito a nossa vida.


Em outro momento irei publicar um artigo com um exemplo de como buscar estes arquivos nos discos virtuais utilizando o Basic e, posteriormente, em código de máquina (que já é outro nível).
Até lá!

sexta-feira, 14 de agosto de 2020

Como configurar um emulador de drive GOTEK para o TK90X, TK95 e ZX Spectrum.

 


Apesar de não ser a minha opção predileta (pois amo meus disquetes!), o emulador de drives é uma alternativa interessante e muito procurada para uso na manipulação de arquivos de discos do TK. Rápido e seguro, funciona com perfeição em nossos micrinhos, bastando apenas configurá-lo para se comportar como um drive convencional em equipamentos de 8 bits.
O emulador da GOTEK, modelo Sfr1m44 u100k, é o mais popular e funciona muito bem.
Entretanto, ele não pode apenas ser simplesmente encaixado (apesar de parecer e possuir as conexões), necessitando de uma atualização do firmware específica para se tornar compatível.

Para isso, estou disponibilizando um tutorial traduzido em PDF, bem como os arquivos necessários para atualização na base de download deste blog. O tutorial foi feito originalmente para os teclados musicais da Roland, mas funciona perfeitamente para o nosso caso e está muito bem explicado no passo-a-passo. Inclusive explica também como fazer um upgrade no emulador, colocando um display e um botão extra. Muito interessante e fácil de fazer para quem tem o mínimo de habilidade com eletrônica.

Caso você queira comprar um, segue um link do que encontrei mais barato no Brasil (em pronta entrega) e outro no exterior (bem mais barato, mas com os inconvenientes de espera da importação). Pode ocorrer de, em determinado momento, o link ficar inativo por alteração de vendedor, mas já é uma referência de onde você pode encontrar estes emuladores.

Mercado Livre (Brasil):
https://produto.mercadolivre.com.br/MLB-1398444877-sfr1m44-u100k-emulador-drive-disquete-pen-drive-usb-brinde-_JM

AliExpress (Exterior):
https://pt.aliexpress.com/item/32841011000.html

No próximo post relacionado a este tema, falaremos sobre como manipular os arquivos do TK/ZX no pen drive para ser utilizado no emulador, bem como quais são os tipos aceitos por ele.
Até lá!

segunda-feira, 10 de agosto de 2020

A História dos Disquetes

O disquete foi inventado por engenheiros da IBM liderados por Alan Shugart,  em 1971. Era um disco de plástico flexível de 8 polegadas revestido com óxido de ferro magnético e os dados do computador eram gravados e lidos na superfície do disco. O primeiro disquete de Shugart continha 100 KB de dados (face simples).

O apelido disquete veio da flexibilidade do disco. O disquete é um círculo de material magnético semelhante a outros tipos de fita de gravação, como a fita cassete, onde um ou dois lados do disco são usados ​​para gravação, porém com maior velocidade de leitura. Os dados ficam literalmente "flutuando" magneticamente sobre esta superfície.

O drive de disco inicia a leitura do disquete pelo seu centro até sua extremidade, enquanto ele gira como um registro dentro de sua caixa. A cabeça de leitura/gravação, muito parecida com a cabeça de um toca-fitas, entra em contato com a superfície por meio de uma abertura no invólucro de plástico ou no envelope.

O disquete foi considerado um dispositivo revolucionário na história dos computadores devido à sua portabilidade, que forneceu um meio físico novo e fácil de transportar dados de um computador para outro.

Estes primeiros discos foram projetados para carregar microcódigos no controlador do Merlin (IBM 3330). Então, na verdade, os primeiros disquetes foram usados ​​para preencher outro tipo de dispositivo de armazenamento de dados. Usos adicionais para o disquete foram descobertos mais tarde, tornando-o um eficiente meio de armazenamento de arquivos.

Em 1976, o disco rígido e disquete de 5 1/4 de polegadas, foram desenvolvidos por Alan Shugart para a Wang Laboratories. A Wang queria um disquete e drive menores para usar com seus computadores desktop. Em 1978, mais de 10 fabricantes já estavam produzindo unidades de disquetes de 5 1/4" que armazenaram até 1,2 MB (megabytes) de dados.

Uma história interessante sobre o disquete de 5 1/4" foi a maneira como o tamanho do disco foi decidido. Os engenheiros Jim Adkisson e Don Massaro estavam discutindo o tamanho com An Wang, da Wang Laboratories. O trio estava em um bar quando Wang fez um gesto com um guardanapo e disse que esse seria o tamanho (que por acaso tinha 5,5 cm de largura).

Em 1981, a Sony introduziu os primeiros drives e disquetes de 3 1/2". Estes disquetes foram encapsulados em plástico rígido, mas o nome permaneceu o mesmo. Eles armazenaram 400kb de dados e, posteriormente, 720K (densidade dupla) e 1.44MB (alta densidade).

Trabalhando com disquetes:

A entrevista a seguir foi feita com Richard Mateosian, que desenvolveu o primeiro sistema operacional para disquetes. Mateosian é atualmente um editor de revisão na IEEE Micro, em Berkeley, CA.

Em suas próprias palavras:

"Os discos tinham 8 polegadas de diâmetro e tinham uma capacidade de 200K (quando face dupla). Eles eram tão grandes que os dividimos em quatro partições, cada uma das quais consideramos como um dispositivo de hardware separado, análogo a um drive de fita (nosso outro dispositivo principal de armazenamento periférico na época). Usamos disquetes e cassetes principalmente como substitutos de fita de papel, mas também apreciamos e exploramos muito a natureza de acesso aleatório dos discos. Nosso sistema operacional tinha um conjunto de dispositivos lógicos (entrada de fonte, listagem de saída, saída de erro, saída binária, etc.) e um mecanismo para estabelecer uma correspondência entre esses e os dispositivos de hardware. Nossos programas de aplicativos eram versões de montadores, compiladores e assim por diante da HP, modificados (por nós, com a aprovação da HP) para usar nossos dispositivos lógicos em suas funções de E / S. O resto do sistema operacional era basicamente um monitor de comando. 

Os comandos tinham principalmente a ver com manipulação de arquivos. Havia alguns comandos condicionais (como IF DISK) para uso em arquivos em lote. Todo o sistema operacional e todos os programas aplicativos estavam na linguagem de máquina da série HP 2100. O software de sistema subjacente, que escrevemos do zero, era orientado a interrupções, para que pudéssemos suportar operações de E / S simultâneas, como inserir comandos enquanto a impressora estava em execução ou digitando à frente do teletipo de 10 caracteres por segundo. 

Na verdade, a estrutura do software evoluiu a partir do artigo de 1968 de Gary Hornbuckle, chamado "Multiprocessing Monitor for Small Machines" e de sistemas baseados em PDP8 em que trabalhei no Berkeley Scientific Laboratories (BSL) no final dos anos 60. O trabalho na BSL foi amplamente inspirado pelo falecido Rudolph Langer, que melhorou significativamente no modelo da Hornbuckle."

(Texto extraído e corrigido)

Erro de leitura na trilha 0, setor 9.

Ao readquirir minha interface Beta (praticamente "nova" e sem uso), deparei-me com a mensagem "erro de leitura na trilha 0, s...