Comment
Author: Admin | 2025-04-28
Faire le traitement adapté ?!Le petit blond à lunette va vous rétorquer qu'il suffit de consulter le registre DCSR de l'ASIC dont voici l'architecture :Le registre DCSR de l'ASIC :Certes, mais il y a tellement plus simple et élégant ! En effet, si vous regardez le schéma suivant, vous constaterez qu'en mode vectorisé, le vecteur d'interruption dépend du périphérique qui a généré l'interruption…Concrêtement, ça signifie que le saut consécutif à la requête d'interruption se fera alors directement à l'adresse voulue pour un périphérique donné ! Alors que sur CPC classique seul le registre I du Z80 était disponible pour préciser l'adresse du vecteur d'interruption (laissant ainsi 7 bits dans le flou, le bit 0 de l'adresse du vecteur d'interruption étant toujours à 1 en pratique), sur CPC plus, l'ASIC nous offre le registre IVR qui nous permet de préciser les bits 3 à 7 de l'adresse du vecteur d'interruption. Outre ces bits issus de l'IVR, vous pouvez constater que les bits 1 et 2 dépendent directement du périphérique ayant généré l'interruption (d'où les sauts automatiques aux bonnes adresses) alors que le 0 est toujours à 0 (d'où une "totale" incompatibilité CPC - CPC plus en ''IM 2'').Les acquittementsIl ne vous aura pas échappé que le registre IVR permet également de choisir le mode d'acquittement. Ah, “c'est quoi donc un acquittement”, demande notre inculte petit blond à lunettes. Eh bien c'est la façon dont vous direz au périphérique ayant généré l'interruption qu'il peut se rendormir et que vous avez bien pris en compte sa requête. Sur CPC classique la question ne se pose pas car le Gate Array n'attend pas d'acquittement spécifique ; mais sur CPC plus, vous avez le choix entre acquittements spécifiques et universels via le bit 0 du registre IVR.En mode d'acquittement universel, pas de problème, on ne se pose pas de question, on plante juste un EI une fois l'interruption traitée ça roule ! En effet, dans ce mode le périphérique ne maintient pas sa requête d'interruption (on a le même comportement avec le Gate Array sur CPC classique). En mode d'acquittement spécifique, c'est un peu plus évolué puisqu'on doit mettre à 1 le bit qui va bien dans le registre DCSR pour que notre périphérique comprenne qu'on a bien pris en compte sa requête. Tant que l'ont aura pas fait cette manipulation, il maintiendra la requête d'interruption et tout EI provoquerait un empilement d'interruption ! La tableau suivant résume la gestion des acquittements en fonction du mode choisi.Les modes d'acquittement : Interruption Acquittement d'interruption Raster / Gate Array EI ou mise à zéro du diviseur d'interruption Spécifique (bit 0 IVR = 1) Universel (bit 0 IVR = 0) DMA Son 2 Bit 4 de DCSR à
Add Comment