BIT-BLT
  ST magazine - N°26 - janvier 1989
RODOLPHE CZUBA

Le titre devrait évoquer chez vous le terme "Blitter", qui a fait son apparition depuis un an et demi dans l'univers Atari. En effet. BIT-BLT signifiait <<bit_mapped block manipulator>>, ce qui résume très bien la fonction du Blitter Atari : il transfère des blocs mémoire d'un endroit de la mémoire dans un autre. Bien entendu, qui dit mémoire, dit aussi mémoire vidéo, c'est-à-dire graphisme. Le Blitter n'est que la réalisation hardware d'instructions logicielles de transfert de blocs mémoires ou rectangles graphiques.

Si vous êtes donc tenté par la présence du blitter dans votre machine, ce qui suit devrait vous permettre de l'installer dans votre ST ou STF (ancienne carte l). La mise en place du blitter sur les STF nouvelle carte et sur les Megas ST, quant à elle, ne pose aucun problème, puisque ces derniers possèdent l'emplacement réservé au circuit (quoiqu'il faille quand même se procurer le support du circuit pour les STF).
Avant tout, je tiens à rappeler que le blitter n'est pas pris en compte par le système si vous possédez des ROMs de 85 (vous référer à l'article du mois dernier pour le remplacement par les ROMs 86/87) ! Ensuite, il ne faut pas vous imaginer que le fait de posséder le blitter va accélérer tous vos jeux et vos programmes en général : en effet, le blitter n'entre en fonction que pour les instructions GEM LINE A et VDl (celles qu'Atari demande d'utiliser !) et comme nous savons que les routines des ROMs sont lentes, les programmeurs de jeux préférent utiliser leurs propres routines d'affichage que le Blitter, bien sûr, laisse passer ! Alors le blitter se manifeste surtout pour le GEM (bureau, boîtes de ‘sélections, fenêtres, scrollings à l'intérieur des boîtes et des fenêtres, remplissages, rotations, zooms, réductions, etc.).

Le coût du montage n'est que de 150 francs environ... Oui ! vous avez bien lu. ll faut savoir que le blitter, contrairement à ce qui avait été annoncé à sa sortie. n'est vraiment pas cher : 98, 50 francs TTC l A ce prix-là, on aurait tort de se priver, d'autant qu'il est désormais disponible auprès des SAV compétents, et qu'il devrait vous suffir de le commander, quitte peut-être à sympathiser un peu avec le technicien ou le vendeur, pour l'obtenir dans un délai d'environ 3 semaines...
Ce qui est beaucoup moins évident à se procurer, c'est le support du blitter (boitier « carrier chip » type M047), ‘et je ne connais qu'une seule adresse où ce dernier est disponible (même des grands magasins parisiens ne l'ont pas !). Sinon, vous pouvez le commander par correspondance : Verospeed France, rue Henry Becquerel 60004 Beauvais, Référence du produit 119642748. Malheureusement, à la réception du paquet, j'ai pu constater que le support BIT-BLT n'était pas exactement celui que j'escomptais : si le blitter rentre bien dedans, les pattes du support, par contre, ne sont pas disposées comme il faut pour les cartes Atari. Sur ces dernières, les pattes de ces supports sont décalées les unes par rapport aux autres, alors que le support reçu possède des pattes alignées. La référence n'est donc pas valable pour une nouvelle carte de STF, mais peu importe puisqu'ici, nous allons faire notre propre carte que nous n'aurons plus qu'à adapter à la situation...

Avant de nous lancer dans la réalisation quelque peu délicate (soudeurs débutants s'abstenir !), il me semble intéressant d'étudier rapidement le blitter et le 68000, et en particulier leur brochage (voir figures 1 et 2). Les broches du blitter sont classables en 3 catégories : les données D0 à D15, les adresses A1 à A23 et les signaux de contrôle et de commande.

Si vous regardez le brochage du 68000, vous constatez qu'il y a comme un air de ressemblance entre les deux circuits : à l'exception de quelques-uns, les signaux du 68000 sont présents sur le Blitter... et en plus, dans le même ordre ! La légende du Blitter en boîtier 68000 se vérifie ici : un Blitter avait été prévu pour être soudé sur le 68000, malheureusement, pas de trace de ce Blitterl ?)... Voici la description des broches particulières du blitter (l'étoile indique un signal actif au niveau bas) :

R/*Wl(Read/Write) : indication de lecture ou d'écriture : fig1
*AS(Adress Strobe) : indique que les adresses liées au transport des données sont valables) :
*UDS et *LDS(Upper et Lower Data Strobe) : sélection de la partie forte ou faible d'un mot ;
*DTACK(DaTa Acknowledge) : accusé de prise en compte des données ;
*BERR(Bus ERRor) ;
*RESET; FCO, FC1 et FC2 (Codes fonctions) : état du processeur ;
CLK (horloge : 8 MHz) ;
Vcc (alimentation : + 6V) ;
GND (masse) ; *
BR (Bus Request) : demande de bus ;
*INT (INTerruption).

Tous ces signaux sont disponibles sur le 68000. il s'agit donc d'un simple branchement à faire entre les mêmes broches du 68000 et du Blitter. Restent certaines broches du Blitter à voir :

*BGI (BUS Grant Input, attribution du bus/entrée} ;
*BGO (Bus Grant Ouput, attribution du bus/sortie) ;
*BGACKCBUS Grant AcKnowledge. accusé de l'attribution du bus} ;
*BGKl(Bus Grant acKnowledge Input. accusé de l'attribution de bus/entrée).

Pour ces dernières. il faut que vous jetiez un œil sur la figure 3 qui vous montre comment sont branchés ces signaux sur un STF et un Mega ST {série C100166 REV 7) : une fois de, plus, des différences existent entre les deux modèles. Les quatre signaux *BGxxx sont des signaux de contrôle de bus.
Voici un descriptif de leur utilisation : lorsqu'un circuit a besoin du bus pour faire son travail, il doit le demander en envoyant un signal *BR ; dès que le patron (généralement le 68000! détecte le signal *BR, il active (dès qu'il a fini ses occupations} le signal "BG. Le circuit qui a alors émis la demande attend la désactivation des signaux *AS et *DTACK et éventuellement *BGACK si le bus était déjà occupé par un autre, pour envoyer un signal *BGACK, informant ainsi qu'il a la bien reçu l'attribution du bus demandé et qu'il le prend en charge. fig2
Le fait que le signal ‘BGACK ne puisse pas être envoyé au 68000 par le périphérique tant que la ligne n'est pas libérée. se retrouve sur le branchement pour STF. De toute façon, le signal d'attribution de bus (BG) est chaîne (évitant ainsi un « tripartisme conflictueux >> au travers des circuits susceptibles de demander le bus  (d'où les BGI et BGO du blitter. mais aussi du GLUE (son BGO n'est pas utilisé sur les STF anciennes cartes, alors que c'est le BGO du blitter qui n'est pas utiiisé sur les STF «à blitter »). C'est d'ailleurs sur le BGO disponible en fin de chaîne qu'il faut se brancher pour l'ajout d'un port BUS (voir ST Mag no 16). Quant au *BGKI du blitter, on peut penser qu'il s'agit d'un *BGACKI abrégé. uquel cas, le *BGACK se serait appelle BGACKO. C'est dans cette optique qu'est branché le blitter sur le Méga que j'ai eu l'occasion d'ouvrir (gniarf gniarf !}.
La différence entre les deux branchements ? Techniquement aucune... mais au niveau de notre réalisation, la version Méga ST nécessite deux fils en plus et surtout la coupure de deux pistes sur la carte. Donc, nous opterons pour le branchement type STF.
Ah oui, j'allais oublier de vous parler du signal ‘INT qui est à relier à une broche du MFP (voir figures 4A et 48), qui était gentiment resté libre pour le blitter. Profitez-en pour remplacer la résistance de l Kohms par une autre de 4.7 Kohms.

La carte des registres programmables du Blitter s'étend de FF8AOO à FF8A3D, parmi lesquels on trouve un registre de contrôle d'accès au bus et d'état de base :FF8A3C.
Deux bits sont à connaître : le bit 7 (occupation du bus) et le bit 6 (partage du bus). Pour démarrer le Blitter, il faut mettre à 1 le bit 7, le blitter le remet ensuite à 0.

XBIOS $40

Pour passer par le GEM, il y a une fonction qui effectue la configuration. La fonction retourne un mot dont le bit 0 indique l'état antérieur (O = traitement par logiciel, 1 = traitement par blitter), et dont le bit 1 indique la configuration (0 = pas de blitter implanté, 1 =blitter connecté).

Le blitter est prioritaire sur le bus par rapport au 68000, mais s'incline face au DMA. Le bit 6 de partage de bus indique si justement le blitter a le pouvoir (bit à 1l ou s'il doit partager le bus avec le 68000 (bit à 0). auquel cas, ils effectuent chacun à tour de rôle 64 cycles machine, l'autre étant stoppé.
fig3fig4
Pour la mise en place du Blitter, il est préférable que vous graviez une petite carte carrée sur laquelle vous viendrez souder le support et  tous les fils autour. Attention, ce n'est pas une mince affaire : il y a 59 fils à souder et il est impératif que ces fils soient les plus courts possibles, pour éviter les phénomènes de rayonnement électro-magnétique qui risqueraient d'altérer les signaux les plus rapides et de faire planter le système. En plus de cela, il faut que les fils soient disposés le plus parallèlement possible les uns aux autres (toujours pour les mêmes raisons), ce qui veut dire que vous devrez trouver un emplacement très proche du 68000 (il y a une place sur les STF entre le 68000. le DMA et le GLUEl. Utilisez du fil très fin (encombrement de 59 fils !) et un fer à souder de 30 W environ avec une panne très fine pour souder sans s'attarder sur les broches du 68000. Pour les plus doués, il y aurait la solution d'une carte avec des broches que l'on viendrait souder directement sur le 68000, mais placer la carte sur le 68000 et souder en même temps n'est pas possible à moins de concevoir une carte qui ne dépasse pas la largeur du 68000, laissant ainsi la place de souder de chaque côté. Peut-être un jour... Autre solution : dessouder le 68000, mettre un support et venir enficher la carte dedans avec le 68000 dessus (merci Platine ST !).

Pour ce qui est des performances de la bête. il est vrai qu'elles auraient pu être meilleures. Néanmoins, des le début. on constate à l'oeil une vitesse d'affichage multipliée par 2 environ au niveau du bureau, et même si d'aucuns persistent à dire que le blitter ne sert à rien, je me suis vite habitué au confort d'utilisation qu'il procure (attention aux ROMS 88/89 !). Habitude prise, on se rend mieux compte des différences lors de certaines opérations très lourdes du GEM.
Reste à espérer, enfin, que les programmeurs vont se mettre à prévoir l'utilisation du blitter -si détecté- dans tous les programmes professionnels mais aussi les jeux (comme Pacmania, le seul à ma connaissance !) au lieu de bêtement le déconnecter pour ne pas se compliquer la vie !

Je tiens particulièrement à remercier les personnes suivantes pour leur aide : Sym et Marion pour les documents. Berseb pour le Méga ST. CBC2 pour l'adresse et un technicien de SAV pour le Biitter. Enfin des remerciements spéciaux pour les PTT « grâce >> auxqueis j'ai réalisé l'article au dernier moment ! Sur ce, je vais me coucher...

Rodolphe CZUBA