Kintsugi OS 0.5.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);
63
64/* Управление атрибутами */
65void terminal_set_color(u8 color);
67void terminal_reset_color(void);
68
69/* Очистка */
70void terminal_clear(void);
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
static char line[SHELL_LINE_SIZE]
Definition line_editor.c:7
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:340
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:326
void terminal_handle_arrow_down(void)
Definition terminal.c:361
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:234
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:367
u32 terminal_get_scroll_offset(void)
Definition terminal.c:371
void terminal_set_color(u8 color)
Definition terminal.c:224
#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:254
u8 terminal_get_color(void)
Definition terminal.c:229
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:316
void terminal_handle_arrow_up(void)
Definition terminal.c:356
void terminal_clear(void)
Definition terminal.c:239
void terminal_handle_backspace(void)
Definition terminal.c:331
u32 terminal_get_buffer_height(void)
Definition terminal.c:375