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
62void clear_screen();
63
69
70void kprint(char* message);
71void kprintln(char* message);
72void kprintln_colored(char* message, int color);
73void kprint_colored(char* message, int color);
74void kprint_backspace(void);
75
76void handle_input_char(char c);
77
84int read_line(char* buffer, int max_len);
85
93int read_line_with_prompt(const char* prompt, char* buffer, int max_len);
94
99char* get_input_buffer(void);
100
104void clear_input_buffer(void);
105
114void kprint_at(char* message, int col, int row, int color);
115
121void _screen_kprint(char* message);
122
128void _screen_kprintln(char* message);
129
136void _screen_kprintln_colored(char* message, int color);
137
144void _screen_kprint_colored(char* message, int color);
145
151
158void panic_red_screen(char* title, char* description);
159
160void printf_panic_screen(char* title, const char* reason_fmt, ...);
161
162void set_cursor_offset(int offset);
163int print_char(char c, int col, int row, char attr);
164int get_offset(int col, int row);
165int get_offset_row(int offset);
166int get_offset_col(int offset);
167
175void kprint_at_pos(int col, int row, char c, char attr);
176
177#endif
int print_char(char c, int col, int row, char attr)
Definition screen.c:182
void _screen_kprint(char *message)
Вывод текста
Definition screen.c:98
int get_offset(int col, int row)
Definition screen.c:275
void kprint(char *message)
Definition screen.c:64
void set_cursor_offset(int offset)
Definition screen.c:249
char * get_input_buffer(void)
Получить текущий буфер ввода (для шелла)
Definition screen.c:334
int read_line(char *buffer, int max_len)
Чтение строки с клавиатуры с экрана
Definition screen.c:310
void kprint_colored(char *message, int color)
Definition screen.c:82
void clear_input_buffer(void)
Очистить буфер ввода
Definition screen.c:338
void clear_screen()
Стандартная очистка экрана
Definition screen.c:257
void _screen_kprint_backspace()
Вывод символа backspace.
Definition screen.c:120
void _screen_kprint_colored(char *message, int color)
Цветной вывод
Definition screen.c:115
void kprintln_colored(char *message, int color)
Definition screen.c:77
void halted_cpu_screen_clear()
Очистка и заполнение экраном halted cpu.
Definition screen.c:132
int get_cursor_offset()
Получение оффсета курсора
Definition screen.c:237
void panic_red_screen(char *title, char *description)
Красный экран для паники ядра
Definition screen.c:144
void printf_panic_screen(char *title, const char *reason_fmt,...)
Definition screen.c:163
void _screen_kprintln(char *message)
Вывод текста с новой строкой
Definition screen.c:103
int read_line_with_prompt(const char *prompt, char *buffer, int max_len)
Вывести приглашение и прочитать строку
Definition screen.c:329
int get_offset_row(int offset)
Definition screen.c:279
void _screen_kprintln_colored(char *message, int color)
Цветной вывод с новой строкой
Definition screen.c:109
void kprint_backspace(void)
Definition screen.c:90
int get_offset_col(int offset)
Definition screen.c:283
void handle_input_char(char c)
Definition screen.c:287
void kprint_at(char *message, int col, int row, int color)
Вывод текста в определенном месте
Definition screen.c:30
void kprint_at_pos(int col, int row, char c, char attr)
Вывод символа в определенной позиции
Definition screen.c:51
void kprintln(char *message)
Definition screen.c:72