O IBM 5150. Onde o monopólio começou



Clique aqui para ler a versão em russo.

Todo velho entusiasta de hardware tem um fetiche. No leste europeu, muitas vezes é um clone do Sinclair ZX Spectrum, pois eram extremamente populares lá, assim como na Grã-Bretanha e na Espanha. Infelizmente, o ZX Spectrum deixou muito pouco legado. O IBM PC 5150 é um animal diferente. Muitos amam este computador por sua herança. Pois acabou se tornando um PC definitivo. O PC. Mas, embora a história deste computador seja muito conhecida, surpreendentemente, muitas pessoas não sabem o que estava sob o capô do primeiro PC da IBM.

Por exemplo, muitas pessoas com quem falei ficaram surpresas ao descobrir que a quantidade de RAM do 5150 não era de 640 KB. Naquela época, 640KB eram uma quantidade enorme de RAM e eram realmente suficientes para qualquer um. A primeira revisão da placa-mãe IBM 5150 pode acomodar não mais do que 64 KB de RAM. Sim, isso mesmo, tanto quanto o seu Commodore 64 teria. E um pouco mais do que uma versão de 48K do ZX Spectrum, a mais popular. Obviamente, havia placas de atualização de memória disponíveis no mercado, mas elas apareceram depois que a IBM começou a vender 5150, e é claro que a segunda revisão da placa-mãe foi capaz de lidar com até 256 KB, mas se você tivesse comprado uma versão básica do um IBM 5150 inicial, você teria acabado com um computador IBM de 16 KB. Você pode imaginar 16 KB de RAM em um PC IBM? Você não seria capaz de executar o DOS lá ...

E você não precisaria: a versão básica não foi fornecida com nenhum tipo de unidade de disquete. Na verdade, ele não foi fornecido com nenhuma unidade, um disco rígido nem estava presente na lista de opções do 5150, e a fonte de alimentação do primeiro IBM PC também não suportava um disco rígido. Então, como você executaria esse computador? Bem, assim como você fez com o seu Commodore 64 ou ZX Spectrum. Você o ligaria e teria inicializado no ROM Basic. E, assim como em um Commodore no ZX Spectrum novamente, você usaria cassetes para salvar e carregar programas básicos. Sim, o IBM PC 5150 veio equipado com um padrão de porta de cassete. Dito isto, preciso mencionar que, na verdade, o próprio PC tinha muito em comum com os PCs de 8 bits da época. Sim, o IBM PC 5150 tinha uma CPU Intel 8088 de 16 bits, mas o barramento de dados da CPU tinha apenas 8 bits de largura, para economizar nos custos dos componentes. Sim, o barramento de endereço estava cheio com 20 bits de largura e todos os dispositivos podiam usar o espaço de endereço completo (esse é o motivo pelo qual os primeiros MB de RAM são tão importantes para os dispositivos de barramento ISA: um slot ISA pode acomodar apenas 20 linhas de endereço, portanto, no máximo 1 MB), mas toda a troca de dados foi realizada através de um barramento de dados de 8 bits. Assim como no seu Commodore 64 ou ZX Spectrum. Ainda mais simples, porque, diferentemente da Sinclair Research ou da Acorn, que usavam ULAs personalizados em seus computadores, ou da Commodore, que possuía a MOS Technology e alguns dos chips usados ​​em suas máquinas foram fabricados exclusivamente para a Commodore e indisponíveis para outros fabricantes, a IBM decidiu usar o componentes shlef apenas para construir o 5150. Portanto, qualquer pessoa poderia criar facilmente seu próprio clone do 5150, com exceção do IBM BIOS que estava protegido por direitos autorais.

