|
|||||||||||||||
|
La Carte Mère :
Principaux Chips:
1 : Le 68000 (Motorola) à 8Mhz
(Le processeur)
2 : Le 68901 (Motorola): Gère principalement les interruptions, les
Timers, le port série.
3 : Le Blitter (Atari): Composant graphique permettant l'affichage de sprite
de façon câblé.
4 : La GST MCU (Glue +MMU) (Atari): C'est la logique interne du ST : Gestion
de la DRAM, Horloges, décodage d'adresse, Joysticks évolués,
etc.
5 : Le Shifter (Atari): Il s'agit du composant video proprement dit. Ce composant
gère également le son DMA.
6 : La DRAM : Il y a ici 2 barrettes de 256Ko d'origine sur un 520STE
7 : Le YM2149 (Yamaha) : Composant son de la gamme ST.
8 : 6850 (Motorola / ST) : Contrôleurs séries gérant le MIDI
et le clavier
9 : 256Ko de ROM contenant le TOS et le GEM.
10 : Contrôleur DMA (Atari) pour le disque dur / Lecteur de disquette.
11 : Le WD1772 (Western Digital) : Le contrôleur de disquette du ST.
12 : Le LMC1992 (Nationnal) : Un mixer de son. Ce composant permet le réglage
du son (Balance / Grave / Aigue, etc)
Clavier/Souris:
1 : HD6301V1P (Hitachi) Microcontrôleur 8 bits comme contrôleur clavier / souris / joystick.
2 : LM339 : comparateur de tension
L'apparition du STE a été suivie de bien des questions quant aux nouvelles performances de la machine. Nous avons déjà eu l'occasion de vous présenter les remarquables possibilités du STE au niveau logiciel et la programmation qui en résulte : mais jusqu'à présent, aucune étude hardware poussée n'a été faite pour présenter les changement par rapoort a la gamme STF. Ce qui suit est donc tout particulièrement destiné aux fous de la bidouille mais aussi à tous les programmeurs curieux désirant mieux comprendre leur machine... Dans un souci de synthèse et de compréhension pour tous, en particulier ceux pour qui le STE est leur prmière machine, et constatant la pauvreté de la littérature sur le hardware des STF et STE. malgré certains titres prétentieux, j'ai tenté d'être le plus complet possible, en faisant de nombreuses références à la gamme précédente. Les circuits des ST étant, en fonctionnement liés les uns aux autres, il n'est pas évident de découper le hardware en domaine distincts, tels que son ou video, même si les registres ont été groupés par les concepteurs dans des zones d'adresses correspondant chacune à un domaine bien précis, dans le but de faciliter la vie des programmeurs. Ainsi il est nécessaire de commencer par l'étude du brochage du circuit principal des STE qui touche à tous les domaines... C'est pour cela que vous devrez faire des sauts durant votre lecture. |
A l'origine des premiers ST, la firme Atari a conçu deux circuits qui intégraient tous les circuits qui intégraient tous les circuits TTL que l'on trouvait sur les cinq grandes cartes du prototype de fin 84 (et oui, déjà!) - un ST à cinq étages en quelque sorte - qui sont connus sous les noms de MMU et GLUE.
|
-> Le GLUE, comme son nom l'indique, assure la cohésion du système STF, en étant responsable des tâches suivante : décodage des adresses utilisées par le 68000 dans la zone des 16Mo pour la sélection des circuits utilisant les bus de données et/ou d'adresses et génération d'un signal d'erreur de bus (qui se traduit par les deux bombes tant connues), si vous adressez une zone interdite à tous (et toutes) ou une zone réservée au mod superviseur du 68000, alors que vous êtes en mode utilisateur. Le GLUE est aussi responsable de la délivrance des signaux de synchronisation vidéo, de la gestion des interruptions venant du 68901 (MFP), et de la gestion des priorités hardware sur le bus, ainsi que l'arbritage de ce dernier. -> La MMU (Memory Management Unit : Unité de gestion mémoire) assure la gestion de la mémoire (RAM) et de son adressage. Mais la MMU est aussi le circuit principal pour la gestion de l'adressage de la RAM vidéo (tant utilisée pour les scrollings), ainsi que le suivi des transferts disques par le circuit DMA. Mais nous verrons cela en détail plus loin... |
Un scrolling plus fin étant prévu, la MMU a été entièrement revue, et dans le but de gagner de la place sur la carte et réduire le nombre de pistes, on l'a fusionnée dans un même boîtier avec ce qui aurait dû être le successeur du GLUE. Ce nouveau circuit porte le nom de GST MCU (qui signifie sans doute Memory Controler Unit), il est impréssionnant avec ses 144 broches en boîtier CMS, ne laissant pas la moindre chance de réparation à quiconque n'a pas le matériel requis pour souder ce "monstre"... (encore faudrait-il qu'il soit disponible chez les revendeurs...). Voir son brochage en figure 1 (dans ce qui suit, tous les signaux précédés d'une étoile sont actifs au niveau bas. |
Pour parler de l'ancienne gamme, j'utiliserai la référence STF qui inclut bien évidement les MEGA ST). Outre les fonctions des GLUE et MMU, le GST MCU assure la gestion de l'adressage du son stéréo 8 bits en DMA, ainsi que la gestion des deux nouveaux ports joysticks, paddles et stylo optique sur la gauche du STE. Le bus d'adresses est de 23 bits, il permet donc les décodages d'adresses dans la zone des 16 Mo adressable par le 68000, et aurait donc pu gérer plus de 4 Mo de ram, limitation due jusque-là à la présence de seulement 21 bits d'adresses sur la MMU. Malheureusement, il n'y a toujours pas plus de broches d'adressage multiplexé des boitiers RAM (MAD0 à MAD9), ou de broches de sélection de banques supplémentaires de Rams, cequi permet d'affirmer que nous sommes toujours limités à 4 Mo de RAM.
|
Les broches 2 à 6 sont les entrées et sorties des horloges destinées aux différents circuits. Le 16 MHz provrient comme avant du circuit vidéo. Les fréquences de 0.5 2, 4 et 8 MHz sont disponibles en sortie. Pour leur utilisation, reportez vous à la figure 4 qui vous présente les horloges des STF et STE. Dans les ST, les AClAS (6850 gérant les liaisons séries clavier et MIDI) sont cadencés à 0.5 MHZ, le vieux circuit sonore (YM-2149) à 2 MHZ, le MFP (68901 pour les intérruptions et la RS232) à 4 MHz, les 68000, Blitter DMA, WD1772 (contrôleur de drives) et GLUE à 8 Mhz, la MMU à 16 MHz. Le GST MCU d"livre maintenant les fréquences des GLUE et MMU, alors que le nouveau shifter (GST SHIFTER voir figure 2) reçoit une horloge de 8MHz venant d'un oscillateur séparé : cette horloge appelée SCLK (Sound CLocK) permet, par l'intermédiaire de diviseurs internes au GST Shifter, de disposer d'une horloge de fréquence variable (FCLK) pour les filtres sonores que nous aborderons un peu plus loin. Le signal de cet oscillateur est aussi utilisé par le WD1772 et le YM-2149 pour lequel un diviseur par 4, réalisé avec 2 bascules 74 'en série', a été nécessaire afin d'obtenir une fréquence de 2 MHz.
|
|
Vous avez peut-êlre remarqué que la sortie 2 MHz du GST MCU n'est pas utilisée, quoique tout à fait fonctionnelle comme j'ai pu le vérifier en branchant le YM-2149 dessus... En fait, ce nouvel oscillateur est destiné à cadencer tous les circuits qui pourraient subir des problèmes de synchro, si l'horloge de base de 32 MHz venait à être modifiée dans le cas exclusif d'un passage en mode synchro externe de la machine, c'est-à-dire un arrêt de l'oscillateur embarqué de 32 MHz, et l'envoi depuis l'extérieur d'une fréquence proche (36 MHz par exemple) : ce procédé est nécessaire pour synchroniser la source video ST avec une autre externe, dans le but de les mixer, entendez par là une incrustation de l'une sur l'autre. C'est ce que réalise un genlock. Dans le cas d'une fréquence de 36 MHz, le GST MCU) ne fournirait plus une fréquence de 8 MHz mais de 9, ce qui pour le WD1772 poserait des problèmes extrêmes de non-reconnaissance des disques et formatages, illisibles pour un ST à 32 MHz. Il en est de même pour le son DMA géré par le Shifter comme nous le verrons. Quant au YM-2149, il recevrait alors une fréquence de non plus 2 MHz du GST MCU, mais de 2.25 MHz (9/4), ce qui le ferait jouer faux. J'ai pu d ailleur vérifier que cet oscillateur de 8 MHz n'avait aucune utilité dans le cas d'un ST en fonctionnement normal, en remplaçant ce dernier par l'horloge CLK8 du GST MCU. De plus, je puis affirmer que l'entrée SCLK du shifter n'est nécessaire que pour la gestion du son DMA puisque l'ayant coupée j'ai constaté que le STE fonctionnait très bien, à l'exception du son DMA disparu. |
Sur la figure
1, viennent ensuite les broches *ROMx de sélection des ROMs du STE.
Chaque signal est activé suivant l'adressage du processeur à une certaine
zone mémoire (c'est ce que l'on appelle le décodage d'adresse) Dans
mon étude, j'ai ainsi découvert des zones correspondant aux signaux
*ROM0, *ROM1, *ROM5 et *ROM6, qui ne sont pas utilisés actuellement
(voir la figure 13 pour les adresses exactes)
|
Le signal *ROM2 est destiné à sélectionner les 2 roms 128 ko contenant le TOS 1.6. Sur les STF, ce signal était secondé des signaux *ROM0 et *ROM1 pour ainsi adresser trois zones de 64 ko correspondant à trois paires de roms 32 ko pour le TOS 1.0 (pouah !!), et par l'intermédiaire d'une porte AND à trois entrées, à une paire de Roms 128 ko pour le TOS 1.2 (blitter). Les deux supports accueillant le TOS 1.6 sont de 32 broches. Les premiers STE étaient pourvus de 2 Eproms 1 Mbits (32 broches), alors que maintenant ce sont des Roms (28 broches) qui sont installées dans les supports. Il y a donc sur la carte trois petits jumpers (straps) rétérencés W102, W103 et W104 qui permettent d'adapter les broches 2, 3 et 24 des deux supports. Vous trouverez toutes les configurations possibles sur la figure 16. |
Toujours au sujet des ROMs, il taut que je vous annonce que le désassemblage du début des Roms nous a permis de voir que ce TOS teste ta présence d'un éventuel 68030 (!) en essayant le bit 9 du CACR (Cache Address Control Register) de ce dernier, le résultat étant mis dans une nouvelle variable du syteme Dans le cas de la présence du 68030. des routines utilisant les instructions plus rapides spécifiques au 68030 sont pointées De plus les deux grosses incompatibilités, qui empêchaient les 020 et 030 de fonctionner, à savoir l'utilisation de la Ligne F et de certaines instructions qui refusent de s'actionner en mode user' sur les 020 et 030, ont été corrigées. D'abord, la Ligne F ne semble plus du tout utilisée pour le 68000, elle est remplacée par des TRAP. Ensuite, une routine violation privilège' a été installée pour corriger l'erreur survenant lorsque le 030 traite en mode user' une instruction qui n'est plus utilisable qu'en mode superviseur. Mais, aussi incroyable que cela puisse paraître, cette routine est buggée, l'empêchant de fonctionner (merci les gars, sympa '). Nous aurons peut-être l'occasion de vous présenter des patches' pour ce TOS ainsi que des commentaires Toujours est-il, moyennant la correction du bug. que le 68030 devrait fonctionner (logiciellement parlant) sur un STE • En fait, ce TOS semble être une préversion du TOS 030 qui sera dans les TT sous TOS. Signalons que le 68020 sera reconnu comme un 68000 et ne profitera pas de routines spécifiques, te bit 9 du CACR n'existant pas dans le registre équivalent du 68020 (4 bits seulement). |
*HDINT et FDINT sont respectivement les signaux d'interruption venant du disque dur (HD) et du contrôleur de drives (FD). Ces deux signaux ne vont pas à la MMU des STF, et c'est là une différence non négligeable. Pour mieux comprendre la grande amélioration logicielle qui en découle, il faut savoir que |usqu'à présent la broche I05 du MFP n'est pas activée (y compris sur STE ') pour une raison inconnue (cela aurait pourtant été bien plus simple avec le MFP). et que sur les STF un transfert DMA disque demande un suivi logiciel (routine DMA; tout au long de l'opération pour surveiller le compteur DMA. Car la MMU ne peut savoir d'elle-même quand doit s'arrêter l incrémentation de son compteur DMA. pour la simple raison qu'il n'y a pas de registre de fin de transfert DMA. comme c'est le cas pour les transferts DMA son des STE que nous verrons plus loin. Inutile de vous dire que cette routine prend du temps au système. Elle doit en effet comparer la valeur incrementee à celle représentant la quantité des données à transférer tout au long du transfert, puis lorsque les valeurs sont les mêmes, désactiver le mode DMA dans la MMU. Dans le STE, le GST MCU reçoit maintenant un signal d'interruption indiquant la fin d'un transfert DMA disque et sait donc qu'il doit stopper I incrémentation du compteur et l'adressage de la RAM La gestion du hardware se retrouve ainsi simplifiée et donc plus rapide. |
Le signal *DISKINT est le signal
résultant d une comparaison logique (nor) de *HDINT et FDINT qui est
dirigé sur la broche d'interruption I05 du MFP. De même pour la broche
19 (SNDIR) qui permet de sélectionner les registres du YM-2149, alors
que la broche SNDCS (SouND Chip Select), comme son nom l'indique, sélectionne
le YM2149 suite à une adresse considérée par le GST MCU comme étant
de celles utilisées pour le YM2149. |
Sur la broche 23. se trouve le signal BERR (Bus ERRor) émis vers le 68000 pour lui signaler qu'une tentative de lecture ou d'écriture dans une zone protégée ou interdite a lieu. Mais le BERR peut aussi être envoyé lorsque se produit une erreur de bus et que le signal DTACK (accusé de transmission des données) ne sera pas émis par le périphérique, pour la raison évidente que les données ne sont pas arrivées ou n'ont pas été présentées au 68000. Dans ces cas-la, le GST MCU joue ce que l'on appelle le rôle de "chien de garde" en attendant une certaine période, avant d'estimer s'il faut renoncer et signaler le problème au processeur. Sachez que tant que le 68000 n'a pas reçu de signal DTACK ou BERR, il se met en waitstate' (cycle d'attente). Ce procédé est souvent utilisé sur des machines où le processeur doit accéder lentement à de la Ram par exemple, comme c'est souvent le cas pour les PC bas de gamme, mais aussi, ce qui ne manquera pas de faire sourire certains, l'Amiga pour ses 512 premiers ko.... |
Les deux signaux suivants sont utilisés pour la communication bus synchrone entre le processeur et des circuits périphériques lents de la famille 6800 tels que les ACIAS 6850 Pour cette communication, un signal d'horloge de synchronisation est émis par le 68000 : il s'agit de E (Enable ou 02 dans le jargon des processeurs 8 bits). Il est cadencé à un dixième de la fréquence du processeur, soit ici 800 KHz. Le signal VPA (Valid Penpheral Address) est envoyé par le GST MCU au 68000, pour l'informer que l'adresse que ce dernier vient de placer sur le bus est une adresse de circuit de la famille 6800 (décodage d'adresse du GST MCU). A ce moment-là, le processeur attend éventuellement que le signal E soit au niveau bas, puis envoie le signal *VMA (Valid Memory Address), pour informer le GST MCU qu'il est synchronisé sur le signal E et que l'adresse présente est valide Le signal *VMA peut être considéré comme un signal de sélection des circuits périphériques même si, dans le cas des ST un signal de sélection des ACIAs (6850CS broche 49) est généré a partir du *VMA. Le signal VPA est aussi utilisé pour indiquer au processeur une auto-interruption (autovecteurs n° 25 à 31). |
Les broches 26 à 29 sont les signaux d'arbitrage du bus ; on trouve les classiques BR BG et BGACK présents sur le processeur (voir figure 3 pour le brochage 68000) "BR est émis vers le 68000 pour lui indiquer qu'un circuit demande à devenir 'busmaster (possesseur du bus). Un tel circuit peut être le blitter ou le GST MCU (pour le DMA). En fait, le blitter possède aussi ces signaux et n'a donc pas besoin du GST MCU pour faire la demande au 68000 (voir ST Mag n° 26 sur le Hard du blitter), mais le GST MCU a aussi pour rôle d'arbitrer et d'éviter les "embouteillages'' sur le bus. Le circuit DMA est obligé d'envoyer un signal de demande de bus (*RDY) au GST MCU. A ce moment-là, ce dernier envoie un *BR (Bus Request) au processeur qui finit son cycle de bus en cours avant d'envoyer un signal *BG (Bus Grant) pour informer le GST MCU que le bus lui est attribue. Ce dernier envoie alors un *BGACK (Bus Grant ACKnowledge) au processeur pour l'informer qu'il prend le bus à sa charge, et ceci jusqu'à ce que ce signal soit remis au niveau haut, moment où le processeur reprend le bus pour lui. Lorsque le bus est utilisé par le blitter ou le DMA, les broches du processeur sont pratiquement toutes en état de haute impédance. |
La broche *BGO est une sortie du signal *BG, à l'origine à destination des connecteurs bus des Mega ST ; elle n'est donc pas utilisée dans les STE. De même pour les broches d'entrée d'interruption INT3. INT5 et INT7. A ces broches, vous devez associer les INT6. INT4 et INT2 utilisées sur tous les sytèmes ST. Sur les Mega ST, un circuit d'encodage et de priorité (74LS148) reçoit les broches INTx et envoie un signal codé sur 3 bits aux trois broches *IPL (Interrupt Priority Level) du 68000, pour lui indiquer le niveau de l'INT reçue (voir l'article "Bus stop" ST Mag n° 30). Bien entendu, les broches INT2. 4 et 6 n'ont jamais été visibles puisque c'est le GST MCU qui les gère pour indiquer respectivement les interruptions HBL, VBL et MFP. Le circuit 74LS148 a lui aussi été intégré au GST MCU et ses trois broches de sortie 'IPL0. *IPL1 et 'IPL2 sont reliées aux signaux correspondants du 68000 (voir fig. 3). |
Le signal *RESET est nécessaire
au GST MCU pour réinitialiser ses compteurs internes (video, DMA, etc.).
Les cinq signaux suivants sont les traditionnels signaux d'échange de
bus asynchrone. Les quatre premiers sont émis par le 68000. R/*W indique
au périphérique si le processeur désire lire ou écrire une donnée, *UDS
(Upper Data Strobe) et *LDS (Lower Data Strobe) indiquent respectivement
si le 68000 travaille sur les 8 bits de poids fort ou faible du bus.
mais si le processeur travaille avec des mots (16 bits) ou des mots
longs (32 bits), alors les deux signaux sont activés. |
Les broches 83, 92 et 93 sont utilisées
pour la gestion du MFP. Sur la broche *MFPINT, le MFP avertit le GST
MCU qu'une des seize interruptions vient d être déclenchée, soit en
interne au MFP, soit sur un des huit bits de son port. |
Le groupe des broches 94 à 103 assure la gestion des deux nouveaux ports joysticks/paddles stylo optique que nous verrons vers la fin. De même pour les broches SREQ, *SLOAD et *SINT qui sont reliées au shifter pour la gestion du nouveau son DMA. |
Des broches 110 à 127, on trouve
les signaux du bus d'adresse multiplexe et ceux de sélection des deux
banques de RAM de 2 Mo maxi chacune. L'intérêt du STE étant que l'on
peut monter à 4 Mo sans aucune soudure, puisque la carte mère est équipée
de quatre supports destinés à recevoir des barrettes SIMMs (Single Inline
Memory Modules) ou SIP (Single Inline Package) de 256 ko ou 1 Mo chacune,
dont vous trouverez le brochage en figure 14.
|
On trouve ensuite trois signaux qui étaient
auparavant émis par la MMU pour piloter quatre circuits TTL (LS244 et LS373)
chargés d'effectuer la liaison entre le bus de données du Shifter et des Rams
avec le bus de données du 68000 et du reste de la machine. Les quatre TTL
ont été intégrés dans le shifter.
Les signaux *DMA, *RAM et *DEV sont inutilisés à l'extérieur du GST MCU, mais
sont, sur les STF, émis par le GLUE pour la MMU. *DMA permet de sélectionner
les registres des compteurs DMA de la MMU pour un transfert DMA depuis un
disque, et *RAM indique qu'un accès à la RAM est détecté suite à un décodage
d'adresse du GLUE (zone de $000008 a $3FFFFF = 4 Mo). A la suite de la réception
de ce signal, la MMU active les circuits TTL 244 ou 373 suivant le sens de
transfert des données indiqué par le signal R*W. Quant à *DEV, il permettrait
de sélectionner les registres des compteurs vidéo (VBASE et VCOUNT) pour l'adressage
de la RAM vidéo à destination du shifter et peut-être aussi les registres
internes du shifter (couleurs et résolutions par l'intermédiaire du signal
CMPCS, si ce dernier n'est pas décodé dans la MMU. Le signal *FCS est émis
vers le DMA pour sélectionner les registres de ce dernier (accès au WD1772
et état du DMA).
Si le circuit a besoin du bus de données pour envoyer ou recevoir un mot,
il envoie le signal *RDY au GST MCU afin de lui demander de prendre les dispositions
pour faire libérer le bus (envoi d'un *BR au 68000). Il faut signaler que
le bus de données du connecteur DMA a été bufferisé avec un 74LS245, dont
la sélection du sens des données est assurée par le signal CR/*W émis par
le circuit DMA. La validation des buffers de ce circuit est réalisée par le
signal *FDCS (Floppy Disk Chip Select) émis par le circuit DMA vers le WD1772
par l'intermédiaire d'une bascule (74LS74) cadencée avec l'horloge CLK8. Ainsi,
lorsque le WD1772 est sélectionné, le bus DMA est isolé du périphérique branché.
Cette bufférisation évitera l'endommagement du circuit DMA lors d'un branchement
sous tension. Les signaux de contrôle, à savoir R/*W, A0 *HDACK (HardDiskACK-nowledge)
et RESET, sont bufférisés par un 74LS244. C'est un des buffers de ce circuit
qui conduit le signal *DSO (Drive Select 0) à destination de la led orange.
Le signal *PEN (137) est utilisé par le stylo optique branché sur le nouveau
port 0 (DB15).
Les quatre signaux suivants sont émis vers le GST Shifter pour le synchroniser
avec le transfert des données de la Ram vidéo ainsi que les signaux VSYNC
et HSYNC qui sont générés par le GLUE des STF:
*DCYC (Data CYCIe) indique au Shifter que les données sont disponibles depuis
les RAMs (c'est-à-dire que le GST MCU vient de sélectionner l'adresse RAM
des prochaines données à charger dans le GST Shifter ; cet adressage est effectué
16000 fois par image en rapport avec les compteurs VCOUNT du GST MCU ou de
la MMU des STF).
DE (Display Enable: actif au niveau haut) indique au circuit vidéo qu'il doit
envoyer la ligne vidéo au moniteur. Ce signal est actif pendant l'envoi de
chaque ligne en relation directe avec les signaux VSYNC HSYNC, il est pour
cette raison émis par le GLUE des STF vers le Shifter, mais aussi la MMU des
STF.
Enfin, DE est aussi reçu par le MFP sur l'entrée de son timer B (reconnu sur
le front descendant, c'est-à-dire à la fin du tracé de la ligne) tant utilisé
pour les effets vidéo.
*BLANK (vide) est émis à chaque fin d'image pour éviter un envoi de signal
vidéo en dehors de la zone d'affichage de l'écran, le temps que le canon vidéo
remonte en haut à gauche du tube. De même pour DE, il est en relation avec
les signaux VSYNC HSYNC. il est donc émis par le GLUE des STF.
Le signal *CMPCS sélectionne le Shifter pour l'accès à ses registres a propos
desquels la suite va alors vous sembler évidente : le registre de configuration
de synchro (50/60 Hz et synchro int./ext.) est dans le GST MCU (et GLUE des
STF) et non dans le Shifter, comme pouvait le laisser penser la localisation
de l'adresse de ce registre (voir figure 10). C'est
d'ailleurs pour ce registre que le GLUE des STF est muni de deux broches de
données reliées aux bits 8 et 9 du bus, qui correspondent bien aux 2 bits
modifiables du registre. Mais si cela explique comment le GLUE sait s'il doit
envoyer des synchros 50 ou 60 Hz, comment sait-il que l'on passe en 71 Hz
(haute résolution) ?
En fait, si vous regardez les adresses vidéo (figure 10), vous remarquerez qu'un autre registre est aussi sur les bits 8 et 9 VIDEOMOD qui permet d'indiquer la résolution au shifter, mais aussi au GLUE (GST MCU sur STE). Ainsi à l'adresse FF8260 correspondent deux registres un dans le shifter et un dans le GLUE. Les seuls registres vidéo qui sont dans le shifter des STF sont les COLORS et VIDEOMOD. En effet, ce shifter ne possède que 5 bits d'adresse. Le GST SHIFTER est pourvu d un sixième bit d'adresse pour le registre supplémentaire HSCROLL et certains registres du son DMA, mais tous les autres registres video de la figure 10 sont dans le GST MCU. |
Le nouveau circuit vidéo du STE
(voir figure 2) est plus puissant que celui des
STF et. outre ses possibilités graphiques étendues, il assure aussi
la gestion du son DMA, la grande innovation de la machine. Avant tout,
deux remarques : je n'ai pu trouver la fonction de la broche 73 (LOWP)
qui n'est pas utilisée. |
En fait, le Shifter accède à
la RAM comme un circuit DMA sans passer par le processeur. C'est sur
ce principe que le nouveau son est géré. Pour cela, le Shifter dispose
d'un troisième bus de données mais sur 8 bits (SDO à SD7), qui transporte
les données du Shifter vers les deux convertisseurs digitaux/analogiques
8 bits comme vous pouvez le voir sur la figure 5.
Mais avant de commenter cette circuiterie sonore, revenons au principe
du son DMA géré par le Shifter. |
En fait, il faut savoir que si la première série des cartes STE a bien été gravée d'après le branchement ci-dessus, un composant, comme ceux qui ont ouvert la machine ont dû le remarquer, a été rajouté avec quelques bouts de fils. Il s'agit d'un 74LS164, un compteur 8 bits qui intercepte le signal *SINT qui allait sur l'entrée du timer A pour le retarder avant d'envoyer le résultat sur ce même timer (voir figure 15). Par les tests logiciels réalisés, la fonction de ce compteur n'est pas évidente. D'après la fréquence d'horloge reçue de 2 MHz et la sortie du bit 8, on peut estimer que le délai, entre l'arrivé d'un signal sur A et B et la sortie sur le bit 8 est de 8x( 1 / 2000000) = 4 microsecondes.Si le signal *SINT n'est pas actif (niveau haut) le compteur a sa broche *CLR au niveau bas, tout comme alors les bits de sortie. A la fin d'un échantillon, le GST MCU place *SINT au niveau bas et les broches A. B et *CLR sont au niveau haut, ce qui signifie que le compteur est actif et avance d un bit à chaque impulsion de l'horloge 4 microsecondes plus tard, la sortie 8 du compteur est au niveau haut, et le passage de l'état bas à l'état haut de l'entrée du MFP (TAI) incréments le compteur de ce dernier.Bien entendu, il faut que le signal *SINT dure plus de 4 microsecondes, sinon le compteur sera remis à 0 avant d'avoir atteint sa sortie bit 8 et le MFP ne recevra aucun changement d'état. Donc le rôle du circuit rajoute ne semble être que de retarder l'arrivée au timer A du signal d'interruption. |
|
Mais l'interruption de fin d'échantillon
est aussi envoyée sur la broche d'interruption la plus élevée (I07) par une
porte XOR (OU exclusif) avec celle de la détection monochrome. Deux cas peuvent
alors se présenter le mode couleur et donc le signal *MONOON au niveau haut.
S'il n'y a pas d'interruption, il y a un 1 sur I07, mais en cas d'arrivée
d'une interruption, la sortie de la porte XOR passe à 0. et ce passage a l'état
bas signale au MFP une interruption. Le résultat est le même dans le cas du
branchement d'un écran monochrome avec le passage au niveau bas de *MONOON.
Vous remarquerez que pour le hard, il est impossible de savoir si le monochrome
vient d'être branché ou si c'est la fin d'un échantillon. Dans le second cas,
nous sommes en mode monochrome, et donc l'entrée I07 est à 0 comme sur les
STF dans ce cas Si alors une interruption son arrive, une des deux entrées
de la porte passe à 1 et la broche I07 repasse à 1, ce qui pourrait être considéré
comme le débranchement de l'écran mono chrome (aie !). Heureusement, la routine
de détection monochrome des STF a été entièrement revue et adaptée à la situation
plus complexe en testant à chaque VBL, en plus de I07, le registre de contrôle
de son DMA ($FF8901).
D'après les 2 bits faibles (voir figure 11), le sytème
sait si l'interruption qui est sur la broche I07 est celle venant d'un changement
de moniteur ou celle de la fin d'un échantillon en cours (bits de FF8901 ).
Si aucune activité ne semble provenir du DMA son, la routine continue sur
l'initialisation du système pour la nouvelle résolution.
On peut se demander pourquoi avoir mis un goulot d'étranglement entre le shifter
et les deux convertisseurs avec un bus de 8 bits, obligeant a une perte de
temps pour envoyer les deux octets à la suite l'un de l'autre. En fait, il
ne pourrait s'agir que d'une limitation du nombre de broches sur le Shifter
(boîtier standard quad pack 84 broches) ; un nombre supérieur de broches obligeant
la fabrication du circuit vidéo dans un type de boîtier non standard ou en
CMS.
Le GST Shifter assure aussi la communication avec le circuit LMC1992 (contrôleur hi-fi de volume et tonalité) grâce aux signaux *MWE MWD et MWK. selon le standard Microwire. Ces signaux permettent la configuration des registres du LMC1992. Les données sont émises sériellement par MWD (MicroWire Data) en synchronisation avec le signal MWK (MicroWire clocK) à condition que le signal *MWE (MicroWire Enable) soit actit (voir figure 7). Le message est sur 11 bits , les 2 bits de poids fort sont toujours 1 et 0 pour sélectionner le circuit les 3 bits suivants sont le numéro du registre du circuit qui-correspond à une commande et les 6 bits de poids faible sont les données pour le registre sélectionné. |
Sur la figure 6, se trouve le brochage du LMC1992 dans le contexte du STE. La répartition des signaux relatifs aux canaux gauche et droit se fait de part et d'autre du boîtier. Les trois premières broches constituent l'interface Microwire et sont reliées aux trois signaux correspondants du Shifter. Le circuit permet la sélection par logiciel de quatre sources stereo (input x). mais seule la première entrée est utilisée pour le YM-2149 (voir figure 5). Cette entrée est sélectionnée par le système à l'allumage du STE et si vous sélectionnez une autre entrée (voir registres en figure 8), aucun son du YM-2149 ne passera plus.Officiellement c'est l'entrée 2 qui doit être sélectionnée pour couper le YM-2149, alors que l'entrée 3 est réservée (la 4 n'est même pas mentionnée !). |
Au passage, remarquez que l'entrée audio du connecteur vidéo est toujours là, alors qu'elle ne sert vraiment a rien. Le LMC est prévu pour des installations (auto) avec quatre haut parleurs, et c'est pour cela qu'il possède quatre sorties (front et rear) dont seules deux sont utilisées (front) pour aller directement sur les fiches RCA. De plus, les deux sorties sont réduites, mixées et amplifiées pour obtenir un son mono disponible sur le connecteur vidéo comme sur les STF. Sur les broches SELECT OUT se trouve le signal de l'entrée sélectionnée (YM-2149). Ce dernier est mixé avec la sortie des filtres MF004, le résultat étant amplifié, puis réinjecté par les broches SELECT IN. C'est à partir de là que les autres registres (volume et tonalité) agissent sur le signal sonore. Enfin les filtres effectuent un anti-aliasmg (suppression des escaliers sur la courbe sonore) avec l'aide d un filtre passe bas dont la fréquence est 40 % de celle de l'échantillonnage soit 2503, 5007. 10013 et 20026 Hz. |
La réponse en tonalité du LMC est déterminée
par les condensateurs aux broches TONE IN et TONE OUT. Mais la bande passante
varie aussi en fonction de ces composants avec la valeur par défaut de 0 0047
uF. On a une bande passante de 50 à 15 000 Hz . Si on diminue la valeur(0
0033 uF), on obtient 70 à 20.000 Hz. Pour le STE. c'est la valeur de 0.0068
uF qui est utilisée, donnant une bande passante de 35 à 10.000 Hz. Ajoutez
à cela la qualité remarquable du traitement sonore (amplis/filtres) supérieur
à celui de l'Amiga (limité à 28 kHz) et vous pouvez alors entendre les imperfections
des samples qui paraissent pourtant irréprochables sur un STF (ex : Quar-tet),
preuve de la bien meilleure bande passante.
Toutes les registres relatifs au son DMA se trouvent sur la
figure 11. Comme pour la vidéo, certains ne sont pas dans le shifter mais
dans le GST MCU, à savoir FBASE, FCOUNT, FEND et PLAYMOD (sous réserve). Seuls
SAMPMOD (sous réserve) LMCDATA et LMCMASK sont dans le shifter.
|
La troisième innovation du STE est le rajout sur la gauche de deux connecteurs DB15 permettant de brancher jusqu'à 4 joysticks, 2 paddles ou 1 stylo optique, mais aussi le pilotage de montages externes, car il est possible d'écrire sur ces deux ports. Sur la figure 9 se trouve le schéma de branchement au système de ces deux prises. Par simplicité, les reseaux de résistances pull-up n'ont pas été représentés. Sur la droite, on retrouve tous les signaux de pilotage que nous avions entrevu lors de la description du GST MCU. Puisque c'est dans ce dernier que se trouvent tous les registres relatifs aux deux ports (figure 12). Les 4 bits de direction des joysticks 0 et 1 sont dirigés sur les 8 bits de poids faible du bus de données par un 74LS244 (octuple buffer 3 états) piloté par le signal *JOYRL (JOYsticks Read Low). De même, les 4 bits des joysticks 2 et 3 sont dirigés sur les 8 bits de poids fort du bus grâce au signal *JOYRH (JOYsticks Read High). Ainsi, un seul registre de 16 bits contient les quatre directions des quatre joysticks (SFF9202). Un troisième 74LS244. activé par le signal *BUTTON, est utilisé pour les 4 bits FIREx, les 4 bits de poids fort étant toujours à 1. Enfin, un 74LS373 (octuple latch) permet d'envoyer sur les quatre broches de direction des joysticks 0 et 1. respectivement, les 4 bits de poids faible et de poids fort d'un octet de poids faible du bus de données. La capture de I octet (latch) se fait à la réception du signal *JOYWL (JOYstick Write Low). alors que la sortie du circuit à destination des deux ports est validée par le signal *JOYWE (JOYstick Write Enable). Sur chaque port, un paddle peut être branche. Ce dernier informe de sa position le GST MCU par l'intermédiaire d'un NE556 qui contient deux convertisseurs de tension en impulsions de fréquence variable. C'est le GST MCU qui analyse la largeur de ces impulsions transmises par les lignes *PADxX et *PADxY et en déduit les valeurs (0 a 255). |
Enfin, il est possible de brancher
un stylo optique, mais je ne suis pas certain de la manière de le brancher.
Deux registres sur 10 bits devraient permettre de lire la position du
stylo sur récran (10 bits pour coder 640 points maximum en haute résolution)
en X et Y *PEN serait le signal émis au GST MCU lorsque l'on appuie
sur le bouton du stylo Mais il m'est impossible de vous dire comment
le stylo envoie sa position, si ce n'est de supposer que ce dernier
utilise les signaux *PAD0X et *PAD0Y du port 0.
|
Pour finir, la figure
13 représente la cartographie mémoire d'un STE, mais du point de
vue hardware. Les accès aux zones référencées "interdit" oblige le GST
MCU à signaler une erreur d'adressage (deux bombes), mais il existe
des zones d'adresses libres que je conseillerai tout particulièrement
aux concepteurs de cartes. |
Cette étude du hardware du STE (et STF)
est maintenant terminée, puisque les grands points ont, me semble-t-il, été
traités avec le plus de détails possible sans entrer dans des considérations
trop techniques, ce qui vous a, je l'espère permis de mieux comprendre cette
machine qui n'a pas fini de dévoiler ses fantastiques possibilités. Bien entendu,
nous attendons vos découvertes, remarques et questions sur le serveur en rubrique
HARD Enfin, je tiens à remercier sincèrement SIRIUS de l'ABCS85 (will
you become a Codemaster like FlotsaM ?) pour les recherches dans les ROMs
et les tests assembleur du système pendant le mois de juillet . OTARI pour
les documents relatifs au STE, BADMAN (will be the force with you in Japan)
pour le STE (je garde) troqué contre un Amiga (ah que oui !), ma mère pour
les croque-monsieur au congélateur, Doudou pour la confiance qu'il m'a porté
au départ de ce projet et mon Méga ST qui a tenu bon sous la chaleur toride.
HardmaSTer
ST Magazine N°44
Septembre 1990
Liens | Descriptions |
Schéma Atari STE | Schéma de l'ATARI STE . |
Memory Map détaillée de la gamme ST | |
The Atari Hardware Hack Page by Vezz | Documentations sur le Hard du ST. |
CENTEK | Documentations sur le Hard du ST. |
(C) HxC2001 / Jean-François DEL NERO