Cliquez ici pour lire la version russe.Chaque vieux amateur de matériel a un fétiche. En Europe de l'Est, c'est souvent un clone de Sinclair ZX Spectrum, car ils étaient extrêmement populaires là-bas, ainsi qu'en Grande-Bretagne et en Espagne. Malheureusement, ZX Spectrum a laissé très peu d'héritage. IBM PC 5150 est une bête différente. Beaucoup aiment cet ordinateur pour son héritage. Car il est finalement devenu un PC ultime. Le PC. Mais bien que l'histoire de cet ordinateur soit très bien connue, étonnamment, peu de gens savent ce qui était sous le capot du tout premier PC IBM.
Par exemple, beaucoup de gens à qui j'ai parlé ont été surpris de découvrir que la quantité de RAM du 5150 n'était pas de 640 Ko. À l'époque, 640 Ko constituaient une énorme quantité de RAM et étaient en effet suffisants pour n'importe qui. La première révision de la carte mère IBM 5150 ne pouvait pas accueillir plus de 64 Ko de RAM. Oui, c'est vrai, autant que votre Commodore 64 aurait eu. Et un peu plus qu'une version 48K de ZX Spectrum, la plus populaire. Bien sûr, il y avait des cartes de mise à niveau de mémoire disponibles sur le marché, mais elles sont apparues après que IBM a commencé à vendre 5150, et bien sûr la deuxième révision de la carte mère était capable de gérer jusqu'à 256 Ko, mais si vous aviez acheté une version de base de un premier IBM 5150, vous vous seriez retrouvé avec un ordinateur IBM de 16 Ko. Pouvez-vous imaginer 16 Ko de RAM dans un PC IBM? Vous ne pourriez pas y exécuter DOS ...
Et vous n'en auriez pas besoin: la version de base n'était livrée avec aucun type de lecteur de disquette. En fait, il n'était livré avec aucun disque, aucun disque dur n'était même présent dans la liste des options pour le 5150, et l'alimentation du premier PC IBM ne pouvait pas non plus gérer un disque dur. Alors, comment auriez-vous exécuté cet ordinateur? Eh bien, tout comme vous l'avez fait avec votre Commodore 64 ou ZX Spectrum. Vous l'auriez allumé et il aurait démarré dans ROM Basic. Et, tout comme sur un Commodore sur ZX Spectrum, vous auriez utilisé des cassettes pour enregistrer et charger des programmes de base. Oui, IBM PC 5150 est équipé d'un port de cassette standard. Cela dit, je dois mentionner qu'en fait, le PC lui-même avait beaucoup de points communs avec les PC 8 bits de l'époque. Oui, IBM PC 5150 avait un processeur Intel 8088 16 bits à l'intérieur, mais le bus de données du processeur n'avait qu'une largeur de 8 bits, pour économiser sur les coûts des composants. Oui, le bus d'adresse était de 20 bits de largeur totale et tous les appareils pouvaient utiliser l'espace d'adressage complet (c'est la raison pour laquelle le premier Mo de RAM est si important pour les appareils de bus ISA: un emplacement ISA ne peut accueillir que 20 lignes d'adresse, adressant ainsi un maximum de 1 Mo), mais tous les échanges de données ont été effectués via un bus de données 8 bits. Tout comme dans votre Commodore 64 ou ZX Spectrum. Encore plus simple, car contrairement à Sinclair Research ou Acorn qui utilisaient des ULA personnalisés dans leurs ordinateurs, ou Commodore, qui possédait la technologie MOS et certaines des puces utilisées dans leurs machines étaient fabriquées exclusivement pour Commodore et n'étaient pas disponibles pour d'autres fabricants, IBM a décidé d'utiliser le composants shlef uniquement pour construire le 5150. Ainsi, n'importe qui pouvait facilement construire son propre clone de 5150, à l'exception d'IBM BIOS qui était protégé par le droit d'auteur.
Et en regardant l'adaptateur d'affichage, l'histoire ne fait que s'amuser. IBM PC 5150 a été introduit avec une carte graphique monochrome (MDA). Il n'était pas du tout capable de tout type de graphisme. En revanche, la qualité du texte affiché était superbe. Cet adaptateur nécessitait cependant un moniteur approprié pour être branché, et convenait parfaitement aux utilisateurs professionnels (à condition qu'un lecteur de disquette en option ait été installé pour exécuter les applications DOS). Après un certain temps, un adaptateur graphique couleur (CGA) est apparu dans la liste des options. Cet adaptateur pouvait afficher 4 couleurs à la fois en mode graphique et avait une sortie vidéo composite pour se connecter à votre téléviseur. Cet adaptateur vidéo était bien pire pour afficher du texte, mais il convenait parfaitement aux utilisateurs à domicile: vous n'auriez pas besoin d'un moniteur dédié et la limite de 4 couleurs pourrait être dépassée avec
un peu de magie lors de l'utilisation d'une sortie composite. Donc, dans l'ensemble, une carte CGA n'était pas aussi mauvaise que vous vous en souvenez potentiellement en jouant à des jeux CGA sur une carte vidéo VGA émulant un CGA. Un téléviseur convenait mieux.
J'ai un IBM PC 5150 depuis un certain temps déjà mais je ne l'ai pas touché pour une simple raison: il ne s'est pas allumé. Au début, quand je viens de recevoir le PC, j'ai rapidement trouvé un condensateur qui a été court-circuité et je l'ai retiré. Il était assis sur un rail de -12V et n'était pas essentiel pour mon utilisation, donc je n'ai même pas pris la peine de le remplacer. Mais après cela, j'ai découvert que le PC avait des problèmes majeurs avec sa RAM.
Ici, je dois d'abord expliquer quelque chose. Le truc, c'est qu'il n'y avait pas de configuration du BIOS dans le 5150. Le programme du BIOS lisait 2 blocs de commutation situés sur la carte mère, SW1 et SW2 pour configurer le matériel. La configuration de la RAM a été définie en 2 étapes. Tout d'abord, vous devez définir SW1 pour indiquer au BIOS combien de 4 banques de RAM sur la carte mère sont remplies. Ensuite, vous devez configurer SW2 pour indiquer la quantité totale de RAM, sur la carte mère et toutes les cartes d'extension installées qui étaient disponibles pour le PC.
Vous pouvez voir SW1 et SW2 comme 2 briques cyan sur l'imageChaque banque de mémoire sur la carte mère contenait 9 puces de mémoire: 8 bits et 1 bit de parité. La première révision de la carte mère a pris en charge 16 Ko par banque, les révisions ultérieures ont pris en charge 64 Ko par banque. Voici où les problèmes ont commencé. Tout d'abord, il y a un bug dans le programme BIOS, qui fait penser au PC que, quelle que soit la révision de la carte mère, il n'y a que 16 Ko de RAM par banque si certaines des banques de la carte mère ne sont pas peuplées. Donc, si vous installez par exemple 192 Ko de RAM sur une carte mère de 256 Ko en remplissant 3 banques et en laissant la 4e banque vide, le BIOS ne verra que 48 Ko. Il existe également un autre bogue dans le BIOS qui provoquait des erreurs de mémoire fantôme sur les cartes mères de révision ultérieures si certaines banques de la carte mère n'étaient pas peuplées. Ces deux bugs me font penser que les versions ultérieures des IBM PC 5150 n'ont jamais été livrées avec moins de 256 Ko de mémoire, sinon un client rencontrerait des erreurs de mise sous tension et ne pourrait pas utiliser toute la mémoire installée dans le système, lorsque la RAM les prix étaient assez élevés.
D'accord, j'ai donc eu un 5150 avec une carte mère de révision tardive et une carte mémoire externe équipée de 256 Ko de mémoire. Mais à la mise sous tension, mon PC a indiqué une erreur 0800 201 et a arrêté le message POST with PARITY CHECK 1.
Une recherche rapide sur Google a révélé que ce type d'erreurs est souvent causé par des paramètres SW1 et SW2 incorrects. J'ai commencé des expériences. Tout d'abord, j'ai retiré la carte mémoire d'extension et réglé SW2 en conséquence. Cela n'a eu aucun effet. Je pensais, "D'accord, cela doit être causé par la mémoire embarquée." J'ai donc décidé de supprimer toute la mémoire qui pouvait être supprimée. Il ne restait que la banque 0, car elle était soudée sur la carte. Et l'erreur a disparu! L'ordinateur a démarré sur Basic et a signalé avoir vu 12 Ko de mémoire.
Ma première pensée a été: "attendez une seconde, je suis censé avoir 64 Ko, ROM Basic ne peut pas manger autant de mémoire!" Un lecteur réfléchi comprendrait maintenant que cela était dû à un bogue du BIOS décrit précédemment. Mais je ne le savais pas à l'époque.
Après avoir passé pas mal de temps à googler, j'ai trouvé
ce site Web incroyable , qui est devenu une Bible PC IBM pour moi et qui m'aiderait beaucoup plus dans cette histoire. C'est là que j'ai découvert que ma carte ne pouvait voir que 16 Ko si une seule banque de mémoire était remplie et que l'erreur 0800201 indiquait
une défaillance du bit de parité de la banque 0 IC, qui avait été soudée sur la carte mère et que l'erreur était situé dans les 3 / 4s supérieurs de la puce, il n'était donc pas visible pour le système lorsqu'il adressait seulement 16 Ko sur 64 Ko dans la banque 0. À mon grand regret, après avoir dessoudé le circuit intégré et installé une prise avec une nouvelle IC, la carte mère est morte. Depuis, il n'a montré aucun signe de vie. Je n'ai trouvé aucun dommage causé par ma soudure, mais, comme j'utilisais un pistolet à air chaud pour dessouder la puce défectueuse, j'ai supposé que d'autres puces mémoire pouvaient avoir mal tourné, et
s'il y a une erreur dans les 16 premiers Ko de RAM, la carte mère semble morte dans un IBM 5150. Ou la ROM pourrait être corrompue par la chaleur. Pour faire court, cette carte nécessitait une vérification approfondie et je n'avais pas le temps pour cela, alors j'ai rangé ce PC pour le moment.
Le temps a passé et une fois que je suis tombé sur un livre intitulé
ZX Spectrum ULA: Comment concevoir un micro-ordinateur dans l'un des épisodes de
The Ben Heck Show . Construire un clone ZX Spectrum était mon rêve depuis un certain temps déjà et le livre promettait une conception 100% compatible basée sur des circuits intégrés logiques de série 74HC. J'étais intéressé. J'ai acheté à la fois le livre et un PCB conçu par l'auteur du livre. Je sais que c'est de la triche, mais j'ai une excuse: je voulais d'abord un clone ZX Spectrum fonctionnel afin de pouvoir l'expérimenter, et l'achat d'un PCB fabriqué en usine accélère considérablement le processus. Et c'était aussi un prix très abordable. Après tout, j'ai tellement aimé assembler ce clone ZX Spectrum qu'après l'avoir terminé, j'ai commencé à chercher autre chose à souder.
Et j'ai trouvé
ça
Oui, il s'agit d'une copie extrêmement précise d'une carte mère IBM PC 5150 de révision tardive d'origine, mais il s'agit d'un PCB entièrement nouveau, très bien fait, d'excellente qualité. J'ai trouvé très peu de différences entre cette carte clone et la carte d'origine, l'une d'entre elles étant une puce de générateur de retard (utilisée pour générer un signal de rafraîchissement de la RAM, si je comprends bien):
le gros boîtier à gauche est le circuit intégré de génération de retard d'origine, tandis qu'un petit DIP-8 à droite est moderne.et le routage des condensateurs en céramique: alors que les tantales utilisent le même brochage à 3 trous que sur la carte d'origine, la broche du milieu étant mise à la terre de sorte qu'ils ne peuvent pas être installés de la mauvaise façon pendant le processus d'assemblage, tous les condensateurs en céramique sur la carte de clone suivent le même brochage de terre à 3 trous que les tantales, et sur le trou central des condensateurs en céramique de la carte d'origine n'est pas utilisé, et le sol est sur l'un des trous extérieurs, car ces condensateurs ne sont pas polarisés et l'orientation n'a pas d'importance pour eux. Cela rend l'assemblage d'une carte clone un peu plus difficile, car les jambes des condensateurs en céramique sont trop rapprochées sur la carte, mais ce n'est pas un gros problème. En dehors de cela, les cartes me semblent identiques, et la partie la plus intéressante est que le kit comprend toutes les puces et les composants passifs nécessaires pour assembler une carte entièrement fonctionnelle. Y compris une EPROM avec BIOS compatible IBM PC. Si vous décidez de trouver toutes ces puces vous-même, veuillez garder à l'esprit que certaines d'entre elles sont assez difficiles à trouver de nos jours, et une EPROM doit également être programmée, et IBM n'a pas utilisé de brochage conmatible JEDEC pour cette EPROM. Vous pouvez bien sûr créer
un interposeur , mais avec un interposeur, la carte n'est pas aussi nette. Toutes les puces du kit n'étaient pas de nouvelles pièces d'origine, certaines traces d'anciennes soudures étaient visibles sur certaines d'entre elles, mais l'état général de toutes ces puces était excellent. Le kit avait la sensation d'un produit d'une qualité exceptionnelle. Le principal inconvénient est le prix. Vous pouvez acheter 2 ou 3 cartes mères d'occasion sur eBay pour cet argent. Mais cela ne m'a pas empêché d'acheter le kit, j'avais déjà une carte mère usagée dans mon PC et cela ne m'a pas beaucoup aidé. Plus important encore, la joie de assembler un ZX Spectrum était encore fraîche dans ma mémoire, et pour le Spectrum, j'ai dû me procurer toutes les pièces moi-même (ce n'était pas si difficile d'être honnête, les puces de la série 74HC sont toujours disponibles à un prix très abordable et j'en avais déjà beaucoup dans mon étagère, ainsi qu'un tas de processeurs Z80). Donc, quelques nuits plus tard, la carte clone était indiscernable de celle d'origine, et je l'ai équipée d'un ensemble d'IBM PC EPROM d'origine pour avoir un BIOS et une base d'origine à bord:

C'est une pure joie de assembler une planche comme celle-ci, et même si je prévois de restaurer l'original à un moment donné dans le futur, celui-ci fera l'affaire pour l'instant. Ok, donc après avoir complété la carte et l'avoir installée dans le boîtier, nous aurons besoin de:
1. Un contrôleur de disquette:

L'IBM PC 5150 d'origine ne peut écrire que des disques double densité. Un disque de 5 1/4 pouces convient à 360 Ko de données, un disque de 3 1/2 pouces à 720 Ko. Mon PC est équipé d'un lecteur de 5 1/4 pouces et j'ai connecté le lecteur à un ordinateur plus moderne (486) pour créer une disquette de démarrage avec IBM PC DOS 3.30 dessus.
2. Mémoire supplémentaire:
Regardez la taille de cette carte par rapport à un clavier moderne.Cette carte se branche dans un emplacement de bus ISA 8 bits. À l'époque, ISA n'était pas un bus hérité lent, c'était un bus local pour un processeur 8088, et plus encore, il était démultiplexé, fournissant différentes broches pour les données et l'adresse, contrairement au processeur lui-même. Le bus fonctionnait à 4,17 MHz, même horloge que le CPU lui-même.
La carte d'extension mémoire abrite également une horloge en temps réel (oui, il n'y avait pas de RTC sur la carte mère), mais l'horloge nécessite un pilote à charger au démarrage. Ce pilote sert à extraire l'heure et la date de la puce et à régler l'heure / la date DOS en conséquence. En dehors de cela, la carte est équipée d'un port série et d'un port parallèle, ce qui est pratique. J'ai installé un maximum de 384 Ko de mémoire sur la carte pour avoir 640 Ko de mémoire totale dans le système. Oui, c'est un peu ovekill pour un 5150, mais avec la mémoire, plus c'est mieux.
3. Carte vidéo:
J'ai commencé à tester que le système était une bonne carte vidéo VGA conçue pour un bus 16 bits, mais fonctionnait parfaitement sur un bus 8 bits. VGA est une bonne carte, mais ce n'est pas correct. Un PC IBM demande une carte CGA ou Hercules (pas de MDA, je veux aussi des graphiques). Comme celui-ci, par exemple:

Toutes les captures d'écran jusqu'à présent ont été réalisées à l'aide d'une carte VGA, et voici le CGA:

OK, tout est configuré et fonctionne, une disquette de démarrage système est à portée de main, un moniteur avec une entrée composite est prêt, nous pouvons commencer les tests? Pas tout à fait. Nous avons aussi besoin d'un clavier. IBM PC 5150 et PC XT 5160 utilisaient le même connecteur de clavier DIN5, comme le fit plus tard IBM PC AT. Mais bien que le clavier IBM PC AT soit entièrement compatible avec les claviers IBM PS / 2 qui sont largement disponibles (avec un simple adaptateur passif), un clavier IBM PC XT est différent. Vous ne pouvez pas brancher un clavier AT à un PC XT - cela ne fonctionnera pas. Bien sûr, vous pouvez acheter un ancien clavier compatible XT sur eBay, mais les vendeurs demandent des prix fous pour ceux-ci. Et bien que j'aime beaucoup le clavier du modèle F, je ne suis pas prêt à en payer le prix.
Heureusement,
la solution est simple :
Petit PIC MC, 3 résistances, une diode et un condensateur. C'est tout ce qu'il faut pour vous rendre compatible avec le clavier PS / 2 XT. Et le fait drôle est que le MC ici peut fonctionner à 20 MHz, fournissant plus de puissance de calcul que le 5150 qu'il sert.Ma première rencontre compatible avec IBM PC a été un clone PC dans le bureau de ma mère. Il était basé sur un processeur 286. Je l'ai beaucoup utilisé pour jouer à Golden Axe, Death Track, Prince of Persia. J'ai également eu une certaine expérience avec une machine basée sur 8088 dans le passé. C'était un clone soviétique appelé
Poisk . Nous y avons joué beaucoup de jeux, et c'était une version extrêmement lente d'un clone IBM PC, mais dans ma mémoire, il fonctionnait très bien.
Mais comme toujours, la mémoire humaine est une source peu fiable. L'IBM 5150 d'origine était une machine très lente pour les jeux. Voici le temps qu'il a fallu pour charger Lemmings à partir d'une disquette (mon convertisseur composite vers VGA n'a pas produit de couleur, donc l'image est en noir et blanc):
Voici comment l'ordinateur a été réellement utilisé: vous le démarriez à partir d'une disquette système, l'échangiez contre une disquette fonctionnelle (ou achetiez un deuxième lecteur de disquette pour utiliser 2 disquettes à la fois), chargiez un programme. Les disques durs ont été rendus publics beaucoup plus tard et n'étaient pas adaptés au faible bloc d'alimentation du 5150.
Et il est très tentant d'essayer d'intégrer un 5150 dans un réseau domestique TCP / IP. Assurément, je ne peux pas le faire avec la configuration matérielle actuelle: une disquette de 360 Ko ne peut pas contenir une pile TCP / IP avec un pilote de carte réseau. Je vais donc devoir encore une fois m'éloigner de l'exactitude des règles:
4. Il s'agit d'une carte réseau:

