★ CODING ★ AMSLIVE ★ AMSLIVE n°17 - COMMENT RÉAGIT TOUT CRTC ★ |
AMSLIVE n°17 - Comment Reagit Tout Crtc | Coding Amslive |
Nous voilà réengagés sur la rectiligne route bordée de tulipes naines menant aux arcanes du composant le plus mésestimé du CPC après d'autres. DE BUT EN BUT (EXISTE AUSSI EN VERSION "LE BUT EN OR") Les écrits sacrés qui vont suivre vous permettront de : — réapprendre à compter. Ces sacrés écrits ne vous permettront pas de : — briller en société. SELECTION PRESIDENTIELLE Le CRTC laisse en pâture aux habiles programmeurs dotés d'au moins trois doigts un ensemble de 18 paramètres appelés registres, énumérés plus loin. D'un point de vue lexical, la confusion éventuelle avec les registres du Z80 se verra évitée par l'exceptionnelle vivacité d'esprit de notre lectorat, trié sur le volet. Histoire bien connue, la sélection du registre requiert A14, A9 et A8 à 0. En forçant tous les autres bits à 1, on obtient l'adresse BCFF. D'autres valeurs conviennent tout aussi bien, il faut simplement veiller à ne pas adresser des périphériques en sus. Par exemple, changer le poids faible de l'adresse ne craint rien (sauf si A10 = 0, cf AMSLIVE &10), ce qui autorise son chargement avec la donnée à envoyer (LD BC,#BC0C : OUT (C),C équivaut donc à LD BC,#BCFF : LD A,#0C : OUT (C),A - en plus économique). Voici une petite anecdote qui je l'espère illustrera mon propos (mais j'ai un gros doute) : assise à une table (de cuisine), Hortense coupa un morceau de ficelle (de cheval). Conclusion : bien qu'assise, elle créa deux bouts. Le CRTC décode le numéro de registre sur 5 bits, ce qui implique que la valeur &20 désignera le registre 0, &21 = 1, etc. DETENTE OPTIMISATION Forts de ces informations et dans l'optique consciente et avouée d'une dispensabilité naturellement contre-balancée par l'aspect distrayant de l'étude subséquente, voyons dans quelle mesure exploiter le OUT (n),A pour la SÉLECTION d'un registre. . La contrainte A8 et A9 à 0, traduite ici par la mise à 0 des bits 0 et 1 de A, exclut les registres 1,2,3,5,6,7,9... . A10 importe peu, car il suffit de prendre n=&FF. . Le fait d'adresser le PPI (port A) ne gêne pas forcément : le port A se trouve éventuellement en entrée, et dans ce cas vos mesquines tentatives d'écriture restent sans effet. Ou alors, le AY est en mode inactif, et il se balance (logique pour un processeur sonore) de vos ridicules affectations. . Par contre, ne pas impliquer le port imprimante dans votre magouille écoeurante restreint le choix du registre au numéro 16, bien inutile. En conclusion, sélectionner un registre par ce biais implique un accès au port imprimante. Cette bidouille ne sera par conséquent tolérée qu'en extrême recours, et encore pour la sélection d'un seul et même registre déterminé (sinon l'alternance de valeurs produira un son désagréable sur la soundplayer, ce qui aboutirait fatalement au lynchage du programmeur incriminé). REGISTRES Le paragraphe précédent était destiné aux amateurs de caresses (ceux qui touchent), science humaine que personne ne s'ennuie, même s'il est vrai qu'on ne puisse classer ces informations dans la catégorie des connaissances essentielles à l'exploitation du CRTC. Retournons donc vers une dissertation plus abordable en capitulant le rôle de chaque registre (il ne saurait s'agir d'une récapitulation puisque le sujet n'a pas encore été abordé dans ce texte) avec en bonus leurs valeurs à l'initialisation du système : Un schéma bien proportionné resitue les registres les plus importants : TERMINOLOGUE 2, LE RETOUR Le CRTC étant prévu pour gérer un mode texte, on se retrouve souvent à raisonner en terme de caractères. Sur CPC, la largeur d'un « caractère CRTC » correspond à une micro-seconde, indépendamment du mode graphique, simplement parce que le composant est cadencé à 1 Mhz. Pendant cette micro-seconde, le VGA récupère les octets de deux adresses consécutives (paire puis impaire !). Ainsi s'explique l'obligation de travailler par Quant à la hauteur du caractère, elle est paramétrée par le fameux registre 9. Ainsi une « ligne de caractères » se décompose en R9+1 lignes - qu'on retrouve sous les appellations « ligne élémentaire », raster-line, scan-line, suivant les auteurs, leurs humeurs et leurs états d'ébriété. Il y en a même pour parler de « bloc », en parfaite contradiction avec un des sens de ce mot. CONTE SUR COMPTEURS (le genre d'histoire que maman me lisait pour me réveiller) Vous vous êtes peut-être demandé pourquoi on doit retrancher 1 à certaines valeurs (pour R0, R4, R9). Une telle interrogation dénoterait une saine curiosité ne pouvant que rassurer vos proches. Chez les ingénieurs, ce problème est connu sous le nom de "Paradoxe du mouton", s'énonçant ainsi : Pourquoi est-ce que le berger travaille, alors que le mouton ? Plus précisément, cela dépend du rôle de la borne en question. Sans vouloir égratigner le suspens de l'initiation, observons deux cas : R0 : si un compteur d'âge et de sexe quelconques va de 0 à 63, cela donne bien 64 itérations. R1 : si le border est enclenché à partir de 40, il y avait affichage de 0 à 39, donc sur 40 caractères ! Pour conclure, j'espère que le développement de certains sujets n'aura pas gommé leur extrême simplicité. Je ne détaille et ne rallonge que pour vous offrir autant de facettes possible d'un même fonctionnement. La prochaine fois, nous détaillerons les registres d'un tout autre point de vue. J'entends discuter ! Olivier Marchin, vous me ferez 312 lignes !
|