E, ao olhar para o adaptador de vídeo, a história fica mais engraçada. O IBM PC 5150 foi introduzido com um adaptador de vídeo monocromático (MDA). Não era capaz de nenhum tipo de gráfico. Por outro lado, a qualidade do texto exibido foi excelente. Esse adaptador, no entanto, exigia a conexão de um monitor apropriado e era ideal para usuários corporativos (desde que uma unidade de disquete opcional fosse instalada para executar aplicativos DOS). Após algum tempo, um Adaptador de gráficos coloridos (CGA) apareceu na lista de opções. Este adaptador pode exibir 4 cores de uma vez no modo gráfico e possui uma saída de vídeo composto para conectar ao seu aparelho de TV. Esse adaptador de vídeo era significativamente pior na exibição de texto, mas era adequado para os usuários domésticos: você não precisaria de um monitor dedicado e o limite de 4 cores poderia ser violado com um pouco de mágica ao usar uma saída composta. Portanto, em geral, uma placa CGA não era tão ruim quanto você se lembrava de jogar jogos CGA em uma placa de vídeo VGA emulando uma CGA. Um aparelho de TV era mais adequado.

Já tenho um IBM PC 5150 há algum tempo, mas não o toquei por uma simples razão: ele não foi ligado. No começo, quando recebi o PC, encontrei rapidamente um capacitor que estava em curto e o tirei. Ele estava sentado em um trilho de -12V e não era essencial para o meu uso, então eu nem me importei em substituí-lo. Mas depois disso eu descobri que o PC tinha alguns problemas importantes com sua RAM.

Aqui eu preciso explicar uma coisa primeiro. O problema é que não havia nenhuma configuração do BIOS no 5150. O programa BIOS estava lendo dois blocos de chaves localizados na placa-mãe, SW1 e SW2 para configurar o hardware. A configuração da RAM foi definida em 2 etapas. Primeiro, você precisaria configurar o SW1 para informar ao BIOS quantos dos 4 bancos de RAM na placa-mãe foram preenchidos. Em seguida, você configuraria o SW2 para indicar a quantidade total de RAM na placa-mãe e todas as placas de extensão instaladas disponíveis para o PC.


Você pode ver SW1 e SW2 como 2 tijolos cianos na imagem

Cada banco de memória na placa-mãe continha 9 chips de memória: 8 bits e 1 bit de paridade. A primeira revisão da placa-mãe suportou 16 KB por banco; as revisões posteriores suportaram 64 KB por banco. Aqui é onde os problemas começaram. Antes de tudo, há um erro no programa BIOS, que faz o PC pensar que, não importa a revisão da placa-mãe, há apenas 16 KB de RAM por banco se alguns dos bancos na placa-mãe ficarem sem população. Portanto, se você instalar 192 KB de RAM em uma placa-mãe de 256 KB, por exemplo, preenchendo 3 bancos e deixando o 4º banco vazio, o BIOS verá apenas 48 KB. Há também outro bug no BIOS que estava causando erros de memória fantasma em placas-mãe de revisão posterior, se alguns bancos na placa-mãe fossem deixados sem população. Esses dois erros me fazem pensar que a revisão posterior do IBM PC 5150s nunca foi enviada com menos de 256 KB de memória; caso contrário, um cliente encontraria erros de ativação e não seria capaz de usar toda a memória instalada no sistema, quando a RAM os preços eram bastante altos.

Ok, então eu tinha um 5150 com uma placa-mãe com revisão tardia e um cartão de memória externo equipado com 256 KB de memória. Mas, ao ligar, meu PC indicou erro 0800 201 e parou a mensagem POST com PARITY CHECK 1.


A pesquisa rápida no Google revelou que esse tipo de erro geralmente é causado por configurações incorretas do SW1 e SW2. Comecei experimentos. Antes de tudo, removi o cartão de memória de extensão e configurei o SW2 de acordo. Isso não teve efeito. Eu pensei: "Ok, isso deve ser causado pela memória interna". Então eu decidi remover toda a memória que poderia ser removida. Restou apenas o banco 0, pois foi soldado no quadro. E o erro foi embora! O computador inicializou no Basic e relatou ter visto 12 KB de memória.


Meu primeiro pensamento foi: "espere um segundo, eu deveria ter 64 KB, o ROM Basic não pode comer tanta memória!" Um leitor atento já entenderia que isso foi causado por um bug do BIOS descrito anteriormente. Mas eu não sabia disso na época.