Il a été conçu pour utiliser un bus 16 bits, mais il fonctionne parfaitement sur un bus 8 bits. Il dispose d'une prise RJ-45 pour câble UTP et a toutes les chances d'être le périphérique le plus rapide de tout le système.
+++++++++++++
5. Le cinquième et dernier emplacement d'extension sera occupé par un contrôleur de disque dur (Oui, IBM 5150 n'avait que 5 emplacements d'extension. IBM 5160 en avait 8, mais
il y avait aussi des problèmes ):

Il s'agit d'un contrôleur
XT-IDE open source. J'aimerais avoir un lecteur MFM pour s'adapter à cette version, mais ils sont assez difficiles à trouver. Et malheureusement, ce contrôleur avait des bugs étranges lors de l'exécution sur le processeur AMD 8088 d'origine, l'ordinateur se bloquait constamment en affichant des erreurs de parité mémoire. Il m'a fallu quelques semaines pour comprendre, mais la mise à niveau vers un processeur NEC V20 a complètement résolu ces problèmes:

J'ai installé un disque dur de 2,5 pouces juste parce qu'il s'intègre bien:

Il était assez avant-gardiste pour les ingénieurs IBM de se réserver la possibilité d'installer un disque dur de 2,5 pouces sur un 5150!
Et en général, le PC ressemble à un coffre au trésor à l'ancienne!

