Added temporary Gets() Syscall

This commit is contained in:
2024-05-19 14:05:20 +02:00
parent 00ad779e27
commit 2b9148abee
4 changed files with 21 additions and 15 deletions
+4 -4
View File
@@ -18,7 +18,7 @@ typedef struct {
keyboardState_t keyboard;
__attribute__ ((interrupt))
void keyboardHandler(intFrame_t* iframe) {
void keyboardHandler(intFrame_t* iframe) { // TODO: Make this better and be able to read multi-byte scancode
uint8_t scancode = inb(0x60);
char c = US_Keyboard[keyboard.shift][scancode];
@@ -38,13 +38,13 @@ void keyboardHandler(intFrame_t* iframe) {
char getc() {
keyboard.character = '\0';
while (keyboard.character == '\0') __asm__ volatile ("hlt");
while (keyboard.character == '\0') { __asm__ volatile ("hlt"); }
return keyboard.character;
}
// Reads until a newline
char inputBuffer[MAX_INPUT_LENGTH];
char* read() {
static char inputBuffer[MAX_INPUT_LENGTH];
char c;
uint8_t len = 0;
@@ -53,7 +53,7 @@ char* read() {
if (len < 1) continue; // Can we backspace?
len--;
putc(c);
} else if (len + 1 != MAX_INPUT_LENGTH) { // Check if we can add a new character
} else if (len + 1 != MAX_INPUT_LENGTH) { // Check if we can add a new character (this method avoids overflow issues)
inputBuffer[len++] = c;
putc(c);
}