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.