quarta-feira, maio 26, 2010

Histórias do Tempo dos Disquetes - 5 1/4 no IBM PC

Quando a IBM lançou o IBM-PC, em 1981, o disquete de 5 1/4" era o padrão para os micro-computadores.


A versão mais simples do PC vinha com 16K de Ram e sem unidades de disco; uma interface para fita cassete estava disponível na placa mãe para uso com o BASIC contido na Rom. Provavelmente os únicos que compraram esta configuração foram empreendedores que completavam 64K de Ram, adicionavam uma unidade de disquete e revendiam o equipamento com um bom lucro.


O IBM PC/XT, lançado no ano seguinte, oferecia a opção de um disco rígido (de 10 Mbytes) e já não trazia mais a interface de fita K7.

O Hardware

Era inevitável a IBM olhar para o líder de mercado (o Apple II) no momento de escolher as características do seu micro. Não foi surpresa o PC possuir slots de expansão, gráficos coloridos e disquete de 5 1/4. A característica mais surpreendente, o uso do processador 8088, foi incentivada principalmente pela Microsoft.

Na implementação do hardware, entretanto, a IBM foi fortemente conservadora. Ao invés da engenhosidade do projeto do Apple II ou de componentes custom (como previam alguns), componentes de prateleira interligados de forma tradicional (algumas partes pareciam copiadas diretamente de Applications Notes dos fabricantes dos componentes).

O sistema de controle dos disquetes era baseado em um controlador da Intel (8272) operando com DMA (Direct Memory Access). Isto permitia ao software fazer requisições de alto nível (do tipo leia n setores a partir do setor s na trilha t e face f), potencialmente liberando o processador para outra tarefas. Infelizmente, o BIOS e o DOS não implementavam este paralelismo, aguardando em loop o término das operações.

O DMA apresentava uma particularidade. O controlador utilizado, Intel 8xxx, era limitado a endereços de 64K, controlando apenas 16 bits. Para completar o endereçamento de 20 bits do 8088, os quatro bits mais significativos eram obtidos de um registrador à parte. O resultado é que nenhuma operação de DMA podia cruzar uma destas barreiras de 64K (em outras palavras, durante toda a transferência os 4 bits mais significativos do endereço ficavam fixos). Inicialmente era responsabilidade do programador que utilizasse diretamente o BIOS alocar os seus buffers em local apropriado. Versões posteriores do DOS interceptavam as chamadas ao BIOS e utilizavam um buffer do DOS (localizado dentro dos primeiros 64K) para viabilizar transferências que contivessem uma barreira.

O Software

A saga do PC-DOS é conhecida: insatisfeita com a Digital Research, a IBM solicitou à Microsoft uma alternativa de sistema operacional. A Microsoft adquiriu então os direitos do QDOS (Quick and Dirty Operating System), desenvolvido por um outro cliente insatisfeito com os atrasos do CP/M-86.

No tratamento de arquivos, o QDOS emulava as APIs do CP/M. Para controle de alocação dos setores, o autor do QDOS preferiu não usar o esquema do CP/M. Ele se baseou no esquema usado em um produto da Microsft: o Standalone Disk Basic. Com isto se popularizou o esquema baseado na FAT (File Allocation Table), uma tabela que armazena as alocações na forma de listas ligadas. A unidade de alocação, múltipla de um setor, é chamada de cluster. O tamanho dos clusters era inicialmente escolhido para que a FAT ocupasse somente um setor de 512 bytes, facilitando o acesso e permitindo mantê-la sempre em memória. Rapidamente foi preciso suportar FATs maiores; com a introdução do disco rígido foi necessário começar a paginar os setores da FAT na memória.

Os Formatos

Ao longo dos anos vários formatos foram usados para os disquetes de 5 1/4 polegadas.


A IBM utilizou sempre densidade dupla, com setores de 512 bytes, e unidades dupla face. Inicialmente eram usados 8 setores por trilha e 40 trilhas por face, resultando em 160K para discos face simples e 320K para discos face dupla. No DOS 2.0 a Microsoft "apertou" um pouco mais os setores e conseguiu colocar um a mais em cada trilha. isto aumentou a capacidade para 180K e 360K, que viriam a ser padrão por muitos anos.

Ao lançar o PC AT, com um HD de 20Mbytes, a IBM introduziu uma nova unidade de disquete, capaz de armazenar 80 trilhas de 15 setores, resultando em uma capacidade de 1.2M (conhecido como 5 1/4 HD). Para obter esta capacidade, o material do disquete é diferente do usado nos anteriores e a cabeça de leitura/gravação mais precisa. Para complicar, a nova unidade lia sem problemas os disquetes de menor capacidade, porém a gravação nela destes disquetes não podia ser lida de forma confiável em uma unidade antiga.


