From 82cc274b6aa358bab5de54f85edab1727916eb33 Mon Sep 17 00:00:00 2001 From: Tharo <17233964+Thar0@users.noreply.github.com> Date: Wed, 11 Aug 2021 03:15:31 +0100 Subject: Sort boot files (#260) --- src/boot_O2/__osMemcpy.c | 23 +++++++++++++++++++++++ src/boot_O2/__osMemset.c | 11 +++++++++++ src/boot_O2/__osStrcmp.c | 16 ++++++++++++++++ src/boot_O2/__osStrcpy.c | 12 ++++++++++++ src/boot_O2/boot_80086760.c | 27 +++++++++++++++++++++++++++ src/boot_O2/fmodf.c | 12 ++++++++++++ src/boot_O2/loadfragment.c | 7 +++++++ src/boot_O2/printutils.c | 5 +++++ src/boot_O2/sleep.c | 11 +++++++++++ src/boot_O2/system_malloc.c | 21 +++++++++++++++++++++ 10 files changed, 145 insertions(+) create mode 100644 src/boot_O2/__osMemcpy.c create mode 100644 src/boot_O2/__osMemset.c create mode 100644 src/boot_O2/__osStrcmp.c create mode 100644 src/boot_O2/__osStrcpy.c create mode 100644 src/boot_O2/boot_80086760.c create mode 100644 src/boot_O2/fmodf.c create mode 100644 src/boot_O2/loadfragment.c create mode 100644 src/boot_O2/printutils.c create mode 100644 src/boot_O2/sleep.c create mode 100644 src/boot_O2/system_malloc.c (limited to 'src/boot_O2') diff --git a/src/boot_O2/__osMemcpy.c b/src/boot_O2/__osMemcpy.c new file mode 100644 index 000000000..2e25b23f0 --- /dev/null +++ b/src/boot_O2/__osMemcpy.c @@ -0,0 +1,23 @@ +#include "global.h" + +void* __osMemcpy(void* dst, void* src, size_t size) { + u8* _dst = dst; + u8* _src = src; + register s32 rem; + + if (_dst == _src) { + return dst; + } + if (_dst < _src) { + for (rem = size--; rem != 0; rem = size--) { + *_dst++ = *_src++; + } + } else { + _dst += size - 1; + _src += size - 1; + for (rem = size--; rem != 0; rem = size--) { + *_dst-- = *_src--; + } + } + return dst; +} diff --git a/src/boot_O2/__osMemset.c b/src/boot_O2/__osMemset.c new file mode 100644 index 000000000..3a5469855 --- /dev/null +++ b/src/boot_O2/__osMemset.c @@ -0,0 +1,11 @@ +#include "global.h" + +void* __osMemset(void* ptr, s32 val, u32 size) { + u8* dst = ptr; + register s32 rem; + + for (rem = size--; rem != 0; rem = size--) { + *dst++ = val; + } + return ptr; +} diff --git a/src/boot_O2/__osStrcmp.c b/src/boot_O2/__osStrcmp.c new file mode 100644 index 000000000..10bd2fa92 --- /dev/null +++ b/src/boot_O2/__osStrcmp.c @@ -0,0 +1,16 @@ +#include "global.h" + +s32 __osStrcmp(const char* str1, const char* str2) { + char c1; + char c2; + + do { + c1 = *str1++; + c2 = *str2++; + if (c1 != c2) { + return c1 - c2; + } + } while (c1); + + return 0; +} diff --git a/src/boot_O2/__osStrcpy.c b/src/boot_O2/__osStrcpy.c new file mode 100644 index 000000000..86a98a804 --- /dev/null +++ b/src/boot_O2/__osStrcpy.c @@ -0,0 +1,12 @@ +#include "global.h" + +char* __osStrcpy(char* dst, const char* src) { + char* _dst = dst; + + while (*src != '\0') { + *_dst++ = *src++; + } + *_dst = '\0'; + + return dst; +} diff --git a/src/boot_O2/boot_80086760.c b/src/boot_O2/boot_80086760.c new file mode 100644 index 000000000..b68013370 --- /dev/null +++ b/src/boot_O2/boot_80086760.c @@ -0,0 +1,27 @@ +#include "global.h" + +#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_80086760/func_80086760.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_80086760/func_80086794.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_80086760/func_800867B4.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_80086760/func_800867D4.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_80086760/func_800867F4.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_80086760/func_80086814.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_80086760/func_80086834.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_80086760/func_80086880.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_80086760/func_800869A4.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_80086760/func_80086AF0.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_80086760/func_80086B30.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_80086760/func_80086C18.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/boot_80086760/func_80086C48.s") diff --git a/src/boot_O2/fmodf.c b/src/boot_O2/fmodf.c new file mode 100644 index 000000000..2f8aa74bf --- /dev/null +++ b/src/boot_O2/fmodf.c @@ -0,0 +1,12 @@ +#include "global.h" + +f32 fmodf(f32 dividend, f32 divisor) { + s32 quotient; + + if (divisor == 0.0f) { + return 0.0f; + } + quotient = dividend / divisor; + + return dividend - quotient * divisor; +} diff --git a/src/boot_O2/loadfragment.c b/src/boot_O2/loadfragment.c new file mode 100644 index 000000000..4589cd359 --- /dev/null +++ b/src/boot_O2/loadfragment.c @@ -0,0 +1,7 @@ +#include "global.h" + +#pragma GLOBAL_ASM("asm/non_matchings/boot/loadfragment/Load_Relocate.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/loadfragment/Load_LoadOverlay.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/loadfragment/Load_AllocateAndLoad.s") diff --git a/src/boot_O2/printutils.c b/src/boot_O2/printutils.c new file mode 100644 index 000000000..fb5b81033 --- /dev/null +++ b/src/boot_O2/printutils.c @@ -0,0 +1,5 @@ +#include "global.h" + +#pragma GLOBAL_ASM("asm/non_matchings/boot/printutils/PrintUtils_VPrintf.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/printutils/PrintUtils_Printf.s") diff --git a/src/boot_O2/sleep.c b/src/boot_O2/sleep.c new file mode 100644 index 000000000..b794d08ca --- /dev/null +++ b/src/boot_O2/sleep.c @@ -0,0 +1,11 @@ +#include "global.h" + +#pragma GLOBAL_ASM("asm/non_matchings/boot/sleep/Sleep_Cycles.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/sleep/Sleep_Nsec.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/sleep/Sleep_Usec.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/sleep/Sleep_Msec.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/sleep/Sleep_Sec.s") diff --git a/src/boot_O2/system_malloc.c b/src/boot_O2/system_malloc.c new file mode 100644 index 000000000..ee8fcd709 --- /dev/null +++ b/src/boot_O2/system_malloc.c @@ -0,0 +1,21 @@ +#include "global.h" + +#pragma GLOBAL_ASM("asm/non_matchings/boot/system_malloc/StartHeap_Alloc.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/system_malloc/StartHeap_AllocR.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/system_malloc/StartHeap_Realloc.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/system_malloc/StartHeap_Free.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/system_malloc/StartHeap_Calloc.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/system_malloc/StartHeap_AnalyzeArena.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/system_malloc/StartHeap_CheckArena.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/system_malloc/StartHeap_InitArena.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/system_malloc/StartHeap_Cleanup.s") + +#pragma GLOBAL_ASM("asm/non_matchings/boot/system_malloc/StartHeap_IsInitialized.s") -- cgit v1.2.3