★ CODING ★ CHRONIQUE A100% DES LOGON SYSTEM ★ RUPTURE FACILE ★ |
Logon System ACPC n°36 - Rupture facile | Coding Chronique A100% Des Logon System |
Pour ce numéro d'avril, nous retrouvons le père des Logon System, pour revoir le problème de la rupture d'écran sur CPC. Pour une meilleure compréhension de cet article, relisez notre numéro de décembre ou Longshot vous expliquait déjà comment repousser les limites du CRT: le processeur vidéo des CPC. Place à longshot ! Comme je vous l'avais expliqué, la rupture est la méthode consistant a changer l'adresse de l'écran en cours de balayage. Pour effectuer cela, plusieurs registres CRTC sont a notre disposition, notamment le 4,5 et 9 (revoir le numéro de décembre). Un léger problème subsistait cependant : comment stabiliser correctement l'écran ? Lorsqu'un VBL (Vertical Blanking) commence pour un écran, une zone de synchronisation (présente dans l'overscan vertical) est génerée. Le CRT doit se baser sur cette zone pour synchroniser l'image avec le début du balayage. Comment peut-il le faire ? Tout simplement grâce a un nouveau registre : le numéro 7 ! SVNCHRONISONS La synchronisation de l'écran doit être basée par rapport au VBL de la derniere rupture générée (lorsqu'on en a plus de 2, je parle des ruptures). Le registre 7 permet d'indiquer, en partant du bas de écran, le nombre de lignes caractères ou trouver le signal de synchro (qui est, je le répète, dans le VBL de la dernière rupture) pour que l'image puisse être stabilisée. Ce registre doit donc prendre sa véritable valeur durant la période d' affichage de la dernière rupture. Donc, pour être un peu plus concret, je reprends la rupture simple déjà évoquée, c'est a dire : le registre 4 = 18, le registre 5 = 0 et le registre 9 = 7. Bon, comme je vous l' avais explique, chaque rupture génère une VBL ce qui implique donc que, pour chaque VBL, le registre 7 de synchronisation doit être pris en compte. Cette prise en compte du registre 7 est traduite sur l' écran, à l'endroit de la VBL, par une « bande noire » qui correspond a la zone de synchronisation. Or, si cette zone nous intéresse pour stabiliser notre écran par rapport a la dernière rupture, elle ne nous intéresse guère pour les ruptures précédentes. Que faire pour empêcher son apparition? Non Robby, on ne met pas un sparadrap sur écran ! DUPONS LE CRT Oui, tout simplement, nous allons feinter le CRT. Pourquoi ne pas mettre le registre 7 a sa valeur maximale (qui est 127) ? Nous lui indiquerions ainsi que la zone de synchro (je rappelle que seule la dernière compte), pour toutes les ruptures avant la dernière, sera très très très bas. Donc en mettant registre 7 = 127, nous obtenons l' effet désiré: la bande noire disparaît ! Oui, je sais, tout cela est très théorique ! Eh bien voyons l'application de la chose grâce a un petit exemple prédigéré : les demos de Fefesse à la portée de tous ! Voici donc pour terminer ce chapitre sur la rupture, qui, je l'espère, vous a plu ! Vous pouvez ranger votre double-hache car vous devriez, grâce a ma petite routine commentée, vous offrir des ruptures sympa même sous Basic. Il reste beaucoup de notions a développer, mais comme je le disais hier a luke Skywalker: Demain, tu seras prêt !! ; |
Page précédente : Logon System ACPC n°35 - Le Gate Array |
|