UNE CARTE "PRAM"
sur le port cartouche du ST

ST magazine - N°42 - juillet 1990

Voici un montage destiné à ceux qui mettent au point des applications ou des programmes de diagnostic sur cartouche, ou bien à ceux qui s’en prennent carrément au TOS, je veux parler des “patcheurs fous”, mes potes...

Je ne sais pas si vous êtes comme moi, mais j'ai horreur de passer 10 minutes à effacer 2 REPROMs, 1 minute à les programmer, 10 secondes à les monter sur leur support et... 1 seconde pour constater qu'il va falloir recommencer ! Voici la solution que je vous propose : une mémoire vive qui ne perd pas son contenu lorsque l'on coupe l’alimentation (PRAM = Permanent RAM) ; l’énergie nécessaire à cette sauvegarde sera apportée par 2 piles ordinaires (ou une pile au lithium si vous préférez). Le principal avantage de cette solution est de permettre de modifier très rapidement tout ou partie du contenu de la PRAM. Une fois l’application mise au point de cette façon, vous pourrez la mettre en
REPROM comme par le passé mais avec l’assurance du bon résultat.

RAPPELS SUR LE PORT CARTOUCHE

Les caractéristiques de ce port ont été abondamment décrites dans les deux articles de Diego Bonanni parus dans ST Magazine 37 (p.53 à 57) et 38 (p.50 à 59). Pour ceux quine les auraient pas sous la main, voici quelques rappels :ll s'agit d'un connecteur 2x20 broches permettant d’accéder aux 16 lignes de données du 68000. Seule une opération de lecture peut être réalisée sur ces données (pas de signal W/Fl). De plus, le signal d’acquittement d’échange (/DTACK) pour le port cartouche étant géré de façon interne (par le GLUE), il faudra répondre à toute opération de lecture aussi rapidement que possible (moins de 200 ns). Les signaux A1 à A15 permettent d'adresser 32K mots de 16 bits (les signaux IUDS et /LDS sélectionnant respectivement les octets pairs et impairs). Deux sorties supplémentaires /ROM4 et /ROM3 permettent de disposer de 2 bancs mémoires de 64 Ko (donc 128 Ko au total). Le signal /ROM4 est actif pour toute lecture dans l'intervalle FA0000 à FAFFFF tandis que le signal /ROM3 est actif dans l’intervalle FB0000 à FBFFFF.

DESCRIPTION DU MONTAGE

Deux boîtiers mémoires RAM statique de 32 Ko constituent le coeur du dispositif. J'ai utilisé des NEC 43256, mais d’autres conviennent aussi bien. Attention! choisir impérativement des versions à temps d’accès inférieur ou égal à 150 ns (ça servira pour une prochaine manip). Ces 2 boîtiers permettront de disposer de 64 Ko qui seront accessibles dans l'intervalle FA0000 à FAFFFF. L'intervalle FB0000 à FBFFFF sera utilisé uniquement pour réaliser les écritures dans la PRAM. Le circuit monostable IC7 permet de fabriquer une impulsion de 100ns retardée d’environ 40ns sur la transition descendante du signal /ROM3. Cette impulsion d'écriture sera transmise aux 2 FlAMs à travers le circuit IC3. Le circuit lC3 assure la sélection et la protection des circuits RAM. Un interrupteur SW1 permet d’interdire toute écriture dans les RAMs : celles-ci se comportent alors comme des REPROMs (le contenu ne peut pas être détruit accidentellement lors de l’exécution de l'application). Un autre interrupteur SW2, optionnel, permet la désélection permanente des RAMs : cette protection peut s'avérer utile lors des branchements/débranchements du module PRAM au ST. Le circuit lC6 (sorties en collecteur ouvert) isole les circuits alimentés (lC1,lC2 et IC3) lors de la mise hors tension du ST. Attention : prendre impérativement un 74LS266 pour lC6 et non la version HCMOS qui n'a pas les sorties en collecteur ouvert l... Les circuits IC4 et lC5 permettent de mémoriser le mot à écrire : ce dernier étant fourni sur les lignes d'adresse. Les 2 diodes D1 et D2 permettent d'appliquer sur les circuits IC1, IC2 et lC3 une tension suffisante pour le maintien des données (lorsque D1 conduit) ou le fonctionnement normal (lorsque D2 conduit). Enfin, la diode électroluminescente (LED) D3 signale que le ST est sous-tension.


RÉALISATION

Le module PRAM visible sur la photo a été câblé “à la main” avec du fil à wrapper soudé entre les bornes des supports de composants. ll est évidemment préférable de réaliser ce montage sur circuit imprimé (c’est plus rapide, plus sûr, plus propre l...). Un tel circuit a d'ailleurs été réalisé par “LOOK” et vous pouvez vous renseigner auprès de “Automatic 2000” (2, barrière de Bayonne, à Toulouse).

UTILISATION

Lorsque le module PRAM est raccordé au port cartouche, on peut lire directement le contenu des RAMs dans l'intervalle d'adresses FA0000 à FAFFFF. Pour écrire (on ne peut écrire que mot par mot), on procède de la façon suivante, grâce à cet exemple où l'on désire écrire SABCD en $FA1234 (donc $AB en $FA1234 et SCD en $FA1235) :

En assembleur:

TST.B $FAABCD
    ;permet de mémoriser $ABCD
TST.W $FB1234
    ;permet d'écrire en $FA1234

En basic GFA :

Br=&HFA0000 ! base de lecture
Bw=&HFB0000 ! base d'écriture
=Peek(Br+&HABCD)
        ! mémorise la donnée $ABCD
A=Dpeek(Bw+&H1234)
        ! écrit la donnée en $FA1234

Une série de 3 programmes utilitaires (chargement de la PRAM avec un fichier, vérification du contenu de la PRAM, sauvegarde de la PRAM dans un fichier) est disponible sur la disquette du journal ("ST MAG—42"), et le sera bientôt sur notre serveur, le bô 3615 STMAG.
Attention : ce circuit utilise un minimum de composants. N’utilisant pas de buffers d’isolement, il vaut mieux éviter de raccorder ce montage au ST sous tension : des bombes seraient à craindre !...

Bon travail et à bientôt pour une  manip beaucoup plus audacieuse : la transformation d'un ST en TT ! Plus simplement, l’installation d’une
carte 68020 dans le ST...

Jean Conter