update documentations
This commit is contained in:
parent
c4b8a6b317
commit
2555203968
6 changed files with 45 additions and 30 deletions
14
doc/API.md
14
doc/API.md
|
|
@ -1,5 +1,9 @@
|
|||
# API
|
||||
|
||||
Le système utilise plusieurs macro *GFX*,*GUI*, etc pour appeler les fonctions du driver via une table de saut.
|
||||
|
||||
Les arguments sont passés sur la pile (Convention C : dernier argument empilé en premier, nettoyage par l'appelant géré par la macro).
|
||||
|
||||
* [CGA](/doc/CGA.md) controleur graphique
|
||||
|
||||
|
||||
|
|
@ -7,10 +11,18 @@
|
|||
|
||||
Le projet utilise une extension de la BDA standard IBM PC.
|
||||
|
||||
Segment BDA Standard : 0x0040
|
||||
Segment BDA Standard : 0x0040 (comme nous appelons le bios VGA, il faut garder cet espace "libre")
|
||||
|
||||
Segment Données Custom : 0x0050 (Défini par BDA_DATA_SEG).
|
||||
|
||||
## Structure des données (BDA 0x0050)
|
||||
|
||||
Les structures sont définies dans bda.asm.
|
||||
|
||||
OFFSET 0x0000 (Mouse) : État de la souris, coordonnées (x,y), buffer d'arrière-plan.
|
||||
|
||||
OFFSET 0x0034 (Gfx) : Position courante du curseur texte, modes d'affichage.
|
||||
|
||||
## Mapping Mémoire Global :
|
||||
|
||||
0000:0000 : IVT (Interrupt Vector Table)
|
||||
|
|
|
|||
38
doc/CGA.md
38
doc/CGA.md
|
|
@ -13,13 +13,33 @@ call [graph_driver + ID*2].
|
|||
|
||||
Les arguments sont empilés selon la convention C (dernier argument poussé en premier).
|
||||
|
||||
| ID | Macro / Constante | Arguments (pile) | Description |
|
||||
## Liste des fonctions disponibles
|
||||
|
||||
| Index | Commande | Arguments | Description |
|
||||
| - | - | - | - |
|
||||
| 0 | INIT | Aucun | Initialise le mode vidéo 0x06, efface l'écran (damier) et initialise la souris. |
|
||||
| 1 | PUTPIXEL | WORD x, WORD y, BYTE couleur | Dessine un pixel. 0 (Noir), !=0 (Blanc). |
|
||||
2 | GETPIXEL | WORD x, WORD y | Retourne la couleur du pixel dans AL (0 ou 1). |
|
||||
| 3 | GOTOXY |WORD x, WORD y | Positionne le curseur de texte graphique aux coordonnées pixels données.|
|
||||
| 4 | TXT_MODE | Mode | Définit le mode d'écriture du texte (voir Modes Texte ci-dessous). |
|
||||
| 5 | PUTCH | char | Affiche un caractère à la position courante et avance le curseur.
|
||||
| 6 | WRITE | segment, offset | Affiche une chaîne de caractères terminée par 0 (ASCIIZ). |
|
||||
| 7 | GFX_CRS_UPDATE | Aucun | Force la mise à jour visuelle du curseur souris (copie background -> draw).|
|
||||
| 00 | INIT | Aucun | "Initialise le mode vidéo 0x06, efface l'écran et installe le motif de fond."|
|
||||
| 01 | PUTPIXEL | "x (word), y (word) | color (byte)", "Dessine un pixel aux coordonnées (x, y). 0=Noir , !0=Blanc." |
|
||||
| 02 | GETPIXEL | "x (word), y (word)" | Retourne la couleur du pixel dans AL (0 ou 1). |
|
||||
| 03 | GOTOXY | "x (word), y (word)" | Positionne le curseur texte interne (en pixels). |
|
||||
| 04 | TXT_MODE | mode (word) | "Définit le mode d'écriture texte.Bits :0: Couleur (0=Noir, 1=Blanc)1: Transparence (1=Transparent | 0=Opaque)" |
|
||||
| 05 | PUTCH | char (word) | Affiche un caractère ASCII à la position courante et avance le curseur de 8px. |
|
||||
| 06 | WRITE | "seg (word) | offset (word)" | Affiche une chaîne de caractères terminée par 0 (ASCIIZ) pointée par seg:offset. |
|
||||
| 07 | LINE_VERT | "x, y1, y2, color" | Dessine une ligne verticale de y1 à y2 à la position x. |
|
||||
| 08 | LINE_HORIZ | "x1, x2, y, color" | Dessine une ligne horizontale de x1 à x2 à la hauteur y. Optimisé par octet. |
|
||||
| 09 | RECTANGLE_DRAW | "x1, y1, x2, y2, color" | Dessine le contour d'un rectangle. |
|
||||
| 10 | RECTANGLE_FILL | "x1, y1, x2, y2, color" | Dessine un rectangle plein (rempli). |
|
||||
| 11 | MOUSE_HIDE | Aucun | Cache le curseur souris et restaure l'arrière-plan. Gère un compteur interne (récursif). |
|
||||
| 12 | MOUSE_SHOW | Aucun | Sauvegarde l'arrière-plan et affiche le curseur souris. Gère un compteur interne. |
|
||||
| 13 | MOUSE_MOVE | Aucun | Force le rafraîchissement visuel du curseur souris (Efface -> Sauve fond -> Affiche). |
|
||||
|
||||
## Constantes Utiles (Texte)
|
||||
|
||||
Ces constantes sont utilisées avec la commande TXT_MODE.
|
||||
|
||||
*GFX_TXT_WHITE_TRANSPARENT* (0) : Texte blanc, fond inchangé.
|
||||
|
||||
*GFX_TXT_BLACK_TRANSPARENT* (1) : Texte noir, fond inchangé.
|
||||
|
||||
*GFX_TXT_WHITE* (2) : Texte blanc sur fond noir (écrasement).
|
||||
|
||||
*GFX_TXT_BLACK* (3) : Texte noir sur fond blanc (écrasement).
|
||||
|
|
|
|||
Loading…
Reference in a new issue