Language RPG III (RPG 3 / GAP 3)
Liste des instructions
| Instr. | Définition | Commentaire |
| ACQ | Acquérir | |
| ADD | Ajouter | |
| ANDxx | Et | |
| BEGSR | Début de sous-programme | |
| BITOF | Dépositionner des bits | |
| BITON | Positionner des bits | |
| CABxx | Comparer et brancher | |
| CALL | Appel d'un programme | |
| CASxx | Appel conditionnel de sous-programme | |
| CAT | Concaténer deux chaînes | |
| CHAIN | Accès sélectif à un fichier | |
| CHECK | Vérifier de gauche à droite | |
| CHEKR | Vérifier de droite à gauche | |
| CLEAR | Mettre à blanc | |
| CLOSE | Fermer des fichiers | |
| COMIT | Valider des modifications apportées à des fichiers | |
| COMP | Comparer | |
| DEBUG | Fonction de débogage de programme | |
| DEFN | Définition de zone | |
| DELET | Supprimer un enregistrement | |
| DIV | Diviser | |
| DO | Exécuter | |
| DOUxx | Exécuter jusqu'à | |
| DOWxx | Exécuter tant que | |
| DSPLY | Fonction d'affichage | |
| DUMP | Cliché programme | |
| ELSE | Sinon | |
| ENDyy | Mettre fin à un groupe | |
| ENDSR | Fin de sous-programme | |
| EXCPT | Sortie pendant le traitement | |
| EXFMT | Ecrire puis lire le format | |
| EXSR | Appeler un sous-programme | |
| FEOD | Forcer la fin de données | |
| FORCE | Forcer la lecture d'un fichier lors du cycle suivant | |
| FREE | Désactiver un programme | |
| GOTO | Aller à | |
| IFxx | Si | |
| IN | Extraire une zone de données | |
| ITER | Passer le contrôle à ENDxx | |
| KFLD | Définition des parties d'une clé | |
| KLIST | Définition d'une clé composée | |
| LEAVE | Quitter un groupe DO | |
| LOKUP | Rechercher dans un tableau ou une table | |
| MHHZO | Mouvement du hors texte de position gauche vers position gauche | cf infra |
| MHLZO | Mouvement du hors texte de position gauche vers position droite | cf infra |
| MLHZO | Mouvement du hors texte de position droite vers position gauche | cf infra |
| MLLZO | Mouvement du hors texte de position droite vers position droite | cf infra |
| MOVE | Déplacer ou modifier les zones | |
| MOVEA | Déplacer un tableau | |
| MOVEL | Mouvement vers la gauche | |
| MULT | Multiplier | |
| MVR | Déplacer le reste | |
| NEXT | Forcer l'entrée suivante | |
| OCUR | Définir/extraire une occurrence de structure de données | |
| OPEN | Ouvrir des fichiers | |
| ORxx | Ou | |
| OTHER | Sinon Select | |
| OUT | Ecrire une zone de données | |
| PARM | Identifier des paramètres | |
| PLIST | Identifier une liste de paramètres | |
| POST | Enregistrer | |
| READ | Lire un enregistrement | |
| READC | Lire l'enregistrement modifié suivant | |
| READE | Lire l'enregistrement suivant avec la même clé | |
| READP | Lire l'enregistrement précédent | |
| REDPE | Lire l'enregistrement précédent avec la même clé | |
| REL | Libérer | |
| RESET | Réinitialiser | |
| RETRN | Retour à l'appelant | |
| ROLBK | Invalider | |
| SCAN | Explorer une chaîne de caractères | |
| SELEC | Commencer un groupe Select | |
| SETGT | Positionner sur valeur supérieure | |
| SETLL | Positionner sur valeur supérieure ou égale | |
| SETOF | Mettre hors fonction | |
| SETON | Mettre en fonction | |
| SHTDN | Arrêt du système | |
| SORTA | Tri de tableau | |
| SQRT | Racine carrée | |
| SUB | Soustraire | |
| SUBST | Sous-chaîne | |
| TAG | Etiquette | |
| TESTB | Tester un bit | |
| TESTN | Tester la partie numérique | |
| TESTZ | Tester la partie hors texte | |
| TIME | Heure et date | |
| UNLCK | Déverrouiller une zone de données ou un enregistrement | |
| UPDAT | Modifier un enregistrement existant | |
| WHxx | Si VRAI alors Select | |
| WRITE | Créer de nouveaux enregistrements | |
| XFOOT | Additionner les éléments d'un tableau | |
| XLATE | Traduire | |
| Z-ADD | Initialiser à zéro et ajouter | |
| Z-SUB | Initialiser à zéro et soustraire |
Codes d’édition
| Edit Code Description |
No Sign |
Sign- (R) |
CR Sign |
-Sign (L) |
| Commas and zero balances | 1 | A | J | N |
| Commas | 2 | B | K | O |
| Zero balances | 3 | C | L | P |
| No commas or zero balances | 4 | D | M | Q |
| Date edit (4 digits) | W | |||
| No edit (suppress sign) | X | |||
| Date edit | Y | |||
| Suppress leading zeros | Z | |||
MOVE ZONE
The move zone operations move only the zone portion of a character. A minus (-) sign in a move zone operation does not result in a negative character in the result field, because a minus sign is represented by a hexadecimal 60 internally and a D zone is required for a negative character. Characters J through R have D zones and can be used to obtain a negative value (J = hexadecimal D1, …, R = hexadecimal D9). Note: Whenever the word high is used in a move zone operation, the field involved must be a character field; whenever low is used, the field involved can be either a character or a numeric field. Character | | | | | | Factor | | | | | | | | | | | | Two | *--*--*--*--*--*--*--*--*--*--* | || MLHZO || | MHHZO||*---------------------*|MLLZO | |**---------------------*| | |** MHLZO || | VV VV | | | | | | | V | | | | | | | | | | | Result Character *--*--*--*--*--*--*--*--*--*--* Field Character | | | | | | Factor | | | | | | | | | | | | Two | *--*--*--*--*--*--*--*--*--*--* | | | | | |MLLZO | *-----------------------*| | MHLZO || | VV | | | | | | | V | | | | | | | | | | | Result Numeric *--*--*--*--*--*--*--*--*--*--* Field Numeric | | | | | | Factor | | | | | | | | | | | | Two | *--*--*--*--*--*--*--*--*--*--* | MLHZO || | *-----------------------*|MLLZO | | | | | | | V V | | | | | | | V | | | | | | | | | | | Result Character *--*--*--*--*--*--*--*--*--*--* Field Numeric | | | | | | Factor | | | | | | | | | | | | Two | *--*--*--*--*--*--*--*--*--*--* | | | |MLLZO | | | | | V | | | | | | | V | | | | | | | | | | | Result Numeric *--*--*--*--*--*--*--*--*--*--* Field