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

Go to the source code of this file.

Macros

#define VIDEO_ADDRESS   0xb8000
 
#define MAX_ROWS   25
 
#define MAX_COLS   80
 
#define WHITE_ON_BLACK   0x0f
 
#define WHITE_ON_BLUE   0x1f
 
#define WHITE_ON_RED   0x4f
 
#define BLUE_ON_WHITE   0x1f
 
#define WHITE_ON_DGREY   0x8
 
#define BLUE_ON_BLACK   0x01
 
#define GREEN_ON_BLACK   0x02
 
#define CYAN_ON_BLACK   0x03
 
#define RED_ON_BLACK   0x04
 
#define MAGENTA_ON_BLACK   0x05
 
#define BROWN_ON_BLACK   0x06
 
#define LGREY_ON_BLACK   0x07
 
#define DGREY_ON_BLACK   0x08
 
#define LBLUE_ON_BLACK   0x09
 
#define LGREEN_ON_BLACK   0x0A
 
#define LCYAN_ON_BLACK   0x0B
 
#define LRED_ON_BLACK   0x0C
 
#define LMAGENTA_ON_BLACK   0x0D
 
#define YELLOW_ON_BLACK   0x0E
 
#define RED_ON_WHITE   0xf4
 
#define REG_SCREEN_CTRL   0x3d4
 
#define REG_SCREEN_DATA   0x3d5
 

Functions

int get_cursor_offset ()
 Получение оффсета курсора
 
void clear_screen ()
 Стандартная очистка экрана
 
void halted_cpu_screen_clear ()
 Очистка и заполнение экраном halted cpu.
 
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 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)
 Очистить буфер ввода
 
void kprint_at (char *message, int col, int row, int color)
 Вывод текста в определенном месте
 
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 panic_red_screen (char *title, char *description)
 Красный экран для паники ядра
 
void printf_panic_screen (char *title, const char *reason_fmt,...)
 
void set_cursor_offset (int offset)
 
int print_char (char c, int col, int row, char attr)
 
int get_offset (int col, int row)
 
int get_offset_row (int offset)
 
int get_offset_col (int offset)
 
void kprint_at_pos (int col, int row, char c, char attr)
 Вывод символа в определенной позиции
 

Macro Definition Documentation

◆ BLUE_ON_BLACK

#define BLUE_ON_BLACK   0x01

◆ BLUE_ON_WHITE

#define BLUE_ON_WHITE   0x1f

◆ BROWN_ON_BLACK

#define BROWN_ON_BLACK   0x06

◆ CYAN_ON_BLACK

#define CYAN_ON_BLACK   0x03

◆ DGREY_ON_BLACK

#define DGREY_ON_BLACK   0x08

◆ GREEN_ON_BLACK

#define GREEN_ON_BLACK   0x02

◆ LBLUE_ON_BLACK

#define LBLUE_ON_BLACK   0x09

◆ LCYAN_ON_BLACK

#define LCYAN_ON_BLACK   0x0B

◆ LGREEN_ON_BLACK

#define LGREEN_ON_BLACK   0x0A

◆ LGREY_ON_BLACK

#define LGREY_ON_BLACK   0x07

◆ LMAGENTA_ON_BLACK

#define LMAGENTA_ON_BLACK   0x0D

◆ LRED_ON_BLACK

#define LRED_ON_BLACK   0x0C

◆ MAGENTA_ON_BLACK

#define MAGENTA_ON_BLACK   0x05

◆ MAX_COLS

#define MAX_COLS   80

◆ MAX_ROWS

#define MAX_ROWS   25

◆ RED_ON_BLACK

#define RED_ON_BLACK   0x04

◆ RED_ON_WHITE

#define RED_ON_WHITE   0xf4

◆ REG_SCREEN_CTRL

#define REG_SCREEN_CTRL   0x3d4

◆ REG_SCREEN_DATA

#define REG_SCREEN_DATA   0x3d5

◆ VIDEO_ADDRESS

#define VIDEO_ADDRESS   0xb8000

◆ WHITE_ON_BLACK

#define WHITE_ON_BLACK   0x0f

◆ WHITE_ON_BLUE

#define WHITE_ON_BLUE   0x1f

◆ WHITE_ON_DGREY

#define WHITE_ON_DGREY   0x8

◆ WHITE_ON_RED

#define WHITE_ON_RED   0x4f

◆ YELLOW_ON_BLACK

#define YELLOW_ON_BLACK   0x0E

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)

◆ kprint()

void kprint ( char *  message)

◆ kprint_at()

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

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

Parameters
messageсообщение
colколонка
rowряд
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)