★ CODING ★ CHRONIQUE A100% DES LOGON SYSTEM ★ LE CRTC ★ |
Logon System ACPC n°31 - Le CRTC | Coding Chronique A100% Des Logon System |
Serge (alias Longshot) a créé le groupe des Démo-makers le plus coté en France sur CPC: les Logon System. Dorénavant, vous le retrouverez chaque mois dans cette rubrique High-tech, il vous dévoilera les secrets des écrans overscan, des scrollings hardware, des rasters et autres astuces techniques, le tout avec pour seul outil un bon Assembleur Z80. Roulement de tambours, voici Longshot: “Longshot from Logon System presents... (Poum Du frannnçaiiis !!!)... 0K! 0K! T'énerve pas ! Bon, par quoi je commence ? Pour tout dire, je vais essayer d'animer (je dis bien essayer) cette rubrique concernant la programmation technique de notre machine préférée. J'ai nommé le CPC (tout en majuscules, s'il vous plaît !)“. PROGRAMMATION TECHNIQUE Autant prévenir tout de suite ceux à qui l'Assembleur apparaît encore comme une langue barbare que ces lignes vont regorger de codes mnémoniques et de termes étranges... Donc pour être plus clair, si le Basic est votre seul adage, allez bouffer ailleurs votre fromage, il y a une rubrique “Basic Perfectionnement” fort intéressante un peu plus loin... Quel va donc être mon but? Eh bien, pour commencer, remplir vos chères têtes blondes de techniques vidéo comme la Rupture (c'est comme ça que je l'ai appelée) qui consiste, comme tout le monde le sait ( non ? ), à modifier l'adresse du compteur vidéo en cours de balayage... Ça y est, y'en a déjà dix au fond qui savent pas ce qu'est un compteur vidéo et quarante autres qui se demandent ce que balayer a à voir avec leur CPC ! Je vais donc de ce pas, et pour pouvoir m'exprimer librement, ouvrir quelques chapitres. LE BALAYAGE ET LE CRTC 6845 Eh bien, chers enfants, le balayage peut être défini comme le parcours utilisé par le canon à électrons (dans votre moniteur, Si, Si !) lorsqu'il génère une image... LE CRTC 6845, KESAKO? Pourquoi CRTC ? Pour “Cathode Ray Tube Controller”, qui est, comme tout le monde l'a traduit, le contrôleur de votre cher canon à électrons. Le 6845 est un circuit qui a fait ses preuves puisqu'il a été utilisé dans de nombreux micro-ordinateurs et équipe notamment tous les compatible PC (actuellement même les CRTC des cartes graphiques EGA et VGA émulent le mode 6845, ce qui n'est pas peu dire de son utilisation). Ce composant est tellement réputé qu'il a été copié, recopié et encore copié! De plus, Motorola, qui en est le constructeur d'origine, s'est fait un malin plaisir d'éditer plusieurs versions de son 6845. C'est pourquoi tous les CPC n'ont pas le même CRT et ne peuvent donc pas, malheureusement, être entièrement compatibles. Qui aurait cru que les CPC seraient touchés avec des problèmes de compatibilité vidéo? Pour ceux qui ont un Atari ST et qui ricanent bêtement en lisant ces lignes, ils doivent savoir qu'Atari a exactement fait la même c...e avec le Shifter (Circuit Vidéo du ST). Je reprends. Donc tous les CRT ne sont pas identiques et seulement quelques personnes s'en sont aperçu dans les jeunes années du CPC. Comme Rémi Herbulot, auteur de Crafton & Xunk, qui avait réalisé un Scrolling hard Horizontal vers la gauche pour effectuer les changements de tableaux dans l'Ange de Cristal. Quelle ne dut pas être sa surprise quand, lançant sa routine de scrolling sur un autre CPC, il vit son jeu se planter. Celui-ci attendait inexorablement le début d'un balayage vidéo que le CRTC ne générait plus. TESTEZ VOTRE CRTC Je vais tout d'abord vous permettre de tester le type de votre CRTC. Mais expliquons avant tout que ce circuit dispose de 19 registres internes ( quelques-uns ne sont pas utilisés sur CPC comme la gestion du stylo optique ). Sur ces 19 registres, l'un d'eux est utilisé comme registre d'index pour sélectionner les 18 autres. Je ne décrirai pas tous les registres du CRTC ici, de nombreux ouvrages le font très bien. Et j'ai promis à Pict (un autre membre du Logon System) de lui laisser cette tâche. Je ne décrirai donc que les registres que je vais utiliser. Sachons toutefois que la sélection du registre d'index du CRTC se fait via le port situé en &BC00 et que l'affectation de la valeur pour le registre choisi se fait en &BD00. Deux autres ports existent aussi pour accéder au CRTC en lecture : un en &BE00 et un autre en &BF00. La fonction de ce dernier devrait être de pouvoir lire le contenu d'un registre sélectionné à l'aide du port BC00, mais ça ne marche que sur certains CRTC. Cela nous permet d'ores et déjà de disposer d'une méthode de test pour les différencier. Ce port, &BF00, n'est opérationnel que sur le CRTC de type H6845SP, qui n'est pas un circuit Motorola, mais un circuit japonais émulant un vrai 6845. Aussi.. Test du CRTC: LD BC,#BC00+ 12 ; Sélection du registre 12 |
|