summaryrefslogtreecommitdiff
path: root/src/boot_O2
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot_O2')
-rw-r--r--src/boot_O2/__osMemcpy.c23
-rw-r--r--src/boot_O2/__osMemset.c11
-rw-r--r--src/boot_O2/__osStrcmp.c16
-rw-r--r--src/boot_O2/__osStrcpy.c12
-rw-r--r--src/boot_O2/boot_80086760.c27
-rw-r--r--src/boot_O2/fmodf.c12
-rw-r--r--src/boot_O2/loadfragment.c7
-rw-r--r--src/boot_O2/printutils.c5
-rw-r--r--src/boot_O2/sleep.c11
-rw-r--r--src/boot_O2/system_malloc.c21
10 files changed, 145 insertions, 0 deletions
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")