Il faut sauver le soldat Mega

Cela fait plusieurs mois que je devais le faire, et c’est la semaine dernière que j’ai trouvé un peu de temps pour réaliser cette mission extrême : sauver la vie d’un Atari Mega STe qui croupissait chez Yvan West Laurence (un des fondateurs d’AnimeLand et rédacteur en chef pendant presque 15 ans). Éviter la poubelle a une vieille machine que je rêvais d’avoir il y a quinze ans, je crois que cela valait quand même le déplacement. La seule et unique condition de YWL était la suivante : le débarrasser non pas du Mega STe, mais de tout « le merdier qui va avec ». Voici donc ce que j’ai ramené de cette expédition à l’autre bout de Paris…

Une vieille machine qui marche encore trèèèèès bien ! Je suis super content de l’avoir mais par contre elle prend un peu de place. À droite le carton de disquette que Yvan m’a refilée… grosse surprise, il s’agit en fait des archives d’AnimeLand du numéro 1 à 10 ! Plein d’articles et d’images en noir et blanc, mais apparemment pas de PAO complète bien qu’AL utilisait le logiciel Calamus. À priori, d’après Tibor Clerdouet (qui a été responsable de la migration vers Mac), toute la mise en page était refaite aux ciseaux et à la colle avant de partir à l’impression. En tout cas si jamais je trouve des pages complètes je sens que je vais bien me prendre la tête à les convertir dans des formats plus « actuels ». Déjà, rien que pour réinstaller Calamus avec tous les fichiers qui vont avec (polices, etc), ça va être l’aventure.

(Note : ce qui suit est plutôt pour les geeks amateurs de vieilles saloperies).

Un Atari Mega STe, donc. Comme toute la série des Mega ST ainsi que du Atari TT, le boîtier est complètement différent d’un ST « bas de gamme » (on voit mon STe, ce vieux compagnon, posé au fond). Le clavier est séparé et – ô bonheur – les prises claviers et joystick sont situés sur le CÔTÉ de celui-ci. Sur les autres ST, il fallait soulever la machine et les prises étaient situés dans un renfoncement de la carcasse (nombre de possesseur de ST ont pété ces prises à la longue, à cause de leur emplacement pourri). Le moniteur est un SM144 monochrome qui ne marche plus très bien – il y a des traînées dans l’image. Quand un ST est branché sur ce moniteur, il switche automatiquement en 640×400 en noir et blanc (j’ai bien dit : noir et blanc, pas de niveaux de gris) à 71Hz. Ce que je ne savais pas, c’est que si ce moniteur peut se poser sur un bureau, son socle a en fait la forme du Mega STe. Donc quand on le pose dessus, il se clippe ! Ce n’est pas le seul détail agréable que j’ai découvert.

L’imprimante laser SLM605 n’a pas de contrôleur intégré, c’est donc l’énorme boîtier SLMC804 qui en fait office (ce boîtier fonctionne avec plusieurs imprimantes laser Atari). Vous noterez que le câble a beau être un câble parallèle bateau, il est ultra-blindé.


Les connectiques à l’arrière : ports pour un second lecteur de disquette (720Ko), pour un moniteur monochrome ou couleur (prise identique, câble différent : du coup il y avait une auto-détection), trois (!!) prises séries dont une par défaut sur le cache du port VME (j’y reviendrai), port DMA/ACSI pour disque dur externe, port parallèle Centronics (imprimante) et tout à droite, les deux sorties audio stéréo.

Sur le côté gauche, on retrouve l’inévitable bouton reset, une prise LAN (j’ai pas trouvé ce que c’était ! À priori c’est la même connectique que les prises Appletalk sur Mac mais j’ai jamais entendu parler d’un soft qui utilise ce port), les prises MIDI qui ont fait le succès de l’Atari ST chez les musiciens, le port cartouche et la prise clavier.

Bien sûr, je n’ai pas pu m’empêcher de démonter cette machine (faut pas déconner).

