Comment
Author: Admin | 2025-04-28
Sinon, retourner lire les rubriques de Tony. Vous avez trouvé 8 ? Bravo. Huit donc, ce qui, re-ô miracle, re-correspond à la hauteur d'une ligne texte simplex' (sous réserve bien sûr d'avoir le registre 9 du CRTC à 7), facilitant ainsi le scroll vertical hard.Mais alors bon, c'est bien joli, mais le bit 7 ? Hein ? Même Longshot n'en a pas parlé5). En fait, ce bit est un bit “sans-moi-c'est-moche” qui cache l'effet inesthétique du scroll horizontal par SSCR. Laissez-le à 1, et on n'en parle pas plus longtemps !Listing : scrolling hard-soft ASIC— Cet article ne comportait pas d'exemple, il serait judicieux d'en ajouter un.Les interruptions de l'ASIC— Basé sur les articles publiés dans Quasar CPC numéro 10 et numéro 14, CPC plus, par OffseT.Comme vous l'avez peut-être déjà lu ici6), en standard, tous les CPC sont en mode non vectorisé (IM 1) ; pour être plus précis, c'est le Z80 qui est réglé sur ce mode au boot. Lorsqu'il est dans ce mode, à chaque fois qu'une requête d'interruption est générée par un périphérique, le Z80 interrompt l'exécution du programme en cours, fait un DI (pour ne pas être dérangé par une autre interruption), puis un RST &38 (sauvegarde de PC dans la pile et saut en &0038). Ainsi, il va exécuter la routine située en &0038 (souvent un vecteur, JP &B941 pour le système), avant de revenir au programme principal à la rencontre d'un RET.Dans ce mode, si on veut gérer ses propres interruptions sans passer par le système, il suffit donc de mettre la routine d'interruption de son choix en &0038. Ceci est bien pratique à utiliser, mais ça impose pas mal de contraintes. Par exemple, lorsqu'on passera en overscan, on ne pourra utiliser un écran logé entre &0000 et &4000 qu'en bidouillant dans tous les sens vu que notre vecteur d'interruption se retrouve en plein milieu de l'écran. C'est ainsi que que l'utilisation du mode vectorisé (IM 2) sur les CPC classiques trouve son intérêt, puisqu'on peut alors choisir le vecteur d'interruption sans passer par &0038 (lisez l'article sur les interruptions à ce sujet).Vive le mode IM 2 !Sur les CPC plus, la situation est totalement différente ! En effet, sur les CPC classiques, il n'y avait qu'un seul périphérique générant des interruptions : le Gate Array. En revanche, sur CPC plus, on a quatre générateurs possibles : les interruptions des contrôleurs DMA des trois canaux sonores (via leur instruction INT, voir ci-dessous), et celle du Gate Array émulé par l'ASIC (ou l'interruption raster programmable, PRI, suivant le mode de fonctionnement). Imaginez la panique que c'est en mode IM 1 ! Lorsqu'une routine est appelée en &0038, comment savoir qui a généré l'interruption pour
Add Comment