Signification du P-CODES
Voici ce que signifient les P-CODES. Vous n'aurez normalement pas besoin de ces informations. De nombreux P-CODES n'ont pas d'opérande, c'est-à-dire qu'ils ne sont qu'un seul octet. Dans ce cas, leurs opérandes sont au sommet de la pile, où que ce soit à ce moment-là. Par exemple, 'ADD' additionne les deux premiers entiers de la pile, en les remplaçant par le résultat de l'addition. Certains P-CODES (tels que «Charge» et «Entrepose») sont suivis du déplacement de trame et de l'adresse relative de la pile des données à charger ou à entreposer (en d'autres termes, l'adresse relative à la trame de la variable). Les P-CODES de «saut» sont suivis d'une adresse relative de l'emplacement vers lequel sauter. Les P-CODES de WRITE(string), LOAD et SAVE sont suivis d'une longueur de chaîne de caractères, puis de la chaîne de caractères d'elle-même. Fonction des P-CODES en hexadécimal :
Valeur | Description |
---|---|
00h | Charge la constante |
01h | DEFINESPRITE |
02h | Négation (sp) |
03h | PLOT |
04h | Ajout (sp) à (sp-1) |
05h | PLOT (n'est pas actuellement utilisé) |
06h | Soustraction (sp) de (sp-1) |
07h | GETKEY |
08h | Multiplication (sp) * (sp-1) |
09h | CLEAR |
0Ah | Division (sp-1)/(sp) |
0Bh | MOD (sp-1) MOD (sp) |
0Ch | Adresse d'un entier |
0Dh | Adresse d'un caractère |
0Eh | Adresse d'un tableau d'entiers |
0Fh | Adresse d'un tableau de caractères |
10h | Test (sp - 1) = (sp) |
11h | Arrête l'exécution - fin du programme. |
12h | Test (sp - 1) <> (sp) |
13h | Position du curseur |
14h | Test (sp - 1) < (sp) |
15h | N'est pas mise en oeuvre |
16h | Test (sp - 1) >= (sp) |
17h | Entrée de nombre hexadécimal |
18h | Test (sp - 1) > (sp) |
19h | Test (sp - 1) <= (sp) |
1Ah | OR (sp - 1) avec (sp) |
1Bh | AND (sp - 1) avec (sp) |
1Ch | Entrée de nombre |
1Dh | Entrée de caractère |
1Eh | Sortie de nombre |
1Fh | Sortie de caractère |
20h | NOT (sp) (inverse le vrai/faux) |
21h | Sortie le nombre hexadécimal |
22h | SHL (sp) bits |
23h | Sortir la chaîne de caractères |
24h | SHR (sp) bits |
25h | Entrée de chaîne de caractères dans un tableau |
26h | Incrémentation (sp) par 1 |
27h | Appel relative de fonction ou procédure |
28h | Décrémentation (sp) par 1 |
29h | Retour de procédure ou de fonction |
2Ah | Copie (sp) à (sp+1) |
2Bh | Appel l'adresse absolue |
2Ch | Charge l'entier dans la pile |
2Dh | Charge le caractère dans la pile |
2Eh | Charge l'adresse absolue d'entier |
2Fh | Charge l'adresse absolue du caractère |
30h | Charge l'index de l'entier |
31h | Charge l'index du caractère |
32h | Entrepose l'entier |
33h | Entrepose le caractère |
34h | Entrepose l'entier absolue |
35h | Entrepose le caractère absolue |
36h | Entrepose l'index d'entier |
37h | Entrepose l'index de caractère |
38h | Appel absolue de procédure ou fonction |
39h | WAIT |
3Ah | XOR (ou exclusif) (sp - 1) avec (sp) |
3Bh | Incrémentation du pointeur de pile |
3Ch | Saut inconditionnel |
3Dh | Saute si (sp) zéro |
3Eh | Saute si (sp) n'est pas zéro |
3Fh | SPRITE |
40h | POSITIONSPRITE |
41h | VOICE |
42h | GRAPHICS |
43h | SOUND |
44h | SETCLOCK |
45h | SCROLL |
46h | SPRITECOLLIDE |
47h | GROUNDCOLLIDE |
48h | CURSORX |
49h | CURSORY |
4Ah | CLOCK |
4Bh | PADDLE |
4Ch | SPRITEX |
4Dh | JOYSTICK |
4Eh | SPRITEY |
4Fh | RANDOM |
50h | ENVELOPE |
51h | SCROLLX |
52h | SCROLLY |
53h | SPRITESTATUS |
54h | MOVESPRITE |
55h | STOPSPRITE |
56h | STARTSPRITE |
57h | ANIMATESPRITE |
58h | ABS (prend la valeur absolue de (sp)) |
59h | INVALID |
5Ah | LOAD |
5Bh | SAVE |
5Ch | SPRITEFREEZE |
5Dh | FREEZESTATUS |
5Eh | Sortie du retour de chariot |
80h à FFh | Charge un littéral court; P-CODES $80 par exemple 80 (hexadécimal) signifie la charge 0, 81 (hexadécimal) signifie la charge 1,... |