Kintsugi OS 0.4.0
x86 Monolithic OS
Loading...
Searching...
No Matches
screen.h
Go to the documentation of this file.
1/*------------------------------------------------------------------------------
2 * Kintsugi OS Drivers source code
3 * File: drivers/screen.h
4 * Title: Заголовочный файл screen.c
5 * Author: alexeev-prog
6 * License: MIT License
7 * ------------------------------------------------------------------------------
8 * Description: null
9 * ----------------------------------------------------------------------------*/
10
11#ifndef SCREEN_H
12#define SCREEN_H
13
14// Подключаем типы из CPU
15#include "../kklibc/ctypes.h"
17#include "terminal.h"
18
19#define VIDEO_ADDRESS 0xb8000 // Видео-адрес
20#define MAX_ROWS 25 // Максимальное кол-во линий
21#define MAX_COLS 80 // Максимальное кол-во колонок
22#define WHITE_ON_BLACK 0x0f // HEX-код белого на черном
23#define WHITE_ON_BLUE 0x1f
24#define WHITE_ON_RED 0x4f
25#define BLUE_ON_WHITE 0x1f
26#define WHITE_ON_DGREY 0x8
27
28// HEX-коды разных цветов на черном
29#define BLUE_ON_BLACK 0x01
30#define GREEN_ON_BLACK 0x02
31#define CYAN_ON_BLACK 0x03
32#define RED_ON_BLACK 0x04
33#define MAGENTA_ON_BLACK 0x05
34#define BROWN_ON_BLACK 0x06
35#define LGREY_ON_BLACK 0x07
36#define DGREY_ON_BLACK 0x08
37#define LBLUE_ON_BLACK 0x09
38#define LGREEN_ON_BLACK 0x0A
39#define LCYAN_ON_BLACK 0x0B
40#define LRED_ON_BLACK 0x0C
41#define LMAGENTA_ON_BLACK 0x0D
42#define YELLOW_ON_BLACK 0x0E
43#define RED_ON_WHITE 0xf4
44
45/* Порты ввода/вывода экрана */
46#define REG_SCREEN_CTRL 0x3d4
47#define REG_SCREEN_DATA 0x3d5
48
49/* Публичное API ядра */
50
57
59
60int has_input_ready(void);
61
66void clear_screen();
67
73
74void kprint(char* message);
75void kprintln(char* message);
76void kprintln_colored(char* message, int color);
77void kprint_colored(char* message, int color);
78void kprint_backspace(void);
79
80void handle_input_char(char c);
81
88int read_line(char* buffer, int max_len);
89
97int read_line_with_prompt(const char* prompt, char* buffer, int max_len);
98
103char* get_input_buffer(void);
104
108void clear_input_buffer(void);
109
118void kprint_at(char* message, int col, int row, int color);
119
125void _screen_kprint(char* message);
126
132void _screen_kprintln(char* message);
133
140void _screen_kprintln_colored(char* message, int color);
141
148void _screen_kprint_colored(char* message, int color);
149
155
162void panic_red_screen(char* title, char* description);
163
164void printf_panic_screen(char* title, const char* reason_fmt, ...);
165
166void set_cursor_offset(int offset);
167int print_char(char c, int col, int row, char attr);
168int get_offset(int col, int row);
169int get_offset_row(int offset);
170int get_offset_col(int offset);
171
179void kprint_at_pos(int col, int row, char c, char attr);
180
181#endif
int print_char(char c, int col, int row, char attr)
Definition screen.c:160
void _screen_kprint(char *message)
Вывод текста
Definition screen.c:90
int get_offset(int col, int row)
Definition screen.c:246
void kprint(char *message)
Definition screen.c:56
void set_cursor_offset(int offset)
Definition screen.c:220
char * get_input_buffer(void)
Получить текущий буфер ввода (для шелла)
Definition screen.c:314
int read_line(char *buffer, int max_len)
Чтение строки с клавиатуры с экрана
Definition screen.c:287
void kprint_colored(char *message, int color)
Definition screen.c:74
void clear_input_buffer(void)
Очистить буфер ввода
Definition screen.c:318
void clear_screen()
Стандартная очистка экрана
Definition screen.c:228
void _screen_kprint_backspace()
Вывод символа backspace.
Definition screen.c:108
void _screen_kprint_colored(char *message, int color)
Цветной вывод
Definition screen.c:104
void kprintln_colored(char *message, int color)
Definition screen.c:69
void halted_cpu_screen_clear()
Очистка и заполнение экраном halted cpu.
Definition screen.c:118
int get_cursor_offset()
Получение оффсета курсора
Definition screen.c:212
void panic_red_screen(char *title, char *description)
Красный экран для паники ядра
Definition screen.c:130
int has_input_ready(void)
Definition screen.c:324
void printf_panic_screen(char *title, const char *reason_fmt,...)
Definition screen.c:149
void _screen_kprintln(char *message)
Вывод текста с новой строкой
Definition screen.c:94
int read_line_with_prompt(const char *prompt, char *buffer, int max_len)
Вывести приглашение и прочитать строку
Definition screen.c:309
int get_offset_row(int offset)
Definition screen.c:250
void _screen_kprintln_colored(char *message, int color)
Цветной вывод с новой строкой
Definition screen.c:99
void kprint_backspace(void)
Definition screen.c:82
void handle_input_char_silent(char c)
int get_offset_col(int offset)
Definition screen.c:254
void handle_input_char(char c)
Definition screen.c:263
void kprint_at(char *message, int col, int row, int color)
Вывод текста в определенном месте
Definition screen.c:26
void kprint_at_pos(int col, int row, char c, char attr)
Вывод символа в определенной позиции
Definition screen.c:43
void kprintln(char *message)
Definition screen.c:64