Conseils sur la compatibilité entre les ordinateurs PC
Il existe trois méthodes d'accès au matériel PC. D'une part, vous pouvez accéder aux fonctions DOS ou BIOS disponibles. D'autre part, vous avez la possibilité de développer de nouvelles fonctions et routines pour le contrôle direct du matériel. Bien que cela n'offre aucun avantage pour l'accès au périphérique d'entreposage de masse et au clavier, les routines spéciales pour l'affichage à l'écran sont souvent beaucoup plus rapides et plus efficaces que les routines BIOS et DOS utilisées pour effectuer le même travail.
Pour la compatibilité, cependant, les fonctions DOS gagnent haut la main. Ceux d'entre vous souhaitant développer des programmes pouvant s'exécuter, sans problème, sur pratiquement n'importe quel ordinateur DOS, doivent respecter certaines règles pour les appels de fonction DOS. Ces règles s'appliquent également à la compatibilité future. Pour développer des programmes sous les versions actuelles de DOS devant s'exécuter sans problème sous les futures versions de DOS, vous devez suivre les suggestions ci-dessous :
- Utilisez uniquement les fonctions DOS pour l'accès à l'écran et au matériel. N'utilisez pas le BIOS ou d'autres fonctions dépendantes du matériel.
- Afficher les messages d'erreur sur le périphérique d'erreur standard (descripteur de fichier 2).
- Utilisez les fonctions de gestion compatibles UNIX version 2 pour l'accès aux fichiers. Cela garantit la compatibilité avec les futures versions de DOS.
- Si vous utilisez les anciennes fonctions FCB pour l'accès aux fichiers ou aux répertoires (par exemple, pour des attributs spéciaux), assurez-vous qu'aucun FCB déjà ouvert n'est ouvert et qu'aucun FCB déjà fermé n'est fermé. Cela pourrait causer des problèmes dans un réseau.
- Vérifiez le numéro de version DOS au début du programme et terminez le programme avec un message d'erreur s'il ne peut pas être exécuté sous cette version.
- Entreposez autant de constantes que nécessaire pour l'exécution du programme (par exemple, les chemins des programmes et des fichiers à charger) dans le bloc d'environnement. Accédez à ces valeurs à partir du bloc d'environnement dans le programme.
- Libérez toute la mémoire non requise par le programme à l'aide des fonctions DOS (ceci est particulièrement important lorsque vous travaillez avec des programmes COM).
- Si vous avez besoin de mémoire supplémentaire, demandez-la en utilisant les fonctions DOS appropriées.
- Utilisez les fonctions DOS disponibles pour les vecteurs d'interruption ; n'accède pas directement aux vecteurs d'interruption.
- Pour modifier le contenu de divers vecteurs d'interruption au sein d'un programme, enregistrez d'abord l'ancien contenu et restaurez-le avant la fin du programme.
- Appeler une des fonctions DOS (31h ou 4Ch) avant la fin du programme pour passer une valeur au programme appelant pour signaler si le programme s'est correctement exécuté. Evitez d'utiliser les autres fonctions de fin de programme (interruption 20h et fonction 0 de l'interruption 21h).
- Utilisez la fonction 59h de l'interruption 21h (disponible dans les versions DOS 3.0 et supérieures) pour localiser les sources d'erreur.
En conclusion, voici un tour d'horizon des anciennes fonctions DOS à éviter. et les nouvelles fonctions équivalentes pouvant les remplacer :
Ancienne | Nouvelle |
---|---|
00h : Fin du programme | 4Ch : Terminer le processus |
0Fh : Ouvrir le fichier | 3Dh : Ouvrir un descripteur de fichier |
10h : Fermer le dossier | 3Eh : Fermer le descripteur de fichier |
11h : Rechercher la première entrée | 4Eh : Rechercher la première entrée |
12h : Rechercher l'entrée suivante | 4Fh : Rechercher l'entrée suivante |
13h : Effacer le fichier | 41h : Effacer l'entrée du répertoire |
14h : Lecture séquentielle | 3Fh : Lecture (à travers le descripteur de fichier) |
15h : Écriture séquentielle | 40h : Écriture (à travers le descripteur de fichier) |
16h : Fichier créé | 3Ch : Descripteur de fichier créée ou 5Ah : Fichier temporaire créé ou 5Bh : Nouveau fichier créé |
17h : Renommer le fichier | 56h : Renommer l'entrée du répertoire |
21h : Lecture à accès aléatoire | 3Fh : Lire (par le biais d'un descripteur de fichier) |
22h : Écriture en accès aléatoire | 40h : Écrire (grâce au descripteur de fichier) |
23h : Détection de la taille du fichier | 42h : Déplacer le pointeur de fichier |
24h : Définir le numéro de l'ensemble de données | 42h : Déplacer le pointeur de fichier |
26h : Créer une nouvelle PSP | 4Bh : Charger et exécuter à partir du fichier |
27h : Lecture à accès aléatoire | 3Fh : Lecture (à travers le descripteur de fichier) |
28h : Écriture en accès aléatoire | 40h : écriture (à travers le descripteur de fichier) |
Si vous suivez toutes ces suggestions, vos programmes s'exécuteront sur d'autres ordinateurs et sous les futures versions de DOS avec peu ou pas de modifications.