Les interruptions BIOS


Initialiser le mode vidéo :

mov ah,0 ;numéro de fonction
mov al,3 ;mode vidéo 80x25, 16 couleurs
int 10h

Afficher le curseur :

mov ah,1 ;numéro de fonction
mov ch,50 ;ligne de départ du curseur
mov cl,50 ;ligne de fin du curseur
int 10h

Positionner le curseur :

mov ah,2 ;numéro de fonction
mov bh,0 ;numéro de page écran
mov dh,lig ;ligne de l'écran
mov dl,col ;colonne de l'écran
int 10h

Faire défiler des lignes vers le haut :

mov ah,6 ;numéro de fonction
mov al,nbr_lig ;nombre de lignes
mov bh,couleur ;couleur des nouvelles lignes
mov ch,yh ;ligne haute de la fenêtre
mov cl,xg ;colonne gauche de la fenêtre
mov dh,yb ;ligne basse de la fenêtre
mov dl,xd ;colonne droite de la fenêtre
int 10h

Faire défiler des lignes vers le bas :

mov ah,7 ;numéro de fonction
mov al,nbr_lig ;nombre de lignes
mov bh,couleur ;couleur des nouvelles lignes
mov ch,yh ;ligne haute de la fenêtre
mov cl,xg ;colonne gauche de la fenêtre
mov dh,yb ;ligne basse de la fenêtre
mov dl,xd ;colonne droite de la fenêtre
int 10h

Lire un caractère et une couleur :

mov ah,8 ;numéro de fonction
mov bh,0 ;numéro de page écran
int 10h
mov ah,couleur ;couleur du caractère
mov car,al ;code ASCII du caractère
int 10h

Ecrire un caractère et une couleur :

mov ah,9 ;numéro de fonction
mov al,car ;code ASCII du caractère
mov bh,0 ;numéro de page écran
mov bl,couleur ;couleur du caractère
mov cx,nbr_rep ;nombre de répétitions du caractère
int 10h

Ecrire un pixel :

mov ah,0ch ;numéro de fonction
mov al,couleur ;couleur du pixel
mov cx,col ;colonne du pixel
mov dx,lig ;ligne du pixel
int 10h

Lire un pixel :

mov ah,0dh ;numéro de fonction
mov cx,col ;colonne du pixel
mov dx,lig ;ligne du pixel
int 10h
mov couleur,al ;couleur du pixel

Interdire le clignotement des caractères :

mov ah,10h ;numéro de fonction
mov al,3 ;numéro de sous-fonction
mov bl,0 ;clignotement interdit
int 10h

Charger et activer la police de caractères 8x8 (50 lignes) :

mov ah,11h ;numéro de fonction
mov al,12h ;numéro de sous-fonction
mov bl,0 ;jeu de caractères
int 10h

Activer la routine de copie d'écran affichant plus de 25 lignes :

mov ah,12h ;numéro de fonction
mov bl,20h ;numéro de sous-fonction
int 10h

Initialiser l'interface série :

mov ah,0 ;numéro de fonction
mov al,251 ;8 bits de données (bits 0 et 1)
;1 bit d'arrêt (bit 2)
;parité paire (bits 3 et 4)
;9600 bauds (bits 5, 6 et 7)
mov dx,num_port ;0=COM1, 1=COM2, etc...
int 14h

Emettre un caractère sur l'interface série :

mov ah,1 ;numéro de fonction
mov al,car ;code ASCII du caractère
mov dx,num_port ;0=COM1, 1=COM2, etc...
int 14h

Recevoir un caractère sur l'interface série :

mov ah,2 ;numéro de fonction
mov dx,num_port ;0=COM1, 1=COM2, etc...
int 14h
mov car,al ;code ASCII du caractère

Tester l'interface série :

mov ah,3 ;numéro de fonction
mov dx,num_port ;0=COM1, 1=COM2, etc...
int 14h
and ah,1
cmp ah,1 ;caractère présent ?
jne fin
mov car,ah ;code ASCII du caractère

Fixer à 1 le bit 7 d'un flag après un temps :

mov ah,83h ;numéro de fonction
mov bx,ds
mov es,bx ;segment du flag
mov bx,offset flag ;offset du flag
mov cx,mot_fort ;mot fort du temps (µs)
mov dx,mot_faible ;mot faible du temps (µs)
int 15h

Attendre un temps :

mov ah,86h ;numéro de fonction
mov cx,mot_fort ;mot fort du temps (µs)
mov dx,mot_faible ;mot faible du temps (µs)
int 15h

Lire un caractère dans le buffer du clavier :

mov ah,0 ;numéro de fonction
int 16h
mov car,al ;code ASCII du caractère

Tester la présence d'un caractère dans le buffer du clavier :

mov ah,1 ;numéro de fonction
int 16h
je fin
mov car,al ;code ASCII du caractère

Imprimer un caractère :

mov ah,0 ;numéro de fonction
mov al,car ;code ASCII du caractère
mov dx,0 ;numéro d'imprimante
int 17h

Initialiser l'imprimante :

mov ah,1 ;numéro de fonction
mov dx,0 ;numéro d'imprimante
int 17h

Initialiser le driver de la souris :

mov ax,0 ;numéro de fonction
int 33h

Afficher la souris :

mov ax,1 ;numéro de fonction
int 33h

Effacer la souris :

mov ax,2 ;numéro de fonction
int 33h

Lire l'état des boutons et la position de la souris :

mov ax,3 ;numéro de fonction
int 33h
mov etat,bx ;1 -> clic sur bouton gauche
;2 -> clic sur bouton droit
mov pos_hor,cx ;position horizontale
mov pos_ver,dx ;position verticale

Définir la zone de déplacement horizontale de la souris :

mov ax,7 ;numéro de fonction
mov cx,pos_hor_min ;position horizontale minimale
mov dx,pos_hor_max ;position horizontale maximale
int 33h

Définir la zone de déplacement verticale de la souris :

mov ax,8 ;numéro de fonction
mov cx,pos_ver_min ;position verticale minimale
mov dx,pos_ver_max ;position verticale maximale
int 33h

Définir le rapport entre les mickeys et les pixels :

mov ax,0fh ;numéro de fonction
mov cx,nbr_hor ;nombre de mickeys horizontaux représentant 8 pixels
mov dx,nbr_ver ;nombre de mickeys verticaux représentant 8 pixels
int 33h

Définir la zone d'exclusion de la souris :

mov ax,10h ;numéro de fonction
mov cx,xg ;colonne gauche de la fenêtre
mov dx,yh ;ligne haute de la fenêtre
mov si,xd ;colonne droite de la fenêtre
mov di,yb ;ligne basse de la fenêtre
int 33h