Depois de passar bastante tempo pesquisando no google, encontrei este site incrível , que se tornou uma Bíblia para PC da IBM e me ajudaria muito mais a avançar nesta história. Foi lá que descobri que minha placa só conseguia ver 16 KB se apenas um banco de memória estivesse cheio e que o erro 0800 201 indicava uma falha no IC de bit de paridade do banco 0 , que era soldado na placa principal e que o erro era localizado nos 3 / 4s superiores do chip, por isso não era sensato para o sistema quando ele estava abordando apenas 16 KB dos 64 KB no banco 0. Para meu arrependimento, depois que desoldrei o IC e instalei um soquete com um novo IC, a placa mãe morreu. Não mostrou nenhum sinal de vida desde então. Não encontrei nenhum dano causado por minha solda, mas, como estava usando uma pistola de ar quente para dessoldar o chip defeituoso, presumi que alguns outros chips de memória poderiam ter se deteriorado e se houver um erro nos primeiros 16 KB de RAM, a placa-mãe parece morta em um IBM 5150. Ou a ROM pode ficar corrompida pelo calor. Para resumir, esta placa exigiu uma verificação completa e eu não tinha tempo para isso, então guardei esse PC por enquanto.

O tempo passou e, uma vez que me deparei com um livro intitulado ZX Spectrum ULA: Como projetar um microcomputador em um dos episódios do The Ben Heck Show . Construir um clone do ZX Spectrum já era meu sonho há algum tempo e o livro prometeu um design 100% compatível com base nos CIs lógicos da série 74HC prontos para uso. Eu estava interessado Comprei o livro e um PCB projetado pelo autor do livro. Sei que isso é trapaça, mas tenho uma desculpa: queria primeiro um clone do ZX Spectrum que funcionasse, para poder experimentar com ele, e a compra de um PCB fabricado na fábrica acelera o processo de maneira bastante significativa. E também era um preço muito acessível. Afinal, gostei muito do processo de montar esse clone do ZX Spectrum que, depois de terminar, comecei a procurar outra coisa para soldar.

E eu achei isso



Sim, esta é uma cópia extremamente precisa de uma placa-mãe original para revisão tardia IBM PC 5150, mas é uma PCB completamente nova, muito bem feita, de excelente qualidade. Eu encontrei muito poucas diferenças entre esta placa clone e a original, uma delas sendo um chip gerador de atraso (usado para gerar sinal de atualização de RAM, tanto quanto eu entendi):


Um grande pacote à esquerda é o IC original da geração de atraso, enquanto um pequeno DIP-8 à direita é moderno.

e o roteamento de capacitores de cerâmica: enquanto os tântalo usam a mesma pinagem de 3 orifícios da placa original, o pino do meio é aterrado para que não possam ser ajustados da maneira errada durante o processo de montagem, todos os capacitores de cerâmica da placa clone seguem a mesma pinagem de aterramento de 3 orifícios dos tântalo e no orifício médio dos capacitores de cerâmica da placa original não é usado, e o solo está em um dos orifícios externos, porque esses capacitores não são polarizados e a orientação não importa para eles. Isso torna a montagem de uma placa de clone um pouco mais difícil, porque as pernas dos capacitores de cerâmica estão muito próximas na placa, mas não é grande coisa. Além disso, as placas parecem idênticas para mim, e a parte mais interessante é que o kit inclui todos os chips e componentes passivos necessários para montar uma placa totalmente funcional. Incluindo uma EPROM com BIOS compatível com IBM PC. Se você decidir encontrar todos esses chips você mesmo, lembre-se de que alguns deles são bastante difíceis de obter hoje em dia, e uma EPROM também precisa ser programada, e a IBM não usou pinagem compatível com JEDEC para esta EPROM. Você pode criar um interpositor , é claro, mas com um interpositor o quadro não parece tão limpo. Nem todos os chips do kit eram novos e antigos, alguns traços de solda antiga eram visíveis em alguns deles, mas a condição geral de todos esses chips era excelente. O kit parecia um produto de qualidade excepcional. A principal desvantagem é o preço. Você pode comprar 2 ou 3 placas-mãe usadas no eBay por esse dinheiro. Mas isso não me impediu de comprar o kit, eu já tinha uma placa-mãe usada no meu PC e não me ajudou muito. Mais importante ainda, a alegria de montar um ZX Spectrum ainda estava fresca em minha memória, e para o Spectrum eu tive que adquirir todas as partes pessoalmente (não foi tão difícil ser honesto, os chips da série 74HC ainda estão disponíveis a preços muito acessíveis e eu já tinha muitos deles na minha prateleira, além de vários processadores Z80). Assim, algumas noites depois, a placa clone era indistinguível da placa original e eu a instalei com um conjunto IBM PC EPROM original para ter um BIOS e um Basic originais a bordo:



