summaryrefslogtreecommitdiff
path: root/asm/SDK/NdevExi2A/DebuggerDriver.s
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-10-04 21:54:53 -0400
committerMax <mparisi@stevens.edu>2020-10-04 21:54:53 -0400
commitc943fbc11f7d8c44c48334fd1574d9cc3958859f (patch)
tree304e1be7f8dd496d3342c0200e0c6b117d865f7f /asm/SDK/NdevExi2A/DebuggerDriver.s
parentfd5ad91dcb83d779a0af473f00e280be5e129c9f (diff)
split WPADHIDParser.s
Diffstat (limited to 'asm/SDK/NdevExi2A/DebuggerDriver.s')
-rw-r--r--asm/SDK/NdevExi2A/DebuggerDriver.s242
1 files changed, 242 insertions, 0 deletions
diff --git a/asm/SDK/NdevExi2A/DebuggerDriver.s b/asm/SDK/NdevExi2A/DebuggerDriver.s
new file mode 100644
index 0000000..bf83ef9
--- /dev/null
+++ b/asm/SDK/NdevExi2A/DebuggerDriver.s
@@ -0,0 +1,242 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __DBMtrHandler
+__DBMtrHandler:
+/* 801D9F70 001D5BD0 81 8D 9F F0 */ lwz r12, lbl_8063F2B0-_SDA_BASE_(r13)
+/* 801D9F74 001D5BD4 38 00 00 01 */ li r0, 1
+/* 801D9F78 001D5BD8 98 0D 9F F8 */ stb r0, lbl_8063F2B8-_SDA_BASE_(r13)
+/* 801D9F7C 001D5BDC 2C 0C 00 00 */ cmpwi r12, 0
+/* 801D9F80 001D5BE0 4D 82 00 20 */ beqlr
+/* 801D9F84 001D5BE4 38 60 00 00 */ li r3, 0
+/* 801D9F88 001D5BE8 7D 89 03 A6 */ mtctr r12
+/* 801D9F8C 001D5BEC 4E 80 04 20 */ bctr
+/* 801D9F90 001D5BF0 4E 80 00 20 */ blr
+
+.global __DBIntrHandler
+__DBIntrHandler:
+/* 801D9F94 001D5BF4 38 00 10 00 */ li r0, 0x1000
+/* 801D9F98 001D5BF8 3C A0 CC 00 */ lis r5, 0xCC003000@ha
+/* 801D9F9C 001D5BFC 90 05 30 00 */ stw r0, 0xCC003000@l(r5)
+/* 801D9FA0 001D5C00 81 8D 9F F4 */ lwz r12, lbl_8063F2B4-_SDA_BASE_(r13)
+/* 801D9FA4 001D5C04 2C 0C 00 00 */ cmpwi r12, 0
+/* 801D9FA8 001D5C08 4D 82 00 20 */ beqlr
+/* 801D9FAC 001D5C0C 7D 89 03 A6 */ mtctr r12
+/* 801D9FB0 001D5C10 4E 80 04 20 */ bctr
+/* 801D9FB4 001D5C14 4E 80 00 20 */ blr
+
+.global DBInitComm
+DBInitComm:
+/* 801D9FB8 001D5C18 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 801D9FBC 001D5C1C 7C 08 02 A6 */ mflr r0
+/* 801D9FC0 001D5C20 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801D9FC4 001D5C24 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 801D9FC8 001D5C28 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 801D9FCC 001D5C2C 7C 9E 23 78 */ mr r30, r4
+/* 801D9FD0 001D5C30 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 801D9FD4 001D5C34 7C 7D 1B 78 */ mr r29, r3
+/* 801D9FD8 001D5C38 48 09 47 85 */ bl OSDisableInterrupts
+/* 801D9FDC 001D5C3C 38 0D 9F F8 */ addi r0, r13, lbl_8063F2B8-_SDA_BASE_
+/* 801D9FE0 001D5C40 7C 7F 1B 78 */ mr r31, r3
+/* 801D9FE4 001D5C44 90 1D 00 00 */ stw r0, 0(r29)
+/* 801D9FE8 001D5C48 93 CD 9F F0 */ stw r30, lbl_8063F2B0-_SDA_BASE_(r13)
+/* 801D9FEC 001D5C4C 48 00 05 A1 */ bl __DBEXIInit
+/* 801D9FF0 001D5C50 7F E3 FB 78 */ mr r3, r31
+/* 801D9FF4 001D5C54 48 09 47 91 */ bl OSRestoreInterrupts
+/* 801D9FF8 001D5C58 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801D9FFC 001D5C5C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 801DA000 001D5C60 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 801DA004 001D5C64 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 801DA008 001D5C68 7C 08 03 A6 */ mtlr r0
+/* 801DA00C 001D5C6C 38 21 00 20 */ addi r1, r1, 0x20
+/* 801DA010 001D5C70 4E 80 00 20 */ blr
+
+.global DBInitInterrupts
+DBInitInterrupts:
+/* 801DA014 001D5C74 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DA018 001D5C78 7C 08 02 A6 */ mflr r0
+/* 801DA01C 001D5C7C 3C 60 00 02 */ lis r3, 0x00018000@ha
+/* 801DA020 001D5C80 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DA024 001D5C84 38 63 80 00 */ addi r3, r3, 0x00018000@l
+/* 801DA028 001D5C88 48 09 4A C5 */ bl __OSMaskInterrupts
+/* 801DA02C 001D5C8C 38 60 00 40 */ li r3, 0x40
+/* 801DA030 001D5C90 48 09 4A BD */ bl __OSMaskInterrupts
+/* 801DA034 001D5C94 3C 60 80 1E */ lis r3, __DBMtrHandler@ha
+/* 801DA038 001D5C98 3C 80 80 1E */ lis r4, __DBIntrHandler@ha
+/* 801DA03C 001D5C9C 38 63 9F 70 */ addi r3, r3, __DBMtrHandler@l
+/* 801DA040 001D5CA0 90 6D 9F F4 */ stw r3, lbl_8063F2B4-_SDA_BASE_(r13)
+/* 801DA044 001D5CA4 38 84 9F 94 */ addi r4, r4, __DBIntrHandler@l
+/* 801DA048 001D5CA8 38 60 00 19 */ li r3, 0x19
+/* 801DA04C 001D5CAC 48 09 47 5D */ bl __OSSetInterruptHandler
+/* 801DA050 001D5CB0 38 60 00 40 */ li r3, 0x40
+/* 801DA054 001D5CB4 48 09 4B 19 */ bl __OSUnmaskInterrupts
+/* 801DA058 001D5CB8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DA05C 001D5CBC 7C 08 03 A6 */ mtlr r0
+/* 801DA060 001D5CC0 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DA064 001D5CC4 4E 80 00 20 */ blr
+
+.global DBQueryData
+DBQueryData:
+/* 801DA068 001D5CC8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 801DA06C 001D5CCC 7C 08 02 A6 */ mflr r0
+/* 801DA070 001D5CD0 38 60 00 00 */ li r3, 0
+/* 801DA074 001D5CD4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801DA078 001D5CD8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 801DA07C 001D5CDC 80 0D A0 00 */ lwz r0, lbl_8063F2C0-_SDA_BASE_(r13)
+/* 801DA080 001D5CE0 98 6D 9F F8 */ stb r3, lbl_8063F2B8-_SDA_BASE_(r13)
+/* 801DA084 001D5CE4 2C 00 00 00 */ cmpwi r0, 0
+/* 801DA088 001D5CE8 40 82 00 6C */ bne lbl_801DA0F4
+/* 801DA08C 001D5CEC 48 09 46 D1 */ bl OSDisableInterrupts
+/* 801DA090 001D5CF0 7C 7F 1B 78 */ mr r31, r3
+/* 801DA094 001D5CF4 38 81 00 08 */ addi r4, r1, 8
+/* 801DA098 001D5CF8 3C 60 34 00 */ lis r3, 0x3400
+/* 801DA09C 001D5CFC 38 A0 00 01 */ li r5, 1
+/* 801DA0A0 001D5D00 48 00 05 A9 */ bl __DBEXIReadReg
+/* 801DA0A4 001D5D04 88 01 00 08 */ lbz r0, 8(r1)
+/* 801DA0A8 001D5D08 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
+/* 801DA0AC 001D5D0C 40 82 00 40 */ bne lbl_801DA0EC
+/* 801DA0B0 001D5D10 3C 60 34 00 */ lis r3, 0x34000200@ha
+/* 801DA0B4 001D5D14 38 81 00 0C */ addi r4, r1, 0xc
+/* 801DA0B8 001D5D18 38 63 02 00 */ addi r3, r3, 0x34000200@l
+/* 801DA0BC 001D5D1C 38 A0 00 04 */ li r5, 4
+/* 801DA0C0 001D5D20 48 00 05 89 */ bl __DBEXIReadReg
+/* 801DA0C4 001D5D24 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 801DA0C8 001D5D28 54 83 00 CE */ rlwinm r3, r4, 0, 3, 7
+/* 801DA0CC 001D5D2C 3C 03 E1 00 */ addis r0, r3, 0xe100
+/* 801DA0D0 001D5D30 28 00 00 00 */ cmplwi r0, 0
+/* 801DA0D4 001D5D34 40 82 00 18 */ bne lbl_801DA0EC
+/* 801DA0D8 001D5D38 54 83 04 FE */ clrlwi r3, r4, 0x13
+/* 801DA0DC 001D5D3C 38 00 00 01 */ li r0, 1
+/* 801DA0E0 001D5D40 90 8D 9F FC */ stw r4, lbl_8063F2BC-_SDA_BASE_(r13)
+/* 801DA0E4 001D5D44 90 6D A0 00 */ stw r3, lbl_8063F2C0-_SDA_BASE_(r13)
+/* 801DA0E8 001D5D48 98 0D 9F F8 */ stb r0, lbl_8063F2B8-_SDA_BASE_(r13)
+lbl_801DA0EC:
+/* 801DA0EC 001D5D4C 7F E3 FB 78 */ mr r3, r31
+/* 801DA0F0 001D5D50 48 09 46 95 */ bl OSRestoreInterrupts
+lbl_801DA0F4:
+/* 801DA0F4 001D5D54 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 801DA0F8 001D5D58 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801DA0FC 001D5D5C 80 6D A0 00 */ lwz r3, lbl_8063F2C0-_SDA_BASE_(r13)
+/* 801DA100 001D5D60 7C 08 03 A6 */ mtlr r0
+/* 801DA104 001D5D64 38 21 00 20 */ addi r1, r1, 0x20
+/* 801DA108 001D5D68 4E 80 00 20 */ blr
+
+.global DBRead
+DBRead:
+/* 801DA10C 001D5D6C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DA110 001D5D70 7C 08 02 A6 */ mflr r0
+/* 801DA114 001D5D74 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DA118 001D5D78 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801DA11C 001D5D7C 7C 9F 23 78 */ mr r31, r4
+/* 801DA120 001D5D80 93 C1 00 08 */ stw r30, 8(r1)
+/* 801DA124 001D5D84 7C 7E 1B 78 */ mr r30, r3
+/* 801DA128 001D5D88 48 09 46 35 */ bl OSDisableInterrupts
+/* 801DA12C 001D5D8C 80 AD 9F FC */ lwz r5, lbl_8063F2BC-_SDA_BASE_(r13)
+/* 801DA130 001D5D90 38 1F 00 03 */ addi r0, r31, 3
+/* 801DA134 001D5D94 7C 7F 1B 78 */ mr r31, r3
+/* 801DA138 001D5D98 7F C4 F3 78 */ mr r4, r30
+/* 801DA13C 001D5D9C 54 A3 87 FE */ rlwinm r3, r5, 0x10, 0x1f, 0x1f
+/* 801DA140 001D5DA0 54 05 00 3A */ rlwinm r5, r0, 0, 0, 0x1d
+/* 801DA144 001D5DA4 7C 03 00 D0 */ neg r0, r3
+/* 801DA148 001D5DA8 54 03 05 28 */ rlwinm r3, r0, 0, 0x14, 0x14
+/* 801DA14C 001D5DAC 3C 63 00 D1 */ addis r3, r3, 0xd1
+/* 801DA150 001D5DB0 38 03 10 00 */ addi r0, r3, 0x1000
+/* 801DA154 001D5DB4 54 03 30 AE */ rlwinm r3, r0, 6, 2, 0x17
+/* 801DA158 001D5DB8 48 00 07 19 */ bl __DBEXIReadRam
+/* 801DA15C 001D5DBC 38 00 00 00 */ li r0, 0
+/* 801DA160 001D5DC0 7F E3 FB 78 */ mr r3, r31
+/* 801DA164 001D5DC4 90 0D A0 00 */ stw r0, lbl_8063F2C0-_SDA_BASE_(r13)
+/* 801DA168 001D5DC8 98 0D 9F F8 */ stb r0, lbl_8063F2B8-_SDA_BASE_(r13)
+/* 801DA16C 001D5DCC 48 09 46 19 */ bl OSRestoreInterrupts
+/* 801DA170 001D5DD0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801DA174 001D5DD4 38 60 00 00 */ li r3, 0
+/* 801DA178 001D5DD8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 801DA17C 001D5DDC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DA180 001D5DE0 7C 08 03 A6 */ mtlr r0
+/* 801DA184 001D5DE4 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DA188 001D5DE8 4E 80 00 20 */ blr
+
+.global DBWrite
+DBWrite:
+/* 801DA18C 001D5DEC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 801DA190 001D5DF0 7C 08 02 A6 */ mflr r0
+/* 801DA194 001D5DF4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 801DA198 001D5DF8 39 61 00 30 */ addi r11, r1, 0x30
+/* 801DA19C 001D5DFC 4B FE CF 8D */ bl _savegpr_27
+/* 801DA1A0 001D5E00 7C 7B 1B 78 */ mr r27, r3
+/* 801DA1A4 001D5E04 7C 9C 23 78 */ mr r28, r4
+/* 801DA1A8 001D5E08 48 09 45 B5 */ bl OSDisableInterrupts
+/* 801DA1AC 001D5E0C 7C 7F 1B 78 */ mr r31, r3
+lbl_801DA1B0:
+/* 801DA1B0 001D5E10 38 81 00 0A */ addi r4, r1, 0xa
+/* 801DA1B4 001D5E14 3C 60 34 00 */ lis r3, 0x3400
+/* 801DA1B8 001D5E18 38 A0 00 01 */ li r5, 1
+/* 801DA1BC 001D5E1C 48 00 04 8D */ bl __DBEXIReadReg
+/* 801DA1C0 001D5E20 88 01 00 0A */ lbz r0, 0xa(r1)
+/* 801DA1C4 001D5E24 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
+/* 801DA1C8 001D5E28 40 82 FF E8 */ bne lbl_801DA1B0
+/* 801DA1CC 001D5E2C 88 6D 84 08 */ lbz r3, lbl_8063D6C8-_SDA_BASE_(r13)
+/* 801DA1D0 001D5E30 38 1C 00 03 */ addi r0, r28, 3
+/* 801DA1D4 001D5E34 54 1D 00 3A */ rlwinm r29, r0, 0, 0, 0x1d
+/* 801DA1D8 001D5E38 38 63 00 01 */ addi r3, r3, 1
+/* 801DA1DC 001D5E3C 54 60 07 FE */ clrlwi r0, r3, 0x1f
+/* 801DA1E0 001D5E40 98 6D 84 08 */ stb r3, lbl_8063D6C8-_SDA_BASE_(r13)
+/* 801DA1E4 001D5E44 7C 00 00 D0 */ neg r0, r0
+/* 801DA1E8 001D5E48 54 03 05 28 */ rlwinm r3, r0, 0, 0x14, 0x14
+/* 801DA1EC 001D5E4C 3C 03 00 D1 */ addis r0, r3, 0xd1
+/* 801DA1F0 001D5E50 54 00 30 AE */ rlwinm r0, r0, 6, 2, 0x17
+/* 801DA1F4 001D5E54 64 1E 80 00 */ oris r30, r0, 0x8000
+lbl_801DA1F8:
+/* 801DA1F8 001D5E58 7F C3 F3 78 */ mr r3, r30
+/* 801DA1FC 001D5E5C 7F 64 DB 78 */ mr r4, r27
+/* 801DA200 001D5E60 7F A5 EB 78 */ mr r5, r29
+/* 801DA204 001D5E64 48 00 07 4D */ bl __DBEXIWriteRam
+/* 801DA208 001D5E68 2C 03 00 00 */ cmpwi r3, 0
+/* 801DA20C 001D5E6C 41 82 FF EC */ beq lbl_801DA1F8
+lbl_801DA210:
+/* 801DA210 001D5E70 38 81 00 09 */ addi r4, r1, 9
+/* 801DA214 001D5E74 3C 60 34 00 */ lis r3, 0x3400
+/* 801DA218 001D5E78 38 A0 00 01 */ li r5, 1
+/* 801DA21C 001D5E7C 48 00 04 2D */ bl __DBEXIReadReg
+/* 801DA220 001D5E80 88 01 00 09 */ lbz r0, 9(r1)
+/* 801DA224 001D5E84 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
+/* 801DA228 001D5E88 40 82 FF E8 */ bne lbl_801DA210
+/* 801DA22C 001D5E8C 88 6D 84 08 */ lbz r3, lbl_8063D6C8-_SDA_BASE_(r13)
+/* 801DA230 001D5E90 57 80 04 FE */ clrlwi r0, r28, 0x13
+/* 801DA234 001D5E94 64 1D 1F 00 */ oris r29, r0, 0x1f00
+/* 801DA238 001D5E98 3F C0 B4 00 */ lis r30, 0xB4000100@ha
+/* 801DA23C 001D5E9C 50 7D 82 1E */ rlwimi r29, r3, 0x10, 8, 0xf
+lbl_801DA240:
+/* 801DA240 001D5EA0 93 A1 00 0C */ stw r29, 0xc(r1)
+/* 801DA244 001D5EA4 38 7E 01 00 */ addi r3, r30, 0xB4000100@l
+/* 801DA248 001D5EA8 38 81 00 0C */ addi r4, r1, 0xc
+/* 801DA24C 001D5EAC 38 A0 00 04 */ li r5, 4
+/* 801DA250 001D5EB0 48 00 05 1D */ bl __DBEXIWriteReg
+/* 801DA254 001D5EB4 2C 03 00 00 */ cmpwi r3, 0
+/* 801DA258 001D5EB8 41 82 FF E8 */ beq lbl_801DA240
+lbl_801DA25C:
+/* 801DA25C 001D5EBC 38 81 00 08 */ addi r4, r1, 8
+/* 801DA260 001D5EC0 3C 60 34 00 */ lis r3, 0x3400
+/* 801DA264 001D5EC4 38 A0 00 01 */ li r5, 1
+/* 801DA268 001D5EC8 48 00 03 E1 */ bl __DBEXIReadReg
+/* 801DA26C 001D5ECC 88 01 00 08 */ lbz r0, 8(r1)
+/* 801DA270 001D5ED0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
+/* 801DA274 001D5ED4 40 82 FF E8 */ bne lbl_801DA25C
+/* 801DA278 001D5ED8 7F E3 FB 78 */ mr r3, r31
+/* 801DA27C 001D5EDC 48 09 45 09 */ bl OSRestoreInterrupts
+/* 801DA280 001D5EE0 39 61 00 30 */ addi r11, r1, 0x30
+/* 801DA284 001D5EE4 38 60 00 00 */ li r3, 0
+/* 801DA288 001D5EE8 4B FE CE ED */ bl _restgpr_27
+/* 801DA28C 001D5EEC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 801DA290 001D5EF0 7C 08 03 A6 */ mtlr r0
+/* 801DA294 001D5EF4 38 21 00 30 */ addi r1, r1, 0x30
+/* 801DA298 001D5EF8 4E 80 00 20 */ blr
+
+.global DBOpen
+DBOpen:
+/* 801DA29C 001D5EFC 4E 80 00 20 */ blr
+
+.global DBClose
+DBClose:
+/* 801DA2A0 001D5F00 4E 80 00 20 */ blr