int 60h termine la tache en cours
int 61h fonctions générales
int 62h force la commutation de tâche
int 63h fonctions d'interface
int 64h fonctions fichier
int 65h fonction de communication inter-tâche
int 66h fonctions port série et parallèles
int 68h fonctions périphériques usb
entrées: |
al = 0 ds:edx = pointeur vers la commande a envoyer sous la forme d'une chaine utf8Z |
sorties: | eax = code d'erreur |
equivalent C | cmd() |
entrées: |
al = 1 ecx = durée de la pause divisé par 2.5ms |
sorties: | eax = code d'erreur |
equivalent C | delay() |
entrées: | al = 2 |
sorties: |
eax = code d'erreur bx = ID de la tache |
equivalent C | id_tache() |
entrées: |
al = 3 ds:edx = zone de 512 octet ou sera écrit la commande |
sorties: | eax = code d'erreur |
equivalent C | arg_tot() |
entrées: |
al = 4 ah = numéros de l'argument ds:edx = pointeur vers la zone mémoire ou copier l'argument cl = taille maximum (0=255) |
sorties: | eax = code d'erreur |
equivalent C | arg_num() |
entrées: |
al = 5 ah = lettre de l'argument ds:edx = pointeur vers la zone mémoire ou copier l'argument cl = taille maximum (0=255) |
sorties: | eax = code d'erreur |
equivalent C | arg_lettre() |
entrées: |
al = 6 ds:edx = pointeur vers le texte a écrire dans le journal sous la forme d'une chaine utf8Z |
sorties: | eax = code d'erreur |
equivalent C | printJ() |
entrées: |
al = 7 ds:edx = pointeur vers le texte a écrire dans le descripteur de tache sous la forme d'une chaine utf8Z |
sorties: | eax = code d'erreur |
equivalent C | printD() |
entrées: |
al = 8 dx = sélecteur du segment a modifier ecx = taille du segment souhaité |
sorties: | eax = code d'erreur |
equivalent C | changeT() |
entrées: | al = 9 |
sorties: |
bh = heure bl = minute si = seconde (en millième) dl = jour dh = mois cx = année |
equivalent C | lireDH() |
entrées: |
al = 10 ah = code service |
sorties: | eax = code d'erreur |
equivalent C | changeS() |
entrées: |
al = 11 ah = code service recherché ds:edx = pointeur vers la zone ou copier la table des services cl = nombre de service maximum dans la table |
sorties: | eax = code d'erreur |
equivalent C | rechercheS() |
entrées: | al = 12 |
sorties: |
eax = 32bit de poids faible du compteur temps edx = 32bit de poids fort du compteur temps |
entrées: |
al = 13 ah = type de message (0 = système, 1 = erreur) ds:edx = pointeur vers la zone ou copier le message sous la forme d'une chaine utf8Z cl = numéros du message ch = taille maximum du message |
sorties: | eax = codes d'erreurs |
entrées: |
al = 14 es:edx = pointeur vers la zone ou copier le journal sous la forme d'une chaine utf8Z ecx = taille maximum du message |
sorties: | eax = codes d'erreurs |
entrées: |
al = 15 es:edx = pointeur vers les données a copier ecx = taille des données a copier |
sorties: | eax = codes d'erreurs |
entrées: |
al = 16 es:edx = pointeur vers l'endroit ou il faut écrire le presse papier ecx = taille des données a maximum que l'on peut écrire |
sorties: | eax = codes d'erreurs |
entrées: | al = 17 |
sorties: | eax = codes d'erreurs |
entrées: |
al = 18 es:edx = pointeur vers la zone de 512 octet ou copier l'adresse du dossier de travail sous la forme d'une chaine utf8Z |
sorties: | eax = codes d'erreurs |
entrées: |
al = 11 ds:edx = pointeur vers la zone ou copier la table des id de tache cl = nombre de tache maximum dans la table |
sorties: | eax = code d'erreur |
entrées: |
al = 100 ds:edx = pointeur vers la chaine a convertir |
sorties: |
eax = codes d'erreurs ecx = valeur de ce nombre |
entrées: |
al = 101 ds:edx = pointeur vers la chaine a convertir |
sorties: |
eax = codes d'erreurs ecx = valeur de ce nombre |
entrées: |
al = 102 ecx = nombre ds:edx = pointeur vers une zone mémoire de 16 octet ou sera copié le résultat |
sorties: | eax = codes d'erreurs |
entrées: |
al = 103 ecx = nombre ds:edx = pointeur vers une zone mémoire de 16 octet ou sera copié le résultat |
sorties: | eax = codes d'erreurs |
entrées: |
al = 104 ecx = nombre ds:edx = pointeur vers une zone mémoire de 16 octet ou sera copié le résultat |
sorties: | eax = codes d'erreurs |
entrées: |
al = 105 ecx = nombre ds:edx = pointeur vers une zone mémoire de 16 octet ou sera copié le résultat |
sorties: | eax = codes d'erreurs |
entrées: |
al = 108 ds:ecx = pointeur vers l'adresse a convertir ds:edx = pointeur vers une zone mémoire ou sera copié le résultat |
sorties: | eax = codes d'erreurs |
entrées: |
al = 109 ds:ecx = pointeur vers l'adresse a convertir ds:edx = pointeur vers une zone mémoire ou sera copié le résultat |
sorties: | eax = codes d'erreurs |
entrées: |
al = 110 ds:ecx = pointeur vers l'adresse a convertir ds:edx = pointeur vers une zone mémoire ou sera copié le résultat |
sorties: | eax = codes d'erreurs |
entrées: |
al = 111 ds:ecx = pointeur vers la a zone ou ser copié le résultat ds:edx = pointeur vers la chaine de caractère a convertir |
sorties: | eax = codes d'erreurs |
entrées: |
al = 112 ds:ecx = pointeur vers la a zone ou ser copié le résultat ds:edx = pointeur vers la chaine de caractère a convertir |
sorties: | eax = codes d'erreurs |
entrées: |
al = 113 ds:ecx = pointeur vers la a zone ou ser copié le résultat ds:edx = pointeur vers la chaine de caractère a convertir |
sorties: | eax = codes d'erreurs |
entrées: |
al = 116 ds:esi = chaine en base64 a convertir ecx = taille de la chaine ds:edi = pointeur vers une zone mémoire ou sera copié le résultat |
sorties: | eax = codes d'erreurs |
entrées: |
al = 117 ds:esi = données binaire a convertir ecx = taille des donnée ds:edi = pointeur vers une zone mémoire ou sera copié le résultat |
sorties: | eax = codes d'erreurs |
entrées: |
al = 118 ds:esi = données binaire a convertir ecx = taille des donnée ds:edi = pointeur vers une zone mémoire ou sera copié le résultat |
sorties: | eax = codes d'erreurs |
entrées: |
al = 119 ecx = lsb du comteur temp edx = msb du compteur temp |
sorties: |
eax = codes d'erreurs bh = heure bl = minute si = seconde (en millième) dl = jour dh = mois cx = année |
entrées: |
al = 119 bh = heure bl = minute si = seconde (en millième) dl = jour dh = mois cx = année |
sorties: |
eax = codes d'erreurs ecx = lsb du comteur temp edx = msb du compteur temp |
entrées: |
al = 150 ds:esi = début de la chaine ecx = Nb d'octet de la chaine bx = valeur initiale du CRC dx = "polynome" |
sorties: | ax = valeur du CRC |
entrées: |
al = 151 ds:esi = début de la chaine ecx = Nb d'octet de la chaine ebx = valeur initiale du CRC edx = "polynome" |
sorties: | eax = valeur du CRC |
entrées: |
al = 152 ds:esi = pointeur vers les données a décompresser es:edi = pointeur ver la zone ou seront décompressé les données |
sorties: |
eax = codes d'erreurs esi = nombre d'octet de la partie compressé edi = nombre d'octet de la partie decompressé |
entrées: |
al = 153 edx = adresse dans le fichier ou se trouve les données compressé esi = n° du descripteur du fichier compressé edi = n° du descripteur du fichier ou seront décopressé les données |
sorties: |
eax = codes d'erreurs esi = nombre d'octet de la partie compressé edi = nombre d'octet de la partie decompressé |
equivalent C | raf() |
entrées: |
al = 0 ah = options dx = selecteur du segment a uttiliser pour la console |
sorties: | eax = codes d'erreurs |
entrées: | al = 1 |
sorties: | aucunes sorties |
entrées: |
al = 2 ds:edx = pointeur ou copier la table des informations (voir ci dessous) |
sorties: | eax = codes d'erreurs |
entrées: |
al = 3 dx = id de la tâche que l'on souhaite afficher |
sorties: | eax = codes d'erreurs |
entrées: | al = 5 |
sorties: |
al = code de touche ou du bouton souris (valeurs F0h à FFh) ah = état des touche spéciales ebx = 0 ou position X si souris ecx = caractère associé a la touche ou position Y si souris |
entrées: |
al = 6 ah = couleur ds:edx=adresse ou sera ecrit la chaine (avec chaine de pré remplissage obligatoire) ecx = nombre d'octet max |
sorties: | al = code touche qui a validé la saisie |
entrées: | al = 7 |
sorties: | eax = codes d'erreurs |
entrées: |
al = 8 ebx = coordonnée X coin supérieur gauche ecx = coordonnée Y coin supérieur gauche esi = coordonné X coin inférieur droit edi = coordonné X coin inférieur droit |
sorties: | eax = codes d'erreurs |
entrées: |
al = 10 ah = couleur ds:edx = pointeur vers chaine de caractère utf8z ebx = position en X ecx = position en Y |
sorties: | eax = codes d'erreurs |
entrées: |
al = 11 ah = couleur ds:edx = pointeur vers chaine de caractère utf8z |
sorties: | eax = codes d'erreurs |
entrées: |
al = 12 ebx = position en X ecx = position en Y |
sorties: | eax = codes d'erreurs |
entrées: |
al = 13 bl = ligne preselectionné bh = couleur de base (3bits) cl = première ligne du menu ch = nombre de ligne |
sorties: |
eax = codes d'erreurs bl = ligne selectionné bh = touche qui as validé |
entrées: |
al = 14 esi = progression edi = total ebx = position X de la barre ecx = position Y de la barre edx = taille de la barre en nombre de caractère |
sorties: | eax = codes d'erreurs |
entrées: |
al = 21 ah = bit par pixel de la couleur bx = position X cx = position Y edx = couleur |
sorties: | eax = codes d'erreurs |
entrées: |
al = 22 ah = bit par pixel de la couleur bx = coordonnée X coin supérieur gauche cx = coordonnée Y coin supérieur gauche si = coordonné X coin inférieur droit di = coordonné X coin inférieur droit edx = couleur |
sorties: | eax = codes d'erreurs |
entrées: |
al = 23 ah = bit par pixel de la couleur bx = coordonnée X début cx = coordonnée Y début si = coordonné X fin di = coordonné X fin edx = couleur |
sorties: | eax = codes d'erreurs |
entrées: |
al = 24 ah = bit par pixel de la couleur bx = position X cx = position Y edx = couleur esi=rayon du cercle |
sorties: | eax = codes d'erreurs |
entrées: |
al = 25 ah = couleur bx = position X cx = position Y ds:edx = pointeur vers la chaine utf8Z |
sorties: | eax = codes d'erreurs |
entrées: |
al = 26 ah = couleur bx = position X cx = position Y ds:edx = pointeur vers la chaine utf8Z esi = nombre de caractère max en largeur |
sorties: | eax = codes d'erreurs |
entrées: |
al = 27 bx = position X cx = position Y ds:edx = pointeur vers une image au format BMS |
sorties: | eax = codes d'erreurs |
entrées: |
al = 50 ah = nombre de bit par couleur ebx = largeur de l'image ecx = hauteur de l'image edx = couleur de l'image ds:edi=position de l'image |
sorties: | eax = codes d'erreurs |
entrées: |
al = 51 ebx = Id du fichier image |
sorties: |
eax = codes d'erreurs ebx = largeur de l'image ecx = hauteur de l'image edx = [24MSB = taille image au format BMS 8LSB = bit par pixel] |
entrées: |
al = 52 ebx = Id du fichier image es:edi = adresse ou copier l'image |
sorties: | eax = codes d'erreurs |
entrées: |
al = 53 ds:esi = image d'origine ds:edi = image de sortie |
sorties: | eax = codes d'erreurs |
entrées: |
al = 54 ds:esi = image d'origine es:edi = image de sortie ebx = position x du fragment ecx = position y du fragment |
sorties: | eax = codes d'erreurs |
entrées: |
al = 55 ds:esi = image d'origine ds:edi = image de sortie ebx = position x du fragment ecx = position y du fragment |
sorties: | eax = codes d'erreurs |
entrées: |
al = 0 ds:edx = chaine de caractère du nom du fichier a ouvrir ebx = numéros de dossier qui contient |
sorties: |
eax = codes d'erreurs bx=numéros du fichier |
equivalent C | open_file() |
entrées: |
al = 1 ebx = numéros du fichier a fermer |
sorties: | eax = codes d'erreurs |
equivalent C | close_file() |
entrées: |
al = 2 ds:edx = chaine de caractère du nom du fichier a créer ebx = numéros de dossier qui contiendra le fichier |
sorties: |
eax = codes d'erreurs bx=numéros du fichier |
equivalent C | create_file() |
entrées: |
al = 3 ebx = numéros du fichier a fermer |
sorties: | eax = codes d'erreurs |
equivalent C | delete_file() |
entrées: |
al = 4 es:edi = zone ou copier les données ebx = numéros du fichier ouvert edx = offset dans le fichier ecx = quantité a lire |
sorties: | eax = codes d'erreurs |
equivalent C | read_file() |
entrées: |
al = 5 es:esi = adresse des données a copier ebx = numéros du fichier ouvert edx = offset dans le fichier ecx = quantité a ecrire |
sorties: | eax = codes d'erreurs |
equivalent C | write_file() |
entrées: |
al = 6 ah = type d'attribut a lire(0=nom 1=taille fichier 2=attributs) ebx = numéros du fichier ds:edx=destination des données demandé |
sorties: | eax = codes d'erreurs |
entrées: |
al = 7 ah = type d'attribut a modifier(0=nom 1=taille fichier 2=attributs) ebx = numéros du fichier ds:edx = données demandé |
sorties: | eax = codes d'erreurs |
entrées: |
al = 8 ch = n° de disque cl = nombre de secteur a lire ebx = numéros de secteur es:edi = zone de destination |
sorties: | eax = codes d'erreurs |
entrées: |
al = 9 ch = n° de disque cl = nombre de secteur a lire ebx = numéros de secteur ds:esi = donnée a écrire |
sorties: | eax = codes d'erreurs |
entrées: |
al = 10 ch = n° de disque es:edi = zone de destination |
sorties: | eax = codes d'erreurs |
entrées: |
al = 12 ch = n° de disque |
sorties: | eax = codes d'erreurs |
entrées: |
al = 15 ebx = numéros de descripteur fichier ecx = taille du fichier a reserver |
sorties: | eax = codes d'erreurs |
entrées: |
al = 16 ds:edi = zt ou copier les données ecx = taille max edx = premier fichier a lire |
sorties: |
eax = codes d'erreurs ebx = nombre de fichier chargé dans la zt |
entrées: |
al = 17 ds:edx = pointeur ou copier le bitmap de 32 octet |
sorties: | eax = codes d'erreurs |
entrées: |
al = 18 ch = numéros de disque |
sorties: |
eax = codes d'erreurs ecx = taille des secteurs edx = msb nb de secteur ebx = lsb nb de secteur |
entrées: |
al = 0 bx = ID de la tache avec qui communiquer ecx = taille du descripteur edx = attribut canal esi = taille de la zone tampon d'envoie ou masque d'alignement mode 2 edi = taille de la zone tampon de reception |
sorties: |
eax = codes d'erreurs ebx = adresse de la zone dans la mémoire haute edx = adresse physique du descripteur |
entrées: |
al = 1 ebx = adresse du canal dans la mémoire haute |
sorties: | eax = codes d'erreurs |
entrées: | al = 2 |
sorties: |
eax = codes d'erreurs ebx = adresse du canal dans la mémoire haute |
entrées: | al = 3 |
sorties: |
eax = codes d'erreurs ebx = adresse du canal dans la mémoire haute |
entrées: |
al = 4 ebx = adresse du canal dans la mémoire haute ecx = quantité a lire esi = adresse dans la zone es:edi = desitination |
sorties: | eax = codes d'erreurs |
entrées: |
al = 5 ebx = adresse du canal dans la mémoire haute ecx = quantité a lire edi = adresse dans la zone ds:esi = origine des données |
sorties: | eax = codes d'erreurs |
entrées: |
al = 6 ebx = adresse du canal dans la mémoire haute ecx = taille des donnée maximum a lire es:edi = zone ou seront écrite les données |
sorties: |
eax = code d'erreur ecx = taille des données lue |
entrées: |
al = 7 ebx = adresse du canal dans la mémoire haute ecx = taille des donnée a envoyer ds:esi = données a envoyer |
sorties: |
eax = code d'erreur ecx = taille des données écrite |
entrées: |
al = 8 ebx = adresse du canal dans la mémoire haute ecx = temps a attendre |
sorties: | eax = code d'erreur |
entrées: |
al = 9 ebx = adresse du canal dans la mémoire haute ecx = temps a attendre |
sorties: | eax = code d'erreur |
entrées: |
al = 10 ebx = adresse du canal dans la mémoire haute |
sorties: |
eax = code d'erreur bx = ID de la tache au bout du canal ecx = taille du descripteur edx = attribut canal esi = taille de la zone tampon d'envoie edi = taille de la zone tampon de reception ebp = données en attente de lecture |
entrées: |
al = 0 ah = numéros de port cl = octet a envoyer |
sorties: | eax = code d'erreur |
0 à 7 | Port COM 1 à COM 8 |
8 à 15 | Port LPT 1 à LPT 8 |
entrées: |
al = 1 ah = numéros de port es:esi = donnée a envoyer ecx = nombre d'octet a envoyer |
sorties: | eax = code d'erreur |
entrées: |
al = 2 ah = numéros de port |
sorties: |
eax = code d'erreur cl = octet reçu |
entrées: |
al = 3 ah = numéros de port es:edi = zone ou ecrire les données ecx = nombre d'octet a reçevoir maximum |
sorties: | eax = code d'erreur |
entrées: |
al = 4 ah = numéros de port |
sorties: |
eax = code d'erreur ecx = bit d'état |
0 | DTR |
1 | RTS |
2 | CTS |
3 | DSR |
4 | RI |
5 | DCD/RLSD |
0 | saut de page |
1 | reset |
2 | selection périphérique |
3 | signal erreur |
4 | signal périphérique on line |
5 | signal plus de papier |
entrées: |
al = 5 ah = numéros de port ecx = bit d'état |
sorties: | eax = code d'erreur |
entrées: |
al = 6 ah = numéros de port ecx = vitesse du port (max 115200bit/s) dl = attribut |
sorties: | eax = code d'erreur |
0 | 0 = 7 bits par caractère 1 = 8bit par caractère |
1 | innutilisé |
2 | 0 = 1 bit de stop, 1 = 2 bit de stop |
3 | 0 = pas de bit de parité, 1 = présence d'un bit de parité |
4 | 0 = parité impaire(odd), 1 = parité paire(even) |
entrées: |
al = 7 ah = numéros de port |
sorties: | eax = code d'erreur |
entrées: |
al = 8 ah = numéros de port |
sorties: | eax = code d'erreur |
entrées: |
al = 9 ah = numéros de port ecx = taille de la zone tampon de réception |
sorties: | eax = code d'erreur |
entrées: |
al = 0 bl = adresse du périphérique à reserver |
sorties: | eax = code d'erreur |
entrées: |
al = 1 bl = adresse du périphérique à liberer |
sorties: | eax = code d'erreur |
entrées: |
al = 2 bl = adresse du périphérique à liberer bh = terminaison dl = index du descripteur dh = type de descripteur |
sorties: | eax = code d'erreur |
entrées: | al = 3 |
sorties: | eax = code d'erreur |
code | signification |
0 | fonction exécute sans erreur |
1 | paramètre incorrecte |
2 | erreur de lecture |
3 | lecteur/disque/fichier non trouvé |
4 | erreur du système de fichier |
5 | erreur d'écriture |
6 | pas de réponse disque |
7 | disque occupé |
8 | fichier déjà ouvert |
9 | interdiction de lecture |
10 | interdiction d'ouverture |
11 | plus assez de mémoire |
12 | le fichier ouvert est un dossier |
13 | erreur d'origine inconnue (normalement jamais utilisé, sauf erreur) |
14 | nombre de couleur non reconnue |
15 | écran absent |
16 | zone tampon vide |
17 | zone tampon pleine |
18 | contrôleur ne répond pas |
19 | contrôleur absent |
20 | dossier non vide (dans le cas d'une suppression) |
21 | dossier non vide (dans le cas d'une suppression) |
22 | caractère interdit dans le nom de fichier |
23 | création de fichier impossible |
code | signification |
0 | aucun service |
1 | écran |
2 | camera |
3 | imprimante |
4 | scanner |
5 | son |
6 | réseau Ethernet |
7 | reseau wifi |
8 | service dns |
9 | |
10 | aucun service |
11 à 63 | réservé pour les standard |
64 à 255 | utilisable |