From c72ae9a2071ab29dd8fcd246f9384d30ffd34734 Mon Sep 17 00:00:00 2001 From: Richard Dzreke Date: Sun, 22 Sep 2024 20:59:30 -0700 Subject: [PATCH] update --- Makefile | 5 ++- user/a.out | Bin 0 -> 17512 bytes user/array.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++ user/array.h | 13 ++++++ user/arraytests.c | 49 ++++++++++++++++++++++ user/mittens.c | 40 ++++++++++++++++++ user/vagabound.c | 49 ++++++++++++++++++++++ 7 files changed, 258 insertions(+), 2 deletions(-) create mode 100755 user/a.out create mode 100644 user/array.c create mode 100644 user/array.h create mode 100644 user/arraytests.c create mode 100644 user/mittens.c create mode 100644 user/vagabound.c diff --git a/Makefile b/Makefile index 2584e4a..5168403 100644 --- a/Makefile +++ b/Makefile @@ -87,7 +87,7 @@ $U/initcode: $U/initcode.S tags: $(OBJS) _init etags *.S *.c -ULIB = $U/ulib.o $U/usys.o $U/printf.o $U/umalloc.o +ULIB = $U/ulib.o $U/usys.o $U/printf.o $U/umalloc.o $U/array.o _%: %.o $(ULIB) $(LD) $(LDFLAGS) -T $U/user.ld -o $@ $^ @@ -103,7 +103,7 @@ $U/usys.o : $U/usys.S $U/_forktest: $U/forktest.o $(ULIB) # forktest has less library code linked in - needs to be small # in order to be able to max out the proc table. - $(LD) $(LDFLAGS) -N -e main -Ttext 0 -o $U/_forktest $U/forktest.o $U/ulib.o $U/usys.o $U/umalloc.o $U/printf.o + $(LD) $(LDFLAGS) -N -e main -Ttext 0 -o $U/_forktest $U/forktest.o $U/printf.o $U/umalloc.o $U/array.o $U/ulib.o $U/usys.o $(OBJDUMP) -S $U/_forktest > $U/forktest.asm mkfs/mkfs: mkfs/mkfs.c $K/fs.h $K/param.h @@ -116,6 +116,7 @@ mkfs/mkfs: mkfs/mkfs.c $K/fs.h $K/param.h .PRECIOUS: %.o UPROGS=\ + $U/_arraytests\ $U/_cat\ $U/_echo\ $U/_forktest\ diff --git a/user/a.out b/user/a.out new file mode 100755 index 0000000000000000000000000000000000000000..1ca5f21034a3cda7957397fa5fc43d099048f972 GIT binary patch literal 17512 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 xqa0mWZh max){ + max = arr[i]; + } + } + + return max; +} + +/* +*gets the smallest intefer value inside an array +*/ +int +getMin(int* arr, uint64 size){ + int min = 2147483647; + + //loops through the whole array and finds min + for(uint64 i = 0; i < size - 1; i++){ + if(arr[i] < min){ + min = arr[i]; + } + } + return min; +} diff --git a/user/array.h b/user/array.h new file mode 100644 index 0000000..6e5a390 --- /dev/null +++ b/user/array.h @@ -0,0 +1,13 @@ +//array.c +//reverse the values of an integer array in java +void reverseArray(int*, uint64); +//sorts in integer array using quicksort +void sort(int*, uint64, uint64); +//swap method using to swap values in quicksort algorithm +void swap(int*, uint64, uint64); +//parttitions the array on integers into sub arrays +uint64 partition(int*, uint64, uint64); +//get's the max element of an array +int getMax(int*, uint64); +//gets the min element of an array +int getMin(int*, uint64); diff --git a/user/arraytests.c b/user/arraytests.c new file mode 100644 index 0000000..257ab94 --- /dev/null +++ b/user/arraytests.c @@ -0,0 +1,49 @@ +#include "kernel/types.h" +#include "user/user.h" +#include "kernel/fcntl.h" +#include "user/array.h" + +int +main(void){ + int arr[10] = {5, -4, 2, 22, 12, -56, 3, 8, 34, 2}; + + uint64 size = sizeof(arr) / sizeof(arr[0]); + printf("size: %d\n", size); + + printf("Array before: "); + for(int i = 0; i < size; i++){ + printf("%d ", arr[i]); + } + + printf("\n"); + + reverseArray(arr, size); + + printf("Array in reverse: "); + + for(int i = 0; i < size ; i++){ + printf("%d ", arr[i]); + } + + printf("\n"); + + uint64 min = getMin(arr, size); + printf("Get min value: "); + printf("%d \n", min); + + uint64 max = getMax(arr, size); + printf("Get max value: "); + printf("%d \n", max); + + sort(arr, 0, size - 1); + + printf("sorted array: "); + for(int i = 0; i < size; i++){ + printf("%d ", arr[i]); + } + + + + return 0; +} + diff --git a/user/mittens.c b/user/mittens.c new file mode 100644 index 0000000..519dbcf --- /dev/null +++ b/user/mittens.c @@ -0,0 +1,40 @@ +#include +int +main(void){ + + + //created everything by myself + printf("\t\t_____ _____\n"); + printf("\t\t##--## ##--##\n"); + printf("\t\t##---## ##---##\n"); + printf("\t\t##----## ##----##\n"); + printf("\t\t##-----## ##-----##\n"); + printf("\t\t##------## ##------##\n"); + printf("\t\t##########################################\n"); + printf("\t\t##......................|#################\n"); + printf("\t\t##......................|#################\n"); + printf("\t\t##.._________...........|####--------#####\n"); + printf("\t\t##..| __ |...........|###| __ |####\n"); + printf("\t\t##..| (__) |...........|###| (__) |####\n"); + printf("\t\t##..|_______|...........|###|________|####\n"); + printf("\t\t##......................|#################\n"); + printf("\t\t##......................|---------------##\n"); + printf("\t\t##......................................##\n"); + printf("\t\t##.........------#######------..........##\n"); + printf("\t\t##.........-------#####-------..........##\n"); + printf("\t####### ##.........--------###--------..........## #######\n"); + printf("\t####### ##..................|...................## #######\n"); + printf("\t####### ##..............\\../.\\../...............## #######\n"); + printf("\t####### ##...............\\/...\\/................## #######\n"); + printf("\t####### ##......................................## #######\n"); + printf("\t####### ########################################## #######\n\n"); + printf(" ###### #### ## ## \t\t######## #### ###### ###### ## ## #### ######## ######\n"); + printf("## ## ## ### ## \t\t## ## ## ## ## ## ## ## ## ## ## ## ##\n"); + printf("## ## #### ## \t\t## ## ## ## ## ## ## ## ## ## \n"); + printf(" ###### ## ## ## ## \t\t######## ## ###### ## ## ## ## ## ###### \n"); + printf(" ## ## ## #### \t\t## ## ## ## ## ## ## ## ## ##\n"); + printf("## ## ## ## ### \t\t## ## ## ## ## ## ## ## ## ## ## ## ##\n"); + printf(" ###### #### ## ## \t\t######## #### ###### ###### ####### #### ## ###### \n"); + + return 0; +} diff --git a/user/vagabound.c b/user/vagabound.c new file mode 100644 index 0000000..4d03d6f --- /dev/null +++ b/user/vagabound.c @@ -0,0 +1,49 @@ +#include + +int +main(void){ + //created the title and the quote myself, and the art was pulled from onine + printf("## ## ### ###### ### ######## ####### ## ## ## ## ########\n"); + printf("## ## ## ## ## ## ## ## ## ## ## ## ## ## ### ## ## ##\n"); + printf("## ## ## ## ## ## ## ## ## ## ## ## ## #### ## ## ##\n"); + printf("## ## ## ## ## #### ## ## ######## ## ## ## ## ## ## ## ## ##\n"); + printf(" ## ## ######### ## ## ######### ## ## ## ## ## ## ## #### ## ##\n"); + printf(" ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ### ## ##\n"); + printf(" ### ## ## ###### ## ## ######## ####### ####### ## ## ########\n\n"); + printf(" A river cuts through rock, not beacuse of its power, but because of its persistence\n\n"); + printf("⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⠋⡴⠫⠉⠀⡴⠦⠌⠛⠿⠟⠛⣯⣻⣿⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿\n"); + printf("⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⠀⢁⠀⠀⠀⠀⠀⠀⠀⠓⠚⠛⠟⢙⣩⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n"); + printf("⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⠀⠀⠀⠀⠀⠀⠀⠀⢠⣤⣹⡿⣿⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n"); + printf("⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠛⠻⠟⠛⠻⣻⢿⡟⠐⠀⠀⠀⠀⠀⠀⠁⠈⠛⡫⠵⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n"); + printf("⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠁⠂⠘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠒⢠⣵⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n"); + printf("⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⣿⡿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢨⣿⣄⡀⠀⠶⣤⡄⠀⣶⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n"); + printf("⣿⣿⣿⣿⣿⣿⣿⣿⣇⣿⣿⠃⡐⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⡀⠀⠈⣟⡟⠀⣶⣶⣖⣤⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n"); + printf("⣿⣿⣿⣿⣿⣿⡿⣻⣿⣬⠉⠐⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠸⠥⢾⣿⣾⡟⣿⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n"); + printf("⣿⣿⣿⣿⣿⣿⣷⣼⢿⣿⠀⠀⠀⠀⠀⠠⠀⠐⠈⠄⠂⠀⠐⠠⡄⠄⠀⠀⠀⠈⡉⣡⡨⠍⠻⢛⢽⣶⣿⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n"); + printf("⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⠆⣤⣰⡌⢿⣆⠀⠀⠀⠀⠀⠀⠀⠐⠛⠢⠀⠀⠀⠀⠀⠉⠈⠠⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n"); + printf("⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠙⢀⣴⠨⣛⡆⢣⡤⣄⠀⠀⠈⠁⠀⠐⠘⢂⠀⠀⠀⠀⠈⠲⡌⡚⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n"); + printf("⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢨⣲⠺⠋⠀⠻⢧⣹⣷⣗⢳⡄⠀⢨⠓⠃⡠⠔⢁⡀⠀⠀⠀⠀⢀⢻⡑⠹⣿⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n"); + printf("⣿⣿⣿⡟⣙⡿⢿⣿⣿⣿⡸⡇⢒⣬⣾⣾⣣⣷⣻⣿⣎⢿⡄⠀⠁⢛⡃⠀⠩⠀⠀⠀⠀⠀⠈⢹⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿\n"); + printf("⣿⡿⠫⠴⠚⡴⡆⢿⣿⣿⡏⡇⡿⡋⠿⠛⣙⣿⣗⣼⣿⣭⡑⠀⠊⠘⠇⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⣿⣿⢻⣻⣿⣿⣿⣿⣿⣿⣿\n"); + printf("⣿⠿⢹⢱⢿⣿⣿⣿⣿⣿⣿⣏⣿⣇⣿⣈⠉⠹⠉⢹⣿⣿⠿⠀⢀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⣿⠏⣹⡿⢿⣹⣿⣿⣿⣿\n"); + printf("⣿⡪⠀⡿⠎⣕⡘⡄⣸⡿⣿⣿⣿⣿⣿⣿⣦⣐⢻⠦⠘⡛⠈⣀⠀⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣿⣿⣤⠋⠊⢀⠜⡗⣻⣿⣿\n"); + printf("⡏⢹⢣⢱⣾⣿⡏⣭⠁⡟⢻⣿⣿⣿⣿⣿⣿⣿⣇⡀⠀⣀⣾⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡙⠨⠷⡄⠻⢠⣺⠿⡟⢻\n"); + printf("⣿⡀⣿⣯⡟⠹⣍⢉⢨⣎⢸⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣖⠂⠀⠀⢌⠀⡋⢀⣺\n"); + printf("⡏⡧⣿⡄⢻⡘⣇⠨⢘⡻⠁⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡟⠠⠁⢸⡆⣬⣿⣿\n"); + printf("⣷⢷⢿⣿⣾⢷⣥⠀⠶⠬⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣁⣼⠐⣿⢿⣿\n"); + printf("⣿⡌⠛⢿⣿⡏⣿⣄⠀⢀⣿⣿⣿⣿⣿⣿⣿⡿⣿⡟⣱⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠌⣹⡎⢸⣧⠻\n"); + printf("⣿⣷⣀⣆⣹⡿⢹⣷⣾⢸⣿⣿⣿⣿⣿⣿⢡⣼⠀⢰⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣄⡟⣿⢸⢿⡥\n"); + printf("⣿⣿⣿⠃⣿⣇⣺⣿⣿⡅⣿⣿⣿⣿⣿⠃⢈⡴⠃⡈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡁⠘⡏⣼⡟\n"); + printf("⣿⣿⡿⣔⣿⠹⣿⣿⣿⡥⣻⣿⣿⣿⣿⣤⠟⣴⡇⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠄⢹⣧⣻⣷\n"); + printf("⣿⣿⡿⢿⣸⣿⣿⢿⣿⠀⢇⠛⠛⠿⣿⡇⠘⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠄⠸⡟⣿⢿\n"); + printf("⣿⣿⠇⢸⡟⣿⣿⡟⣼⣧⠂⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢨⡦⠑⣽⣿⣿\n"); + printf("⣿⡏⠀⠀⠷⣿⣿⣟⣈⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣍⣻⡼⣿⣿\n"); + printf("⣿⣧⠀⠀⠀⢻⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣾⣿⣿⣿⣿\n"); + printf("⣿⣿⠀⠀⠀⠘⠏⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡽⣽⢿⣿⣿⣿\n"); + return 0; +} + + + + +