Référence des messages d'erreurs
L'ASSEMBLER 64 a un ensemble de messages d'erreur. Les erreurs sont affichées dans les passes 1 et 2. Si l'assembleur reconnaît une erreur, 4 astérisques suivis du message d'erreur s'affichent. La ligne contenant l'erreur sera alors affichée à l'écran, quels que soient les paramètres «.OPT P». Pour une erreur de syntaxe, un chiffre sera également affiché devant les quatre astérisques décrivant l'erreur plus en détail. Il existe 10 types d'erreurs de syntaxe différents pouvant se produire. Ils sont listés ci-dessous. D'autres erreurs peuvent encore se produire lors de l'utilisation de macros; ceux-ci sont indiqués par une lettre préfixée.
Certaines erreurs sont «fatales», ce qui signifie qu'elles provoquent l'arrêt de l'assembleur. Un point d'exclamation s'affiche devant les lignes contenant des erreurs fatales. L'assemblage est arrêté après l'affichage du message. Le premier octet du code objet créé pour une telle ligne est un zéro, étant la commande BRK du 6502. Si vous essayez d'exécuter un tel programme, une commande BRK est exécutée lorsqu'il s'agit de la ligne erronée, effectuant un démarrage à chaud ou vous renvoie le moniteur, s'il est chargé. En général, vous devez d'abord corriger les erreurs avant d'exécuter un programme en langage assembleur.
Un type d'erreur qu'ASSEMBLER 64 ne peut pas détecter est une erreur de phase. Cette erreur ne se produit généralement pas, mais peut être rencontrée avec certaines combinaisons d'assemblage conditionnel contenant des pseudo-opérations .BYTE ou .WORD. Une erreur de phase se produit lorsque le compteur de programme est différent lors de l'étape 2 que lors de l'étape 1. Vous pouvez reconnaître le message :
PHASB .IF PHASE-* : PHASE ERROR |
Normalement, PHASE a la même valeur que le compteur de programme et le code derrière les deux points n'est jamais exécuté. Si un déplacement de phase se produit, le résultat n'est pas nul et l'instruction supplémentaire entraîne une erreur de syntaxe que vous pouvez reconnaître.
Erreur statistiques
Avant le début de la passe 2, l'ASSEMBLEUR 64 sort le nombre d'erreurs de la passe 1, s'il y en a eu. Par exemple :
2 ERRORS IN PASS 1 |
Après l'étape 2, lorsque l'assemblage est terminé, le nombre d'erreurs de l'étape 2 s'affiche. Si l'assemblage était exempt d'erreurs, le message suivant s'affiche :
NO ERRORS |
Si des erreurs ont été rencontrées, ce numéro s'affiche. Par exemple :
4 ERRORS |
Messages
SYNTAXE : Ce message d'erreur est précédé d'un chiffre décrivant l'erreur plus en détail. Ces chiffres ont la signification suivante :
Code | Description |
---|---|
0 | Ce code d'erreur permet d'indiquer que l'étiquette pour l'affectation vide n'est pas autorisée (la ligne ne contient qu'une seule chaîne de caractères). |
1 | Ce code d'erreur permet d'indiquer un Opcode illégal. |
2 | Ce code d'erreur permet d'indiquer un mode d'adressage illégal - cette commande ne peut pas être utilisée avec ce mode d'adressage. |
3 | Ce code d'erreur permet d'indiquer un opérateur inconnu dans l'expression (caractère non autorisé dans une expression). |
4 | Ce code d'erreur permet d'indiquer des parenthèses non appariées. |
5 | Ce code d'erreur permet d'indiquer une expression illégale - caractère illégal dans une expression ou une chaîne de caractères vide "". |
6 | Ce code d'erreur permet d'indiquer une virgule manquante - une pseudo-opération attend une virgule. |
7 | Ce code d'erreur permet d'indiquer une pseudo-opération illégale. La chaîne de caractères .XXX n'est pas reconnue comme une pseudo-opération. |
8 | Ce code d'erreur permet d'indiquer que le symbole ne commence pas par une lettre. Un symbole était attendu, mais aucun caractère alphabétique n'a été trouvé. |
9 | Ce code d'erreur permet d'indiquer un Opcode avec mode d'adressage non autorisé. |
Les erreurs de syntaxe suivantes peuvent se produire pour les macros :
Code | Description |
---|---|
B | Ce code d'erreur permet d'indiquer une commande .MEND sans .MAC précédent est rencontré. |
C | Ce code d'erreur permet d'indiquer une définition de macro non fermée. |
D | Ce code d'erreur permet d'indiquer une définition de macro imbriquée - les macros dans les macros ne sont pas autorisées. |
F | Ce code d'erreur permet d'indiquer un nombre de paramètres illégal. Le nombre de paramètres dans l'appel de macro ne correspond pas au nombre dans la définition de macro. |
Enfin, les messages d'erreurs :
Message | Description |
---|---|
ILLEGAL QUANTITY | Ce message d'erreur permet d'indiquer que l'expression est évaluée à une valeur située en dehors de l'intervalle pour cette commande ou cette pseudo-opération. L'expression donne une valeur supérieure à 65535. |
OVERFLOW | Ce message d'erreur permet d'indiquer que le tampon d'entrée utilisé par ASSEMBLER 64 pour décoder les lignes source est trop petit. Divisez la ligne en plusieurs instructions ou utilisez une variable temporaire afin de simplifier l'expression. |
BRANCH OUT OF RANGE | Ce message d'erreur permet d'indiquer qu'un saut relatif (commande de branchement) sur une distance supérieure à 128 octets a été tenté. |
REDEFINITION | Ce message d'erreur permet d'indiquer qu'une tentative a été effectuée pour définir un symbole deux fois sans utiliser l'opérateur de redéfinition. |
UNDEF'D STATEMENT | Ce message d'erreur permet d'indiquer qu'une étiquette ou une expression n'est pas définie. |
REVERSAL | Ce message d'erreur permet d'indiquer qu'une tentative a été faite pour assembler le code à une adresse inférieure à la dernière adresse. Cette erreur ne se produit pas lorsque vous assemblez directement en mémoire. Il s'agit d'une erreur fatale, comme le sont tous les éléments suivants. |
SYM TABLE OVERFLOW | Ce message d'erreur permet d'indiquer que vous avez essayé de définir plus de symboles que d'espace dans la table des symboles. Définissez le minimum du bas avec .STM ou divisez votre programme en plusieurs parties. Ce message d'erreur peut également apparaître lors du chargement d'un programme source avec .FILE si le programme est trop volumineux et qu'une partie de la table des symboles a été remplacée. Divisez le programme en parties plus petites. |
OUT OF MEMORY | Ce message d'erreur permet d'indiquer que le tampon du code objet (mode .OPT O) est trop petit. Vous devez choisir un autre type de sortie, tel qu'un disque. |
UNDEF'D STATEMENT | Ce message d'erreur permet d'indiquer qu'un GOTO vers une ligne inexistante (exactement comme dans BASIC). Contrairement à l'erreur mentionnée précédemment, celle-ci est fatale. |
DBVICE NOT PRESENT | Ce message d'erreur permet d'indiquer que le périphérique adressé n'est pas présent sur le bus ou ne répond pas. |
IEEE | Ce message d'erreur permet d'indiquer une autre erreur sur le bus IEEE. |
DISK | Ce message d'erreur permet d'indiquer une erreur de disque. Le message d'erreur de l'unité de disque a été donné juste avant ce message. |