summaryrefslogtreecommitdiff
path: root/soh/src/code/code_800FBCE0.c
diff options
context:
space:
mode:
authorM4xw <m4x@m4xw.net>2022-03-22 02:51:23 +0100
committerM4xw <m4x@m4xw.net>2022-03-22 02:51:23 +0100
commit39cc86c2608e2f75ace33fc7f43bc4f2ad743f1a (patch)
tree0d3fd9e995d7484eaaeb158ac808bd6a39121189 /soh/src/code/code_800FBCE0.c
parent0bb0e7b53bd80bdc7f78e08c441691737e039b2b (diff)
git subrepo clone https://github.com/HarbourMasters/soh.git
subrepo: subdir: "soh" merged: "ba904bbd0" upstream: origin: "https://github.com/HarbourMasters/soh.git" branch: "master" commit: "ba904bbd0" git-subrepo: version: "0.4.1" origin: "???" commit: "???"
Diffstat (limited to 'soh/src/code/code_800FBCE0.c')
-rw-r--r--soh/src/code/code_800FBCE0.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/soh/src/code/code_800FBCE0.c b/soh/src/code/code_800FBCE0.c
new file mode 100644
index 000000000..65156eda0
--- /dev/null
+++ b/soh/src/code/code_800FBCE0.c
@@ -0,0 +1,52 @@
+#include "global.h"
+
+#define printSpStatus(x, name) \
+ if (x & SP_STATUS_##name) \
+ osSyncPrintf(#name " ")
+#define printDpStatus(x, name) \
+ if (x & DPC_STATUS_##name) \
+ osSyncPrintf(#name " ")
+
+void func_800FBCE0() {
+ u32 spStatus = __osSpGetStatus();
+ u32 dpStatus = osDpGetStatus();
+
+ osSyncPrintf("osSpGetStatus=%08x: ", spStatus);
+ printSpStatus(spStatus, HALT);
+ printSpStatus(spStatus, BROKE);
+ printSpStatus(spStatus, DMA_BUSY);
+ printSpStatus(spStatus, DMA_FULL);
+ printSpStatus(spStatus, IO_FULL);
+ printSpStatus(spStatus, SSTEP);
+ printSpStatus(spStatus, INTR_BREAK);
+ printSpStatus(spStatus, YIELD);
+ printSpStatus(spStatus, YIELDED);
+ printSpStatus(spStatus, TASKDONE);
+ printSpStatus(spStatus, SIG3);
+ printSpStatus(spStatus, SIG4);
+ printSpStatus(spStatus, SIG5);
+ printSpStatus(spStatus, SIG6);
+ printSpStatus(spStatus, SIG7);
+ osSyncPrintf("\n");
+
+ osSyncPrintf("osDpGetStatus=%08x:", dpStatus);
+ printDpStatus(dpStatus, XBUS_DMEM_DMA);
+ printDpStatus(dpStatus, FREEZE);
+ printDpStatus(dpStatus, FLUSH);
+ printDpStatus(dpStatus, START_GCLK);
+ printDpStatus(dpStatus, TMEM_BUSY);
+ printDpStatus(dpStatus, PIPE_BUSY);
+ printDpStatus(dpStatus, CMD_BUSY);
+ printDpStatus(dpStatus, CBUF_READY);
+ printDpStatus(dpStatus, DMA_BUSY);
+ printDpStatus(dpStatus, END_VALID);
+ printDpStatus(dpStatus, START_VALID);
+ osSyncPrintf("\n");
+}
+
+void func_800FBFD8() {
+ func_800FBCE0();
+ osDpSetStatus(DPC_SET_FREEZE | DPC_SET_FLUSH);
+ __osSpSetStatus(SP_SET_HALT | SP_SET_SIG2 | SP_CLR_INTR_BREAK);
+ func_800FBCE0();
+}