From 27569fd5d8ca1eb3edacc96b0f0b46193e7019c1 Mon Sep 17 00:00:00 2001 From: xamidev Date: Tue, 7 Jan 2025 14:58:45 +0100 Subject: [PATCH] getting rid of shit to focus more on kernel, drivers, and real stuff --- makefile | 19 +-- program.ld | 10 -- src/initrd/flower.bmp | Bin 30138 -> 0 bytes src/initrd/hello.bf | 1 - src/initrd/hibou.bmp | Bin 196730 -> 0 bytes src/initrd/red.bmp | Bin 30138 -> 0 bytes src/initrd/smiley.bmp | Bin 30138 -> 0 bytes src/initrd/stuff/nice.txt | 8 - src/initrd/welcome.txt | 37 ---- src/kernel/kmain.c | 5 +- src/kernel/shell.c | 178 ------------------- src/programs/hello.c | 10 -- src/utils/bf.c | 74 -------- src/utils/bmp.c | 99 ----------- src/utils/ciphers.c | 160 ------------------ src/utils/ciphers.h | 11 -- src/utils/conway.c | 136 --------------- src/utils/conway.h | 23 --- src/utils/cowsay.c | 72 -------- src/utils/fs.c | 30 ---- src/utils/math.c | 245 --------------------------- src/utils/misc.c | 176 ------------------- src/utils/navalbattle.c | 348 -------------------------------------- src/utils/navalbattle.h | 37 ---- src/utils/pi.c | 34 ---- src/utils/primes.c | 44 ----- src/utils/snake.c | 200 ---------------------- src/utils/sysinfo.c | 85 ---------- src/utils/uhex.c | 82 --------- src/utils/utils.h | 53 ------ src/utils/words.c | 217 ------------------------ 31 files changed, 6 insertions(+), 2388 deletions(-) delete mode 100644 program.ld delete mode 100644 src/initrd/flower.bmp delete mode 100644 src/initrd/hello.bf delete mode 100644 src/initrd/hibou.bmp delete mode 100644 src/initrd/red.bmp delete mode 100644 src/initrd/smiley.bmp delete mode 100644 src/initrd/stuff/nice.txt delete mode 100644 src/initrd/welcome.txt delete mode 100644 src/kernel/shell.c delete mode 100644 src/programs/hello.c delete mode 100644 src/utils/bf.c delete mode 100644 src/utils/bmp.c delete mode 100644 src/utils/ciphers.c delete mode 100644 src/utils/ciphers.h delete mode 100644 src/utils/conway.c delete mode 100644 src/utils/conway.h delete mode 100644 src/utils/cowsay.c delete mode 100644 src/utils/fs.c delete mode 100644 src/utils/math.c delete mode 100644 src/utils/misc.c delete mode 100644 src/utils/navalbattle.c delete mode 100644 src/utils/navalbattle.h delete mode 100644 src/utils/pi.c delete mode 100644 src/utils/primes.c delete mode 100644 src/utils/snake.c delete mode 100644 src/utils/sysinfo.c delete mode 100644 src/utils/uhex.c delete mode 100644 src/utils/utils.h delete mode 100644 src/utils/words.c diff --git a/makefile b/makefile index 51c5778..d703321 100644 --- a/makefile +++ b/makefile @@ -9,19 +9,15 @@ AR = i386-elf-7.5.0-Linux-x86_64/bin/i386-elf-ar SRC_DIR = src KERNEL_DIR = $(SRC_DIR)/kernel LIBC_DIR = $(SRC_DIR)/libc -UTILS_DIR = $(SRC_DIR)/utils DRIVERS_DIR = $(SRC_DIR)/drivers -PROGRAMS_DIR = $(SRC_DIR)/programs INCLUDE_DIR = include FONTS_DIR = $(INCLUDE_DIR)/fonts OBJ_DIR = build -C_SOURCES = $(wildcard $(KERNEL_DIR)/*.c) $(wildcard $(LIBC_DIR)/*.c) $(wildcard $(UTILS_DIR)/*.c) $(wildcard $(DRIVERS_DIR)/*.c) -ASM_SOURCES = $(wildcard $(KERNEL_DIR)/*.s) $(wildcard $(LIBC_DIR)/*.s) $(wildcard $(UTILS_DIR)/*.s) $(wildcard $(DRIVERS_DIR)/*.s) -PROGRAM_SOURCES = $(wildcard $(PROGRAMS_DIR)/*.c) +C_SOURCES = $(wildcard $(KERNEL_DIR)/*.c) $(wildcard $(LIBC_DIR)/*.c) $(wildcard $(DRIVERS_DIR)/*.c) +ASM_SOURCES = $(wildcard $(KERNEL_DIR)/*.s) $(wildcard $(LIBC_DIR)/*.s) $(wildcard $(DRIVERS_DIR)/*.s) OBJECTS = $(patsubst $(SRC_DIR)/%, $(OBJ_DIR)/%, $(C_SOURCES:.c=.o) $(ASM_SOURCES:.s=.o)) -PROGRAM_OBJECTS = $(patsubst $(SRC_DIR)/%, $(OBJ_DIR)/%, $(PROGRAM_SOURCES:.c=.o)) TOOLCHAIN_SRC = https://newos.org/toolchains/i386-elf-7.5.0-Linux-x86_64.tar.xz TOOLCHAIN_FILE = i386-elf-7.5.0-Linux-x86_64.tar.xz @@ -29,22 +25,15 @@ TOOLCHAIN_FILE = i386-elf-7.5.0-Linux-x86_64.tar.xz FONT_OBJ = $(OBJ_DIR)/fonts/viscii10-8x16.o FONT_SRC = $(FONTS_DIR)/viscii10-8x16.psfu -all: $(OBJ_DIR) kernel.elf programs +all: $(OBJ_DIR) kernel.elf $(OBJ_DIR): mkdir -p $(OBJ_DIR) - mkdir -p $(OBJ_DIR)/kernel $(OBJ_DIR)/libc $(OBJ_DIR)/utils $(OBJ_DIR)/drivers $(OBJ_DIR)/fonts $(OBJ_DIR)/programs + mkdir -p $(OBJ_DIR)/kernel $(OBJ_DIR)/libc $(OBJ_DIR)/drivers $(OBJ_DIR)/fonts $(OBJ_DIR)/programs kernel.elf: $(OBJECTS) $(FONT_OBJ) $(LD) $(LDFLAGS) $(OBJECTS) $(FONT_OBJ) -o kernel.elf -programs: $(PROGRAM_OBJECTS) - @mkdir -p $(SRC_DIR)/initrd - @for prog in $(PROGRAM_OBJECTS); do \ - base=$$(basename $$prog .o); \ - $(LD) -melf_i386 -T program.ld $$prog -o $(SRC_DIR)/initrd/$$base.bin; \ - done - $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(CC) $(CFLAGS) $< -o $@ diff --git a/program.ld b/program.ld deleted file mode 100644 index dc36352..0000000 --- a/program.ld +++ /dev/null @@ -1,10 +0,0 @@ -OUTPUT_FORMAT(binary) -ENTRY(main) - -SECTIONS -{ - . = 0x1000; - .text : { *(.text*) } - .data : { *(.data*) } - .bss : { *(.bss*) } -} diff --git a/src/initrd/flower.bmp b/src/initrd/flower.bmp deleted file mode 100644 index 0d4f9c3ad6149a8eb6698c4a08ab3c8dd59d64e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30138 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 diff --git a/src/initrd/hello.bf b/src/initrd/hello.bf deleted file mode 100644 index 5a39f53..0000000 --- a/src/initrd/hello.bf +++ /dev/null @@ -1 +0,0 @@ --[------->+<]>-.-[->+++++<]>++.+++++++..+++.[--->+<]>-----.---[->+++<]>.-[--->+<]>---.+++.------.--------. diff --git a/src/initrd/hibou.bmp b/src/initrd/hibou.bmp deleted file mode 100644 index 35af2b796dc3570f0bf57c810e20e1225d86398c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196730 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 z 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 B1c3km diff --git a/src/initrd/red.bmp b/src/initrd/red.bmp deleted file mode 100644 index bf748ed649238aeafbd01fa9303cfdd83c30dcbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30138 zcmeIuu?>VU3;@8u6yMV$W=KQz&CkFFh>i&uiRBj{;pGsvy?oS z82(YEPxQMoZ`vcG5ot^5xbe#UZ@gyDs`|Ee{;429fB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U KAV7e?D}f#C0rX@5 diff --git a/src/initrd/smiley.bmp b/src/initrd/smiley.bmp deleted file mode 100644 index 6d5fc22631a41755dc600fc136df7c999b228771..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30138 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 V<$u5W4}t#>_z!{q5O@-S{{gcc;-vrp diff --git a/src/initrd/stuff/nice.txt b/src/initrd/stuff/nice.txt deleted file mode 100644 index 5849978..0000000 --- a/src/initrd/stuff/nice.txt +++ /dev/null @@ -1,8 +0,0 @@ -Subfolder support! - -I am making a bit of scurity improvements but clearly it has no meaing here. -The real meanng is the tellin of the Genesis; a true work of art. So many -cool stuff here!! Look, there are functions, comands, bits and bytes, conditions, -and lgorithms. What a fantastic world! But after all it stays formless and empty. - -1:5:1 1:1:1 7:8:1 1:7:3 1:4:3 2:1:2 diff --git a/src/initrd/welcome.txt b/src/initrd/welcome.txt deleted file mode 100644 index 60365aa..0000000 --- a/src/initrd/welcome.txt +++ /dev/null @@ -1,37 +0,0 @@ -*********************** -* Welcome to BlankOS! * -*********************** - -Congratulations, you've entered my small world! - -You can try all the commands, try tweaking stuff like explained -in the DEVELOPERS.md file, and even contribute if you got the -guts. lol. - -Don't look too much at the code, it's badly designed, but hey, -that's my first OS project so I find it kinda cool. - -There's no paging, ring 3, processes... I am not smart enough -for all this modern stuff. Let's keep it simple and stay in -ring0, without processes, maybe one day there'll be more -advanced features, but not today. - -** Why am I doing this? - -I wanted to explore the world of low-level programing. -As I had only 1 year of experience in C, it was super challenging -especially at the beginning, and I needed much time to understand -even the most basic things around OSDev. - -I'll backup the project on archival media once it'll be at a good -enough point; I think it's cool to leave a trace of my passage on -Earth. - -** Easter eggs - -To make the exploration a bit funnier, I hid some easter eggs -around. You can try to find them if you have time to lose. - -** Ravtzn - -Jub xabjf? Znlor fbzrguvat'f uvqqra va gurer... diff --git a/src/kernel/kmain.c b/src/kernel/kmain.c index 0477cd5..cf2de4c 100644 --- a/src/kernel/kmain.c +++ b/src/kernel/kmain.c @@ -15,7 +15,6 @@ #include "multiboot2.h" #include "kheap.h" #include "initrd.h" -#include "../utils/utils.h" #include "../libc/crypto.h" void kmain(multiboot2_info *mb_info) @@ -126,6 +125,6 @@ void kmain(multiboot2_info *mb_info) timer_install(); keyboard_install(); - printf("[kernel] spawning shell...\n"); - shell_install(); + printf("Nothing to do, halting..."); + asm("hlt"); } diff --git a/src/kernel/shell.c b/src/kernel/shell.c deleted file mode 100644 index 36d89ce..0000000 --- a/src/kernel/shell.c +++ /dev/null @@ -1,178 +0,0 @@ -// Basic shell and commands kernel module -// Author: xamidev -// Licensed under the Unlicense. See the repo below. -// https://github.com/xamidev/blankos - -#include "system.h" -#include "../libc/stdio.h" -#include "../libc/string.h" -#include "../utils/utils.h" -#include "../libc/crypto.h" -#include -#include "../drivers/rtc.h" -#include "kmain.h" - -#define BUFFER_SIZE 256 -#define MAX_COMMANDS 64 -#define MAX_ARGS 64 - -// Splash screen: esthetic stuff. -char* motd[] = -{ - "I should be root, really.", - "Not watching you!", - "Now in 2D!", - "Supercalifragilisticexpialidocious!", - "Tylko jedno w glowie mam!", - "Greetings, magic poppy!", - "I'm stuck in this kernel's shell, get me out!", - "And now, solve that equation!", - "Powered by TCC Incorporated.", - "Compiled at 69, CoquaineBaule Ave.", - "Shouldn't we be, uh, doing something?", - "We are the florists, we pick the plants!", - "Lalalalala, I pick the plants!", - "Woah, we're half-way there...", - "The CROU will never die!", - "Technoblade never dies!", - "Hi. My name is Guitar.", - "space station No. 9", - "May the orange juice be with you !", - "Bloody grated carrots!", - "Good night, kiddos...", - "I like trains", - "I fear planes", - "Bruteforce.exe", - "Ohayogozaimasu!", -}; - -int motd_size = sizeof(motd)/sizeof(motd[0]); - -bool do_splash = true; - -void splash() -{ - int random = randint(time_seed()); - char* motd_pick = motd[random%motd_size]; - cowsay(motd_pick, red, black); - puts(" "); - colorputs("blankOS", black, white); - puts(" "); - colorputs(BLANK_VERSION, red, black); - puts("\n"); - - - puts(" Time: "); - rtc_time_t time; - rtc_read_time(&time); - print_time(&time); - puts("\n"); -} - -typedef void (*command_func_t)(int argc, char *argv[]); - -typedef struct -{ - const char* name; - command_func_t function; -} shell_command_t; - -shell_command_t shell_commands[MAX_COMMANDS]; -int command_count = 0; - -void register_command(const char* name, command_func_t function) -{ - if (command_count < MAX_COMMANDS) - { - shell_commands[command_count].name = name; - shell_commands[command_count].function = function; - command_count++; - } -} - -command_func_t find_command(const char* name) -{ - for (int i=0; i < command_count; i++) - { - if (strcmp(name, shell_commands[i].name) == 0) - return shell_commands[i].function; - } - return 0; -} - -int parse_input(char* input, char* argv[], int max_args) -{ - int argc = 0; - char* token = strtok(input, " "); - while (token != NULL && argc < max_args - 1) - { - argv[argc++] = token; - token = strtok(NULL, " "); - } - argv[argc] = NULL; - return argc; -} - -void shell_install() -{ - if (do_splash == true) - { - do_splash = false; - splash(); - } - - register_command("help", program_help); - register_command("panic", program_panic); - register_command("words", program_words); - register_command("primes", program_primes); - register_command("rainbow", program_rainbow); - register_command("clear", program_clear); - register_command("math", program_math); - register_command("bf", program_bf); - register_command("uptime", program_uptime); - register_command("echo", program_echo); - register_command("sysinfo", program_sysinfo); - register_command("conway", program_conway); - register_command("rot13", program_rot13); - register_command("morse", program_morse); - register_command("cowsay", program_cowsay); - register_command("time", program_time); - register_command("read", program_read); - register_command("reboot", program_reboot); - register_command("pi", program_pi); - register_command("ls", program_ls); - register_command("cat", program_cat); - register_command("bmp", program_bmp); - register_command("lspci", program_lspci); - register_command("naval", program_navalbattle); - register_command("snake", program_snake); - register_command("exec", program_exec); - register_command("uhex", program_uhex); - - for (;;) - { - char input_buffer[BUFFER_SIZE]; - char* argv[MAX_ARGS]; - - // Prompt - colorputs("root", blue, black); - colorputs("@", white, black); - colorputs("blankos", green, black); - colorputs("~$ ", white, black); - - get_input(input_buffer, BUFFER_SIZE); - puts("\n"); - - int argc = parse_input(input_buffer, argv, MAX_ARGS); - - if (argc == 0) continue; - - command_func_t command = find_command(argv[0]); - if (command) - { - command(argc, argv); - } else { - printf("Unknown command %s\n", argv[0]); - } - } -} diff --git a/src/programs/hello.c b/src/programs/hello.c deleted file mode 100644 index af3a85f..0000000 --- a/src/programs/hello.c +++ /dev/null @@ -1,10 +0,0 @@ -void user_syscall(int syscall_no) { - asm volatile ("mov %0, %%eax" : : "r"(syscall_no)); - asm volatile ("int $0x80"); -} - -void main() -{ - user_syscall(1); - return; -} diff --git a/src/utils/bf.c b/src/utils/bf.c deleted file mode 100644 index b530216..0000000 --- a/src/utils/bf.c +++ /dev/null @@ -1,74 +0,0 @@ -// Simple brainfuck interpreter program -// Author: xamidev -// Licensed under the Unlicense. See the repo below. -// https://github.com/xamidev/blankos - -#include "../kernel/system.h" -#include "../libc/stdio.h" -#include "../kernel/kmain.h" -#include "../kernel/initrd.h" - -#define BUF_SIZE 256 - -void brainfuck(char* input) -{ - unsigned char tape[30000] = {0}; - unsigned char* ptr = tape; - char current_char; - size_t i; - size_t loop; - - for (i=0; input[i] != 0; i++) - { - current_char = input[i]; - if (current_char == '>') { - ++ptr; - } else if (current_char == '<') { - --ptr; - } else if (current_char == '+') { - ++*ptr; - } else if (current_char == '-') { - --*ptr; - } else if (current_char == '.') { - putc(*ptr); - } else if (current_char == ',') { - *ptr = keyboard_getchar(); - } else if (current_char == '[') { - continue; - } else if (current_char == ']' && *ptr) { - loop = 1; - while (loop > 0) - { - current_char = input[--i]; - if (current_char == '[') { - loop--; - } else if (current_char == ']') { - loop++; - } - } - } - } -} - -void program_bf(int argc, char* argv[]) -{ - if (argc == 1) - { - char input_buffer[BUF_SIZE]; - puts("Brainfuck code? "); - get_input(input_buffer, BUF_SIZE); - brainfuck(input_buffer); - puts("\n"); - } else if (argc == 2) { - // Read file content into buffer, then interpret it - char input_buffer[BUF_SIZE]; - int read = tar_file_to_buffer((uint8_t*)initrd_addr, argv[1], input_buffer); - if (read == 0) - { - brainfuck(input_buffer); - puts("\n"); - } else { - printf("Could not find file '%s'\n", argv[1]); - } - } -} diff --git a/src/utils/bmp.c b/src/utils/bmp.c deleted file mode 100644 index f813ce4..0000000 --- a/src/utils/bmp.c +++ /dev/null @@ -1,99 +0,0 @@ -// Bitmap image renderer -// Author: xamidev -// Licensed under the Unlicense. See the repo below. -// https://github.com/xamidev/blankos - -#include "../kernel/kmain.h" -#include -#include "../kernel/initrd.h" -#include "../drivers/framebuffer.h" -#include "../libc/stdio.h" -#include "../drivers/serial.h" -#include "../kernel/kheap.h" - -#pragma pack(push, 1) -typedef struct -{ - uint16_t bfType; - uint32_t bfSize; - uint16_t bfReserved1; - uint16_t bfReserved2; - uint32_t bfOffBits; -} BMPHeader; - -typedef struct -{ - uint32_t biSize; - int32_t biWidth; - int32_t biHeight; - uint16_t biPlanes; - uint16_t biBitCount; - uint32_t biCompression; - uint32_t biSizeImage; - int32_t biXPelsPerMeter; - int32_t biYPelsPerMeter; - uint32_t biClrUsed; - uint32_t biClrImportant; -} BMPInfoHeader; -#pragma pack(pop) - -void display_bmp(uint32_t* fb, int pitch, int bpp, uint8_t* initrd, const char* filename) -{ - uint32_t buf_size = tar_get_file_size(initrd, filename); - char* buffer = (char*)malloc(buf_size); - int file_status = tar_file_to_buffer(initrd, filename, buffer); - - if (file_status != 0) - { - printf("Error loading file '%s'\n", filename); - return; - } - - BMPHeader* bmp_header = (BMPHeader*)buffer; - BMPInfoHeader* bmp_info = (BMPInfoHeader*) (buffer+sizeof(BMPHeader)); - - if (bmp_header->bfType != 0x4D42) - { - printf("'%s' is not a valid BMP file\n", filename); - return; - } - - int width = bmp_info->biWidth; - int height = bmp_info->biHeight; - int pixel_offset = bmp_header->bfOffBits; - - printf("%d-bit BMP, width: %d, height: %d, pixel offset: %d\n", bmp_info->biBitCount, bmp_info->biWidth, bmp_info->biHeight, (int)bmp_header->bfOffBits); - erase_cursor(); - uint8_t* pixel_data = (uint8_t*)(buffer + pixel_offset); - - int cursor_y = (get_cursor_y()+1)*16; - serial_printf(3, "cursor_y=%d\n", cursor_y); - - for (int y=cursor_y; y\n"); - return; - } - display_bmp(framebuffer, pitch, bpp, (uint8_t*)initrd_addr, argv[1]); -} diff --git a/src/utils/ciphers.c b/src/utils/ciphers.c deleted file mode 100644 index 4ff9460..0000000 --- a/src/utils/ciphers.c +++ /dev/null @@ -1,160 +0,0 @@ -// Cipher programs -// Author: xamidev -// Licensed under the Unlicense. See the repo below. -// https://github.com/xamidev/blankos - -#include "../libc/stdio.h" -#include "ciphers.h" -#include "../libc/string.h" -#include - -void rot13(char* input, char* output) -{ - int i = 0; - - while (input[i] != '\0') - { - char c = input[i]; - - if (c >= 'a' && c <= 'z') { - output[i] = ((c - 'a' + 13) % 26) + 'a'; - } else if (c >= 'A' && c <= 'Z') { - output[i] = ((c - 'A' + 13) % 26) + 'A'; - } else { - output[i] = c; - } - - i++; - } - output[i] = '\0'; -} - -void program_rot13(int argc, char* argv[]) -{ - if (argc < 2) - { - printf("Usage: %s \n", argv[0]); - return; - } - - char input_buffer[BUFFER_SIZE] = {0}; - char output[BUFFER_SIZE] = {0}; - - for (int i=1; i= 'a' && c <= 'z') { - const char* morse_code = morse_alphabet[c - 'a']; - int j = 0; - while (morse_code[j] != '\0') { - output[pos++] = morse_code[j++]; - } - } else if (c >= 'A' && c <= 'Z') { - const char* morse_code = morse_alphabet[c - 'A']; - int j = 0; - while (morse_code[j] != '\0') { - output[pos++] = morse_code[j++]; - } - } else if (c >= '0' && c <= '9') { - const char* morse_code = morse_digits[c - '0']; - int j = 0; - while (morse_code[j] != '\0') { - output[pos++] = morse_code[j++]; - } - } else if (c == ' ') { - output[pos++] = ' '; - } - - output[pos++] = ' '; - i++; - } - - if (pos > 0) { - output[pos - 1] = '\0'; - } else { - output[pos] = '\0'; - } -} - -void program_morse(int argc, char* argv[]) { - - if (argc < 2) - { - printf("Usage: %s \n", argv[0]); - return; - } - - char output[512]; - char message[BUFFER_SIZE]; - - for (int i=1; i -#include "../drivers/serial.h" -#include "../libc/string.h" - -void print_grid(const unsigned char grid[X][Y]) -{ - clear(); - for (int i=0; i= 0 && ni < X && nj >= 0) - { - if (grid[ni][nj] == LIVE) live_neighbors++; - } - } - } - return live_neighbors; -} - -void grid_new_generation(unsigned char grid[X][Y], unsigned char temp[X][Y]) -{ - for (int i=0; i SOUP_PROB ? LIVE : DEAD; - } - } -} - -void program_conway(int argc, char* argv[]) -{ - clear(); - unsigned char grid[X][Y] = {0}; - unsigned char temp[X][Y] = {0}; - - if (argc == 1) - { - soup(grid); - } else if (argc == 2 && strcmp(argv[1], "-g") == 0) { - grid[1][2] = LIVE; - grid[2][3] = LIVE; - grid[3][1] = LIVE; - grid[3][2] = LIVE; - grid[3][3] = LIVE; - } else if (argc == 2 && strcmp(argv[1], "-l") == 0) { - grid[10][3] = LIVE; grid[10][4] = LIVE; grid[10][5] = LIVE; grid[10][6] = LIVE; - grid[11][2] = LIVE; grid[11][6] = LIVE; - grid[12][6] = LIVE; - grid[13][2] = LIVE; grid[13][5] = LIVE; - } - - print_grid(grid); - puts("generation 0"); - for (int i=1; i\n", message); - - puts(" "); - for (int i=0; i\n", argv[0]); - return; - } - - char message[MAX_MSG_LEN]; - message[0] = '\0'; - - for (int i=1; i\n"); - return; - } - cat_initrd((uint8_t*)initrd_addr, argv[1]); -} diff --git a/src/utils/math.c b/src/utils/math.c deleted file mode 100644 index 3acd2b1..0000000 --- a/src/utils/math.c +++ /dev/null @@ -1,245 +0,0 @@ -// Basic math expression lexer and parser program -// Author: xamidev -// Licensed under the Unlicense. See the repo below. -// https://github.com/xamidev/blankos - -#include -#include "../kernel/system.h" -#include "../libc/stdio.h" -#include "../libc/ctype.h" - -#define BUFFER_SIZE 256 - -typedef enum -{ - TOKEN_NUMBER, - TOKEN_PLUS, - TOKEN_MINUS, - TOKEN_MULTIPLY, - TOKEN_DIVIDE, - TOKEN_LPAREN, - TOKEN_RPAREN, - TOKEN_END -} TokenType; - -typedef struct -{ - TokenType type; - double value; -} Token; - -typedef struct -{ - const char *text; - size_t pos; - Token current_token; -} Lexer; - -void lexer_init(Lexer *lexer, const char *text) -{ - lexer->text = text; - lexer->pos = 0; - lexer->current_token.type = TOKEN_END; - lexer->current_token.value = 0; -} - -void lexer_advance(Lexer *lexer) -{ - lexer->pos++; -} - -char lexer_peek(const Lexer *lexer) -{ - return lexer->text[lexer->pos]; -} - -bool lexer_is_at_end(const Lexer *lexer) -{ - return lexer->text[lexer->pos] == '\0'; -} - -Token lexer_get_next_token(Lexer *lexer) -{ - while (!lexer_is_at_end(lexer)) - { - char current_char = lexer_peek(lexer); - - if (isspace(current_char)) { - lexer_advance(lexer); - continue; - } - - if (isdigit(current_char)) { - double value = 0; - while (isdigit(current_char)) - { - value = value * 10 + (current_char - '0'); - lexer_advance(lexer); - current_char = lexer_peek(lexer); - } - if (current_char == '.') - { - lexer_advance(lexer); - double decimal_place = 0.1; - while (isdigit(lexer_peek(lexer))) - { - value += decimal_place * (lexer_peek(lexer)-'0'); - decimal_place *= 0.1; - lexer_advance(lexer); - } - } - lexer->current_token.type = TOKEN_NUMBER; - lexer->current_token.value = value; - return lexer->current_token; - } - - if (current_char == '+') - { - lexer_advance(lexer); - lexer->current_token.type = TOKEN_PLUS; - return lexer->current_token; - } - - if (current_char == '-') - { - lexer_advance(lexer); - lexer->current_token.type = TOKEN_MINUS; - return lexer->current_token; - } - - if (current_char == '*') - { - lexer_advance(lexer); - lexer->current_token.type = TOKEN_MULTIPLY; - return lexer->current_token; - } - - if (current_char == '/') - { - lexer_advance(lexer); - lexer->current_token.type = TOKEN_DIVIDE; - return lexer->current_token; - } - - if (current_char == '(') - { - lexer_advance(lexer); - lexer->current_token.type = TOKEN_LPAREN; - return lexer->current_token; - } - - if (current_char == ')') - { - lexer_advance(lexer); - lexer->current_token.type = TOKEN_RPAREN; - return lexer->current_token; - } - - printf("\nUnknown character %c\n", current_char); - shell_install(); - } - - lexer->current_token.type = TOKEN_END; - return lexer->current_token; -} - -typedef struct -{ - Lexer lexer; - Token current_token; -} Parser; - -void parser_init(Parser *parser, const char *text) -{ - lexer_init(&parser->lexer, text); - parser->current_token = lexer_get_next_token(&parser->lexer); -} - -void parser_eat(Parser *parser, TokenType type) -{ - if (parser->current_token.type == type) - { - parser->current_token = lexer_get_next_token(&parser->lexer); - } else { - printf("\nUnexpected token %d\n", parser->current_token.type); - shell_install(); - } -} - -double parser_factor(Parser *parser); -double parser_term(Parser *parser); -double parser_expression(Parser *parser); - -double parser_factor(Parser *parser) -{ - Token token = parser->current_token; - if (token.type == TOKEN_NUMBER) - { - parser_eat(parser, TOKEN_NUMBER); - return token.value; - } else if (token.type == TOKEN_LPAREN) { - parser_eat(parser, TOKEN_LPAREN); - double result = parser_expression(parser); - parser_eat(parser, TOKEN_RPAREN); - return result; - } else { - printf("\nUnexpected token in factor %d\n", token.type); - shell_install(); - } - return -1; -} - -double parser_term(Parser *parser) -{ - double result = parser_factor(parser); - - while (parser->current_token.type == TOKEN_MULTIPLY || parser->current_token.type == TOKEN_DIVIDE) - { - Token token = parser->current_token; - if (token.type == TOKEN_MULTIPLY) - { - parser_eat(parser, TOKEN_MULTIPLY); - result *= parser_factor(parser); - } else if (token.type == TOKEN_DIVIDE) { - parser_eat(parser, TOKEN_DIVIDE); - result /= parser_factor(parser); - } - } - return result; -} - -double parser_expression(Parser *parser) -{ - double result = parser_term(parser); - - while (parser->current_token.type == TOKEN_PLUS || parser->current_token.type == TOKEN_MINUS) - { - Token token = parser->current_token; - if (token.type == TOKEN_PLUS) - { - parser_eat(parser, TOKEN_PLUS); - result += parser_term(parser); - } else if (token.type == TOKEN_MINUS) { - parser_eat(parser, TOKEN_MINUS); - result -= parser_term(parser); - } - } - return result; -} - -double parse(const char* text) -{ - Parser parser; - parser_init(&parser, text); - double result = parser_expression(&parser); - return result; -} - -void program_math() -{ - char input_buffer[BUFFER_SIZE]; - puts("Expression? "); - get_input(input_buffer, BUFFER_SIZE); - double result = parse(input_buffer); - printf("\n%f\n", result); -} diff --git a/src/utils/misc.c b/src/utils/misc.c deleted file mode 100644 index ec1374a..0000000 --- a/src/utils/misc.c +++ /dev/null @@ -1,176 +0,0 @@ -// Miscellaneous small programs -// Author: xamidev -// Licensed under the Unlicense. See the repo below. -// https://github.com/xamidev/blankos - -#include "../libc/stdio.h" -#include "../kernel/system.h" -#include "../libc/string.h" -#include "../drivers/framebuffer.h" -#include "../drivers/ata.h" -#include "../drivers/rtc.h" -#include "../kernel/io.h" -#include "../drivers/pci.h" -#include "../kernel/initrd.h" -#include "../kernel/kmain.h" - -// Print a rainbow colorful text for testing - -#define BUF_SIZE 256 -#define COLORS 20 - -void program_rainbow(int argc, char* argv[]) -{ - if (argc < 2) - { - printf("Usage: %s \n", argv[0]); - return; - } - - char input_buffer[BUF_SIZE] = {0}; - for (int i=1; i\n", argv[0]); - } else if (argc == 2) - { - uint8_t buffer[512]; - ata_read_sector(atoi(argv[1]), buffer); - - for (int i=0; i<512; i++) - { - if (i%50==0) puts("\n"); // hardcoded = bad - printf("%02x ", buffer[i]); - } - puts("\n"); - } else - { - puts("Invalid argument number\n"); - } -} - -// Reboots the machine (might just shutdown) (or do nothing if youre lucky) - -void program_reboot() -{ - puts("Rebooting...\n"); - - while(inb(0x64) & 0x02); - outb(0x64, 0xFE); - - while (1) asm volatile("hlt"); -} - -// List PCI buses and devices - -void program_lspci() -{ - scan_pci_bus(); -} - -// Executes binary file - -void program_exec(int argc, char* argv[]) -{ - if (argc < 2) - { - puts("Usage: exec \n"); - return; - } - void* binary_file = load_file_from_initrd((uint8_t*)initrd_addr, argv[1]); - - if (binary_file == NULL) - { - printf("[exec] Failed to load program '%s'.\n", argv[1]); - return; - } - - void (*program_entry)() = (void (*)())binary_file; - program_entry(); -} diff --git a/src/utils/navalbattle.c b/src/utils/navalbattle.c deleted file mode 100644 index dbc50fb..0000000 --- a/src/utils/navalbattle.c +++ /dev/null @@ -1,348 +0,0 @@ -// Simplified naval battle game -// Author: xamidev -// Licensed under the Unlicense. See the repo below. -// https://github.com/xamidev/blankos - -#include "navalbattle.h" -#include "../libc/stdio.h" -#include "../kernel/system.h" -#include "../kernel/kheap.h" -#include "../libc/string.h" -#include "../libc/crypto.h" -#include "../drivers/serial.h" - -// Porting problems: -// - Color printf? (Need to implement ANSI escape sequences). -// - Scanf? -// - Malloc? (proof of concept) - -void program_navalbattle() -{ - clear(); - - grid_t* grid[SIZE][SIZE]; - grid_t* enemyGrid[SIZE][SIZE]; - - init_battlefield(grid); - init_battlefield(enemyGrid); - - placing_ally_ships(grid); - puts("Now, time for the enemies to prepare...\n"); - placing_enemy_ships(enemyGrid); - - delay((rand()%MAX_WAIT_TIME)+10); - - puts("Here we go!\n"); - show_game_stats(grid, enemyGrid); - - do - { - ally_do_attack(enemyGrid); - enemy_do_attack(grid); - show_game_stats(grid, enemyGrid); - } while (check_victory(grid, enemyGrid) == 0); - - free_grid(grid); - free_grid(enemyGrid); - - return; -} - -void init_battlefield(grid_t* grid[SIZE][SIZE]) -{ - for (size_t i=0; ix = i; - grid[i][j]->y = j; - grid[i][j]->role = 0; - grid[i][j]->state = -2; - } - } -} - -// To avoid memory leaks.. -void free_grid(grid_t* grid[SIZE][SIZE]) -{ - for (size_t i=0; istate) - { - case -2: - roleChar = 32; // space - break; - case -1: - roleChar = 120; - break; - case 0: - roleChar = 79; - break; - case 1: - roleChar = 88; - break; - default: - printf("Error: bad value in grid at x=%d y=%d\n", grid[i][j]->x, grid[i][j]->y); - shell_install(); - break; - } - - if (j == SIZE-1) - { - printf("%c]", roleChar); - } else if (j == 0) { - printf("[%c|", roleChar); - } else { - printf("%c|", roleChar); - } - } - puts("\n"); - } -} - -void placing_ally_ships(grid_t* grid[SIZE][SIZE]) -{ - puts("==== Allied preparation phase =====\nPlease enter the positions for your ships, sir.\n"); - - for (size_t i=0; i= SIZE || posY < 0 || posY >= SIZE) - { - printf("Invalid position x=%d y=%d, please retry.\n", posX, posY); - } - if (grid[posX][posY]->role == 1) - { - printf("A ship is already in x=%d y=%d, please retry.\n", posX, posY); - } - } while (posX < 0 || posX >= SIZE || posY < 0 || posY >= SIZE || grid[posX][posY]->role == 1); - - grid[posX][posY]->role = 1; - grid[posX][posY]->state = 0; - } -} - -void placing_enemy_ships(grid_t* grid[SIZE][SIZE]) -{ - for (size_t i=0; irole != 0); - - grid[posX][posY]->role = 1; - grid[posX][posY]->state = 0; - } -} - -void show_enemy_battlefield(grid_t* grid[SIZE][SIZE]) -{ - puts("\n*** Enemy grid ***\n"); - puts(" 0 1 2 3 4 5\n"); - - for (size_t i=0; istate) - { - case -2: - case 0: - roleChar = 32; - break; - case -1: - roleChar = 120; - break; - case 1: - roleChar = 88; - break; - default: - printf("Error: bad value in battlefield at x=%d y=%d\n", grid[i][j]->x, grid[i][j]->y); - shell_install(); - break; - } - if (j == SIZE-1) - { - printf("%c]", roleChar); - } else if (j == 0) { - printf("[%c|", roleChar); - } else { - printf("%c|", roleChar); - } - } - puts("\n"); - } - puts("\n"); -} - -void show_remaining_boats(grid_t* allyGrid[SIZE][SIZE], grid_t* enemyGrid[SIZE][SIZE]) -{ - int allyShips = 0; - int enemyShips = 0; - - for (size_t i=0; istate == 0) - { - allyShips++; - } - - if (enemyGrid[i][j]->state == 0) - { - enemyShips++; - } - } - } - - printf("%d ally ships and %d enemy ships remaining.\n", allyShips, enemyShips); - allyShips >= enemyShips ? colorputs("The allies are in a good posture.\n", yellow, black) : colorputs("The allies are losing terrain...\n", salmon, black); -} - -void show_game_stats(grid_t* allyGrid[SIZE][SIZE], grid_t* enemyGrid[SIZE][SIZE]) -{ - clear(); - colorputs("\n\n\nShowing known information:\n\n", cyan, black); - show_ally_battlefield(allyGrid); - show_enemy_battlefield(enemyGrid); - show_remaining_boats(allyGrid, enemyGrid); -} - -void do_attack(grid_t* grid[SIZE][SIZE], int x, int y) -{ - switch(grid[x][y]->state) - { - case -2: // Untouched ocean - colorputs("The torpedo explodes in water. Missed.\n", orange, black); - grid[x][y]->state = -1; - delay(30); - break; - case -1: // Already hit ocean - colorputs("We already striked here, sir... Too late.\n", orange, black); - break; - case 0: // Ship - colorputs("Hit! Well done!\n", green, black); - grid[x][y]->state = 1; - delay(30); - break; - case 1: // Already hit ship - colorputs("Sir, we already sunk that ship... (looser)\n", orange, black); - break; - } -} - -void ally_do_attack(grid_t* enemyGrid[SIZE][SIZE]) -{ - int x = 0, y = 0; - colorputs("\n* Ally attack preparation *\n", blue, black); - do - { - // yes, x and y are inverted. - puts("X coord: "); - char input_buffer[BUFFER_SIZE]; - get_input(input_buffer, BUFFER_SIZE); - y = atoi(input_buffer); - - puts("\nY coord: "); - char input_buffer2[BUFFER_SIZE]; - get_input(input_buffer2, BUFFER_SIZE); - x = atoi(input_buffer2); - - puts("\n"); - - if (x < 0 || x >= SIZE || y < 0 || y >= SIZE) - { - puts("Sir, this zone is not in our operation area! Please retry.\n"); - } - } while (x < 0 || x >= SIZE || y < 0 || y >= SIZE); - - do_attack(enemyGrid, x, y); -} - -void enemy_do_attack(grid_t* allyGrid[SIZE][SIZE]) -{ - int x = 0, y = 0; - colorputs("\n* Enemies are preparing for attack, everyone take shelter! *\n", blue, black); - - do - { - x = rand() % SIZE; - y = rand() % SIZE; - } while (allyGrid[x][y]->state == -1 || allyGrid[x][y]->state == 1); - - delay((rand()%MAX_WAIT_TIME)+10); - do_attack(allyGrid, x, y); -} - -int check_victory(grid_t* allyGrid[SIZE][SIZE], grid_t* enemyGrid[SIZE][SIZE]) -{ - int allyShips = 0; - int enemyShips = 0; - - for (size_t i=0; istate == 0) - { - allyShips++; - } - - if (enemyGrid[i][j]->state == 0) - { - enemyShips++; - } - } - } - - if (allyShips > 0 && enemyShips == 0) - { - colorputs("The allies have won! Congratulations, chief!\n", green, black); - return 1; - } else if (enemyShips > 0 && allyShips == 0) - { - colorputs("The ennemies have won.. We must retreat.\n", red, black); - return 1; - } - return 0; -} diff --git a/src/utils/navalbattle.h b/src/utils/navalbattle.h deleted file mode 100644 index 0314c63..0000000 --- a/src/utils/navalbattle.h +++ /dev/null @@ -1,37 +0,0 @@ -// Simplified naval battle game header -// Author: xamidev -// Licensed under the Unlicense. See the repo below. -// https://github.com/xamidev/blankos - -#ifndef NAVALBATTLE_H -#define NAVALBATTLE_H - -#include "../drivers/framebuffer.h" - -typedef struct -{ - int x; - int y; - int role; - int state; -} grid_t; - -#define SIZE 6 -#define BOATS 5 -#define MAX_WAIT_TIME 20 -#define BUFFER_SIZE 16 - -void init_battlefield(grid_t* grid[SIZE][SIZE]); -void free_grid(grid_t* grid[SIZE][SIZE]); -void show_ally_battlefield(grid_t* grid[SIZE][SIZE]); -void placing_ally_ships(grid_t* grid[SIZE][SIZE]); -void placing_enemy_ships(grid_t* grid[SIZE][SIZE]); -void show_enemy_battlefield(grid_t* grid[SIZE][SIZE]); -void show_remaining_boats(grid_t* allyGrid[SIZE][SIZE], grid_t* enemyGrid[SIZE][SIZE]); -void show_game_stats(grid_t* allyGrid[SIZE][SIZE], grid_t* enemyGrid[SIZE][SIZE]); -void do_attack(grid_t* grid[SIZE][SIZE], int x, int y); -void ally_do_attack(grid_t* enemyGrid[SIZE][SIZE]); -void enemy_do_attack(grid_t* allyGrid[SIZE][SIZE]); -int check_victory(grid_t* allyGrid[SIZE][SIZE], grid_t* enemyGrid[SIZE][SIZE]); - -#endif diff --git a/src/utils/pi.c b/src/utils/pi.c deleted file mode 100644 index 9db027e..0000000 --- a/src/utils/pi.c +++ /dev/null @@ -1,34 +0,0 @@ -// Program for Pi computation using Leibniz series -// Author: xamidev -// Licensed under the Unlicense. See the repo below. -// https://github.com/xamidev/blankos - -#include "../libc/stdio.h" -#include "../libc/string.h" - -void program_pi(int argc, char* argv[]) -{ - if (argc < 2) - { - printf("Usage: %s \n", argv[0]); - return; - } - - double pi = 0.0; - int terms = atoi(argv[1]); - - for (int i=0; i -#include "../libc/stdio.h" -#include "../kernel/system.h" -#include "../libc/string.h" - -#define PRIMES_MAX 1000000 - -bool isPrime(int n) -{ - if (n == 1 || n == 0) return false; - for (int i=2; i<= n/2; i++) if (n%i == 0) return false; - return true; -} - -void program_primes(int argc, char* argv[]) -{ - int primes_max; - - if (argc == 1) - { - primes_max = PRIMES_MAX; - } else if (argc == 2) - { - primes_max = atoi(argv[1]); - } - - for (long long x=0; x0; i--) - { - snake.segments[i] = snake.segments[i-1]; - } - - snake.segments[0].x += snake.dx; - snake.segments[0].y += snake.dy; - - if (snake.segments[0].x < 0) snake.segments[0].x = WIDTH-1; - if (snake.segments[0].x >= WIDTH) snake.segments[0].x = 0; - if (snake.segments[0].y < 0) snake.segments[0].y = HEIGHT-1; - if (snake.segments[0].y >= HEIGHT) snake.segments[0].y = 0; - - if (snake.segments[0].x == food.x && snake.segments[0].y == food.y) - { - snake.length++; - score++; - - do - { - onSnake = false; - food.x = rand() % (WIDTH-1) + 1; - food.y = rand() % (HEIGHT-1) + 1; - - for (int i=0; i> 4) & 0xF; - unsigned int family = (eax >> 8) & 0xF; - - printf("CPU information\n\tvendor: %s\n\tfamily: %u\n\tmodel: %u\n\tfeatures: 0x%x\n", vendor, family, model, edx); -} - -// Not really working anymore as it was made for multiboot1, now using multiboot2 -void get_meminfo(unsigned int multiboot_info_address, int verbose) -{ - // RAM - - unsigned int mem_lower = *((unsigned int*)(multiboot_info_address + 4)); - unsigned int mem_upper = *((unsigned int*)(multiboot_info_address + 8)); - - printf("RAM information\n\tLower memory: %u KB\n\tUpper memory: %u KB\n", mem_lower, mem_upper); - - if (verbose) - { - multiboot_memory_map_t* mmap = (multiboot_memory_map_t*)*((unsigned int*)(multiboot_info_address + 44)); - printf("Memory map:\nBase addr | Length | Type\n----------------------------------------------------\n"); - - while ((unsigned int)mmap < multiboot_info_address + *((unsigned int*)(multiboot_info_address + 40))) - { - /* - if (mmap->length_high != 0 && mmap->length_low != 0) - {*/ - printf("0x%x%x | 0x%x%x | %u\n", - mmap->base_addr_high, mmap->base_addr_low, - mmap->length_high, mmap->length_low, - mmap->type); - //} - - mmap = (multiboot_memory_map_t*)((unsigned int)mmap + mmap->size + sizeof(unsigned int)); - } - } -} - -void program_sysinfo(int argc, char* argv[]) -{ - if (argc == 1) - { - get_cpuid(); - get_meminfo(g_multiboot_info_address, 0); - } else if (argc == 2 && strcmp(argv[1], "-v") == 0) - { - get_cpuid(); - get_meminfo(g_multiboot_info_address, 1); - } -} diff --git a/src/utils/uhex.c b/src/utils/uhex.c deleted file mode 100644 index fab1523..0000000 --- a/src/utils/uhex.c +++ /dev/null @@ -1,82 +0,0 @@ -// uhex (microhex) port for BlankOS; read-only version -// Author: xamidev -// Licensed under the Unlicense. See the repo below. -// https://github.com/xamidev/blankos - -// This version is the port of a hex viewer which already was not great, -// and now by being here it is even worse because it is RO and will have -// hardcoded stuff in it (no ioctl, STDOUT, or other stuff here...) - -#define BYTES 1024 -#define round(x) (int)(x < 0 ? (x -0.5) : x + 0.5) - -#include "../libc/stdio.h" -#include "../kernel/kmain.h" -#include "../kernel/initrd.h" -#include "../libc/string.h" -#include "../kernel/kheap.h" - -int isprint(int c) -{ - return (c >= 32 && c <= 126); -} - -void print_hex(unsigned char* buf, int byteno, int pos, int BYTES_PER_LINE) -{ - for (int i=0; i\n"); - return; - } - - int BYTES_PER_LINE = 20; - - //unsigned char buf[BYTES]; // malloc with file_size next? - uint32_t file_size = tar_get_file_size((uint8_t*)initrd_addr, argv[1]); - unsigned char* buf = (unsigned char*)malloc(file_size); - tar_file_to_buffer((uint8_t*)initrd_addr, argv[1], (char*)buf); - print_hex(buf, file_size, 0, BYTES_PER_LINE); - - free(buf); -} diff --git a/src/utils/utils.h b/src/utils/utils.h deleted file mode 100644 index 8ee3176..0000000 --- a/src/utils/utils.h +++ /dev/null @@ -1,53 +0,0 @@ -// Global program entry points header -// Author: xamidev -// Licensed under the Unlicense. See the repo below. -// https://github.com/xamidev/blankos - -#ifndef UTILS_H -#define UTILS_H - -void program_words(); -void program_primes(); -void program_math(); -void program_bf(); -void program_sysinfo(); - -void get_cpuid(); -void get_meminfo(unsigned int multiboot_info_address); // to be fixed: cannot get full memory map (sysinfo -v) -void program_cowsay(); -void cowsay(); // Splash screen -void program_pi(); - -// Ciphers -void program_rot13(); -void program_morse(); - -// Misc -void program_rainbow(); -void program_clear(); -void program_uptime(); -void program_panic(); -void program_help(); -void program_echo(); -void program_time(); -void program_read(); -void program_reboot(); - -// Filesystem (initrd) -void program_ls(); -void program_cat(); - -void program_bmp(); -void program_lspci(); - -// Games -void program_navalbattle(); -void program_conway(); -void program_snake(); - -// Binaries loading and execution -void program_exec(); - -void program_uhex(); - -#endif diff --git a/src/utils/words.c b/src/utils/words.c deleted file mode 100644 index 835d347..0000000 --- a/src/utils/words.c +++ /dev/null @@ -1,217 +0,0 @@ -// Pseudo-random word generation program -// Author: xamidev -// Licensed under the Unlicense. See the repo below. -// https://github.com/xamidev/blankos - -#include "../libc/stdio.h" -#include "../libc/crypto.h" -#include "../kernel/system.h" -#include "../libc/string.h" - -// Small dictionary - -char* words[] = -{ - // A - "I", "us", "they", "my", - "a", "an", "is", "are", "for", "while", "not", "none", "yes", "no", - "absolutely", "addition", "additive", "afternoon", "architect", "ask", - "ability", "above", "absence", "academy", "account", "achieve", "acquire", - "adapt", "admit", "adventure", "affection", "agenda", "agreement", "airport", - "alert", "alibi", "alive", "allow", "almond", "alphabet", "always", - - // B - "be", "blindfold", "brilliant", "boy", "bring", "buddy", - "balance", "bamboo", "band", "banjo", "bank", "banner", "barrel", - "basic", "battery", "beach", "beacon", "beard", "behavior", "believe", - "belt", "benefit", "berry", "bicycle", "bingo", "biology", "birthday", - "biscuit", "bitter", "blanket", "blizzard", "blossom", "blueprint", "board", - - // C - "career", "caterpillar", "change", "cheeky", "chop", - "cabin", "cactus", "camera", "candle", "candy", "canoe", "canvas", - "capital", "captain", "caravan", "carbon", "carpet", "cartoon", "castle", - "casual", "catalog", "catch", "category", "celebrate", "ceremony", "certain", - "chain", "chair", "chamber", "charge", "charity", "cheese", "chef", - - // D - "decide", "demonstrate", "draw", "druggist", - "daisy", "dance", "danger", "daring", "database", "debate", "decade", - "decline", "decorate", "decrease", "dedicate", "defeat", "defend", "define", - "degree", "delight", "delivery", "demand", "dentist", "deny", "depart", - "depth", "describe", "deserve", "desire", "destroy", "develop", "device", - - // E - "eagle", "ear", "effort", "evening", - "early", "earn", "earth", "ease", "east", "easy", "echo", - "eclipse", "economy", "edge", "edit", "educate", "effect", "effort", - "egg", "eight", "either", "elder", "elect", "elegant", "element", - "elephant", "elevator", "elite", "embark", "embrace", "emerge", "emotion", - - // F - "fabric", "famous", "fuse", - "face", "factor", "fail", "fair", "fall", "false", "fame", - "family", "fancy", "fantasy", "farewell", "farm", "fashion", "fast", - "fault", "favor", "feather", "feature", "federal", "feedback", "feeling", - "female", "fence", "festival", "fever", "fiber", "fiction", "field", - - // G - "generation", "generous", "girl", "gypsy", "grip", - "gallery", "game", "garage", "garden", "garlic", "gas", "gate", - "gather", "general", "genius", "gentle", "genuine", "geography", "gesture", - "ghost", "giant", "gift", "giggle", "ginger", "giraffe", "glance", - "glass", "globe", "glory", "glove", "glue", "goal", "gold", - - // H - "habit", "handsome", "helmet", "help", "horror", - "hair", "half", "hammer", "hand", "handle", "hang", "happen", - "harbor", "hard", "harm", "harvest", "hat", "hate", "have", - "head", "health", "heart", "heat", "heaven", "heavy", "hedge", - "height", "hello", "heritage", "hero", "hesitate", "hidden", "high", - - // I - "insist", "inventor", "itself", "ivory", - "ice", "idea", "ideal", "identify", "ignore", "ill", "image", - "imagine", "impact", "import", "impress", "improve", "impulse", "inch", - "include", "income", "increase", "index", "industry", "infant", "inform", - "insect", "inside", "inspire", "install", "instead", "insult", "intact", - - // J - "jog", "joint", "joke", "judge", - "jacket", "jaguar", "jail", "jam", "january", "jar", "jazz", - "jealous", "jeans", "jelly", "jewel", "job", "join", "journey", - "joy", "judge", "juice", "jump", "jungle", "junior", "justice", - "just", "justify", "juggle", "juice", "jumper", "junction", "jury", - - // K - "karate", "kebab", "kitchen", - "kangaroo", "keen", "keep", "kettle", "key", "keyboard", "kick", - "kid", "kidney", "king", "kiss", "kite", "knee", "knife", - "knit", "knock", "knot", "know", "knowledge", "koala", "kudos", - "keen", "kernel", "kit", "kitten", "knack", "knight", "knock", - - // L - "lamb", "lawnmower", "left", "lock", - "label", "labor", "lace", "ladder", "lady", "lake", "lamp", - "land", "language", "large", "laser", "last", "later", "laugh", - "launch", "law", "layer", "lead", "leaf", "learn", "least", - "leather", "leave", "lecture", "legal", "legend", "lemon", "length", - - // M - "math", "medicine", "most", - "machine", "magnet", "mail", "main", "major", "make", "male", - "manage", "mango", "manner", "manual", "map", "marble", "march", - "mark", "market", "marriage", "master", "match", "material", "matter", - "maximum", "mayor", "meal", "mean", "measure", "media", "memory", - - // N - "noodles", "nowadays", "nowhere", - "nail", "name", "narrow", "nation", "native", "nature", "navy", - "near", "neat", "necessary", "neck", "need", "negative", "neglect", - "neither", "nerve", "nest", "net", "network", "neutral", "never", - "new", "news", "next", "nice", "night", "noble", "noise", - - // O - "ocean", "older", "ounce", - "object", "observe", "obtain", "occasion", "occupy", "occur", "ocean", - "offer", "office", "often", "oil", "old", "olive", "olympic", - "omit", "once", "one", "onion", "online", "only", "open", - "opera", "opinion", "oppose", "option", "orange", "orbit", "order", - - // P - "part", "pathetic", "pastime", - "pace", "package", "page", "pain", "paint", "pair", "palm", - "panel", "panic", "paper", "parent", "park", "part", "party", - "pass", "path", "patient", "pattern", "pause", "peace", "peak", - "pen", "pencil", "people", "pepper", "perfect", "perform", "permit", - - // Q - "quite", "quits", "quotation", - "quality", "quantity", "quarter", "queen", "query", "quest", "quick", - "quiet", "quilt", "quit", "quote", "quiz", "quota", "quiver", - "quirky", "quaint", "quake", "qualification", "qualify", "quark", "quartz", - "queue", "quench", "question", "quote", "quiver", "quorum", "quote", - - // R - "race", "raise", "reality", - "rabbit", "race", "radio", "rain", "raise", "random", "range", - "rapid", "rare", "rate", "rather", "ratio", "reach", "react", - "read", "ready", "real", "reason", "rebel", "recall", "receive", - "recipe", "record", "recover", "reduce", "refer", "reflect", "reform", - - // S - "safe", "scare", "screen", - "sack", "sail", "salad", "salt", "same", "sample", "sand", - "save", "scale", "scan", "scar", "scene", "school", "science", - "score", "scratch", "scream", "screen", "script", "search", "season", - "seat", "second", "secret", "section", "secure", "see", "seed", - - // T - "taught", "temple", "that", "this", - "table", "tackle", "tail", "take", "tale", "talent", "talk", - "tank", "tape", "target", "task", "taste", "tax", "teach", - "team", "tear", "technology", "telephone", "television", "temperature", "tend", - "tennis", "tent", "term", "test", "text", "thank", "theory", - - // U - "unable", "unkind", "usual", - "umbrella", "unable", "uncle", "under", "undo", "unfair", "unfold", - "union", "unique", "unit", "universe", "unknown", "unless", "unlike", - "unlock", "until", "unusual", "update", "upgrade", "upon", "upper", - "upset", "urban", "urge", "use", "usual", "utility", "utter", - - // V - "velvet", "vivid", "vote", - "vacuum", "valid", "valley", "value", "vampire", "van", "vase", - "vast", "vault", "vector", "vehicle", "velvet", "vendor", "venture", - "verb", "verify", "version", "vessel", "veteran", "veto", "vibrate", - "victory", "video", "view", "village", "violin", "virtue", "virus", - - // W - "we", "warm", "watch", - "wage", "wait", "walk", "wall", "wander", "want", "war", - "wash", "waste", "watch", "water", "wave", "way", "wealth", - "weapon", "wear", "weather", "weave", "wedding", "week", "weight", - "welcome", "well", "west", "wheel", "when", "whisper", "white", - - // X - "xylophone", - "xenon", "xenophobia", "xerox", "xmas", "x-ray", "xylophone", "xylem", - - // Y - "yolk", "young", "your", - "yard", "yarn", "year", "yell", "yellow", "yes", "yesterday", - "yet", "yield", "yogurt", "yoke", "youth", "yawn", "yearn", - "yacht", "yummy", "yogurt", "yoga", "yardstick", "yonder", "yummy", - - // Z - "zebra", "zodiac", "zucchini", - "zero", "zone", "zoo", "zoom", "zeal", "zip", "zigzag", - "zenith", "zest", "zipper", "zombie", "zonal", "zinc", "zephyr" -}; - -int words_size = sizeof(words)/sizeof(words[0]); - -// Generates random words -void program_words(int argc, char* argv[]) -{ - int amount; - - if (argc == 1) - { - amount = 10; - } else if (argc == 2) - { - amount = atoi(argv[1]); - } - - for (int i=0; i