Chibi-nah::blog

Des geekeries, de la MAO, de tout et de rien…

Archives

Reset sur Tandy 1000 HX

Comment ajouter un bouton reset sur ce compatible PC-XT datant de 1987.

Un article pour le #septandy 2020.

TL;DR

Trop long, flemme de lire.

Souder un bouton poussoir sur le condensateur C132. L'appui sur ce bouton doit court-circuiter le condensateur pour provoquer le RESET de la machine.

La machine

Tandy 1000 HX

Ce compatible IBM PC, sorti en 1987, est doté d'un processeur Intel 8088, cadencé à 7,16 MHz (mode turbo, la fréquence de 4,77 MHz étant accessible via une combinaisons de touches au démarrage de la machine ou pouvant être définie dans les paramètres du BIOS). Le Bios est celui de Phoenix Technologies. 256 ko de RAM sont présents (extensible à 640 ko de RAM au total via la carte d'extension Tandy Memory Expansion Board 25.1062). Un lecteur de disquettes 3"½ simple densité (720 ko) est présent, avec un emplacement pour un second lecteur de disquettes dans le même format, et un connecteur d'extension pour un troisième lecteur, cette fois, externe, pouvant être un lecteur 3"½ ou 5"¼.

Particularité de cette machine : MS-DOS 2.11 est présent sur une ROM dans la machine, et il est alors possible de démarrer sans disquette de démarrage.

