Kintsugi OS 0.4.0
x86 Monolithic OS
Loading...
Searching...
No Matches
terminal.h
Go to the documentation of this file.
1/*------------------------------------------------------------------------------
2 * Kintsugi OS Drivers source code
3 * File: drivers/terminal.h
4 * Title: Заголовочный файл terminal.c
5 * Author: alexeev-prog
6 * License: MIT License
7 * ------------------------------------------------------------------------------
8 * Description: null
9 * ----------------------------------------------------------------------------*/
10
11#ifndef TERMINAL_H
12#define TERMINAL_H
13
14#include "../kklibc/ctypes.h"
15
16/* Конфигурация терминала */
17#define TERMINAL_WIDTH 80 // логическая ширина терминала
18#define TERMINAL_HEIGHT 200 // логическая высота терминала
19#define SCREEN_WIDTH 80 // Физическая ширина экрана
20#define SCREEN_HEIGHT 25 // Физическая высота экрана
21
22/* для хранения символа с атрибутами */
23typedef struct {
25 u8 attribute; // цвет и атрибуты
27
44
45/* Инициализация терминала */
46void terminal_init(void);
47
48/* Основной API для вывода (заменяет старый kprint) */
49void terminal_putchar(char c);
50void terminal_print(const char* str);
51void terminal_print_colored(const char* str, u8 color);
52void terminal_print_at(char* str, int col, int row, int color);
53
54/* Управление курсором */
55void terminal_set_cursor(u32 x, u32 y);
56void terminal_get_cursor(u32* x, u32* y);
57
58/* Управление скроллом */
59void terminal_scroll_up(u32 lines);
60void terminal_scroll_down(u32 lines);
61void terminal_scroll_to(u32 line);
63
64/* Управление атрибутами */
65void terminal_set_color(u8 color);
67void terminal_reset_color(void);
68
69/* Очистка */
70void terminal_clear(void);
71void terminal_clear_line(u32 line);
72
73/* Обновление экрана (рендеринг логического буфера на VGA) */
74void terminal_refresh(void);
75
76/* Обработка ввода (вызывается из keyboard.c) */
77void terminal_handle_input(char c);
79void terminal_handle_enter(void);
82
83/* Получение состояния */
87
88#endif
unsigned int u32
Definition ctypes.h:11
unsigned char u8
Definition ctypes.h:15
Definition terminal.h:23
u8 character
Definition terminal.h:24
u8 attribute
Definition terminal.h:25
Definition terminal.h:28
u32 cursor_y
Definition terminal.h:33
u8 insert_mode
Definition terminal.h:39
u8 dirty
Definition terminal.h:41
u8 auto_scroll
Definition terminal.h:42
u32 scroll_offset
Definition terminal.h:35
u32 cursor_x
Definition terminal.h:32
u8 current_attribute
Definition terminal.h:37
void terminal_scroll_to(u32 line)
Definition terminal.c:202
void terminal_putchar(char c)
Definition terminal.c:71
void terminal_handle_enter(void)
Definition terminal.c:344
void terminal_scroll_down(u32 lines)
Definition terminal.c:176
void terminal_set_cursor(u32 x, u32 y)
Definition terminal.c:139
void terminal_handle_input(char c)
Definition terminal.c:330
void terminal_handle_arrow_down(void)
Definition terminal.c:365
void terminal_init(void)
Definition terminal.c:22
void terminal_scroll_to_bottom(void)
Definition terminal.c:217
void terminal_reset_color(void)
Definition terminal.c:238
void terminal_get_cursor(u32 *x, u32 *y)
Definition terminal.c:153
void terminal_print_at(char *str, int col, int row, int color)
Definition terminal.c:122
terminal_state_t * terminal_get_state(void)
Definition terminal.c:371
u32 terminal_get_scroll_offset(void)
Definition terminal.c:375
void terminal_set_color(u8 color)
Definition terminal.c:228
#define TERMINAL_HEIGHT
Definition terminal.h:18
void terminal_scroll_up(u32 lines)
Definition terminal.c:162
void terminal_clear_line(u32 line)
Definition terminal.c:258
u8 terminal_get_color(void)
Definition terminal.c:233
void terminal_print(const char *str)
Definition terminal.c:114
#define TERMINAL_WIDTH
Definition terminal.h:17
void terminal_print_colored(const char *str, u8 color)
Definition terminal.c:131
void terminal_refresh(void)
Definition terminal.c:320
void terminal_handle_arrow_up(void)
Definition terminal.c:360
void terminal_clear(void)
Definition terminal.c:243
void terminal_handle_backspace(void)
Definition terminal.c:335
u32 terminal_get_buffer_height(void)
Definition terminal.c:379