Obligement - L'Amiga au maximum

Jeudi 18 avril 2024 - 10:15  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in english


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Bidouille : Gonfler l'A1000 à 1 Mo ou plus
(Article écrit par Laurent Fabre et extrait d'A-News (Amiga News) - mai 1989)


Salut les amoureux de l'A1000 ! A en juger par vos lettres et vos coups de téléphone, vous êtes nombreux à rechercher un moyen simple et peu onéreux d'étendre votre mémoire. Cela se comprend quand on voit le coût actuel des puces mémoire et l'habitude que prennent les programmeurs à utiliser de plus en plus de mémoire.

Pour clore une question qui revient périodiquement et à laquelle j'ai déjà répondu un nombre incalculable de fois, non il n'est pas possible de brancher simplement une carte A501 sur le port frontal de l'Amiga 1000. Ceci pour une raison simple, l'organisation décodage d'adresse et le type de ROM utilisées sont plutôt incompatibles. D'un côté, des composants 64 kbits x 4, de l'autre des 256 kbits x 1 !... Entendons-nous bien : ce n'est pas impossible mais plutôt inutile. L'adaptation revient à réorganiser toute la carte pour en fait n'en réutiliser que les boîtiers de mémoire. De plus, il faudra réécrire un utilitaire d'accès pour l'horloge, si elle peut être récupérée, car dans l'A500 elle est adressée par Fat Agnus... Donc on laisse tomber.

Une autre question qui passe assez souvent : "existe-t-il une extension frontale qui permet de passer à un méga ?". Ma réponse est : oui, je crois. Il me semble avoir vu ça sur une revue allemande il y a longtemps. Toutefois, une interrogation demeure dans mes petites méninges surchargées, il n'y a pas sur le connecteur frontal de quoi adresser plus de 256 ko (?). Donc je laisse aussi tomber et je m'en va vous causer d'une bidouille marrante qui tourne sur mon A1000 depuis plus d'un an.

A ma sauce

Le principe est sûrement similaire à celui d'une éventuelle extension frontale de 726 ko. J'avais à l'époque pompé l'idée dans le courrier technique que recevaient certains amigaphiles privilégiés, mais depuis le magazine Amazing Computing par la plume de M. Erving en a déjà publié une remoulure. Le temps étant aux extensions de mémoire, je m'en va vous remettre ça à ma sauce.

Donc à la base de tout, on peut extraire des docs Amiga les choses suivantes : la zone mémoire allant de 512 ko à 2 Mo, soit de $80000 à $1fffff en hexa, est déclarée réservée. Cette zone se situe juste au-dessus des 512 ko de mémoire Chip ($7fffff) et on peut supposer qu'elle était destinée à recevoir disons les 2 Mo de mémoire Chip qui devaient planer dans les rêves de Jay Miner à l'époque. Supputation Cupertinienne s'il en est, mais étayée par le fait que les routines du Kickstart sont prévues pour configurer ce Mo et demi de mémoire s'il était présent dans la machine. Ceci va d'ailleurs nous poser quelques problèmes, mon propos visant justement à aller loger de la mémoire à ces adresses, il serait gênant de se retrouver avec 512 ko de mémoire configurée en Chip alors que les circuits spécialisés seraient bien en peine d'y accéder !

Examinons maintenant la circuiterie de décodage des adresses mémoire de notre chère (ô combien à l'époque...) machine. Nous pouvons constater que les mémoires sont du type 4464 soit 64 kbits fois un quartet par boîtier. Avec deux boîtiers nous obtenons 64 ko. Ce choix baroque pourrait s'expliquer par le fait qu'à ses débuts, l'Amiga devait être une machine dotée d'un 68008 avec 64 ko (!) de mémoire. Par comparaison, les mémoires plus courantes de type 41256 sont organisées en 256 kbits fois 1 bit, il faut donc huit boîtiers pour obtenir un octet complet avec un pas minimal de 256 ko, le nombre de boîtiers nécessaires pour obtenir 256 ko est donc le même.

Avant que je ne devienne encore plus incompréhensible, sachez, lecteurs chéris, que je me suis couché très tard pour vous "DeluxePainter" un petit crobard qui vous permettra de suivre ma prose. Figure 1 il me semble. Pour le moment, laissez tomber les liaisons en gras, ce sont des fils que nous allons rajouter plus tard.

Donc nous sommes en présence de boîtiers de 64 kbits x 4. L'Amiga disposant d'un processeur communiquant sur un bus de 16 bits, il nous faudra quatre boîtiers pour les lui présenter, ces quatre boîtiers devant réagir ainsi : deux pour présenter l'octet de poids faible ou octet pair, deux pour présenter l'octet de poids fort ou octet impair. De plus, ces octets étant toujours situés sur des adresses consécutives, l'astuce consiste à placer les quatre boîtiers à la même adresse puis à les activer deux à deux pour récupérer les octets Upper & Lower (in english, sure boy). Ceci implique que les adresses soient incrémentées de deux en deux, ce qui correspond à supprimer le bit d'adresse de plus faible poids AO. Ceci tombe très bien vu que le 68000 ne dispose pas de broche AO (hé hé), ceci explique aussi pourquoi #000000003 clignote en rouge en haut de votre écran quand vous essayez d'accéder à un mot sur une adresse impaire !

Pour présenter une adresse à nos boîtiers, pas de problèmes, on utilise les pattes prévues à cet effet. Pour les sélectionner deux à deux, pas de problèmes non plus, on va relier les "chip-select" deux à deux, et enfin pour les organiser en octets pair et impair consécutifs on a généré les signaux UCEN et LCN. Sachant que UCEN veut dire "UpperChipENable" et LCEN "LowerChipENable", nous voilà partis.

Canaux DMA

Jusqu'ici, nous n'avons parlé que de l'adressage par le 68000. L'Amiga disposant de 25 canaux de DMA logés dans Agnus, il a fallu permettre à ce circuit d'accéder à notre mémoire. Pour ce faire, les ingénieurs de chez Amiga ont pendu le circuit qui s'étale sous vos yeux en figure 1. Les signaux UCEN et CLOCK pilotent les sorties de U1H qui est un 74F138, soit un démultiplexeur de 3 vers 8. Les signaux LCEN et CLOCK pilotant le démultiplexeur pair. Le boîtier en U1J est un 74F399, soit un quadruple multiplexeur de 2 vers 1. La fonction de ce multiplexeur est de permettre les accès mémoire soit au 68000 soit à Agnus suivant l'état de ses lignes de contrôle. En effet, quand ce sont les entrées I0x qui sont latchées, le 68000 présente ses adresses sur le bus, quand se sont les entrées I1x qui sont latchées, c'est Agnus. A partir de ça, les démultiplexeurs se chargent de sélectionner les boîtiers de mémoire en générant les paires de "chip-select" adéquats. Et hop, voilà pour l'explication du pourquoi de la chose, voyons maintenant le comment.

A1000 1 Mo
Schéma 1

Le comment

Tout ce que nous avons à faire pour doper notre bécane de 512 bons ko de mémoire, c'est de rajouter 16 boîtiers de mémoire type xx464 et câbler les parties non utilisées de la circuiterie de décodage. Car le meilleur, c'est que tous les circuits nécessaires sont déjà sur la carte (il aurait été très facile pour Commodore de prévoir une extension frontale allant jusqu'à 1 Mo). Regardons maintenant les parties en gras de la figure 1, ce sont les seuls éléments que nous allons rajouter pour décoder notre demi-méga. Vous pouvez voir que nous allons rajouter deux signaux sur les entrées d'un multiplexeur libre de U1J, à savoir A19 pour le côté 68000 et la masse soit un niveau logique 0 pour le côté Agnus. Ainsi, seul le 68000 pourra accéder à ces 512 ko ce qui est bien notre but. La sortie correspondante est connectée sur les entrées de plus fort poids S2 des deux démultiplexeurs. Les résistances de 33 ohms servent à améliorer les niveaux logiques sur les brins de câblage qui devront rester assez courts. Voilà pour le comment de la chose.

Câbler tout ça

Bon, ceci dit, il va falloir câbler tout ça. Avant de vous précipiter, sachez qu'il va falloir souder des mémoires qui sont des composants ultra-fragiles. De plus, pour réutiliser les boîtiers U1I, U1J et U1H il va nous falloir couper les pattes qui nous intéressent ! Donc bidouille délicate à réserver aux amateurs avertis. D'ailleurs, comme il est d'usage de le faire, je signale que aussi bien moi que la rédaction d'A-News déclinons toutes responsabilités quant aux dommages que vous pourriez occasionner à votre machine en effectuant cette modification. Rassurez-vous quand même, comme je vous l'ai déjà dit, ce montage tel qu'il est décrit fonctionne sur mon Amiga depuis plus d'un an maintenant.

Étant donné que nous sommes entre bricoleurs compétents, je ne vous expliquerai pas comment ouvrir votre Amiga. Pour enlever la carte fille (daughter board), il faut ôter les trois vis qui la maintiennent, puis en la faisant jouer, la tirer précautionneusement vers le haut. En vous aidant de la figure 2 repérez les composants qui nous intéressent. Pour vous aider, les lettres U1J par exemple, signifient que le composant se trouve aux coordonnées 1,J sur la carte. Si vous avez votre machine face à vous, les chiffres sont sur le bord gauche de la carte, les lettres sur le bord inférieur le long de la face avant. Les mémoires sont facilement repérables. Ce sont les huit boîtiers disposés en deux rangées de quatre, coincées entre le bord inférieur gauche de la carte et les trois circuits spécialisés reconnaissables à leurs deux carrés dorés.

A1000 1 Mo
Schéma 2

Une fois que vous aurez repéré les composants, référez-vous à la figure 2 pour déterminer les pattes à couper. Il faut les couper au ras du circuit imprimé puis les plier vers le haut afin de pouvoir souder les fils dessus plus tard. Pour U1H et U1I, les deux 74F138, il faut relever la patte 3. Pour U1J, le 74F399, il faut relever les pattes 10, 11 et 12.

Multicouches

Une fois que vous aurez relevé les pattes, mettez votre fer à température. Utilisez de préférence un fer de faible puissance ou thermostaté, d'abord parce que les circuits sont sensibles à la chaleur, mais aussi parce que la plaque de l'Amiga est multicouches. Une surchauffe de celle-ci peut entraîner un décollement des couches...

En utilisant du fil de câblage monobrin, style fil à wrapper, et en utilisant des longueurs minimums, reliez les pattes 3 des 74F138 et la patte 10 du 74F399. Reliez la patte 12 du 74F399 à la masse qui se trouve sur la patte 8 du même circuit. Soudez sur la patte 11 du 74F399 un brin d'une longueur d'au moins 25 cm. Gardez ce fil en réserve nous en reparlerons à la fin. Il s'agit du fil qui amènera A19. Prenez les huit résistances de 33 ohms 1/4 watt et coupez l'une des queues pour en laisser environ 1 cm. Soudez ces huit résistances sur les deux 74F138 en laissant libre la queue la plus longue.

Après les échauffements, le plat de résistance. Il va s'agir de souder les mémoires en piggy-back deux à deux. Référez-vous à la figure 3 pour les détails. La broche 16 de chacune des deux mémoires doit rester en l'air. Attention, ces composants sont très sensibles à la chaleur et à l'électricité statique. Un bon truc consiste à enficher le boîtier du dessous sur un support et à piquer ce support sur un bloc de polystyrène recouvert de papier aluminium, le support faisant alors office de radiateur. Une fois que vous aurez soudé vos 16 mémoires en huit paires piggy-back, vous devrez constituer quatre quartés de mémoire composés comme expliqué ci-après.

A1000 1 Mo
Schéma 3

Reliez les pattes

Prenez deux paires piggy-back et reliez les pattes 16 des deux mémoires du dessus. Une fois ceci fait, soudez encore un fil d'une quinzaine de cm sur cette même broche 16 afin de pouvoir la relier aux résistances de 33 ohms. J'appellerai ce fil "Haut" pour la suite. Faites de même pour les broches 16 des deux mémoires du dessous. Le fil de quinze cm que vous souderez dans cette phase s'appellera "Bas".

Une fois vos quatre quartés confectionnés, soudez les huit supports sur les mémoires de l'Amiga. Surtout chauffez le minimum possible !

Quand ceci sera fait, enfichez vos mémoires en piggy-back et en vous aidant de la figure 2, reliez les brins de quinze cm à leurs résistances correspondantes. Coupez ces brins de façon à n'utiliser que la stricte longueur nécessaire.

J'espère que vous êtes arrivé jusqu'ici entier, il ne reste plus qu'à brancher le brin de la patte 11 du 74F399, le fameux A19.

Pour les fainéants ou les impatients, branchez ce fil directement sur la ligne d'adresse A19 que vous trouverez sur la broche 47 du 68000. En effet, avec le Kickstart 1.3, notre extension ne se configurera souvent pas. Un simple "AddMem" et zou, nous voilà avec 1 Mo. Seulement, il arrive que la routine qui teste la mémoire Chip configure nos 512 ko supplémentaires en mémoire Chip ! Vu que les circuits propriétaires n'arriveront pas à récupérer leurs données, ça va planter à tous les coups. La solution consiste donc à ne transmettre A19 qu'après l'exécution de la routine d'AutoConfig.

M. Irving a imaginé un astucieux système de flip-flop qui latche le signal WPRO* de la mémoire Kickstart sur les fronts de la LED du lecteur de disquette avant d'en faire un ET avec A19. Mon but n'étant pas de lui pomper son article, j'invite ceux qui font dans le raffinement à se reporter à Amazing Computing Volume 2, #1. Ce même M. Irving propose aussi une solution logicielle au problème. Le programme qu'il fournit étant bogué et comme je suppose qu'il s'agit d'un domaine public, je vais essayer de vous proposer ma propre version en téléchargement sur DEEP. A ce propos, ma version marche impec sauf avec VDK (?), si quelqu'un a la solution ça m'intéresse.

D'un point de vu plus pratique, voici la solution que j'utilise. Il faut savoir que la configuration de deux mémoire s'effectue entre le moment où vous avez fini de charger le Kickstart et le moment où la machine commence à charger une disquette amorçable. Si, au cour d'une réinitialisation, l'Amiga constate une altération de la structure ExecBase, il relancera les routines de test de la mémoire lesquelles auront fini leur travail au moment où la machine ira chercher une disquette amorçable. Si la structure ExecBase n'a pas été altérée, la machine redémarrera sans chercher à connaître sa configuration mémoire. Ces petites choses étant acquises, il apparaît que la bête solution de l'interrupteur convient très bien pour résoudre notre problème. Il suffit, en effet, d'intercaler un interrupteur entre A19 et la broche 11 de notre 74E399. Lorsque l'on démarre la machine ou que l'on fait une réinitialisation, on ouvre le contact en dévalidant ainsi les 512 ko supérieurs. Dès que la machine affiche la main réclamant le Workbench, ou qu'elle lit une disquette amorçable, on peut fermer le contact. Attention ! Si vous avez mis "AddMem" dans votre startup-sequence, veillez à fermer le contact avant que "AddMem" ne s'exécute ! Sinon... essayez une fois pour voir, c'est assez marrant...

Comme tous bons électroniciens, même du dimanche comme moi, nous n'allons pas insérer notre interrupteur sans un minimum de forme, ça ne ce fait pas et surtout sa plante la bécane.

Jetez un oeil la figure 4, tout y est, il s'agit d'un simple antirebond constitué d'un bistable dont on utilise la sortie pour faire un ET avec A19. Vous vous débrouillerez à fixer le 74xx00 et l'interrupteur. Pour ma part, l'interrupteur est en face avant â côté du lecteur, et le 7400 est collé au rubson (si si !) sur les nervures au dos de la face avant. Vous pouvez piquer le +5 V sur la large piste qui se trouve sous le "I" sérigraphié par exemple, ou sur la patte 16 des 74E138, la masse se trouve partout notamment sur le blindage (!).

A1000 1 Mo
Schéma 4

Pour les gourmands en mémoire, il est très possible de pousser jusqu'à 2 Mo en rajoutant des démultiplexeurs. Cependant, attention à deux choses : si vous avez une carte fille, la place pour les mémoires est comptée.

Dernière chose pour les étourdis, notre mémoire étant placée juste après les 512 premiers ko, il faudra taper "AddMem 80000 fffff".

Liste des composants
  • Huit supports DIL à souder 18 broches.
  • Huit résistances 33 ohms 1/4 watt.
  • Deux résistances 2,2 kiloohms 1/4 watt.
  • 16 puce mémoire type xx464 (4464, 50464, etc.).
  • Un 74xx00 suivant vos fonds de tiroir. Une version rapide type F, S ou HCT fera très "high-tech" mais c'est inutile.
  • Un inverseur unipolaire miniature.
  • Du fil monobrin de préférence.
  • Un raton baveur.


[Retour en haut] / [Retour aux articles]