Section courante

A propos

Section administrative du site

 Langage  Installation  Elément  Tutoriel  Programmation  Emulateur  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
QuickC 2.51
Introduction
Les remarques
Les opérateurs
Les instructions conditionnelles
Les instructions de boucles
Définition de procédure et fonction
Type de données
Fichier d'entête
Référence des mot réservés (mots clefs)
Référence des fonctions
Utilisation des entrée/sortie de flux de données
Contrôler le matériel sur le compatible IBM PC
Clavier, son et souris
Géographie
Distance en Km entre deux longitudes et latitudes
DOSBox
PCE - PC Emulator
PCem
Table ASCII
Table des codes ANSI
Lexique et dictionnaire 80x86
Interruptions
Port d'entrée/sortie
RAM de l'IBM PC
Comparaison
00h à 07h: Processeur
08h à 0Fh: Périphériques (IRQ0 à IRQ7)
10h: Gestionnaire vidéo
13h: Accès aux disques
15h: Extension d'Entrée/Sortie
21h: Service DOS
2Fh: Multiplexe
00h: Mode vidéo
01h: Sélection du type de curseur
10h, F0h: Tseng Labs HiColor
4Fh: Pilote VESA
5Fh: Realtek RTVGA
6Fh: Video 7
18h: Demande des informations SCSI
01h: Écrit dans la RAM non-volatile (Amstrad PC1512)
02h: Lecture dans la RAM non-volatile (Amstrad PC1512)
10h: Gestionnaire principal TopView
89h: Entrée en mode protégé
64h: OS/2 API DOS32StartSession
16h: Windows & DPMI
0Ah: Détection de Windows
84h: Demande le point d'entrée
86h: Détection du mode DPMI
87h: Détecte l'installation DPMI
8Eh: Machine virtuel et application
Basic versus C
Jovial versus C
Préface
Notes légal
Dictionnaire
Recherche

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.



PARTAGER CETTE PAGE SUR
Dernière mise à jour : Samedi, le 26 février 2022