Isto deu uma sobrevida às unidades não HD, necessárias para permitir a passagem de dados para computadores mais antigos (lembrem-se que nesta época não existiam opções como rede, CD ou pen-drive).

O formato HD foi o último formato popular dos disquetes 5 1/4". Depois dele a indústria passaria para um outro tamanho - 90mm (que se tornou conhecido como 3 1/2 polegadas).

Curiosamente, o disquete de 5 1/4 HD ostentou durante um bom tempo o menor custo por byte, mesmo com a introdução do disco de 3.5".


Proteção Contra Cópia

Nos anos 80 eram comuns esquemas de proteção que tentavam impedir a cópia exata dos disquetes originais. O princípio básico era que a controladora 8272 não dava muita flexibilidade na gravação. Algumas combinações inválidas podiam ser detectadas mas não gravadas por ela.

Surgiram então programas para backup de disco protegido, como o CopyWrite e o Copy2PC. Um truque destes programas era ressetar a controladora durante a gravação, em instantes precisos, para forçar erros ou montar trilhas aos pedaços.

Esta técnica não era 100% precisa e alguns discos protegidos se mostravam particularmente difíceis de copiar. A Central Point Software, desenvolvedora do Copy2PC, lançou então a Copy2PC Option Board, uma controladora para ser ligada em série com a original e capaz de ler e gravar as transições de fluxo no disco.

Fim das proteções? Não, surgiu então uma técnica que consistia em usar um laser para destruir a camada magnética do disco em um pequeno ponto, em uma posição precisa. A solução para quem queria um backup destes discos era tentar reproduzir o estrago usando uma agulha ou estilete. O próprio manual do Copy2PC dava algumas sugestões. Como alternativa, ele fornecia um programa TSR (algo como um rootkit dos tempos da caverna) que interceptava o teste da chave e falsificava o resultado esperado. Entretanto, este programa era ineficaz quando o aplicativo acessava diretamente o hardware da controladora, desviando do BIOS e do DOS.

8 comentários:

Tiago "PacMan" Peczenyj disse...

Excelentes posts. Sera que um dia teremos algo sobre o CP/M ou o MSX?

Daniel Quadros disse...

Fico feliz que alguém está gostando...

Sobre o CP/M tem algumas coisas que estou guardando para as minhas "memórias" (quem sabe começo esta série neste ano). Já com o MSX eu não tive nenhuma experiência.

Redação disse...

Muito legal!!!! Muito interessante parabens pelo POST, faz com que viajemos no tempo e lembremos desses bolachões. Interessante tanbém é poder entender a evolução de software e hardware. Vou replicar este conteudo no meu blog www.informativogeral.com.br e darei-lhe os respectivos creditos e link. Pode ser? Um abraço.

Daniel Quadros disse...

Pode repiclar à vontade. Salvo indicação explícita em contrário, o material no meu blog segue a licença "Creative Commons Attribution" - você pode copiar e criar obras derivadas, desde que indique que a versão original era minha.

Sx =] disse...

O céus... com o fim dos disquetes, como faremos nós, hobistas em desenvolvimento de sistemas, para testar nossos bootloaders... hehehe.

Parabéns pela serie, muito boa mesmo.

tiago peczenyj disse...

sem disquetes acho que teremos que usar EPROM ou algo do genero.

Danielison disse...

Agora que estou aprendendo o MS-Dos,instalei algumas versões dele na maquina virtual e me divirto muito até altas horas,nao se assustem,é verdade mesmo,e quero ver se consigo um PC dessa época.Instalei desde o Windows 1.0 até o raro Longhom.
Gosto muito de PCs antigas,restaurei um de 500 MHz,ele não é tão antigo o quanto eu quería,ma já dá para brincar um pouco.

Danielison de oliveira
Angatuba/SP

tarcizo fonseca disse...

Estou procurando por dois disquete de 5 ¼ com todo o sistema operacional o CP/M e no outro o MS-DOS já gravados no disquete para fins de dá boot em um XT que resolveu parar alegando falta do sistema operacional. Sinceramente não lembro se o XT usava como sistema o CP/M ou o MS-DOS. Quem puder ajudar gerando tais discos aqui está p meu e-mail para contato. tarcizofonseca@yahoo.com.br