Déjà, ce qui tue sur cette machine, c’est le disque dur intégré. Il est situé dans une baie 3″5 qui se débloque par une grosse vis sous la machine et en le soulevant, on a un accès direct aux composants les plus upgradés : le disque dur bien sûr, mais surtout la RAM et le port d’extension DMA/ACSI (sur lequel est branché le disque). Je ne sais pas ce qui leur à pris, chez Atari, de bien faire les choses… Ils étaient devenus fous. Ou alors ils ont embauché un stagiaire qui est allé bosser chez Apple ensuite.

Une fois complètement ouvert, grosse surprise. Tout est propre et bien rangé et il n’y a pas de blindage (il paraît que c’est la peinture rouge « spéciale » qui faisait office de blindage). On est à des années lumières des STf/STe/Falcon qui étaient on ne peut plus bordéliques. Surtout, sur ces autres modèles, il y avait un blindage en plusieurs couches qu’il fallait enlever en tordant des petits bouts de métal qui retenaient le tout. Là, rien de tout ça.
Alors on a : en haut, le lecteur de disquette interne (720ko) et le disque dur. En bas, le gros bloc à gauche c’est l’alim et au milieu c’est juste un blindage pour l’éventuelle carte d’extension VME. En haut à droite sur la carte mère, on voit la carte contrôleur pour le disque dur.

De bas en haut : la grosse vis qui retient la baie du disque dur, les deux ROMs du TOS et les quatre barrettes de RAM, des SIMM 8-bits 70ns de 1Mo chacune. Le TOS, le système d’exploitation des Atari ST, était non pas sur disque mais en ROM. Le Mega STe était livré avec le TOS 2.xx, qui était nettement mieux que celui des ST tout courts qui avaient un TOS 1.xx. Ce Mega STe a un TOS 2.06 qui est le premier système Atari a intégrer un driver pour démarrer sur disque dur (avant il fallait formater le disque avec un utilitaire spécial qui installait un driver).

La puce carrée du haut est le microprocesseur, un Motorola 68000. Il y a deux différences avec celui des ST normaux : tout d’abord sa forme (le 68000 des ST est rectangulaire), et ensuite il peut tourner plus vite. En effet les ST fonctionnent tous à 8Mhz mais celui-ci peut monter à 16Mhz. Comme le reste de la machine tourne toujours à 8Mhz, un cache L2 de 16ko y a été ajouté. Tout ceci est désactivable à la volée par software pour être compatible avec la logithèque ST (notamment les jeux). Par défaut le Mega STe démarre à 8Mhz sans cache.
Le gros défaut des anciens processeurs de ce type c’est l’absence totale d’instructions pour faire des calculs à virgule flottante (genre : 1,5×8,3). C’est pour ça que le socket vide est là pour accueillir un coprocesseur mathématique (FPU) Motorola 68881. Aucun logiciel n’en tire parti sur ST, notamment parce que le 68000 ne peut pas y accéder directement – le 68881 était accessible comme n’importe quel autre périphérique, il fallait le programmer pour lancer un calcul et aller récupérer le résultat ensuite. Ce n’est qu’à partir du 68020 que les instructions faisant appel directement au FPU ont été implémentées (et donc les deux se comportent comme un seul processeur). Au passage sur PC, la différence entre « SX » et « DX » (386SX, 386DX) était précisément cette présence ou nom d’un FPU. De nos jours les processeurs actuels intègrent plusieurs unités de ce type.

Le 68000 dans toute sa splendeur. Vous noterez l’absence de radiateur (je crois que c’est à partir de 33Mhz qu’il vaut mieux en mettre un). C’est un CPU simple, très facile à programmer et pourtant puissant car très bien conçu. Il est encore utilisé dans des systèmes embarqués simples et dans les calculatrices de Texas Instruments :). Par contre, on ne peut pas faire tourner Linux dessus car il n’a pas de PMMU (gestionnaire de mémoire paginée).

Le contrôleur du disque dur. Celui-ci se branche sur le port propriétaire d’Atari dénommé « DMA » dans les anciens ST et renommé « ACSI » à partir de cette machine. Le protocole ne doit pas être très différent du SCSI puisque cette petite carte fait la traduction entre les deux. En haut, on voit la prise 50-pin SCSI pour le disque.

