diff options
Diffstat (limited to 'asm/SDK/ipcMain.s')
-rw-r--r-- | asm/SDK/ipcMain.s | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/asm/SDK/ipcMain.s b/asm/SDK/ipcMain.s new file mode 100644 index 0000000..783c5c4 --- /dev/null +++ b/asm/SDK/ipcMain.s @@ -0,0 +1,55 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global IPCInit
+IPCInit:
+/* 802A2880 0029E4E0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802A2884 0029E4E4 7C 08 02 A6 */ mflr r0
+/* 802A2888 0029E4E8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802A288C 0029E4EC 88 0D AD E8 */ lbz r0, lbl_806400A8-_SDA_BASE_(r13)
+/* 802A2890 0029E4F0 2C 00 00 00 */ cmpwi r0, 0
+/* 802A2894 0029E4F4 40 82 00 28 */ bne lbl_802A28BC
+/* 802A2898 0029E4F8 4B FD 08 0D */ bl __OSGetIPCBufferHi
+/* 802A289C 0029E4FC 90 6D AD F8 */ stw r3, lbl_806400B8-_SDA_BASE_(r13)
+/* 802A28A0 0029E500 4B FD 08 0D */ bl __OSGetIPCBufferLo
+/* 802A28A4 0029E504 80 8D AD F8 */ lwz r4, lbl_806400B8-_SDA_BASE_(r13)
+/* 802A28A8 0029E508 38 00 00 01 */ li r0, 1
+/* 802A28AC 0029E50C 90 6D AD F4 */ stw r3, lbl_806400B4-_SDA_BASE_(r13)
+/* 802A28B0 0029E510 90 8D AD F0 */ stw r4, lbl_806400B0-_SDA_BASE_(r13)
+/* 802A28B4 0029E514 90 6D AD EC */ stw r3, lbl_806400AC-_SDA_BASE_(r13)
+/* 802A28B8 0029E518 98 0D AD E8 */ stb r0, lbl_806400A8-_SDA_BASE_(r13)
+lbl_802A28BC:
+/* 802A28BC 0029E51C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802A28C0 0029E520 7C 08 03 A6 */ mtlr r0
+/* 802A28C4 0029E524 38 21 00 10 */ addi r1, r1, 0x10
+/* 802A28C8 0029E528 4E 80 00 20 */ blr
+
+.global IPCReadReg
+IPCReadReg:
+/* 802A28CC 0029E52C 54 60 10 3A */ slwi r0, r3, 2
+/* 802A28D0 0029E530 3C 60 CD 00 */ lis r3, 0xcd00
+/* 802A28D4 0029E534 7C 63 00 2E */ lwzx r3, r3, r0
+/* 802A28D8 0029E538 4E 80 00 20 */ blr
+
+.global IPCWriteReg
+IPCWriteReg:
+/* 802A28DC 0029E53C 54 60 10 3A */ slwi r0, r3, 2
+/* 802A28E0 0029E540 3C 60 CD 00 */ lis r3, 0xcd00
+/* 802A28E4 0029E544 7C 83 01 2E */ stwx r4, r3, r0
+/* 802A28E8 0029E548 4E 80 00 20 */ blr
+
+.global IPCGetBufferHi
+IPCGetBufferHi:
+/* 802A28EC 0029E54C 80 6D AD F0 */ lwz r3, lbl_806400B0-_SDA_BASE_(r13)
+/* 802A28F0 0029E550 4E 80 00 20 */ blr
+
+.global IPCGetBufferLo
+IPCGetBufferLo:
+/* 802A28F4 0029E554 80 6D AD EC */ lwz r3, lbl_806400AC-_SDA_BASE_(r13)
+/* 802A28F8 0029E558 4E 80 00 20 */ blr
+
+.global IPCSetBufferLo
+IPCSetBufferLo:
+/* 802A28FC 0029E55C 90 6D AD EC */ stw r3, lbl_806400AC-_SDA_BASE_(r13)
+/* 802A2900 0029E560 4E 80 00 20 */ blr
|