diff options
Diffstat (limited to 'asm/SDK/BTE/bte_main.s')
-rw-r--r-- | asm/SDK/BTE/bte_main.s | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/asm/SDK/BTE/bte_main.s b/asm/SDK/BTE/bte_main.s new file mode 100644 index 0000000..9849cd4 --- /dev/null +++ b/asm/SDK/BTE/bte_main.s @@ -0,0 +1,105 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+BTUInterruptHandler:
+/* 802BCFB8 002B8C18 3C 80 80 56 */ lis r4, lbl_80567620@ha
+/* 802BCFBC 002B8C1C 3C 60 80 2C */ lis r3, btu_task_msg_handler@ha
+/* 802BCFC0 002B8C20 38 84 76 20 */ addi r4, r4, lbl_80567620@l
+/* 802BCFC4 002B8C24 38 63 D1 50 */ addi r3, r3, btu_task_msg_handler@l
+/* 802BCFC8 002B8C28 38 84 10 00 */ addi r4, r4, 0x1000
+/* 802BCFCC 002B8C2C 4B FA E0 64 */ b OSSwitchFiber
+
+.global BTA_Init
+BTA_Init:
+/* 802BCFD0 002B8C30 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802BCFD4 002B8C34 7C 08 02 A6 */ mflr r0
+/* 802BCFD8 002B8C38 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802BCFDC 002B8C3C 38 00 00 00 */ li r0, 0
+/* 802BCFE0 002B8C40 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802BCFE4 002B8C44 90 0D AE EC */ stw r0, lbl_806401AC-_SDA_BASE_(r13)
+/* 802BCFE8 002B8C48 4B FF DF 81 */ bl GKI_init
+/* 802BCFEC 002B8C4C 4B FF E1 71 */ bl GKI_enable
+/* 802BCFF0 002B8C50 48 01 1B 15 */ bl func_802CEB04
+/* 802BCFF4 002B8C54 3C 80 80 40 */ lis r4, lbl_803FDAA8@ha
+/* 802BCFF8 002B8C58 38 0D 8A 20 */ addi r0, r13, lbl_8063DCE0-_SDA_BASE_
+/* 802BCFFC 002B8C5C 38 84 DA A8 */ addi r4, r4, lbl_803FDAA8@l
+/* 802BD000 002B8C60 90 0D AE E4 */ stw r0, lbl_806401A4-_SDA_BASE_(r13)
+/* 802BD004 002B8C64 38 60 00 00 */ li r3, 0
+/* 802BD008 002B8C68 90 8D AE E0 */ stw r4, lbl_806401A0-_SDA_BASE_(r13)
+/* 802BD00C 002B8C6C 4B FF FD 85 */ bl bte_hcisu_task
+/* 802BD010 002B8C70 48 00 00 0C */ b lbl_802BD01C
+lbl_802BD014:
+/* 802BD014 002B8C74 38 60 00 64 */ li r3, 0x64
+/* 802BD018 002B8C78 4B FF E0 95 */ bl GKI_delay
+lbl_802BD01C:
+/* 802BD01C 002B8C7C 80 0D 89 C8 */ lwz r0, lbl_8063DC88-_SDA_BASE_(r13)
+/* 802BD020 002B8C80 2C 00 00 00 */ cmpwi r0, 0
+/* 802BD024 002B8C84 40 82 FF F0 */ bne lbl_802BD014
+/* 802BD028 002B8C88 48 00 00 E9 */ bl btu_task_init
+/* 802BD02C 002B8C8C 3F E0 80 57 */ lis r31, lbl_80568620@ha
+/* 802BD030 002B8C90 38 7F 86 20 */ addi r3, r31, lbl_80568620@l
+/* 802BD034 002B8C94 4B FA C6 F1 */ bl OSCreateAlarm
+/* 802BD038 002B8C98 4B FB 57 81 */ bl OSGetTime
+/* 802BD03C 002B8C9C 3C A0 80 00 */ lis r5, 0x800000F8@ha
+/* 802BD040 002B8CA0 3D 20 80 2C */ lis r9, BTUInterruptHandler@ha
+/* 802BD044 002B8CA4 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
+/* 802BD048 002B8CA8 3C C0 10 62 */ lis r6, 0x10624DD3@ha
+/* 802BD04C 002B8CAC 7C 65 1B 78 */ mr r5, r3
+/* 802BD050 002B8CB0 39 29 CF B8 */ addi r9, r9, BTUInterruptHandler@l
+/* 802BD054 002B8CB4 38 66 4D D3 */ addi r3, r6, 0x10624DD3@l
+/* 802BD058 002B8CB8 54 00 F0 BE */ srwi r0, r0, 2
+/* 802BD05C 002B8CBC 7C 03 00 16 */ mulhwu r0, r3, r0
+/* 802BD060 002B8CC0 7C 86 23 78 */ mr r6, r4
+/* 802BD064 002B8CC4 38 7F 86 20 */ addi r3, r31, -31200
+/* 802BD068 002B8CC8 38 E0 00 00 */ li r7, 0
+/* 802BD06C 002B8CCC 54 08 D9 7C */ rlwinm r8, r0, 0x1b, 5, 0x1e
+/* 802BD070 002B8CD0 4B FA C9 85 */ bl OSSetPeriodicAlarm
+/* 802BD074 002B8CD4 38 60 00 00 */ li r3, 0
+/* 802BD078 002B8CD8 4B FF E0 29 */ bl GKI_run
+/* 802BD07C 002B8CDC 48 00 00 0C */ b lbl_802BD088
+lbl_802BD080:
+/* 802BD080 002B8CE0 38 60 07 D0 */ li r3, 0x7d0
+/* 802BD084 002B8CE4 4B FF E0 29 */ bl GKI_delay
+lbl_802BD088:
+/* 802BD088 002B8CE8 48 00 30 65 */ bl func_802C00EC
+/* 802BD08C 002B8CEC 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802BD090 002B8CF0 41 82 FF F0 */ beq lbl_802BD080
+/* 802BD094 002B8CF4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802BD098 002B8CF8 38 60 00 00 */ li r3, 0
+/* 802BD09C 002B8CFC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802BD0A0 002B8D00 7C 08 03 A6 */ mtlr r0
+/* 802BD0A4 002B8D04 38 21 00 10 */ addi r1, r1, 0x10
+/* 802BD0A8 002B8D08 4E 80 00 20 */ blr
+
+.global BTA_CleanUp
+BTA_CleanUp:
+/* 802BD0AC 002B8D0C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802BD0B0 002B8D10 7C 08 02 A6 */ mflr r0
+/* 802BD0B4 002B8D14 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802BD0B8 002B8D18 90 6D AE EC */ stw r3, lbl_806401AC-_SDA_BASE_(r13)
+/* 802BD0BC 002B8D1C 3C 60 80 57 */ lis r3, lbl_80568620@ha
+/* 802BD0C0 002B8D20 38 63 86 20 */ addi r3, r3, lbl_80568620@l
+/* 802BD0C4 002B8D24 4B FA C9 B5 */ bl OSCancelAlarm
+/* 802BD0C8 002B8D28 4B FF FD 2D */ bl bte_hcisu_close
+/* 802BD0CC 002B8D2C 4B FF DF 2D */ bl GKI_shutdown
+/* 802BD0D0 002B8D30 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802BD0D4 002B8D34 7C 08 03 A6 */ mtlr r0
+/* 802BD0D8 002B8D38 38 21 00 10 */ addi r1, r1, 0x10
+/* 802BD0DC 002B8D3C 4E 80 00 20 */ blr
+
+.global bta_usb_close_evt
+bta_usb_close_evt:
+/* 802BD0E0 002B8D40 81 8D AE EC */ lwz r12, lbl_806401AC-_SDA_BASE_(r13)
+/* 802BD0E4 002B8D44 2C 0C 00 00 */ cmpwi r12, 0
+/* 802BD0E8 002B8D48 4D 82 00 20 */ beqlr
+/* 802BD0EC 002B8D4C 7C 60 07 75 */ extsb. r0, r3
+/* 802BD0F0 002B8D50 41 80 00 10 */ blt lbl_802BD100
+/* 802BD0F4 002B8D54 38 60 00 00 */ li r3, 0
+/* 802BD0F8 002B8D58 7D 89 03 A6 */ mtctr r12
+/* 802BD0FC 002B8D5C 4E 80 04 20 */ bctr
+lbl_802BD100:
+/* 802BD100 002B8D60 38 60 00 01 */ li r3, 1
+/* 802BD104 002B8D64 7D 89 03 A6 */ mtctr r12
+/* 802BD108 002B8D68 4E 80 04 20 */ bctr
+/* 802BD10C 002B8D6C 4E 80 00 20 */ blr
|