É uma pura alegria montar um quadro como esse e, embora eu pretenda restaurar o original em algum momento no futuro, este será o suficiente por enquanto. Ok, depois de montar a placa e instalá-la no gabinete, precisaremos de:

1. Um controlador de disquete:



O IBM PC 5150 original pode gravar apenas discos de densidade dupla. Um disco de 5 1/4 de polegada cabe dados de 360 ​​KB de um disco de 3 1/2 polegadas cabe 720 KB. Meu PC veio equipado com uma unidade de 5 1/4 de polegada e eu conectei a unidade a um computador mais moderno (486) para criar um disquete inicializável com o IBM PC DOS 3.30 nele.

2. Alguma memória adicional:


Veja o tamanho desta placa comparando com um teclado moderno.

Esta placa é conectada a um slot de barramento ISA de 8 bits. Naquela época, o ISA não era um barramento legado lento, era um barramento local para um processador 8088 e, mais do que isso, era desmultiplexado, fornecendo pinos diferentes para dados e endereço, diferentemente do próprio processador. O barramento rodava a 4,17 MHz, mesmo relógio que a própria CPU.
A placa de extensão de memória também possui um relógio em tempo real (sim, não havia RTC na placa-mãe), mas o relógio exige que um driver seja carregado na inicialização. Este driver serve para extrair a hora e a data do chip e definir a hora / data do DOS de acordo. Além disso, a placa está equipada com portas seriais e paralelas, o que é útil. Instalei no máximo 384KB de memória possível na placa para ter 640 KB de memória total no sistema. Sim, isso é um pouco exagerado para um 5150, mas com a memória, quanto mais, melhor.

3. Placa de vídeo:

Comecei a testar o sistema era uma boa placa de vídeo VGA, projetada para um barramento de 16 bits, mas era perfeitamente funcional em um barramento de 8 bits. O VGA é um bom cartão, mas não é o período correto. Um PC IBM pede uma placa CGA ou Hercules (sem MDA, também quero gráficos). Como este, por exemplo:



Todas as capturas de tela até o momento foram feitas usando uma placa VGA, e aqui está a CGA:



OK, tudo está configurado e funciona, o disquete inicializável do sistema está à mão, um monitor com uma entrada composta está pronto, podemos iniciar os testes? Nem tanto. Também precisamos de um teclado. O IBM PC 5150 e o PC XT 5160 usavam o mesmo conector de teclado DIN5, como o IBM PC AT mais tarde. Porém, embora o teclado IBM PC AT seja totalmente compatível com os teclados IBM PS / 2 amplamente disponíveis (com um adaptador passivo simples), um teclado IBM PC XT é diferente. Você não pode conectar um teclado AT a um PC XT - ele não funcionará. Obviamente, você pode comprar um teclado antigo compatível com XT no eBay, mas os vendedores pedem preços absurdos. E embora eu realmente goste do teclado Modelo F, não estou pronto para pagar o preço.

Felizmente, a solução é simples :


PIC MC pequeno, 3 resistores, um diodo e um capacitor. Isso é tudo o que você precisa para tornar seu teclado PS / 2 compatível com XT. E o engraçado é que o MC aqui pode rodar a 20 MHz, fornecendo mais potência computacional do que o 5150 ao qual serve.

Meu primeiro encontro compatível com PC da IBM foi um clone de PC no escritório da minha mãe. Foi baseado em um processador 286. Eu usei muito para tocar Golden Axe, Death Track, Prince of Persia. Eu também tive alguma experiência com uma máquina baseada em 8088 no passado. Era um clone soviético chamado Poisk . Jogamos muitos jogos nele, e era uma versão extremamente lenta de um clone do IBM PC, mas na minha memória ele rodava muito bem.