Encore une nouveauté du Mega STE, le port VME (en blanc, en haut). Ce port donne directement sur le bus du 68000 et peut accueillir à peu près n’importe quel type de carte d’extension. Je n’ai trouvé aucune référence pour le Mega STE, mais pour le TT (qui avait le même port) sont sorties des cartes VGA et Ethernet. Ce standard se retrouvait aussi sur les stations Sun, et il y a quelques mois j’avais vu qu’une carte d’extension mémoire existait. L’avantage (énorme !) par rapport à la mémoire normale étant que cete mémoire ajoutée, appelée « TT-RAM », n’était pas partagée avec les autres périphériques. D’où un gain de performance incroyable quand un programme l’utilisait (la machine devenait au moins 4 fois plus rapide)… C’était le même principe que la Fast-RAM sur Amiga. En plus l’avantage d’une telle extension c’est qu’on passe outre la MMU du ST qui ne peut adresser que 4Mo de mémoire (sur les 16Mo possible par le 68000). Ce défaut de conception s’appelle le « trou de la MMU » (véridique).
Les deux puces sont les deux parties du « GLUE ». C’est un chipset qui comporte le gestionnaire de RAM, la MMU (Memory Management Unit – le 68000 n’en a pas en interne) et le coprocesseur graphique le plus moisi de toute l’histoire de l’informatique, le Blitter ST. Il était pourri parce qu’une programmation optimisée allait aussi vite que lui, et sur le Mega STe à 16Mhz avec cache il était carrément plus lent que le CPU. Le plus grand gag c’est qu’ensuite ils l’ont encore laissé sur le Falcon qui avait un 68030 à 16Mhz… En fait il n’accélérait que l’affichage système parce que les routines du TOS étaient trop merdiques. Mais il existait un programme, TurboST, qui permettait d’aller encore plus vite, même sur STf !

Le shifter ! Cette puce est coupable de tous les maux qu’ont endurés les développeurs de jeux et de démos sur ST. C’est le coprocesseur vidéo qui transforme les données graphiques stockées en RAM en signaux pour la sortie vidéo. Son nom vient de sa manière de fonctionner : il prend des mots de 16 bits, les aligne dans des registres internes et en effectuant un décalage logique de 1 bit à chaque cycle, il récupère une séquence de bits qui donne un numéro de couleur – le ST ne fontionne qu’avec des modes de couleur indexés. Les 3 seules résolutions qu’il gère sont 320×200 en 16 couleurs, 640×200 en 4 couleurs et 640×400 en 2 couleurs. Les deux premières marchent sur des moniteurs vidéo (télés) à 50 ou 60Hz et la dernière uniquement avec le moniteur monochrome que j’ai montré plus haut. Le shifter du STe avait quelques registres supplémentaires pour faire du hardware scrolling, mais sur un seul plan. Pas de parallaxe, de sprites, de programmation possible (comme le Copper sur Amiga…). C’est un coprocesseur très rudimentaire ! Enfin l’énorme bord autour de l’image n’était pas généré par le shifter mais part le GLUE qui interrompait ce dernier à intervalles réguliers. C’est en faisant bugger le GLUE en manipulant les registres du shifter à des moments précis sur chaque ligne écran (50/60Hz, basse/moyenne/haute résolution : deux registres uniquement…) que les demomakers ont réussi à faire du fullscreen. C’était un travail d’horloger suisse car tout se passait au cycle près : il fallait compter la durée des instructions du CPU. Sans compter qu’au final le shifter buggait aussi alors il fallait le refaire bugger dans le sens inverse à chaque ligne écran. 🙂

