Contrôler le matériel sur le compatible IBM PC
Si vous êtes un programmeur QuickC expérimenté, vous connaissez probablement certains des crochets de base fournis par QuickC pour communiquer avec DOS et le BIOS ROM. Les outils que vous développez permettront d'effectuer des opérations telles que l'affichage de texte dans différents attributs, le contrôle du curseur et la configuration de différents modes d'écran. Bien que QuickC fournisse des fonctions spéciales pour certaines de ces opérations, il peut être nécessaire de développer les vôtres car elles vous permettront de mieux contrôler le matériel vidéo de votre compatible IBM PC.
Un aperçu rapide du DOS et du BIOS en ROM
Ensemble, le DOS et le BIOS en ROM exécutent toutes les fonctions du système d'exploitation nécessaires pour prendre en charge un compatible IBM PC, telles que la gestion des répertoires et des fichiers, l'affichage de texte et de graphiques, ainsi que le chargement et l'exécution de programmes. Ils effectuent également des tâches dont vous n'êtes peut-être pas conscient, telles que la détermination du type d'équipement installé sur un compatible IBM PC ou le formatage d'un disque dur. Pour avoir une meilleure idée de ce que fait chaque composante du système d'exploitation de compatible IBM PC, disséquons ensuite à la fois le BIOS en ROM et le DOS.
Le BIOS en ROM abrite toutes les routines de bas niveau pour contrôler les opérations d'entrée/sortie. Les routines DOS, d'autre part, fonctionnent à un niveau plus élevé que les routines BIOS en ROM. En fait, certaines des routines DOS appellent le BIOS en ROM. Ainsi, si vous êtes préoccupé par les performances d'un programme que vous écrivez, vous devez utiliser directement le BIOS en ROM. Les principales catégories d'opérations du BIOS en ROM sont présentées dans le tableau suivants :
Numéro d'interruption | Tâche |
---|---|
05h | Imprime l'image de l'écran courant. |
10h | Routines vidéo |
11h | Détermine l'équipement installé |
12h | Détermine la quantité de mémoire conventionnelle. |
13h | Routines d'entrée/sortie disque |
14h | Routines d'entrée/sortie de port série. |
15h | Routines de supporte magnétocassette. |
16h | Routines d'entrée/sortie clavier |
17h | Routines d'imprimantes |
Notez que chaque catégorie est associée à un numéro d'interruption unique. Le numéro d'interruption est utilisé pour vous aider à accéder aux fonctions de chaque catégorie. Les principales routines DOS, d'autre part, sont regroupées dans une seule catégorie, et elles sont accessibles avec l'interruption 21h.
Communication avec le DOS et le BIOS en ROM
Si nous voulons profiter des fonctionnalités du système d'exploitation d'un compatible IBM PC, nous devons apprendre à communiquer avec le DOS et le BIOS en ROM. Heureusement, l'accès aux routines de support du système d'exploitation est assez simple. En fait, le QuickC nous fournit un ensemble complet de fonctions intégrées pour accéder à la fois au DOS et au BIOS en ROM. Le tableau suivant répertorie la plupart des principales fonctions disponibles :
Fonction | Description |
---|---|
bdos | Appel général au système MS-DOS. |
_bios_disk | Appel BIOS pour les opérations disques. |
_bios_equiplist | Appel BIOS pour déterminer la liste d'équipement installé. |
_bios_keybrd | Appel BIOS pour les entrées/sorties clavier. |
_bios_memsize | Appel BIOS pour déterminer la quantité de mémoire conventionnelle installé. |
_bios_printer | Appel BIOS pour les entrées/sorties d'imprimantes. |
_bios_serialcom | Appel BIOS pour les ports séries de communications. |
_bios_timeofday | Appel BIOS pour les appels d'ajustement ou de lecture de la minuterie système. |
int86 | Interruption logiciel 8086 général. |
int86x | Interruption 8086 général pour les modèles de données larges. |
intdos | Interruption général 21h de l'interface MS-DOS. |
intdosx | Interruption général 21h de l'interface MS-DOS. |
Les fonctions sont divisées en trois catégories principales : appels d'interruption DOS généraux. Appels d'interruption du BIOS et appels d'interruption généraux nous permettant d'accéder à DOS ou au BIOS en ROM. Toutes ces fonctions sont décrites dans le QuickC Reference Guide.