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,... |