From 683f3b18d536f2f000d217f241967f2520ba7593 Mon Sep 17 00:00:00 2001 From: red031000 Date: Mon, 31 Aug 2020 18:11:34 +0100 Subject: error_handling --- arm9/asm/error_handling.s | 17 ----------------- arm9/src/error_handling.c | 16 ++++++++++++++++ include/error_handling.h | 6 ++++++ include/global.h | 3 +-- 4 files changed, 23 insertions(+), 19 deletions(-) delete mode 100644 arm9/asm/error_handling.s create mode 100644 arm9/src/error_handling.c create mode 100644 include/error_handling.h diff --git a/arm9/asm/error_handling.s b/arm9/asm/error_handling.s deleted file mode 100644 index d6330897..00000000 --- a/arm9/asm/error_handling.s +++ /dev/null @@ -1,17 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start ErrorHandling -ErrorHandling: ; 0x02020C2C - push {r3, lr} - bl FUN_02031810 - cmp r0, #0x0 - beq _02020C42 - bl OS_GetProcMode - cmp r0, #0x12 - beq _02020C42 - bl PrintErrorMessageAndReset -_02020C42: - pop {r3, pc} diff --git a/arm9/src/error_handling.c b/arm9/src/error_handling.c new file mode 100644 index 00000000..7ccadd95 --- /dev/null +++ b/arm9/src/error_handling.c @@ -0,0 +1,16 @@ +#include "global.h" +#include "error_handling.h" + +extern u32 FUN_02031810(void); +extern void PrintErrorMessageAndReset(void); + +THUMB_FUNC void ErrorHandling(void) +{ + if (FUN_02031810()) + { + if (OS_GetProcMode() != OS_PROCMODE_IRQ) + { + PrintErrorMessageAndReset(); + } + } +} \ No newline at end of file diff --git a/include/error_handling.h b/include/error_handling.h new file mode 100644 index 00000000..1299fcba --- /dev/null +++ b/include/error_handling.h @@ -0,0 +1,6 @@ +#ifndef POKEDIAMOND_ERROR_HANDLING_H +#define POKEDIAMOND_ERROR_HANDLING_H + +void ErrorHandling(void); + +#endif //POKEDIAMOND_ERROR_HANDLING_H diff --git a/include/global.h b/include/global.h index 3b377e5e..e0e8cb22 100644 --- a/include/global.h +++ b/include/global.h @@ -8,11 +8,10 @@ #include "nitro.h" #include "global.fieldmap.h" #include "constants/global.h" +#include "error_handling.h" #define NELEMS(a) (sizeof(a) / sizeof(*(a))) -extern void ErrorHandling(void); - #define GF_ASSERT(expr) do {if (!(expr)) ErrorHandling();} while (0) #ifndef IN_MAIN_C -- cgit v1.2.3