Parfois, vous recevrez un message d'erreur dans AMOS. En général, il s'agit simplement d'un oubli de votre part, ou bien AMOS ne comprend pas ce que vous essayez de faire. AMOS est un langage assez indulgent dans l'ensemble, comme vous le savez, par exemple, lorsque vous tapez quelque chose comme ceci :
screenopeni,320,200,16,1owres
AMOS va automatiquement le corriger pour qu'il ressemble à ceci :
Screen Open 1,320,200,16,Lowres
Ainsi, de nombreux problèmes sont corrigés dès que vous tapez les commandes au début. Cependant, cette détection automatique des commandes peut parfois causer des problèmes. Si la commande que vous tapez apparaît en majuscules au lieu d'avoir une première lettre en majuscule et le reste en minuscules comme toutes les commandes AMOS, c'est-à-dire :
THIS
au lieu de :
This
AMOS a interprété le mot comme un label plutôt que comme une commande. Il peut y avoir plusieurs raisons à cela. Soit vous utilisez la commande de manière incorrecte, soit vous l'avez mal tapée. Ou peut-être n'avez-vous pas l'extension appropriée installée, si par exemple la commande que vous avez tapée est spécifique à une extension comme CText.
Mais parfois, vous obtenez une erreur (vous savez comment c'est) et vous n'arrivez tout simplement pas à la faire disparaître. Que faire ? Consultez cet annexe bien sûr.
La plupart des messages sont assez descriptifs en eux-mêmes, mais ici j'ai simplement expliqué en gros ce que cela signifie en français et donné une suggestion sur la raison pour laquelle cela s'est produit et ce que vous pouvez faire pour y remédier.
Note : la plupart des références aux disques dans AMOS sont écrites avec "disc". J'utilise toujours l'orthographe "disk" pour distinguer un disque dur d'un Compact Disc. J'ai laissé les orthographes des messages d'erreur telles qu'elles, mais dans mes définitions, un disque est un disque.
AMOS Error Messages
256 characters for a wave : Vous avez essayé de définir un WAVE et vous avez soit fourni trop peu, soit trop de nombres. Vérifiez votre définition et voyez où les nombres vont.
Address error : Une adresse utilisée dans une commande DOKE, DEEK, LOKE ou LEEK est incorrecte. Vérifiez vos données.
Animation string too long : Votre programme AMAL sur un canal particulier fait plus de 65536 octets. Divisez le programme AMAL en deux et exécutez-le sur des canaux différents.
Array already dimensioned : Une commande DIM essaie de dimensionner un tableau que vous avez déjà ouvert. Il se peut que la boucle dans votre programme revienne trop loin vers le début. Vous devriez peut-être déplacer la DIM.
Autotest already opened : Vous avez essayé de lancer Autotest à nouveau. Vous avez probablement bouclé en revenant au premier Autotest ou l'avez mis deux fois.
BAD IFF format : Ce fichier IFF est soit corrompu, soit dans un format qu'AMOS ne peut pas comprendre. Seules les images IFF ILBM peuvent être chargées par AMOS.
Bad structure : Vous n'avez pas imbriqué vos boucles correctement. Les FOR/NEXT ou DO/LOOP doivent toujours être l'un à l'intérieur de l'autre.
Bank already reserved : Vous avez essayé de réserver une banque déjà réservée. Les banques 1 à 4 sont généralement déjà prises pour la musique et les graphiques de votre programme.
Bank not reserved : Vous avez essayé d'accéder à une banque qui n'a pas été créée avec la commande RESERVE.
Block not found : Ce bloc n'a pas été créé avec GET BLOCK.
Bob not defined : Vous avez essayé d'utiliser un Bob qui n'a pas été défini à aucun moment.
Bordered windows not on edge of screen : Vous avez essayé de positionner une fenêtre juste à côté du bord de l'écran. Les fenêtres doivent avoir un espace de huit pixels pour leurs bordures.
Bottom of text : Dans l'éditeur, vous poussez le curseur contre le bas de la fenêtre et il n'y a plus de code à regarder.
Can't fit picture into current screen : Vous avez essayé de charger une image IFF dans un écran dont le format ne correspond pas. Ajoutez un ,n (où n est un numéro de nouvel écran 0-7) à la commande et AMOS ouvrira un écran de la taille appropriée.
Can't fit program into editor buffer : L'espace alloué pour le code source dans l'éditeur est fixé à une certaine valeur. Si un programme plus grand que le tampon de l'éditeur est chargé, vous devez augmenter la taille du tampon dans le fichier Config.AMOS.
Can't open narrator : Le périphérique de production vocale sur l'Amiga n'est pas présent ou ne peut pas être trouvé pour une raison quelconque. Vérifiez le disque de démarrage pour voir si narrator.device est dans le répertoire devs.
Can't resume to a label : Vous ne pouvez pas utiliser RESUME avec un label dans une procédure d'erreur.
Can't set dual playfield : Vous avez essayé d'employer le mode de double plan de jeu avec une paire d'écrans qui ne sont pas appropriés pour ce mode.
Copper list too long : La taille normale de la liste du cuivre est de 12 Ko, et vous avez fait une liste plus grande que cela. Vous pouvez l'agrandir en utilisant l'accessoire Config.AMOS.
Copper not disabled : Avant d'utiliser COP MOVE ou COP SWAP, vous devez éteindre le cuivre avec COPPER OFF.
DATA must start at the beginning of a line : Toutes les instructions DATA doivent être les premières sur une ligne de programme, à l'exclusion des labels.
Device not available : Vous avez essayé de vous référer à un périphérique (disque ou autre périphérique logique) qui n'est pas actuellement monté. Le disque est-il dans le lecteur ?
Directory not empty : Vous avez essayé de supprimer ou de tuer un répertoire qui n'est pas vide.
Directory not found : Le répertoire que vous avez demandé est introuvable. Le disque est-il dans le lecteur ? Avez-vous correctement tapé le nom du répertoire ?
Disc full : Vous ne pouvez plus ajouter de données à ce disque. Supprimez quelque chose du disque ou formatez-en un nouveau.
Disc is not validated : Une erreur a corrompu les données sur ce disque, et le validateur de disque ne peut pas y accéder. Le validateur n'est peut-être pas présent sur le disque de démarrage.
Disc is write protected : Ajustez le petit onglet sur le disque pour pouvoir y écrire, ou bien vérifiez si le disque est protégé en écriture.
Division by zero : Erreur mathématique. Une de vos variables est tombée sous zéro, vérifiez vos boucles.
DO without LOOP : Vous avez oublié d'ajouter la commande LOOP à la fin de votre boucle DO.
ELSE without ENDIF : Vous avez utilisé ELSE sans un ENDIF correspondant dans une structure conditionnelle.
ELSE without IF : Vous avez utilisé ELSE sans IF au préalable. Vérifiez votre structure conditionnelle.
End of file : Un fichier s'est terminé avant qu'il ne soit prévu, une situation que vous pouvez tester avec la fonction EOF dans vos programmes.
End of program : C'est le message qui s'affiche lorsque le programme se termine. Cela signifie que la dernière instruction a été exécutée et que le programme se termine.
ENDIF without IF : Vous avez utilisé ENDIF sans une commande IF associée.
Error not resumed : Le programme a quitté sans avoir réinitialisé l'erreur avec RESUME.
Error procedure must RESUME to end : Vous ne devez pas quitter une procédure d'erreur avec END PROC, vous devez la réinitialiser avec RESUME.
Extension not loaded : La commande que vous avez utilisée nécessite une extension AMOS spécifique qui n'est pas installée. Des extensions comme CText, AMOS 3D, AMOS Compiler, et TOME doivent être installées avant que vous puissiez utiliser leurs commandes.
File already exists : Vous avez essayé de renommer un fichier avec un nom qui existe déjà sur le disque. Renommez-le en TEMPORARY ou quelque chose de similaire, puis retournez dans AmigaDOS pour trier les noms de fichiers.
File already opened : Vous avez utilisé OPEN ou APPEND sur un fichier qui a déjà été ouvert.
File format not recognised : Cela se produit lorsque vous essayez de charger quelque chose qui n'est pas un fichier AMOS valide. Si vous voulez charger une image IFF, utilisez LOAD IFF.
File is protected against deletion : Les bits de protection sont définis sur ce fichier, le protégeant contre la suppression.
File is protected against reading : Les bits de protection sont définis sur ce fichier, l'empêchant d'être lu.
File is write protected : Les bits de protection sont définis sur ce fichier, l'empêchant d'être écrit.
File not found : Le fichier que vous avez demandé ne peut pas être trouvé sur le chemin actuel. Soit le disque avec le fichier n'est pas monté, soit le chemin spécifié est incorrect.
File not opened : Vous avez essayé de manipuler un fichier ou de le modifier alors qu'il n'a pas encore été ouvert.
File type mismatch : Une commande a été utilisée sur un fichier qui n'est pas compatible. Vérifiez le type de fichier avec lequel vous travaillez et consultez la documentation pour savoir quelles commandes lui conviennent.
Flash declaration error : L'animation pour la commande FLASH est incorrecte. Vérifiez les valeurs et redéfinissez-les.
Fonts not examined : Avant d'utiliser la commande SET FONT, vous devez d'abord utiliser GET FONTS, GET ROM FONTS ou GET DISC FONTS.
FOR without matching NEXT : Vous avez créé une boucle FOR sans la commande NEXT correspondante.
IO Error : Un des fichiers que vous essayez d'utiliser est corrompu. Vérifiez le fichier, et si nécessaire, utilisez une autre copie. Vous pouvez aussi utiliser un programme PD comme DiskSalv pour essayer de récupérer certains fichiers.
Icon not defined : L'icône que vous essayez d'utiliser n'est pas présente dans le répertoire d'icônes actuel (généralement la banque 2). Vous avez soit chargé la mauvaise banque d'icônes, soit vous avez déplacé l'icône à un autre emplacement.
IF without ENDIF : Vous avez utilisé IF sans le ENDIF correspondant pour terminer la structure conditionnelle.
IFF compression not recognised : Le format de compression de ce fichier n'est pas reconnu. Chargez-le dans le programme dans lequel il a été créé et sauvegardez-le sous un format IFF standard.
Illegal block parameters : Vous avez fait une erreur avec les paramètres que vous avez donnés à la commande PUT BLOCK ou GET BLOCK. Vérifiez les valeurs que vous avez utilisées et corrigez-les.
Illegal copper parameter : Les valeurs dans une commande COP MOVE ou COP MOVEL sont hors de portée. Vérifiez les valeurs que vous avez utilisées et corrigez-les.
Illegal file name : Vous avez essayé d'utiliser un nom de fichier qui n'est pas valide dans AmigaDOS. Essayez un autre nom et consultez le guide AmigaDOS pour connaître les règles de nommage des fichiers.
Illegal function call : Cette erreur se produit lorsque vous passez trop peu ou trop de paramètres à une fonction AMOS. Vérifiez la documentation de la commande pour connaître le nombre de paramètres attendu.
Illegal instruction during autotest : Vous avez utilisé une commande AMAL ordinaire dans un Autotest. Probablement, vous avez mal placé les parenthèses.
Illegal number of colours : Vous avez sélectionné un nombre incorrect de couleurs lors de l'ouverture d'un écran. Vérifiez le nombre de couleurs autorisées pour le mode de l'écran que vous utilisez (HAM, Lowres, Hires, etc.).
Illegal number of parameters : Vous avez passé un nombre incorrect de paramètres à une fonction ou procédure. Vérifiez vos boucles et vos variables pour comprendre où l'erreur se produit.
Illegal screen parameter : La taille de l'écran définie est en dehors des limites autorisées. Vérifiez votre commande SCREEN OPEN pour voir si la taille est correcte.
Illegal window parameter : Vous avez passé des paramètres incorrects à une commande de fenêtre. Vérifiez vos variables et boucles pour voir si vous passez des valeurs incorrectes.
Input too long : Vous avez dépassé la limite de longueur pour une chaîne d'entrée. Cette limite est de 1000 caractères.
Instruction only valid in autotest : Les commandes Direct ou Exit ne sont valides que dans un programme AMAL en mode Autotest.
Jump to within autotest in animation string : Votre programme AMAL a sauté dans une routine Autotest, ce qui n'est pas permis. Ne connectez pas Autotest à votre programme AMAL principal.
Label already defined in animation string : Vous avez défini deux fois le même label dans votre programme AMAL. Les labels doivent être uniques.
Label defined twice : Vous avez défini deux fois le même label dans votre programme AMOS. Les labels doivent être uniques.
Label not defined in animation string : Vous avez utilisé un label non défini dans votre programme AMAL. Définissez le label avant de l'utiliser.
Label not defined : Le label que vous avez utilisé n'est pas défini. Assurez-vous de l'avoir correctement créé.
Line too long : Vous avez dépassé la longueur maximale d'une ligne dans l'éditeur, qui est de 255 caractères. Divisez la ligne en plusieurs parties.
LOOP without DO : Vous avez écrit un LOOP sans la commande DO correspondante. Ajoutez la commande DO avant le LOOP.
Menu item not defined : Vous avez sélectionné un élément de menu qui n'a pas été défini avec la commande MENUS. Définissez le menu avant de l'utiliser.
Menu not opened : Vous avez appelé un menu avec MENU ON, mais aucun menu n'a été ouvert. Utilisez la commande MENUS ou MAKE MENU BANK pour définir le menu.
Music bank not defined : Vous avez essayé d'accéder à une banque musicale vide. Chargez d'abord la banque de musique avec la commande MUSIC.
Music bank not found : La musique ne peut pas être jouée car la banque musicale ne contient pas de musique. Chargez une banque contenant des morceaux.
NEXT without FOR : Vous avez utilisé NEXT sans FOR pour commencer la boucle. Ajoutez la commande FOR avant NEXT.
Next without For in animation string : Dans votre programme AMAL, vous avez oublié de mettre la commande FOR avant NEXT dans une boucle.
No data after this label : La commande RESTORE essaie d'obtenir des données d'une ligne où aucune donnée n'a été définie.
No disc in drive : Le disque demandé n'est pas inséré dans le lecteur. Vérifiez si le disque est dans le lecteur et réessayez.
No errors : Aucun problème détecté. Cela signifie que la syntaxe de votre programme est correcte, mais cela ne garantit pas que le programme fonctionnera comme prévu.
No jumps allowed into the middle of a loop : Vous ne pouvez pas sauter au milieu d'une boucle. Utilisez GOSUB ou GOTO avant de sortir de la boucle.
No ON ERROR PROC before this instruction : Vous devez d'abord définir un bloc ON ERROR PROC avant d'utiliser la commande RESUME dans une procédure d'erreur.
No programs below current program : Vous avez tenté d'utiliser BGRAB, mais le programme que vous essayez de charger n'est pas installé en tant qu'accessoire. Rechargez-le comme accessoire.
No THEN in a structured test : Vous avez oublié d'inclure un THEN après un IF. Ajoutez un THEN pour que la condition soit correctement évaluée.
No zone defined : Vous avez tenté d'agir sur une zone qui n'a pas été définie avec la commande SET ZONE. Définissez la zone correctement avant de l'utiliser.
Non dimensioned array : Vous avez essayé d'utiliser un tableau sans l'avoir dimensionné au préalable. Utilisez la commande DIM pour définir la taille du tableau.
Not a packed bitmap : Vous avez essayé de décompresser un fichier bitmap qui n'est pas au format bitmap compressé. Utilisez un fichier au format correct.
Not a packed screen : Les données que vous essayez de décompresser ne sont pas au format d'écran compressé. Assurez-vous que le fichier est dans un format d'écran valide.
Not a procedure : Vous avez essayé d'ouvrir une procédure mais la position du curseur ne correspond pas à une procédure valide. Vérifiez la structure de votre programme.
Not an AmigaDOS disc : Le disque que vous essayez d'utiliser n'est pas un disque AmigaDOS valide. Assurez-vous que le disque est formaté correctement.
Not enough loops to exit : Vous avez tenté d'utiliser EXIT ou EXIT IF dans une boucle sans qu'il y ait assez de boucles actives dans le programme. Vérifiez vos boucles.
Not found : La recherche que vous avez effectuée n'a pas trouvé les caractères que vous avez spécifiés. Peut-être qu'ils ne sont pas là, ou vous avez fait une erreur de frappe.
Not marked : Vous ne pouvez pas vous déplacer vers une marque (mark) tant que vous ne l'avez pas définie avec la commande MARK.
Out of buffer space : Vous avez dépassé la capacité d'espace de la mémoire tampon de l'éditeur. Essayez de sauvegarder votre programme et d'augmenter la taille du tampon avec la commande S.BUFFER dans le menu Recherche.
Out of data : Vous avez épuisé toutes les données disponibles dans une commande READ. Vérifiez la quantité de données dans votre instruction DATA.
Out of memory : Vous n'avez pas assez de mémoire pour exécuter l'opération. Fermez des programmes inutiles ou utilisez des fichiers plus petits.
Out of stack space : Vous avez empilé trop de procédures (PROCs) dans la pile. Essayez de réorganiser votre programme et d'espacer les appels de procédures pour éviter l'erreur.
Out of variable space : Le tampon des variables est plein. Vous devez augmenter la taille du tampon avec la commande SET BUFFER ou fermer d'autres programmes pour libérer de la mémoire.
Overflow : Un calcul a dépassé la taille maximale d'une variable. Vérifiez les calculs dans votre programme et assurez-vous que les résultats sont dans les limites des variables utilisées.
POP without GOSUB : La commande POP a été utilisée sans GOSUB. POP ne peut être utilisée que pour sortir d'une routine appelée par GOSUB.
Procedure not closed : Vous avez créé une procédure (PROC) sans la terminer avec END PROC. Ajoutez END PROC à la fin de votre procédure.
Procedure not opened : Vous avez utilisé END PROC sans avoir ouvert la procédure avec la commande PROCEDURE. Ajoutez la commande PROCEDURE avant de terminer la procédure.
Procedure?s limits must be alone on a line : Les limites d'une procédure doivent être seules sur une ligne. Divisez la ligne si nécessaire.
Program interrupted : Vous avez interrompu le programme en appuyant sur BREAK ou .
Program not found: Le programme que vous avez essayé d'exécuter avec la commande PRUN n'a pas été chargé avec LOAD OTHER.
Rainbow not defined: Avant d'utiliser la commande RAINBOW, vous devez d'abord définir l'arc-en-ciel avec la commande SET RAINBOW.
REPEAT without matching UNTIL: Vous avez oublié d'ajouter la commande UNTIL après un REPEAT. Chaque REPEAT doit être suivi de UNTIL.
Resume label not defined: Vous avez essayé de reprendre l'exécution du programme à un label qui n'a pas été défini. Assurez-vous que le label existe.
Resume without error: Vous ne pouvez pas utiliser RESUME sans qu'une erreur se soit produite. Utilisez RESUME uniquement après qu'une erreur a eu lieu.
RETURN without GOSUB: Vous avez atteint un RETURN sans l'avoir précédé d'un GOSUB. Vérifiez vos appels GOSUB et RETURN dans votre programme.
Sample bank not defined: Vous avez essayé de jouer un échantillon alors qu'il n'existe pas dans le banc d'échantillons. Chargez le banc d'échantillons ou définissez-le correctement.
Sample bank not found: Il n'y a pas de banc d'échantillons en mémoire. Assurez-vous que le banc d'échantillons a été chargé avec la commande LOAD.
Screen already in double buffering: Vous avez tenté de configurer un double buffering sur un écran qui est déjà en mode double buffering. Évitez de redéfinir plusieurs fois le mode.
Screen not in dual playfield mode: La commande DUAL PRIORITY ne peut être utilisée que si l'écran est déjà en mode DUAL PLAYFIELD. Vérifiez votre configuration d'écran.
Screen not opened: Vous essayez d'interagir avec un écran qui n'a pas été ouvert. Ouvrez l'écran avec la commande SCREEN OPEN avant de l'utiliser.
Screens can't be ANIMATED: Vous avez tenté d'animer un écran avec AMAL, mais les écrans ne peuvent pas être animés. Utilisez plutôt des objets ou des sprites.
Scrolling zone not defined: Avant d'utiliser la commande SCROLL, vous devez définir une zone à faire défiler avec la commande SET SCROLL.
Shared must be alone on a line: Les définitions de variables partagées (SHARED) doivent être sur une ligne seule, sans autre code.
Shift declaration error: Une erreur de syntaxe dans l'utilisation des déclarations SHIFT UP ou SHIFT DOWN. Vérifiez vos valeurs et ajustez-les.
Sprite error: Vous avez passé des valeurs incorrectes lors de la définition d'un sprite. Vérifiez la définition de vos sprites et assurez-vous que les valeurs sont valides.
String too long: La longueur de la chaîne dépasse la limite de 65000 caractères. Réduisez la taille de la chaîne pour éviter cette erreur.
Syntax error in animation string: Vous avez une erreur de syntaxe dans votre programme AMAL, particulièrement dans la chaîne d'animation. Vérifiez la syntaxe de votre chaîne AMAL.
Syntax Error: Il y a une erreur de syntaxe dans votre programme. La commande spécifiée n'est pas reconnue ou vous avez utilisé un nombre ou un type incorrect de paramètres. Consultez le manuel pour les commandes correctes.
This array is not defined in the main program: Vous tentez d'utiliser un tableau qui n'a pas été défini dans la partie principale du programme. Assurez-vous d'utiliser la commande DIM pour définir vos tableaux.
This instruction must be used within a procedure: La commande SHARED peut uniquement être utilisée à l'intérieur d'une définition de procédure. Déplacez la commande SHARED dans une procédure.
This variable is already defined as SHARED: Vous avez tenté de définir une variable comme partagée (SHARED) deux fois. Veuillez vérifier la définition de votre variable.
This window has no border: Vous avez essayé d'appliquer la commande BORDER à une fenêtre sans bordure. Définissez une bordure pour la fenêtre avant d'appliquer la commande.
Too many colours in flash: Vous avez sélectionné trop de couleurs pour la commande FLASH. La limite est de 16 couleurs, vérifiez votre configuration et ajustez les couleurs.
Too many direct mode variables: Vous avez dépassé la limite de 64 variables dans le mode direct. Essayez de réduire le nombre de variables ou libérez de l'espace mémoire.
Top of text: Dans l'éditeur, vous poussez le curseur contre le haut de la fenêtre et il n'y a plus de code à afficher.
Type mismatch: Le mauvais type de données a été affecté à une variable, par exemple une chaîne a été affectée à une variable qui n'a pas le symbole $.
Undefined label: Vous avez essayé de vous rendre à un label qui n'existe pas. Assurez-vous d'avoir d'abord créé le label avec la commande LABEL.
Undefined procedure: Vous avez essayé d'utiliser une procédure qui n'a pas été définie. Définissez la procédure avec la commande PROCEDURE.
UNTIL without REPEAT: Erreur de boucle, vous avez utilisé UNTIL sans REPEAT. Vérifiez votre structure de boucle.
Use empty brackets when defining a shared array: La définition d'un tableau partagé doit être suivie de crochets vides, par exemple : SHARED Array().
Valid screen numbers range from O to 7: Vous avez essayé d'ouvrir un écran avec un numéro supérieur à 7. Les numéros valides vont de 0 à 7.
Variable buffer can't be changed in the middle of a program: Vous ne pouvez pas changer la taille du tampon de variables en cours d'exécution d'un programme. Ajustez cela avant de commencer à exécuter votre code.
Variable buffer too small: Utilisez la commande SET BUFFER pour augmenter la taille du tampon de variables.
Variable name buffer too small: Utilisez le fichier Config.AMOS pour ajuster la taille du tampon de noms de variables.
Wave 0 and 1 are reserved: Les vagues 0 et 1 sont réservées par AMOS pour les commandes BELL et NOISE. Vous ne pouvez pas les redéfinir.
WEND without WHILE: Erreur de boucle, vous avez utilisé WEND sans WHILE. Assurez-vous que chaque WEND a un WHILE correspondant.
What block?: Vous avez essayé d'effectuer une opération sur un bloc sans avoir défini de bloc au préalable avec la commande MARK.
WHILE without matching WEND: Erreur de boucle, vous avez utilisé WHILE sans WEND correspondant.
Window already opened: Vous avez essayé d'ouvrir une fenêtre qui est déjà ouverte. Assurez-vous de fermer la fenêtre avant d'essayer de l'ouvrir à nouveau.
Window not opened: Vous avez essayé d'interagir avec une fenêtre qui n'a pas été ouverte. Utilisez la commande OPEN WINDOW pour ouvrir la fenêtre.
Window too large: La taille de la fenêtre que vous avez spécifiée est trop grande pour l'écran actuel. Réduisez la taille de la fenêtre.
Window too small: La fenêtre que vous avez spécifiée est trop petite. La taille minimale d'une fenêtre est de 3x3 pixels.