mirror of https://github.com/garritfra/ditto-os
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.5 KiB
62 lines
1.5 KiB
#ifndef INCLUDE_FRAMEBUFFER |
|
#define INCLUDE_FRAMEBUFFER |
|
|
|
#include "io.h" |
|
|
|
/* The I/O ports */ |
|
#define FB_COMMAND_PORT 0x3D4 |
|
#define FB_DATA_PORT 0x3D5 |
|
|
|
/* The I/O port commands */ |
|
#define FB_HIGH_BYTE_COMMAND 14 |
|
#define FB_LOW_BYTE_COMMAND 15 |
|
|
|
#define VGA_COLOR_BLACK 0 |
|
#define VGA_COLOR_BLUE 1 |
|
#define VGA_COLOR_GREEN 2 |
|
#define VGA_COLOR_CYAN 3 |
|
#define VGA_COLOR_RED 4 |
|
#define VGA_COLOR_MAGENTA 5 |
|
#define VGA_COLOR_BROWN 6 |
|
#define VGA_COLOR_LIGHT_GREY 7 |
|
#define VGA_COLOR_DARK_GREY 8 |
|
#define VGA_COLOR_LIGHT_BLUE 9 |
|
#define VGA_COLOR_LIGHT_GREEN 10 |
|
#define VGA_COLOR_LIGHT_CYAN 11 |
|
#define VGA_COLOR_LIGHT_RED 12 |
|
#define VGA_COLOR_LIGHT_MAGENTA 13 |
|
#define VGA_COLOR_LIGHT_BROWN 14 |
|
#define VGA_COLOR_WHITE 15 |
|
|
|
#define KBD_DATA_PORT 0x60 |
|
|
|
|
|
int fb_write(char *buf, unsigned int len); |
|
|
|
|
|
|
|
/** fb_write_cell: |
|
* Writes a character with the given foreground and background to position i |
|
* in the framebuffer. |
|
* |
|
* @param i The location in the framebuffer |
|
* @param c The character |
|
* @param fg The foreground color |
|
* @param bg The background color |
|
* |
|
* @example fb_write_cell(0, 'A', 2, 8); |
|
*/ |
|
void fb_write_cell(unsigned int i, char c, unsigned char fg, unsigned char bg); |
|
|
|
/** fb_move_cursor: |
|
* Moves the cursor of the framebuffer to the given position |
|
* |
|
* @param pos The new position of the cursor |
|
*/ |
|
void fb_move_cursor(unsigned short pos); |
|
|
|
unsigned short get_cursor_position(void); |
|
|
|
void advance_cursor(void); |
|
|
|
#endif /* INCLUDE_IO_H */ |