Les erreurs
Toutes les nouvelles fonctions MSX-DOS 2 (code de fonction supérieur à 40h) renvoient un code d'erreur dans le registre A. Si la valeur est zéro alors l'opération a réussi. Si la valeur est différent de zéro, alors le code d'erreur explique la nature exacte de l'erreur.
Étant donné que MSX-DOS 2 exécute une instruction "OR A" immédiatement avant de revenir d'un appel de fonction, l'instruction "JR NZ" est souvent utilisée dans le programme transitoire immédiatement après l'instruction "CALL 5" pour tester si une erreur s'est produite. Souvent, la destination de ce saut d'erreur charge simplement le code d'erreur dans B et exécute une fonction "Terminer avec le code d'erreur". Celui-ci transmet ensuite le code d'erreur à l'interpréteur de commandes affichant le message approprié.
Un programme transitoire peut également lui-même obtenir le message réel pour toute erreur renvoyée par un appel de fonction MSX-DOS 2 à l'aide de la fonction "Expliquer le code d'erreur".
Les codes d'erreur commencent à 0FFh et descendent en valeur. Les valeurs inférieures à 40h sont des erreurs de l'utilisateur et ne seront jamais utilisées par le système et peuvent être utilisées par des programmes transitoires pour renvoyer leurs propres erreurs. Les erreurs utilisateur inférieures à 20h renvoyées à l'interpréteur de commandes n'afficheront aucun message.
Si l'appel de la fonction "Expliquer le code d'erreur" est invité à expliquer un code d'erreur pour lequel il n'a pas de message, alors la chaîne de caractères renvoyée sera "System error n" ou "User error n" selon le cas, où n est le numéro d'erreur.
Vous trouverez ci-dessous une liste de tous les numéros d'erreur actuellement définis, ainsi que leurs messages et leurs significations. Le mnémonique est également indiqué, étant souvent utilisé comme symbole dans un fichier source et est utilisé dans tout le système MSX-DOS 2 pour faire référence à une erreur particulière.
Erreurs disques
Les erreurs de ce groupe sont celles étant généralement transmises aux routines de gestion des erreurs de disque. Par défaut, elles seront signalées comme des erreurs «Abort, Retry». Ces erreurs, à l'exception de celle de «format disk», seront transmises à la routine de gestion des erreurs, elles ne seront donc pas renvoyées comme valeur de retour par BDOS.
Incompatible disk (.NCOMP, 0FFh) |
Le disque n'est pas accessible dans cette unité de disque (par exemple, un disque double face dans un unité de disque simple face).
Write error (.WRERR, 0FEh) |
Une erreur générale s'est produite lors d'une écriture sur disque.
Disk error (.DISK, 0FDh) |
Une erreur de disque générale inconnue s'est produite.
Not ready (.NRDY, 0FCh) |
L'unité de disque n'a pas répondu, cela signifie généralement qu'il n'y a pas de disque dans l'unité de disque.
Verify error (.VERFY, 0FBh) |
Avec VERIFY activé, un secteur ne pouvait pas être lu correctement après avoir été écrit.
Data error (.DATA, 0FAh) |
Un secteur de disque n'a pas pu être lu car la vérification des erreurs CRC était incorrecte, indiquant généralement un disque endommagé.
Sector not found (.RNF, 0F9h) |
Le secteur requis est introuvable sur le disque, ce qui signifie généralement un disque endommagé.
Write protected disk (.WPROT, 0F8h) |
Essayez d'écrire sur un disque avec l'onglet de protection en écriture activé.
Unformatted disk (.UFORM, 0F7h) |
Le disque n'a pas été formaté ou il s'agit d'un disque utilisant une technique d'enregistrement différente.
Not a DOS disk (.NDOS, 0F6h) |
Le disque est formaté pour un autre système d'exploitation et n'est pas accessible par MSX-DOS.
Wrong disk (.WDISK, 0F5h) |
Le disque a été changé pendant que MSX-DOS y accédait. Doit remplacer le bon disque.
Wrong disk for file (.WFILE, 0F4h) |
Le disque a été changé alors qu'il y a un fichier ouvert dessus. Doit remplacer le bon disque.
Seek disk (.SEEK, 0F3h) |
La piste requise du disque est introuvable.
Bad file allocation table (.IFAT, 0F2h) |
La table d'allocation de fichiers sur le disque est corrompue. CHKDSK peut être en mesure de récupérer certaines des données sur le disque.
(.NOUPB, 0F1h) |
Cette erreur n'a pas de message car elle est toujours interceptée en interne dans MSX-DOS dans le cadre de la gestion des modifications de disque.
Cannot format this drive (.IFORM, 0F0h) |
Essayez de formater un unité de disque ne permettant pas le formatage. Généralement à la suite d'une tentative de formatage du disque RAM.
Erreurs de fonction MSX-DOS
Les erreurs suivantes sont celles étant normalement renvoyées par les appels de fonction MSX-DOS.
Internal error (.INTER, 0DFh) |
Ne devrait jamais se produire.
No enough memory (.NORAM, 0DEh) |
Le MSX-DOS a manqué de mémoire dans son segment de données de noyau 16 Ko. Essayez de réduire le nombre de tampons de secteur ou de supprimer certaines chaînes de caractères d'environnement. Se produit également s'il n'y a pas de segments libres pour créer le RAMdisk.
Invalid MSX-DOS call (.IBDOS, 0DCh) |
Un appel MSX-DOS a été effectué avec un numéro de fonction non autorisé. La plupart des appels de fonction illégaux ne renvoient aucune erreur, mais cette erreur peut être renvoyée si un appel de fonction "obtenir le code d'erreur précédent" est effectué.
Invalid drive (.IDRV, 0DBh) |
Un paramètre de numéro de l'unité de disque ou une lettre de l'unité de disque dans une chaîne de caractères de l'unité de disque/chemin/fichier est un paramètre n'existant pas dans le système actuel.
Invalid filename (.IFNM, 0DAh) |
Une chaîne de caractères de nom de fichier est illégale. Ceci n'est généré que pour les chaînes de caractères de noms de fichiers purs, et non pour les chaînes de caractères de l'unité de disque/chemin/fichier.
Invalid pathname (.IPATH, 0D9h) |
Peut être renvoyé par n'importe quel appel de fonction recevant une chaîne de caractères de l'unité de disque/chemin/fichier ASCIIZ. Indique que la syntaxe de la chaîne de caractères est incorrecte d'une manière ou d'une autre.
Pathname too long (.PLONG, 0D8h) |
Peut être renvoyé par n'importe quel appel de fonction qui reçoit une chaîne de caractères de l'unité de disque/chemin/fichier ASCIIZ. Indique que le chemin complet spécifié (y compris le répertoire actuel s'il est utilisé) comporte plus de 63 caractères.
File not found (.NOFIL, 0D7h) |
Peut être retourné par n'importe quelle fonction recherchant des fichiers sur un disque si elle n'en trouve pas. Cette erreur est également renvoyée si un répertoire a été spécifié mais introuvable. Dans d'autres cas, l'erreur .NODIR sera renvoyée.
Directory not found (.NODIR, 0D6h) |
Renvoyé si un élément de répertoire dans une chaîne de caractères de l'unité de disque/chemin/fichier est introuvable.
Root directory full (.DRFUL, 0D5h) |
Renvoyé par "création" ou "déplacement" si une nouvelle entrée est requise dans le répertoire racine et qu'il est déjà plein. Le répertoire racine ne peut pas être étendu.
Disk full (.DKFUL, 0D4h) |
Résulte généralement d'une opération d'écriture s'il n'y avait pas suffisamment d'espace sur le disque pour la quantité de données en cours d'écriture. Peut également résulter d'une tentative de création ou d'extension d'un sous-répertoire si le disque est complètement plein.
Duplicate filename (.DUPF, 0D3h) |
C'est le résultat de "renommer" ou "déplacer" si le nom du fichier de destination existe déjà dans le répertoire de destination.
Duplicate directory move (.DIRE, 0D2h) |
Résulte d'une tentative de déplacement d'un sous-répertoire dans l'un de ses propres descendants. Ceci n'est pas autorisé car cela créerait une boucle isolée dans la structure des répertoires.
Read only file (.FILR0, 0D1h) |
Tentative d'écriture ou de suppression d'un fichier dont le bit d'attribut de "lecture seulement" est défini.
Directory not empty (.DIRNE, 0D0h) |
Tentative de suppression d'un sous-répertoire n'étant pas vide.
Invalid attributes (.IATTR, 0CFh) |
Peut résulter d'une tentative de modification des attributs d'un fichier de manière illégale, ou d'une tentative d'effectuer une opération sur un fichier n'étant possible que sur un sous-répertoire. Résulte également de l'utilisation illégale de blocs d'informations de nom de volume.
Invalid . or .. operation (.DOT, 0CEh) |
Tenter d'effectuer une opération illégale sur le "." ou ".." entrées dans un sous-répertoire, comme les renommer ou les déplacer.
System file exists (.SYSX, 0CDh) |
Essayez de créer un fichier ou un sous-répertoire portant le même nom qu'un fichier système existant. Les fichiers système ne sont pas automatiquement supprimés.
Directory exists (.DIRX, 0CCh) |
Essayez de créer un fichier ou un sous-répertoire identique à un sous-répertoire existant. Les sous-répertoires ne sont pas automatiquement supprimés.
File exists (.FILEX, 0CBh) |
Essayez de créer un sous-répertoire du même nom qu'un fichier existant. Les fichiers ne sont pas automatiquement supprimés lors de la création de sous-répertoires.
File already in use (.FOPEN, 0CAh) |
Tentative de suppression, de renommage, de déplacement ou de modification des attributs ou de la date et de l'heure d'un fichier pour lequel un descripteur de fichier est déjà ouvert, autrement qu'en utilisant le descripteur de fichier lui-même.
Cannot transfer above 64K (.OV64K, 0C9h) |
La zone de transfert de disque aurait dépassé 0FFFFh.
File allocation error (.FILE, 0C8h) |
La chaîne de l'unité d'allocation d'un fichier était corrompue. Utilisez CHKDSK pour récupérer autant de fichiers que possible.
End of file (.EOF, 0C7h) |
Tentative de lecture à partir d'un fichier lorsque le pointeur de fichier est déjà à ou au-delà de la fin du fichier.
File access violation (.ACCV, 0C6h) |
Tentative de lecture ou d'écriture dans un descripteur de fichier ayant été ouvert avec l'ensemble de bits d'accès approprié. Certains des descripteurs de fichiers standard sont ouverts en mode lecture seulement ou écriture seulement.
Invalid process id (.IPROC, 0C5h) |
Le numéro d'identification de processus transmis à la fonction "joindre" n'est pas valide.
No spare file handles (.NHAND, 0C4h) |
Essayez d'ouvrir ou de créer un descripteur de fichier alors que tous les descripteurs de fichier sont déjà utilisés. Il existe 64 descripteurs de fichiers disponibles dans la version actuelle.
Invalid file handle (.IHAND, 0C3h) |
Le descripteur de fichier spécifié est supérieur au numéro de descripteur de fichier maximal autorisé.
File handle not open (.NOPEN, 0C2h) |
Le descripteur de fichier spécifié n'est pas ouvert actuellement.
Invalid device operation (.IDEV, 0C1h) |
Tentative d'utilisation d'un gestionnaire de fichier de périphérique ou d'un bloc d'informations de fichier pour une opération non valide telle que la recherche ou le déplacement.
Invalid environment string (.IENV, 0C0h) |
La chaîne du nom de l'élément d'environnement contient un caractère non valide.
Environment string too long (.ELONG, 0BFh) |
Le nom de l'élément d'environnement ou la chaîne de caractères de valeur est soit plus long que la longueur maximale autorisée de 255, soit trop long pour le tampon de l'utilisateur.
Invalid date (.IDATE, 0BEh) |
Les paramètres de date passés à "set date" ne sont pas valides.
Invalid time (.ITIME, 0BDh) |
Les paramètres de l'heure passés à "set time" ne sont pas valides.
RAM disk (drive H:) already exists (.RAMDX, 0BCh) |
Renvoyé par la fonction "ramdisk" si vous essayez de créer un disque RAM alors qu'il en existe déjà un.
RAM disk does not exist (.NRAMD, 0BBh) |
Essayez de supprimer le disque RAM lorsqu'il n'existe pas actuellement. Une fonction tentant d'accéder à un disque RAM inexistant obtiendra une erreur .IDRV.
File handle has been deleted (.HDEAD, 0BAh) |
Le fichier associé à un descripteur de fichier a été supprimé afin que le descripteur de fichier ne puisse plus être utilisé.
(.EOL, 0B9h) |
Erreur interne. Ne devrait jamais se produire.
Invalid sub-function number (.ISBFN, 0B8h) |
Le numéro de sous-fonction passé à la fonction IOCTL (fonction 4Bh) n'était pas valide.
Erreurs de fin de programme
Les erreurs suivantes sont celles pouvant être générées en interne dans le système et transmises aux routines "abort". Ils ne seront normalement pas renvoyés par les appels de fonction. Notez qu'une routine d'abandon peut également être transmise à toute erreur transmise par un programme transitoire à l'appel de fonction "terminer avec code d'erreur".
Ctrl-STOP pressed (.STOP, 09Fh) |
Les touches CTRL+STOP sont testées à presque tous les endroits du système, y compris toutes les entrées/sorties de caractères.
CTRL-C pressed (.CTRLC, 09Eh) |
Les touches CTRL+C ne sont pas testé que sur les fonctions de caractères spécifiant des vérifications d'état.
Disk operation aborted (.ABORT, 09Dh) |
Cette erreur se produit lorsqu'une erreur de disque est annulée par l'utilisateur ou automatiquement par le système. Le code d'erreur de disque d'origine sera transmis à la routine d'abandon dans le registre B en tant que code d'erreur secondaire.
Error on standard output (.OUTERR, 09Ch) |
Renvoyé si une erreur s'est produite sur un canal de sortie standard lors de l'accès par les fonctions de caractères (fonctions 01h..0Bh). Le code d'erreur d'origine est transmis à la routine d'abandon dans le registre B en tant que code d'erreur secondaire. Cette erreur ne se produira normalement que si un programme a modifié les descripteurs de fichiers standard.
Error on standard input (.INERR, 09Bh) |
Renvoyé si une erreur s'est produite sur un canal d'entrée standard lors de l'accès via les fonctions de caractères (fonctions 01h..0Bh). Le code d'erreur d'origine est transmis à la routine d'abandon dans le registre B en tant que code d'erreur secondaire. L'erreur la plus probable est la fin du fichier (.EOF). Cette erreur ne se produira normalement que si un programme a modifié les descripteurs de fichiers standard.
Erreurs de commande
Les erreurs suivantes ne seront pas renvoyées à partir d'un appel de fonction MSX-DOS, mais sont utilisées par l'interpréteur de commandes. Ils sont inclus ici car un programme transitoire peut trouver utile d'en renvoyer certains.
Wrong version of COMMAND (.BADCOM, 08Fh) |
COMMAND2.COM a chargé sa partie transitoire à partir du disque mais sa somme de contrôle n'était pas celle attendue.
Unrecognized command (.BADCM, 08Eh) |
Une commande donnée n'était pas une commande interne et un fichier .COM ou .BAT n'a pas été trouvé avec le même nom.
Command too long (.BADFUL, 08Dh) |
La commande dans un fichier de traitement par lots dépassait 127 caractères.
(.OKCMD, 08Ch) |
Une erreur interne utilisée après l'exécution d'une commande transmise à COMMAND2.COM sur la ligne de commande. (Il n'y a pas de message pour ce code d'erreur.)
Invalid parameter (.IPARAM, 08Bh) |
Le paramètre d'une commande était invalide d'une manière ou d'une autre, par exemple, un nombre en dehors d'intervalle.
Too many parameter (.INP, 08Ah) |
Après avoir analysé tous les paramètres requis pour une commande, il y avait encore plus de caractères non séparateurs sur la ligne de commande.
Missing parameter (.NOPAR, 089h) |
Là où un paramètre était attendu, la fin de ligne a été trouvée.
Invalid option (.IOPT, 088h) |
La lettre donnée après a/sur la ligne de commande n'était pas valide pour cette commande.
Invalid number (.BADNO, 087h) |
Des caractères non numériques apparaissaient là où un nombre était attendu.
File for HELP not found (.NOHELP, 086h) |
Le fichier d'aide est introuvable ou le paramètre n'est pas un paramètre HELP valide.
Wrong version of MSX-DOS (.BADVER, 085h) |
Cette erreur n'est jamais utilisée par l'interpréteur de commandes, il a son propre message interne pour cette erreur. Cependant, il est fourni pour les programmes transitoires pouvant trouver utile de renvoyer cette erreur.
Cannot concatenate destination file (.NOCAT, 084h) |
Le fichier de destination dans CONCAT correspond à la spécification source.
Cannot create destination file (.BADEST, 083h) |
Dans COPY, la création du fichier de destination écraserait l'un des fichiers source (ou un autre fichier déjà utilisé).
File cannot be copied onto itself (.COPY, 082h) |
Dans COPY, le fichier de destination, s'il était créé, écraserait le fichier source.
Cannot overwrite previous destination file (.OVDEST, 081h) |
Dans COPY, une source ambiguë a été spécifiée avec une destination non ambiguë, sans répertoire ni périphérique.