SayoriOS  0.3.3
Файл keyboard.c

Драйвер клавиатуры Подробнее...

#include <lib/string.h>
#include <io/ports.h>
#include <sys/trigger.h>
#include "drv/input/keyboard.h"
#include "sys/sync.h"
#include "sys/timer.h"
#include "io/tty.h"
#include "drv/psf.h"
#include "sys/isr.h"
#include "drv/ps2.h"

См. исходные тексты.

Макросы

#define KEY_BUFFER_SIZE   16
 
#define KBD_IS_READDATA   (1 << 0)
 
#define KBD_IS_WRITEDATA   (1 << 1)
 
#define KBD_IS_RESET   (1 << 2)
 
#define KBD_IS_CMD   (1 << 3)
 
#define KBD_IS_LOCK   (1 << 4)
 
#define KBD_IS_MOUSEDATA   (1 << 5)
 
#define KBD_IS_TIMEOUT   (1 << 6)
 
#define KBD_IS_ODDERROR   (1 << 7)
 
#define KBD_CTRL_REG   0x61
 

Функции

void tty_backspace ()
 Удаление последнего символа
 
char * __getCharKeyboard (char *en_s, char *en_b, char *ru_s, char *ru_b)
 Выводит правильный символ, в зависимости от языка и шифта Подробнее...
 
char * getCharKeyboard (int key, bool mode)
 Выводит символ, в зависимости от кода полученного с клавиатуры Подробнее...
 
uint8_t getPressReleaseKeyboard ()
 
void keyboardctl (uint8_t param, bool value)
 
int getCharRaw ()
 
bool is_lctrl_key ()
 
int getIntKeyboardWait ()
 
void * getCharKeyboardWait (bool ints)
 
void kbd_add_char (char *buf, char *key)
 
void gets (char *buffer)
 
int gets_max (char *buffer, int length)
 
void keyboardHandler (registers_t regs)
 Обработчик клавиатуры Подробнее...
 
void keyboardInit ()
 Выполняет инициализацию клавиатуры
 
void ps2_keyboard_install_irq ()
 

Переменные

bool SHIFT = false
 Включен ли SHIFT.
 
bool RU = false
 Печатаем русскими?
 
volatile int lastKey = 0
 Последний индекс клавишы
 
uint8_t kbdstatus = 0
 Статус клавиатуры
 
bool echo = true
 Включен ли вывод?
 
bool key_ctrl = false
 
bool key_alt = false
 
volatile char kmode = 0
 
volatile char * curbuf = 0
 
volatile uint32_t chartyped = 0
 

Подробное описание

Драйвер клавиатуры

Автор
Пиминов Никита (nikit.nosp@m.a.pi.nosp@m.minof.nosp@m.f@ya.nosp@m.ndex..nosp@m.ru), NDRAEY >_ (pikac.nosp@m.hu_a.nosp@m.ndrey.nosp@m.@vk..nosp@m.com)
Версия
0.3.5
Дата
2022-11-01

См. определение в файле keyboard.c

Функции

◆ __getCharKeyboard()

char* __getCharKeyboard ( char *  en_s,
char *  en_b,
char *  ru_s,
char *  ru_b 
)

Выводит правильный символ, в зависимости от языка и шифта

Аргументы
en_s- Символ маленький англиский
en_b- Символ большой англиский
ru_s- Символ маленький русский
ru_b- Символ большой русский
Возвращает
char* - Символ в зависимости от раскладки и языка

См. определение в файле keyboard.c строка 55

◆ getCharKeyboard()

char* getCharKeyboard ( int  key,
bool  mode 
)

Выводит символ, в зависимости от кода полученного с клавиатуры

Аргументы
key- Код клавиатуры
mode- Какой-то режим
Возвращает
char* - Или символ или код

См. определение в файле keyboard.c строка 67

◆ keyboardHandler()

void keyboardHandler ( registers_t  regs)

Обработчик клавиатуры

< Вешаем событие на 5й аргумент

См. определение в файле keyboard.c строка 298