Le MFP 68901 est un chipset qui gère plus d’interruptions (IRQ) que le 68000. Sur ST la plupart des IRQ du 68000 sont désactivées et tout passe par cette puce : périphériques (ex. port imprimante, port série), et quatre timers dont deux sont associés à des évènements hardware – HBL (retour à la ligne vidéo) et DMA audio (fin de lecture d’un son PCM sur STe). Si mes souvenirs sont bons, sur le 68000 du ST les seules interruptions qui sont câblées sont pour la HBL (horizontal blank video), la VBL (vertical blank vidéo) et le MFP. L’interruption méga prioritaire, la NMI (Non-Maskable Interrupt) n’est pas câblée.
En bas, la vieille puce pas belle est le YM2149 de Yamaha. C’est le générateur de bruit (authentique) qui fait office de chipset sonore, et qu’on trouvait déjà sur Amstrad CPC et sur ZX Spectrum. Il intègre aussi quelques ports d’E/S pour le contrôle du lecteur de disquettes – c’est pour ça que parfois le lecteur de disquettes clignotait en même temps que la musique, quand le développeur avait fait n’importe quoi. Il faut dire que non seulement ça sort un son pourri (que perso j’aime bien) mais en plus c’était la merde à programmer. Cette puce tourne à 2Mhz et il est possible de changer le lecteur de disquette pour un lecteur haute-densité (1.44Mo) mais il faut repiquer un signal d’horloge plus rapide sur un autre chipset.

Re-belle vue d’ensemble, sans le blindage du port VME.

Le disque dur dans son blindage. Qui n’est pas inutile : lors de mes manipulations, il a volé par terre (heureusement je l’ai amorti avec mon pied). Le disque marche encore… j’avais pris la précaution de parquer les têtes avant d’éteindre le Mega STe.

À gauche, un disque IDE Maxtor de 160Go. À droite, le disque du Mega STe, un Seagate SCSI de… 50Mo ! Rigolez, il coutaît une fortune à l’époque. Même sur mon 386 j’avais pas mieux. Il est gros hein ? Normal, à l’intérieur il y a trois plateaux.

Le verso, pour montrer que l’électronique fait des progrès en 15 ans.

La preuve qu’il s’agit bien d’un Seagate ST-157N. Et il est toujours référencé sur le site du constructeur…

Contrairement aux disques actuels, le couvercle supérieur sonne creux et semble très fragile (un coup de tournevis et c’est fini). D’où cet avertissement en larges lettres ! On voit aussi l’ouverture qui sert à maintenir la pression identique entre l’intérieur et l’exterieur du disque. Sur les disques actuels cette ouverture est planquée.
Pour finir avec le disque dur, comme je viens de l’expliquer les têtes de lecture ne se parquent pas automatiquement à l’extinction de l’ordinateur. Il faut dire que sur ST, pour éteindre la machine il suffit de passer l’interrupteur sur « OFF ». Il n’y a pas d’extinction « propre » ! Et ce disque n’a pas de mécanisme de parquage automatique en cas de coupure de courant. Donc soit il faut prendre le risque d’un crash en cas de choc, soit il faut lancer un programme de parquage à la main avant d’éteindre la machine.

Dans la liste des chipsets que j’ai pas cherché : le DMA audio du STe (qui montait jusqu’à 50Khz 8bits en stéréo), le contrôleur audio des basses/aigüs/volume et d’autres petites choses. Il n’y a pas de contrôleur clavier car il est justement intégré au clavier : c’est en fait un clavier « intelligent » qui comporte un CPU Motorola 6809 avec sa propre ROM et RAM. Un ordinateur dans l’ordinateur donc, qui communiquait avec l’unité centrale par l’intermédiaire d’une liaison série avec un protocole de communication par paquets. Un peu l’ancêtre de l’USB en somme ! C’était la même chose sur tous les ST. Certains demomakers ont utilisé ce 6809 en le reprogrammant pour délocaliser complètement les routines de gestion de clavier/souris qui normalement étaient gérés par le 68000 (avec des brouettes d’interruptions à la clé dès que la souris bougeait).

Et enfin, j’ai résolu ma grande interrogation depuis dimanche dernier : où vais-je bien ranger cette foutue machine ? Et bien j’ai trouvé…

Par contre l’imprimante, je pense que je vais la donner. À bon entendeur…

Bon j’ai quand même fait quelques tests de performances pour voir si les 16Mhz avec 16ko de cache ça boostait un peu le schmilblick. Résultat sur le player soundtrack que j’avais réalisé avec un autre coder : deux fois plus rapide (98% du CPUsur STe, 50% sur Mega STe). Un résultat inattendu puisque les accès mémoire sont toujours à 8Mhz et dieu sait que le player en fait pour manipuler les samples audio…

Je suis trop dégoûté d’avoir cette machine que maintenant !

Les commentaires sont fermés.