Obligement - L'Amiga au maximum

Mardi 16 octobre 2018 - 01:27  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

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

 · Articles in english
 · Articles en d'autres langues


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Logiciels
 · Jeux
 · Scène démo
 · Divers


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


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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Programmation : Assembleur - Faisons une réinitialisation avec le sourire
(Article écrit par Frédéric Mazué et extrait d'Amiga News Tech - novembre 1990)


D'une manière générale, je n'aime guère les programmeurs de mégadémos, d'abord parce que je suis méchant et n'aime personne, ensuite parce que j'ai tellement vu de "sinus-scroll" et autres que je ne suis pas loin de l'indigestion, enfin parce que lesdits programmeurs programment la plupart du temps en utilisant des routines élaborées par d'autres (le piratage va bon train !), et qui plus est comme des cochons, sans le moindre respect pour le formidable système d'exploitation de cet Amiga que j'aime tant (il faut bien que j'aime quelque chose quand même !).

Vous ne me croyez pas ? Alors laissez-moi vous raconter : il était une (mauvaise) fois où je me suis laissé aller à lancer une démo (tout le monde craque un jour ou l'autre). Que vois-je ? Une démo belle et même superbe, avec une musique bien tapageuse comme il se doit. Bien me dis-je et je clique la souris pour quitter. Et alors là, qu'arriva-t-il ? Un fait ahurissant, désolant, exaspérant, horripilant, terrifiant, décevant, énervant, agaçant, désopilant, crispant, irritant, excrément : la LED de mise sous tension de mon Amiga à moi se met à clignoter, une espôvantable couleur jaune apparaît sur le moniteur, puis l'ordinateur finit tant bien que mal par faire une réinitialisation gouroutisante au lieu de me rendre la main.

Comme je suis un très vilain curieux, j'examine de plus près ce trepelu programme et m'aperçoit que l'auteur a semé un tel b..... dans la machine qu'il ne sait plus comment rendre la main. Bon admettons, mais là où je me roule par terre de rire, c'est qu'il m'apparaît que notre auteur n'est même pas capable de programmer une toute bête réinitialisation convenablement. Qu'a-t-il fait : un saut en ROM à l'adresse $FC00D2 comme ça, sans la moindre délicatesse. C'est ce très misérable saut en ROM qui provoque le phénomène décrit plus haut (beurk !). Mais là où ça devient grave, c'est que j'ai vu il y a peu de temps dans certains ouvrages ou revues des routines de réinitialisation aussi mal programmées : aaarrrgh !

Une réinitialisation propre

Cela suffit. Je vous donne donc le moyen de redémarrer l'Amiga à chaud convenablement. Quelques explications sur ce programme : on appelle la routine Supervisor d'exec.library (ne pas confondre avec Superstate). Cette routine met l'Amiga en mode Superviseur (afin de permettre l'emploi des instructions privilégiées du 68000) et saute immédiatement dans un convertisseur de trap pointé par A5 (vous pouvez faire quelques révisions sur ce sujet dans l'article Guru Interceptor). Dans ce convertisseur de trap, on charge $2 dans A0 puis on utilise l'instruction 68000 réinitialisation.

De par la connexion des broches du 68000, cette instruction provoque le recouvrement de la mémoire Chip via le CIA-A par la ROM, il suffit alors de sauter à l'adresse pointée par A0, qui de ce fait vaut $FC0002, pour suivre un processus de réinitialisation normal. Au cours du processus de réinitialisation, le bit 0 du CIA-A est inversé pour annuler le recouvrement mémoire. Pour le processus de réinitialisation, vous pouvez vous reporter à l'article Boot Allocator.

Par ce simple procédé, l'horrible couleur jaune n'apparaît plus, mais ce qui est beaucoup plus important, c'est que grâce à l'emploi de l'instruction RESET, tous les périphériques et autres cartes connectés à l'Amiga seront correctement réinitialisés.

Paresse maximum

Avez-vous remarqué que pour faire une réinitialisation par le clavier, il faut appuyer en même temps sur trois touches du clavier tellement éloignées les unes des autres qu'il est nécessaire d'utiliser les deux mains ? Voilà pourquoi, j'ai ajouté dans le listing l'instruction include "misc/easystart.i" qui permet au programme d'être lancé depuis le Workbench en cliquant une icône.

Il vous est maintenant possible de faire une réinitialisation d'une seule main ! Bien entendu, ce que vous faites de votre autre main pendant ce temps ne me regarde pas.

assembleur

PAL

Comme autre application à la réinitialisation, je vous propose, même si l'idée n'est vraiment pas nouvelle, un petit programme qui teste si l'Amiga a bien démarré en PAL. Si oui, le programme rend la main sans autre forme de procès. Sinon c'est que l'Amiga a démarré en NTSC et dans ce cas on fait une réinitialisation, Vous pouvez placer ce programme en début de votre startup-sequence, mais il est encore possible de faire mieux : ce programme est entièrement écrit en code relatif au PC et peut donc être installé dans un bloc d'amorce. Ainsi, si l'Amiga qui vient de démarrer est par NTSC saboté, il pourra rebotter au débotté, voilà qui devrait vous botter en beauté. Et tout ceci avec une perte de temps minimum.

Il n'est point vrai que je n'aime personne et pour preuve avant que de vous quitter bonnes gens, gueux, vilains, affamés, croque-lardons, clochepins, porte-rogatons, gaigne-deniers, lichecasses, goinfres, coquillards, golfarins, gloutons, quémandeurs, gourmands, mais non pas vous jeunes pucelles, mais vous surtout nobles dames et gentes damoiselles, entendez la devise humaniste, généreuse, charitable, bienveillante, prodigue et débonnaire du bon et pantagruélique auteur de cet article : Frédéric Mazue avec ses copains partage son pain !

assembleur
assembleur


[Retour en haut] / [Retour aux articles]