/** @file framebuffer.h */

#ifndef FRAMEBUFFER_H
#define FRAMEBUFFER_H

/**
 * @def FB_COMMAND_PORT
 * Le port pour pouvoir envoyer des instructions au curseur du framebuffer
 */
#define FB_COMMAND_PORT 0x3D4
/**
 * @def FB_DATA_PORT
 * Le port pour pouvoir envoyer des instructions au curseur du framebuffer
 */
#define FB_DATA_PORT 0x3D5

#define FB_HIGH_BYTE_COMMAND 14
#define FB_LOW_BYTE_COMMAND 15

#define FB_WHITE 0x0F
#define FB_BLACK 0x00

/**
 * permet d'écrire dans un emplacement du framebuffer
 *
 * @param i l'emplacement où il faut écrire
 * @param c le caractère
 * @param fg la couleur du texte
 * @param bg la couleur du fond du texte
 */
void fb_write_cell(unsigned int i, char c, unsigned char fg, unsigned char bg);

/**
 * permet de déplacer le curseur du framebuffer
 *
 * @param pos la position où déplacer le curseur
 */
void fb_move_cursor(unsigned short pos);
#endif