
|

CpcAlive est un
environnement
de programmation
compatible
Amstrad CPC
pour création
d'animations
graphiques. |
|
English
GESTION DE L' INTERRUPTION 018H
Les
valeurs de AH
à transmettre
pour accéder aux différentes fonctions de cette
interruption sont:
0 = lire l'octet pointé par SI (banque 0 Cpc) et le
mettre dans AL
1 = écrire la valeur de AL dans
l'octet pointé
par DI (banque 0 Cpc)
2 = lire la valeur pointée par SI (banque 0 Cpc) et
la mettre dans
le registre indiqué par AL:
| Valeur
de AL |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
| Registre
à charger |
AH |
BL |
BH |
CL |
CH |
DL |
DH |
AX |
BX |
CX |
DX |
SI |
DI |
BP |
| Valeur
de AL |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
|
|
|
|
|
|
|
| Registre
à charger |
EAX |
EBX |
ECX |
EDX |
ESI |
EDI |
EBP |
|
|
|
|
|
|
|
3 = écrire la valeur du registre
indiqué par AL dans la zone
pointée par DI (banque 0 Cpc):
| Valeur
de AL |
- |
1 |
2 |
3 |
4 |
5 |
6 |
- |
8 |
9 |
10 |
11 |
- |
13 |
| Registre
à écrire |
- |
BL |
BH |
CL |
CH |
DL |
DH |
- |
BX |
CX |
DX |
SI |
- |
BP |
| Valeur
de AL |
- |
15 |
16 |
17 |
18 |
- |
20 |
|
|
|
|
|
|
|
| Registre
à écrire |
- |
EBX |
ECX |
EDX |
ESI |
- |
EBP |
|
|
|
|
|
|
|
4 = connection des blocs de mémoire en
fonction
en des valeurs indiquées dans les champs
correspondants.
5 = transfert d'un bloc de données de la banque 0 du Cpc vers le module X86 connecté.
Conditions d'entrées: SI pointe adresse source Cpc, DI pointe adresse destination X86, CX=taille bloc en octets
6 = (V1.19g) transfert d'un bloc de données du module X86 connecté vers la banque 0 du Cpc.
Conditions d'entrées: SI pointe adresse source X86, DI pointe adresse destination Cpc, CX=taille bloc en octets
7 = transfert d'un bloc de données de la mémoire du
Cpc (état avant appel module) vers le module X86 connecté.
Conditions d'entrées: SI pointe adresse source Cpc, DI pointe adresse destination X86, CX=taille bloc en octets
8 = (V1.19g) transfert d'un bloc de données du module X86 connecté vers la mémoire du Cpc (état avant appel module).
Conditions d'entrées: SI pointe adresse source X86, DI pointe adresse destination Cpc, CX=taille bloc en octets
9 = transfert d'un bloc de données de la banque 0 du Cpc vers tampon.
Conditions d'entrées: SI pointe adresse source Cpc, CX=taille bloc en octets (0200h maxi)
Conditions de sorties: ES:BX pointe sur le début de la zone ayant reçue les données
10 = transfert d'un bloc de données de la mémoire du Cpc (état avant appel module) vers tampon.
Conditions d'entrées: SI pointe adresse source Cpc, CX=taille bloc en octets (0200h maxi)
Conditions de sorties: ES:BX pointe sur le début de la zone ayant reçue les données
GESTION DE L'ECRAN EN "MODE 3" A L'AIDE DE L' INTERRUPTION 018H
La valeur de AH
à transmettre à cette interruption
pour accéder aux différentes fonctions gérant l'écran est 15
(Le programme EX\X86IOPix.BAS présent dans l'archive(V1.19g) est un exemple d'implémentation de ces fonctions)
| AX=0F00h |
Infos écran
Conditions de sorties: AX=hauteur écran en pixels, BX=largeur écran en pixels
|
| AX=0F01h |
Set couleur d'arrière plan (mode 3)
Conditions d'entrées: EBX=numéro de PEN(-1=not set)
|
| AX=0F02h |
Set couleur de premier plan (mode 3)
Conditions d'entrées: EBX=numéro de PEN(-1=not set),DX=type de traitement
Les differents types de traitement sont:
0=Le pixel est affiché si sa valeur est supérieure au
pixel de l'écran et à la valeur "FOREGROUND COLOR"
1=Une opération XOR est effectuée entre la valeur du
pixel à afficher et le pixel sur l'écran si sa valeur est
supérieure à la valeur "FOREGROUND COLOR"
2=Une opération OR est effectuée entre la valeur du pixel
à afficher et le pixel sur l'écran si sa valeur est
supérieure à la valeur "FOREGROUND COLOR"
3=Une opération AND est effectuée entre la valeur du
pixel à afficher et le pixel sur l'écran si sa valeur est
supérieure à la valeur "FOREGROUND COLOR"
|
| AX=0F10h |
Transfert bloc écran vers tampon (mode 3)
Conditions d'entrées:
DX=ligne écran source(Y), CX=départ fenêtre(X)en pixels
BX=largeur fenêtre en pixels, high EBX=hauteur fenêtre en pixels
Conditions de sorties:
ES:[DI+0]=X source
ES:[DI+2]=Y source
ES:[DI+4]=largeur fenêtre en pixels
ES:[DI+6]=hauteur fenêtre en pixels
ES:DI+8 pointe départ bloc de pixels sauvegardé
|
| AX=0F11h |
Transfert bloc écran vers RAM (mode 3)
Conditions d'entrées:
ES:DI pointe tampon destination
DX=ligne écran source(Y), CX=départ fenêtre(X)en pixels
BX=largeur fenêtre en pixels, high EBX=hauteur fenêtre en pixels
Conditions de sorties:
ES:[DI+0]=X source
ES:[DI+2]=Y source
ES:[DI+4]=largeur fenêtre en pixels
ES:[DI+6]=hauteur fenêtre en pixels
ES:DI+8 pointe départ bloc de pixels sauvegardé |
| AX=0F12h |
Transfert bloc RAM vers bloc écran avec gestion BackGround/ForeGround (mode 3)
Conditions d'entrées:
DS:SI pointe tampon source
DX=ligne écran destination(Y)
CX=départ fenêtre(X)en pixels
DS:[SI+4]=largeur fenêtre en pixels
DS:[SI+6]=hauteur fenêtre en pixels
DS:SI+8 pointe départ bloc de pixels
|
| AX=0F13h |
Effacer bloc écran avec couleur (mode 3)
Conditions d'entrées:
DX=ligne écran destination(Y)
CX=départ fenêtre(X)en pixels
BX=largeur fenêtre en pixels
high EBX=hauteur fenêtre en pixels
EDI=numéro de PEN
|
|