10-15-1 Affichage d’une image en mémoire supérieure

 

Les images d’intro et des circuits ont été sauvegardés dans les 64 ko de mémoire supérieure. Celle-ci est divisée en 4 bancs de 16 ko, ce qui tombe bien puisque les écrans font aussi 16 ko. A remarquer que les tailles des images sur le disque sont de 17 ko car il y a en plus un en-tête de fichier qui sert à le décrire au système. Les 4 bancs contiennent les 4 images suivantes :

 

 

Comme nous l’avons déjà vu, c’est le Video Gate Array qui gère la mémoire supérieure. L’accès à la mémoire supérieure permet d’ouvrir une fenêtre en &4000 sur l’un des bancs de la mémoire supérieure. Il suffit ensuite de recopier tout le contenu du bloc &4000-&7FFF en &C000 grâce à l’instruction LDIR (voir Partie 8 pour plus d’explications).

 

AFSUPIMG PUSH AF                ; Sauvegarde des registres

         PUSH BC

         PUSH DE

         PUSH HL

 

         LD BC,&7F00            ; Demande d'accès au GATE-ARRAY

         OR %11000100           ; A = %11000100 + N° de banc

         OUT (C), A             ; Accès à la requète

      

         LD HL,&4000            ; HL pointe l'écran intermédiaire

         LD DE,&C000            ; DE pointe l'écran

         LD BC,&4000            ; Nombre d'octets de l'écran

         LDIR                   ; Recopie vers l'écran

 

         POP HL                 ; Restitution des registres

         POP DE

         POP BC

         POP AF

 

         RET                    ; Retour de sous-programme

 

 

Remarque : Il est possible de changer l’adresse de l’écran dans le CRTC, mais cela ne fonctionne malheureusement pas avec la mémoire supérieure. C’est pour cela que l’on passe par une recopie d’écran.

 

 

<< RETOUR  ---  SUITE : Affichage rapide des chiffres >>