summaryrefslogtreecommitdiff
path: root/asm/TRK_MINNOW_DOLPHIN/dispatch.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/TRK_MINNOW_DOLPHIN/dispatch.s')
-rw-r--r--asm/TRK_MINNOW_DOLPHIN/dispatch.s90
1 files changed, 90 insertions, 0 deletions
diff --git a/asm/TRK_MINNOW_DOLPHIN/dispatch.s b/asm/TRK_MINNOW_DOLPHIN/dispatch.s
new file mode 100644
index 0000000..4d79595
--- /dev/null
+++ b/asm/TRK_MINNOW_DOLPHIN/dispatch.s
@@ -0,0 +1,90 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80005600 - 0x8036FBA0
+.global TRKInitializeDispatcher
+TRKInitializeDispatcher:
+/* 80088A94 000859D4 3C 60 80 3F */ lis r3, gTRKDispatchTableSize@ha
+/* 80088A98 000859D8 38 00 00 20 */ li r0, 0x20
+/* 80088A9C 000859DC 90 03 AA D8 */ stw r0, gTRKDispatchTableSize@l(r3)
+/* 80088AA0 000859E0 38 60 00 00 */ li r3, 0
+/* 80088AA4 000859E4 4E 80 00 20 */ blr
+
+.global TRKDispatchMessage
+TRKDispatchMessage:
+/* 80088AA8 000859E8 7C 08 02 A6 */ mflr r0
+/* 80088AAC 000859EC 38 80 00 00 */ li r4, 0
+/* 80088AB0 000859F0 90 01 00 04 */ stw r0, 4(r1)
+/* 80088AB4 000859F4 94 21 FF E8 */ stwu r1, -0x18(r1)
+/* 80088AB8 000859F8 93 E1 00 14 */ stw r31, 0x14(r1)
+/* 80088ABC 000859FC 3B E0 05 00 */ li r31, 0x500
+/* 80088AC0 00085A00 93 C1 00 10 */ stw r30, 0x10(r1)
+/* 80088AC4 00085A04 3B C3 00 00 */ addi r30, r3, 0
+/* 80088AC8 00085A08 4B FF F7 A9 */ bl TRKSetBufferPosition
+/* 80088ACC 00085A0C 38 7E 00 00 */ addi r3, r30, 0
+/* 80088AD0 00085A10 38 81 00 08 */ addi r4, r1, 8
+/* 80088AD4 00085A14 4B FF FB 21 */ bl TRKReadBuffer1_ui8
+/* 80088AD8 00085A18 3C 60 80 3F */ lis r3, gTRKDispatchTableSize@ha
+/* 80088ADC 00085A1C 88 81 00 08 */ lbz r4, 8(r1)
+/* 80088AE0 00085A20 80 03 AA D8 */ lwz r0, gTRKDispatchTableSize@l(r3)
+/* 80088AE4 00085A24 7C 04 00 40 */ cmplw r4, r0
+/* 80088AE8 00085A28 40 80 00 28 */ bge lbl_80088B10
+/* 80088AEC 00085A2C 3C 60 80 3B */ lis r3, gTRKDispatchTable@ha
+/* 80088AF0 00085A30 54 84 10 3A */ slwi r4, r4, 2
+/* 80088AF4 00085A34 38 03 EF 58 */ addi r0, r3, gTRKDispatchTable@l
+/* 80088AF8 00085A38 7C 60 22 14 */ add r3, r0, r4
+/* 80088AFC 00085A3C 81 83 00 00 */ lwz r12, 0(r3)
+/* 80088B00 00085A40 38 7E 00 00 */ addi r3, r30, 0
+/* 80088B04 00085A44 7D 88 03 A6 */ mtlr r12
+/* 80088B08 00085A48 4E 80 00 21 */ blrl
+/* 80088B0C 00085A4C 7C 7F 1B 78 */ mr r31, r3
+lbl_80088B10:
+/* 80088B10 00085A50 7F E3 FB 78 */ mr r3, r31
+/* 80088B14 00085A54 83 E1 00 14 */ lwz r31, 0x14(r1)
+/* 80088B18 00085A58 83 C1 00 10 */ lwz r30, 0x10(r1)
+/* 80088B1C 00085A5C 38 21 00 18 */ addi r1, r1, 0x18
+/* 80088B20 00085A60 80 01 00 04 */ lwz r0, 4(r1)
+/* 80088B24 00085A64 7C 08 03 A6 */ mtlr r0
+/* 80088B28 00085A68 4E 80 00 20 */ blr
+
+.section .data, "wa" # 0x803A8380 - 0x803E6000
+.global gTRKDispatchTable
+gTRKDispatchTable:
+ .4byte TRKDoUnsupported
+ .4byte TRKDoConnect
+ .4byte TRKDoDisconnect
+ .4byte TRKDoReset
+ .4byte TRKDoVersions
+ .4byte TRKDoSupportMask
+ .4byte TRKDoCPUType
+ .4byte TRKDoUnsupported
+ .4byte TRKDoUnsupported
+ .4byte TRKDoUnsupported
+ .4byte TRKDoUnsupported
+ .4byte TRKDoUnsupported
+ .4byte TRKDoUnsupported
+ .4byte TRKDoUnsupported
+ .4byte TRKDoUnsupported
+ .4byte TRKDoUnsupported
+ .4byte TRKDoReadMemory
+ .4byte TRKDoWriteMemory
+ .4byte TRKDoReadRegisters
+ .4byte TRKDoWriteRegisters
+ .4byte TRKDoUnsupported
+ .4byte TRKDoUnsupported
+ .4byte TRKDoFlushCache
+ .4byte TRKDoUnsupported
+ .4byte TRKDoContinue
+ .4byte TRKDoStep
+ .4byte TRKDoStop
+ .4byte TRKDoUnsupported
+ .4byte TRKDoUnsupported
+ .4byte TRKDoUnsupported
+ .4byte TRKDoUnsupported
+ .4byte TRKDoUnsupported
+ .4byte 0
+ .4byte 0
+
+.section .bss, "wa" # 0x803E6000 - 0x80408AC0
+.global gTRKDispatchTableSize
+gTRKDispatchTableSize:
+ .skip 0x8