sábado, 18 de fevereiro de 2023

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, setor 9" logo na primeira inicialização da interface.
Este problema dificultava a leitura de praticamente todos os disquetes e não permitia a formação correta dos mesmos. Também afetava a leitura e formatação na unidade Gotek.
Depois de muito pensar e fazer testes, busquei ajuda no blog do amigo Flavio Matsumoto, um especialista em interfaces Beta (cujas postagens relacionadas ao tema estão em diversos links disponibilizados aqui no blog).
Lá encontrei a seguinte descrição de sua dificuldade ao montar uma Beta IDS:

"Resolvi completar a montagem, soldando os componentes faltantes e testando num TK90X e um drive. Não era possível ler disquetes (dava erro de leitura na trilha 0, setor 9) e não conseguia nem formatar. Era o mesmo problema observado quando eu tinha montado a primeira placa.
O único componente ajustável da placa é um trimmer (capacitor ajustável) que fica bem ao lado do FDC 2793 (o CI de 40 pinos). A única instrução sobre este componente era de ajustar em 50 pF e soldar à placa; fiz a medição com a função capacímetro do meu multímetro.
Existe um macete para ajustar este componente: coloca-se no drive um disquete, manda-se formatar e, com uma chave de fenda, ajusta-se o trimmer até ouvir o ruído do motor de passo do cabeçote. Ouve-se um tec-tec-tec que indica o cabeçote sendo movido; o ponto ideal é quando se obtém o menor intervalo de tempo entre cada passo (entre um tec e outro). Feito isto, não só foi possível formatar, como os disquetes foram lidos sem problemas. Agradeço o Victor e o Ernani que deram essa dica, sem a qual eu ficaria no mato sem cachorro."

Fiz exatamente isso e, para a felicidade deste que vos escreve, "funfou" tudo direitinho. 😊👍


Este é o local do trimmer ajustável na IDS2001ne. 
(Foto: F. Matsumoto)

Retomando as postagens numa nova configuração.

Após quase dois anos sem postar, estou retornando com uma nova configuração de retro equipamentos (pois a anterior havia sido desfeita).
Neste longo intervalo de tempo, tive que dedicar-me à construção de um simulador de voo profissional (padrão AATD) para uma escola de aviação que estava em processo de nova homologação junto a ANAC, o que inviabilizou a atenção a este blog.
Motivado pelo início de um novo (e grande) projeto de interface Beta Disk (que em breve será divulgado aqui), adquiri um novo setup composto basicamente de: 02 unidades de TK90X, 01 interface Beta IDS2001ne (com ROM atualizada da CBI 2.4), unidades de disquetes, 01 emulador GOTEK, interface AY, Multiface One, Interface Kempston, gravador e impressora matricial. Inclui-se também aí outras interfaces complementares.
Acredito que a Beta nacional seja uma das melhores (senão a melhor) interfaces já produzidas para a linha ZX Spectrum, pois contempla todas as necessidades de um retro programador usuário do TK90X/TK95.
Portanto, seguimos confiantes e entusiasmados!

Este é o meu atual setup, bem ao estilo de época.  ;)

segunda-feira, 5 de abril de 2021

Interrupção das postagens.

Informo que a partir de Abril de 2021, estou interrompendo provisoriamente, sem definição de retorno, as postagens neste blog.
Devido ao seu conteúdo relevante para a comunidade Sinclair de usuários da linha ZX Spectrum e clones nacionais (Microdigital TK90X e TK95), este blog ficará no ar até quando o Google permitir.
Tão logo seja possível, retomaremos nossas postagens.

Obrigado a todos que contribuem indiretamente neste projeto.

Grande abraço!

Manoel Carvalho (neco8bits)

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á!

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...