Ok, démarrage à partir du disque dur:
J'ai créé un petit fichier batch qui démarre le réseau. J'aurais pu mettre toutes les commandes dans mon autoexec.bat, mais le pilote de paquet de carte LAN prend un peu de RAM et n'est pas toujours nécessaire, j'ai donc opté pour un lot distinct:
Vérifions si l'accès Internet fonctionne:

et si je peux accéder à mon serveur ftp, après tout, c'était le but ultime de mettre tout cela ensemble en premier lieu:

Bon! Et qu'y a-t-il à l'intérieur?

Et enfin, un autre exemple de la lenteur d'un IBM 5150:
Au fait, notez qu'il y a définitivement plus de 4 couleurs!
PS Après tout, j'ai réussi à restaurer la carte d'origine. Bien sûr, j'étais si certain que mes compétences en soudure sont folles que je ne pouvais même pas imaginer que j'avais endommagé la carte en dessouder le bit de parité IC. Je soupçonnais que quelque chose d'autre était endommagé par l'âge et la chaleur. Il m'a fallu dessouder toute la banque 0 et vérifier chaque puce de mémoire pour finalement réaliser que j'avais endommagé la couche de métallisation qui connectait les traces du côté supérieur de la carte mère au côté inférieur. Oui, j'ai vérifié la continuité de toutes les traces dès que l'ordinateur a refusé de s'allumer pour la première fois, mais je n'ai pas eu de chance: j'ai vérifié le signal d'écriture mémoire provenant du circuit intégré endommagé que j'ai dessoudé à la banque 1, mais pas à la banque 0. Et ces deux traces étaient reliées par la couche de métallisation que j'ai endommagée. La banque 0 n'a donc pas reçu de signal d'écriture mémoire de la carte et ne fonctionnait pas. Après tout, j'ai dû souder un fil volant et la carte est revenue à la vie.