Autres particularités : pas de possibilité d'ajouter un disque dur (pas d'emplacement pour), et les connecteurs ISA ne sont pas dans le format standard (on peut aujourd'hui utiliser des adaptateurs).

Carte d'extension mémoire Tandy originale.

Les deux ports d'extension sont visibles en haut sur la photo.

Le RESET

Aussi bizarre que cela puisse paraître, il n'y a pas de bouton RESET présent sur les Tandy 1000 EX et HX. Ce bouton est bel et bien présent sur d'autres modèles de Tandy 1000.

Le RESET sur les processeurs 808x

À savoir : le reset ne s'effectue pas au niveau du processeur, mais au niveau du générateur d'horloge, pour les machines à base de processeur 8088 et 8086.

Schéma d'illustration :

Source : https://www.csee.umbc.edu/courses/undergraduate/CMPE310/Spring05/cpatel2/slides/html_versions/chap9_lect03_8086_chipset.html

Ici, la broche /RES est reliée à un bouton RESET (relié à la masse, normalement ouvert), et au 5V (via une résistance de 10kΩ et un condensateur de 10 μF). À l'allumage, la broche /RES est à l'état bas (0V). Le condensateur de 10 μF se charge via la résistance de 10 kΩ (ce qui prend environ 100 ms). Une fois chargé, la broche /RES est alors à l'état haut. Cette temporisation permet d'être sûr que la tension délivrée par l'alimentation est stable. Tant que cette broche est à l'état bas, c'est comme si le bouton RESET restait enfonçé.

L'état RESET sur le processeur (et autres chipsets/puces) est alors géré via la broche RESET du générateur d'horloge.

Bon, ça, c'est la théorie.

Le RESET sur le Tandy 1000 HX

En pratique, ça donne quoi sur le Tandy 1000 HX ?

Tout d'abord, après une observation attentive, de la carte-mère, il n'y a pas de chipset Intel autre que le 8088.

Les seuls chipsets potentiels générant les signaux d'horloge et dont le quartz 16.0-28.6 MHz est à proximité sont ceux de NEC et de Texas Instruments.

La lecture du manuel technique est alors obligatoire. Heureusement, cette doc est très facile à trouver.

Après une lecture longue et fastidieuse de "Tandy 1000 HX Technical Reference", le schéma à la page 69, Timing and CPU est à analyser.

Notamment cette partie du schéma, en haut à gauche.

Se pourrait-il que ?

La broche 21 de U20 – Light Blue – est appelée RSTIN, et sur cette broche, on retrouve la même disposition que celle plus haut, avec ici, une résistance de 47 kΩ et deux condensateurs de 10 µF et 0,1 µF. Soit un temps de charge des condensateurs de l'ordre de ~470 ms. Le bouton RESET, ici, n'est ni câblé, n'est ni présent sur le schéma.

Concrètement, ce bouton serait à câbler au niveau du point de liaison entre la résistance de 47 kΩ (R29) et le condensateur de 10 µF (C132) ; et la masse. Ou plus simplement : shunter (court-circuiter) le condensateur C132.

Montage de test

Après vérification, re-vérification, et relecture de la doc (notamment des diagrammes), il est temps de câbler.

À noter : sur ce diagramme, il y a bien une section au milieu à droite pour le RESET (RSTIN).

Ayant des bouton poussoir (de type NO, Normalement Ouvert) sous la main, et des câbles DuPont, j'ai soudé deux fils sur un bouton (et isolé avec de la gaine thermorétractable), et les ai relié à deux mini grip-fil, et les ai branchés sur le condensateur C132 (à noter, ça fonctionne aussi avec C131 qui est monté en parallèle).

Le montage temporaire étant en place, faisons les tests.

Smoke test

N'arrivant plus à remettre la main sur le moniteur Tandy (RGBI), j'ai utilisé la sortie vidéo composite de la machine via un upscaler CVBS basique pour pouvoir brancher un écran moderne (en HDMI) dessus. C'est pas top, mais ça fonctionne.

Donc branchement sur la prise de courant, puis allumage.

Point positif : rien n'a explosé et pas de libération de fumée magique.

Après quelques secondes d'attente, un appui sur le bouton, et… ça fonctionne ! Le RESET est bel et bien opérationnel.

Démo en vidéo

Tout fonctionne. Retirons le montage temporaire.

Choix de l'emplacement, perçage et soudures

Concrètement, rien de compliqué. Prendre deux fils, torsadés ou non (j'ai utilisé une chute de câble réseau), couper à la bonne longueur (ça ne sert à rien de faire passer des fils de 3 mètres de long), ne pas oublier de passer de la gaine thermo avant de souder le bouton.

Le plus compliqué fut en fait le perçade du boîtier, en partie à cause du blindage (que je voulais laisser en place), et aussi et surtout parce qu'il y a très peu d'endroits possibles où placer le bouton poussoir. Accessoirement, le boîtier en plastique étant courbé et non plat, ça n'arrange pas les choses.

L'emplacement qui me semblait le plus pratique (pour moi, en tout cas), c'est entre la prise jack 3,5 mm et le potentiomètre servant à régler le volume audio.

Un coup de Dremel fut nécessaire pour "aplatir" le bord intérieur, la courbure empêchant de visser correctement le bouton. Le perçage en lui-même à été fait à la main, avec un alésoir conique (utilisé notamment en modélisme).

Au niveau du chemin des fils, il faudra faire attention à la position du blindage, du support pour les lecteurs de disquette et des différents connecteurs pour le clavier. Ne pas hésiter à faire des tests avant de couper et souder les fils.

Au niveau soudures, concrètement, rien de compliqué. Si c'est fait correctement, il n'y a pas besoin de mettre de la colle chaude, ni même de l'epoxy.

Si jamais vous avez besoin de mettre de la colle chaude ou de l'epoxy pour faire tenir une soudure ou la "renforcer", c'est qu'il y a un problème. Bref, ne faites jamais ça.

Pour le blindage, il m'a fallu couper une partie à la cisaille, pour que je puisse le remettre en place.

Remontage de la machine

Normalement, rien ne doit gêner, à aucun moment.

Le fait d'avoir mis de la gaine thermo au niveau du bouton permet d'empêcher tout court-circuit intempestif avec le blindage (et provoquant voire bloquant le RESET).

Plus qu'à remettre le capot et la carte d'extension mémoire. Rien de compliqué.

Conclusion

Finalement, le plus long fut surtout la lecture de la doc et la recherche de LA solution, celle présentée ici.

Ce qui est surprenant en fait, c'est que tout a été prévu pour ajouter un bouton RESET sur cette machine, mais celui-ci n'a jamais été câblé. Pourquoi ? On ne le saura probablement pas.

À noter : la raison pour laquelle je voulais ajouter un bouton RESET, c'était pour comprendre pourquoi la machine plantait aléatoirement, ou ne détectait pas toute la ram, voire foirait le test mémoire à l'allumage/redémarrage de la machine.

En fait, c'était tout simplement le cavalier sur la carte d'extension mémoire qui avait sauté. Celui qui indique quels sont les emplacements mémoire remplis (une partie ou la totalité).

Une fois un cavalier (le truc bleu sur la photo) placé sur la carte, plus aucun problème.