Kintsugi OS 0.4.0
x86 Monolithic OS
Loading...
Searching...
No Matches
screen.c File Reference
#include "screen.h"
#include "../kklibc/ctypes.h"
#include "../kklibc/stdlib.h"
#include "lowlevel_io.h"
#include "screen_output_switch.h"

Macros

#define INPUT_BUFFER_SIZE   256
 

Functions

void kprint_at (char *message, int col, int row, int color)
 Вывод текста в определенном месте
 
void kprint_at_pos (int col, int row, char c, char attr)
 Вывод символа в определенной позиции
 
void kprint (char *message)
 
void kprintln (char *message)
 
void kprintln_colored (char *message, int color)
 
void kprint_colored (char *message, int color)
 
void kprint_backspace (void)
 
void _screen_kprint (char *message)
 Вывод текста
 
void _screen_kprintln (char *message)
 Вывод текста с новой строкой
 
void _screen_kprintln_colored (char *message, int color)
 Цветной вывод с новой строкой
 
void _screen_kprint_colored (char *message, int color)
 Цветной вывод
 
void _screen_kprint_backspace ()
 Вывод символа backspace.
 
void halted_cpu_screen_clear ()
 Очистка и заполнение экраном halted cpu.
 
void panic_red_screen (char *title, char *description)
 Красный экран для паники ядра
 
void printf_panic_screen (char *title, const char *reason_fmt,...)
 
int print_char (char c, int col, int row, char attr)
 
int get_cursor_offset ()
 Получение оффсета курсора
 
void set_cursor_offset (int offset)
 
void clear_screen ()
 Стандартная очистка экрана
 
int get_offset (int col, int row)
 
int get_offset_row (int offset)
 
int get_offset_col (int offset)
 
void handle_input_char (char c)
 
int read_line (char *buffer, int max_len)
 Чтение строки с клавиатуры с экрана
 
int read_line_with_prompt (const char *prompt, char *buffer, int max_len)
 Вывести приглашение и прочитать строку
 
char * get_input_buffer (void)
 Получить текущий буфер ввода (для шелла)
 
void clear_input_buffer (void)
 Очистить буфер ввода
 
int has_input_ready (void)
 
char * take_input (void)
 

Variables

static char input_buffer [INPUT_BUFFER_SIZE]
 
static int input_buffer_pos = 0
 
static int input_ready = 0
 

Macro Definition Documentation

◆ INPUT_BUFFER_SIZE

#define INPUT_BUFFER_SIZE   256

Function Documentation

◆ _screen_kprint()

void _screen_kprint ( char *  message)

Вывод текста

Parameters
messageсообщение

◆ _screen_kprint_backspace()

void _screen_kprint_backspace ( )

Вывод символа backspace.

◆ _screen_kprint_colored()

void _screen_kprint_colored ( char *  message,
int  color 
)

Цветной вывод

Parameters
messageсообщение
colorцвет

◆ _screen_kprintln()

void _screen_kprintln ( char *  message)

Вывод текста с новой строкой

Parameters
messageсообщение

◆ _screen_kprintln_colored()

void _screen_kprintln_colored ( char *  message,
int  color 
)

Цветной вывод с новой строкой

Parameters
messageсообщение
colorцвет

◆ clear_input_buffer()

void clear_input_buffer ( void  )

Очистить буфер ввода

◆ clear_screen()

void clear_screen ( )

Стандартная очистка экрана

◆ get_cursor_offset()

int get_cursor_offset ( )

Получение оффсета курсора

Returns
int

◆ get_input_buffer()

char * get_input_buffer ( void  )

Получить текущий буфер ввода (для шелла)

Returns
Указатель на буфер ввода

◆ get_offset()

int get_offset ( int  col,
int  row 
)

◆ get_offset_col()

int get_offset_col ( int  offset)

◆ get_offset_row()

int get_offset_row ( int  offset)

◆ halted_cpu_screen_clear()

void halted_cpu_screen_clear ( )

Очистка и заполнение экраном halted cpu.

◆ handle_input_char()

void handle_input_char ( char  c)

◆ has_input_ready()

int has_input_ready ( void  )

◆ kprint()

void kprint ( char *  message)

◆ kprint_at()

void kprint_at ( char *  message,
int  col,
int  row,
int  color 
)

Вывод текста в определенном месте

Вывод сообщения в специфической локации Если col, row отрицательные, то используем текущий оффсет

◆ kprint_at_pos()

void kprint_at_pos ( int  col,
int  row,
char  c,
char  attr 
)

Вывод символа в определенной позиции

Parameters
colколонка
rowстрока
cсимвол
attrатрибуты (цвет)

◆ kprint_backspace()

void kprint_backspace ( void  )

◆ kprint_colored()

void kprint_colored ( char *  message,
int  color 
)

◆ kprintln()

void kprintln ( char *  message)

◆ kprintln_colored()

void kprintln_colored ( char *  message,
int  color 
)

◆ panic_red_screen()

void panic_red_screen ( char *  title,
char *  description 
)

Красный экран для паники ядра

Parameters
titleзаголовок
descriptionописание

◆ print_char()

int print_char ( char  c,
int  col,
int  row,
char  attr 
)

Функции вывода строки для ядра, использующие видео-память

Если 'col' и 'row' отрицательные, мы пишем на текущей позиции курсора Если 'attr' равен 0 он использует 'белое на чернм' по умолчанию Возвращает оффсет следующего символа Устанавливает курсор на оффсете

◆ printf_panic_screen()

void printf_panic_screen ( char *  title,
const char *  reason_fmt,
  ... 
)

◆ read_line()

int read_line ( char *  buffer,
int  max_len 
)

Чтение строки с клавиатуры с экрана

Parameters
bufferБуфер для строки
max_lenМаксимальная длина (включая нулевой символ)
Returns
Длина введенной строки (без нулевого символа)

◆ read_line_with_prompt()

int read_line_with_prompt ( const char *  prompt,
char *  buffer,
int  max_len 
)

Вывести приглашение и прочитать строку

Parameters
promptПриглашение (например, "Enter name: ")
bufferБуфер для строки
max_lenМаксимальная длина
Returns
Длина введенной строки

◆ set_cursor_offset()

void set_cursor_offset ( int  offset)

◆ take_input()

char * take_input ( void  )

Variable Documentation

◆ input_buffer

char input_buffer[INPUT_BUFFER_SIZE]
static

◆ input_buffer_pos

int input_buffer_pos = 0
static

◆ input_ready

int input_ready = 0
static