FAISONS RESET AVEC LE SOURIRE D’une manière générale, je n'aime guère les programmeurs de méga- dé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 I), 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 à booter 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-power 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 un reset gouroutisant 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 un tout bête reset 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 (beurkl). 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 reset aussi mal programmées : Aaarrrgh ! UN RESET PROPRE Cela suffit. Je vous donne donc le moyen de rebooter 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 Gurujnterceptor). Dans ce convertisseur de trap, on charge $ 2 dans A0 puis on utilise l’instruction 68000 RESET. De par la connection des pins (prononcer pine) du 68000, cette instruction provoque te recouvrement de la chip- ram 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 reset normal. Au cours du processus reset le bit 0 (prononcer bite) du CIA-A est inversé pour annuler le recouvrement mémoire. Pour le processus reset, vous pouvez vous reporter à l'article Boot-Allocator dans CR 26. 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.