ARTICLES
62 / 74 |
Les tailles d'écrans : Overscan full
Les tailles d'écrans : Overscan full
Les tailles d'écrans : Biggerscreen
Les tailles d'écrans : Overscan horizontal
Les tailles d'écrans : Overscan vertical
Les tailles d'écrans : Normal
Les tailles d'écrans : Normalscreen Smalldisplay
Les tailles d'écrans : Smallscreen
Technique permettant d'utiliser tout l'écran ou presque (Le border étant réduit au strict minimum, voir même a complétement disparu de l'écran).
Pour Overscan full autrement dit du Fullscreen !!! Tiens temps que j'y suis: Overscan signifit: "en dehors du scan", il s'agit donc de la VBL et pas de l'affichage plein écran !!! Un écran plein sera toujours un "fullscreen" même si la encore ce terme est faux... Il faudrait parler de moniteur car l'écran point de vue CRTC n'est jamais plein.
Le CTRC gérant une page écran de 32Ko au lieu des 16 Ko habituelle. C'est le R12 qui est chargé de ce travail.
Par défaut, l'écran affiché est stocké a l'adresse &C000 a &FFFF (16Ko), mais il est possible de changer cette valeur et d'afficher le contenu d'une zone mémoire de 32Ko (en fait vu la taille de l'écran vous utiliserez environ 24Ko), après malheureusement il ne vous restera pas beaucoup de place en mémoire de disponible.
R12 = 12 (&0C) zone mémoire de &0000 a &7FFF
R12 = 28 (&1C) zone mémoire de &4000 a &BFFF
R12 = 44 (&2C) zone mémoire de &8000 a &FFFF
R12 = 60 (&3C) zone mémoire de &C000 a &3FFF
En binaire donc pour R12 (du CRTC) :
Bits : | 7 6 5 4 3 2 1 0 |
Bits 7 et 6 : | Toujours à 0 |
Bits 5 et 4 : | Sélection de la page de 16Ko pour l'écran: 00=&0000 ; 01=&4000 ; 10=&8000; 11=&c000 |
Bits 3 et 2 : | c'est un bug mais passer en 11 permet de balayer 32Ko de Ram pour l'écran... Bien entendu il s'agira de deux pages consécutives: &0000 et &4000; &4000 et &8000 ou &8000 et &C000. |
Bits 1 et 0 : | selection de l'adresse (au word sur 10 bits: bits 1 et 0 de R12 et 8 bits de R13) |
Il est tout a fait possible de réaliser un affichage en overscan entièrement en BASIC, mais c'est assez complexe a gérer, beaucoup de registre a modifer, il faut faire attention de ne pas toucher aux zones systèmes et en plus il faut demanderau CPC de gérer par exemple le code Basic à la place de votre écran en &C000.
R13 permet de décaler le début de la lecture pour une zone mémoire.
Imaginons que vous vouliez une page écran en overscan de &0000 a &7FFF sans toucher a la zone système de &0000 a &003F
Le border est affiché quand C0 (compteur de R0) atteind R1 sur une ligne. R0 ayant une valeur standard de 63 (64-1), même avec une valeur de 50 pour R1, le border est toujours existant.
Exemple : Dick Tracy (Ecran titre)
En cherchant un écran en overscan vertical, j'ai eu la surprise de découvrir que la page écran de Dick Tracy était finalement en Overscan Full (Le BORDER est réduit comme peau de chagrin, il est en rouge).
R1 = 46 (&2E) ; R2 = 49 (&31) ; R6 = 34 (&22) ; R7 = 35 (&23) ; R12 = 60 (&3C) ; R13 = 12 (&0C)
Exemple : Super Cauldron (Ecran titre)
Ici aussi le BORDER est réduit comme peau de chagrin, il est en rouge.
R1 = 47 (&2F) ; R2 = 50 (&32) ; R6 = 33 (&21) ; R7 = 35 (&23) ; R12 = 44 (&2C) ; R13 = 37 (&25)
Exemple : Le Mur De Berlin Va Sauter (Ecran titre)
Encore plus fort, le BORDER n'est même plus visible a l'écran.
R1 = 48 (&30) ; R2 = 50 (&32) ; R6 = 34 (&22) ; R7 = 35 (&23) ; R12 = 13 (&0D) ; R13 = 00 (&00)
Article créé le : | Mercredi 21 Novembre 2012 à 11 h 29 |
Dernière mise à jour le : | Vendredi 23 Novembre 2012 à 12 h 14 |