Mas, como sempre, a memória humana é uma fonte não confiável. O IBM 5150 original era uma máquina muito lenta para jogos. Este é o tempo que levou para carregar Lemmings de um disquete (meu conversor de composto para VGA falhou em produzir cores, portanto a imagem é em preto e branco):


Foi assim que o computador foi realmente usado: você o inicializaria a partir de um disquete do sistema, trocaria por um disquete funcional (ou compraria uma segunda unidade de disquete para usar 2 disquetes de uma só vez), carregaria um programa. Os discos rígidos chegaram ao público muito mais tarde e não eram adequados para a fonte de alimentação fraca do 5150.

E é muito tentador tentar integrar um 5150 em uma rede doméstica TCP / IP. Certamente, não posso fazer isso com a configuração de hardware atual: um disquete de 360 ​​KB não cabe em uma pilha TCP / IP com um driver de placa de rede. Então terei que me afastar da correção do período mais uma vez:

4. Este é um adaptador de rede:

imagem

Ele foi projetado para usar um barramento de 16 bits, mas funciona perfeitamente em um barramento de 8 bits. Possui um soquete RJ-45 para cabo UTP e tem todas as chances de ser o dispositivo mais rápido em todo o sistema.

+++++++++++++

5. O quinto e último slot de expansão será ocupado por um controlador de disco rígido (Sim, o IBM 5150 possui apenas 5 slots de expansão. O IBM 5160 possui 8, mas também há problemas ):



Este é um controlador XT-IDE de código aberto. Eu gostaria de ter um drive MFM para caber nessa compilação, mas eles são bastante difíceis de encontrar. E, infelizmente, esse controlador teve alguns erros estranhos ao executar na CPU AMD 8088 original, o computador estava constantemente travando exibindo erros de paridade de memória. Demorei algumas semanas para descobrir, mas a atualização para uma CPU NEC V20 resolveu esses problemas completamente:



Eu instalei um disco rígido de 2,5 polegadas apenas porque ele se encaixava perfeitamente:



Era bastante prospectivo para os engenheiros da IBM reservar a possibilidade de instalar um disco rígido de 2,5 polegadas em um 5150!

E, em geral, o PC parece um baú da velha guarda!



Ok, inicializando a partir do disco rígido:


Criei um pequeno arquivo em lotes que inicia a rede. Eu poderia ter colocado todos os comandos no meu autoexec.bat, mas o driver de pacote da placa LAN ocupa bastante RAM e nem sempre é necessário, então optei por um lote separado:


Vamos verificar se o acesso à Internet funciona:



e se eu puder acessar meu servidor ftp, afinal, esse foi o objetivo final de juntar tudo isso em primeiro lugar:



Bom! E o que tem dentro?



E, finalmente, apenas mais um exemplo de quão lento o IBM 5150 era:


Entre, note que definitivamente existem mais de 4 cores!

PS Afinal, eu consegui restaurar a placa original. Obviamente, eu tinha tanta certeza de que minhas habilidades de soldagem são loucas que nem imaginava que danifiquei a placa enquanto desoldering o bit de paridade IC. Suspeitei que outra coisa fosse afetada pela idade e pelo calor. Demorei a dessoldar todo o banco 0 e checar todos os chips de memória para finalmente perceber que danifiquei a camada de metalização que ligava os traços do lado superior da placa-mãe ao lado inferior. Sim, verifiquei a continuidade de todos os rastreamentos assim que o computador se recusou a ligar pela primeira vez, mas tive azar: verifiquei o sinal de gravação na memória proveniente do IC danificado desoldado para o Banco 1, mas não ao Banco 0. E esses dois traços foram conectados pela camada de metalização que danifiquei. Portanto, o banco 0 não recebeu sinal de gravação de memória da placa e não estava funcionando. Afinal, eu tive que soldar um fio de jumper, e a placa voltou à vida.

Source: https://habr.com/ru/post/pt439090/


All Articles