From 5eee67a0e547cb98697166e51093494932db0844 Mon Sep 17 00:00:00 2001 From: xamidev Date: Sun, 21 Jul 2024 15:37:32 +0200 Subject: [PATCH] Add: begin shell with help command --- iso/boot/kernel.elf | Bin 21304 -> 21380 bytes os.iso | Bin 497664 -> 497664 bytes src/kernel/kmain.c | 7 +------ src/kernel/shell.c | 24 ++++++++++++++++++++++++ src/kernel/system.h | 1 + src/libc/stdio.c | 6 ++++++ src/libc/string.c | 10 ++++++++++ src/libc/string.h | 1 + 8 files changed, 43 insertions(+), 6 deletions(-) create mode 100644 src/kernel/shell.c diff --git a/iso/boot/kernel.elf b/iso/boot/kernel.elf index b43f5e99c48f207891680c64f68cf60685e37abc..8e0ae03a9be51dd01ee66d565044dcfd8645e331 100755 GIT binary patch delta 6646 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 RG1Y_B+-M&2g^%BO{ueD=O<@24 delta 6091 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 diff --git a/os.iso b/os.iso index 6d4fd1dd75a3371feb07bec639adf9df983ccf1c..389c463585476c16182f9c89b9ee77ca54798350 100644 GIT binary patch delta 7078 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 C#Nkx{ delta 6540 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 XbJT* ", 9); + get_input(input_buffer, BUFFER_SIZE); + printf("\n"); + + // Childish shell + + if (strcmp(input_buffer, "help") == 0) + { + printf("This is the Blank Operating System\ndesigned for fun by xamidev\n\nCommand help:\n\n\thelp - shows this message\n"); + } + + } +} \ No newline at end of file diff --git a/src/kernel/system.h b/src/kernel/system.h index 0b436e3..09933cf 100644 --- a/src/kernel/system.h +++ b/src/kernel/system.h @@ -21,5 +21,6 @@ void timer_install(); void delay(int ticks); void keyboard_install(); char keyboard_getchar(); +void shell_install(); #endif diff --git a/src/libc/stdio.c b/src/libc/stdio.c index 4468acb..87c0e57 100644 --- a/src/libc/stdio.c +++ b/src/libc/stdio.c @@ -87,6 +87,9 @@ void putc(char c) case '\r': VGA_X = 0; break; + case '\t': + VGA_X += 4; + break; default: putchar(VGA_X, VGA_Y, c); VGA_X++; @@ -114,6 +117,9 @@ void colorputc(char c, unsigned int color) case '\r': VGA_X = 0; break; + case '\t': + VGA_X += 4; + break; default: putchar(VGA_X, VGA_Y, c); putcolor(VGA_X, VGA_Y, color); diff --git a/src/libc/string.c b/src/libc/string.c index 022f462..54fedc9 100644 --- a/src/libc/string.c +++ b/src/libc/string.c @@ -7,3 +7,13 @@ int strlen(char* str) } return len; } + +int strcmp(char* str1, char* str2) +{ + while (*str1 && (*str1 == *str2)) + { + str1++; + str2++; + } + return *(const unsigned char*)str1 - *(const unsigned char*)str2; +} \ No newline at end of file diff --git a/src/libc/string.h b/src/libc/string.h index f65cf56..7e406bd 100644 --- a/src/libc/string.h +++ b/src/libc/string.h @@ -2,5 +2,6 @@ #define INCLUDE_STRING_H int strlen(char* str); +int strcmp(char* str1, char* str2); #endif