394 lines
18 KiB
ArmAsm
394 lines
18 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .text, "ax" # 0x80006A00 - 0x80406260
|
|
.global RFCOMM_StartRsp
|
|
RFCOMM_StartRsp:
|
|
/* 8009A43C 0009627C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 8009A440 00096280 7C 08 02 A6 */ mflr r0
|
|
/* 8009A444 00096284 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 8009A448 00096288 38 A1 00 08 */ addi r5, r1, 8
|
|
/* 8009A44C 0009628C B0 81 00 08 */ sth r4, 8(r1)
|
|
/* 8009A450 00096290 38 80 00 07 */ li r4, 7
|
|
/* 8009A454 00096294 4B FF E2 09 */ bl rfc_mx_sm_execute
|
|
/* 8009A458 00096298 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 8009A45C 0009629C 7C 08 03 A6 */ mtlr r0
|
|
/* 8009A460 000962A0 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 8009A464 000962A4 4E 80 00 20 */ blr
|
|
|
|
.global RFCOMM_DlcEstablishReq
|
|
RFCOMM_DlcEstablishReq:
|
|
/* 8009A468 000962A8 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 8009A46C 000962AC 7C 08 02 A6 */ mflr r0
|
|
/* 8009A470 000962B0 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 8009A474 000962B4 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 8009A478 000962B8 7C 9F 23 78 */ mr r31, r4
|
|
/* 8009A47C 000962BC 93 C1 00 08 */ stw r30, 8(r1)
|
|
/* 8009A480 000962C0 7C 7E 1B 78 */ mr r30, r3
|
|
/* 8009A484 000962C4 4B FF D5 25 */ bl port_find_mcb_dlci_port
|
|
/* 8009A488 000962C8 88 1E 00 6C */ lbz r0, 0x6c(r30)
|
|
/* 8009A48C 000962CC 28 00 00 05 */ cmplwi r0, 5
|
|
/* 8009A490 000962D0 41 82 00 1C */ beq lbl_8009A4AC
|
|
/* 8009A494 000962D4 7F C3 F3 78 */ mr r3, r30
|
|
/* 8009A498 000962D8 7F E4 FB 78 */ mr r4, r31
|
|
/* 8009A49C 000962DC 38 A0 00 00 */ li r5, 0
|
|
/* 8009A4A0 000962E0 38 C0 00 01 */ li r6, 1
|
|
/* 8009A4A4 000962E4 4B FF C4 A1 */ bl PORT_DlcEstablishCnf
|
|
/* 8009A4A8 000962E8 48 00 00 10 */ b lbl_8009A4B8
|
|
lbl_8009A4AC:
|
|
/* 8009A4AC 000962EC 38 80 00 09 */ li r4, 9
|
|
/* 8009A4B0 000962F0 38 A0 00 00 */ li r5, 0
|
|
/* 8009A4B4 000962F4 4B FF ED ED */ bl rfc_port_sm_execute
|
|
lbl_8009A4B8:
|
|
/* 8009A4B8 000962F8 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 8009A4BC 000962FC 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 8009A4C0 00096300 83 C1 00 08 */ lwz r30, 8(r1)
|
|
/* 8009A4C4 00096304 7C 08 03 A6 */ mtlr r0
|
|
/* 8009A4C8 00096308 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 8009A4CC 0009630C 4E 80 00 20 */ blr
|
|
|
|
.global RFCOMM_DlcEstablishRsp
|
|
RFCOMM_DlcEstablishRsp:
|
|
/* 8009A4D0 00096310 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 8009A4D4 00096314 7C 08 02 A6 */ mflr r0
|
|
/* 8009A4D8 00096318 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 8009A4DC 0009631C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 8009A4E0 00096320 7C 9F 23 78 */ mr r31, r4
|
|
/* 8009A4E4 00096324 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 8009A4E8 00096328 7C 7E 1B 78 */ mr r30, r3
|
|
/* 8009A4EC 0009632C B0 C1 00 08 */ sth r6, 8(r1)
|
|
/* 8009A4F0 00096330 4B FF D4 B9 */ bl port_find_mcb_dlci_port
|
|
/* 8009A4F4 00096334 88 1E 00 6C */ lbz r0, 0x6c(r30)
|
|
/* 8009A4F8 00096338 28 00 00 05 */ cmplwi r0, 5
|
|
/* 8009A4FC 0009633C 41 82 00 20 */ beq lbl_8009A51C
|
|
/* 8009A500 00096340 A0 01 00 08 */ lhz r0, 8(r1)
|
|
/* 8009A504 00096344 2C 00 00 00 */ cmpwi r0, 0
|
|
/* 8009A508 00096348 40 82 00 14 */ bne lbl_8009A51C
|
|
/* 8009A50C 0009634C 7F C3 F3 78 */ mr r3, r30
|
|
/* 8009A510 00096350 7F E4 FB 78 */ mr r4, r31
|
|
/* 8009A514 00096354 4B FF CA E1 */ bl PORT_DlcReleaseInd
|
|
/* 8009A518 00096358 48 00 00 10 */ b lbl_8009A528
|
|
lbl_8009A51C:
|
|
/* 8009A51C 0009635C 38 A1 00 08 */ addi r5, r1, 8
|
|
/* 8009A520 00096360 38 80 00 0B */ li r4, 0xb
|
|
/* 8009A524 00096364 4B FF ED 7D */ bl rfc_port_sm_execute
|
|
lbl_8009A528:
|
|
/* 8009A528 00096368 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 8009A52C 0009636C 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 8009A530 00096370 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 8009A534 00096374 7C 08 03 A6 */ mtlr r0
|
|
/* 8009A538 00096378 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 8009A53C 0009637C 4E 80 00 20 */ blr
|
|
|
|
.global RFCOMM_ParNegReq
|
|
RFCOMM_ParNegReq:
|
|
/* 8009A540 00096380 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 8009A544 00096384 7C 08 02 A6 */ mflr r0
|
|
/* 8009A548 00096388 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 8009A54C 0009638C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 8009A550 00096390 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 8009A554 00096394 7C BE 2B 78 */ mr r30, r5
|
|
/* 8009A558 00096398 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 8009A55C 0009639C 7C 9D 23 78 */ mr r29, r4
|
|
/* 8009A560 000963A0 93 81 00 10 */ stw r28, 0x10(r1)
|
|
/* 8009A564 000963A4 7C 7C 1B 78 */ mr r28, r3
|
|
/* 8009A568 000963A8 4B FF D4 41 */ bl port_find_mcb_dlci_port
|
|
/* 8009A56C 000963AC 88 1C 00 6C */ lbz r0, 0x6c(r28)
|
|
/* 8009A570 000963B0 7C 7F 1B 78 */ mr r31, r3
|
|
/* 8009A574 000963B4 28 00 00 05 */ cmplwi r0, 5
|
|
/* 8009A578 000963B8 41 82 00 10 */ beq lbl_8009A588
|
|
/* 8009A57C 000963BC 38 00 00 0D */ li r0, 0xd
|
|
/* 8009A580 000963C0 98 03 00 0E */ stb r0, 0xe(r3)
|
|
/* 8009A584 000963C4 48 00 00 7C */ b lbl_8009A600
|
|
lbl_8009A588:
|
|
/* 8009A588 000963C8 88 9C 00 72 */ lbz r4, 0x72(r28)
|
|
/* 8009A58C 000963CC 38 00 00 02 */ li r0, 2
|
|
/* 8009A590 000963D0 2C 04 00 00 */ cmpwi r4, 0
|
|
/* 8009A594 000963D4 41 82 00 08 */ beq lbl_8009A59C
|
|
/* 8009A598 000963D8 7C 80 23 78 */ mr r0, r4
|
|
lbl_8009A59C:
|
|
/* 8009A59C 000963DC 54 00 06 3E */ clrlwi r0, r0, 0x18
|
|
/* 8009A5A0 000963E0 28 00 00 02 */ cmplwi r0, 2
|
|
/* 8009A5A4 000963E4 40 82 00 28 */ bne lbl_8009A5CC
|
|
/* 8009A5A8 000963E8 A0 83 00 9C */ lhz r4, 0x9c(r3)
|
|
/* 8009A5AC 000963EC 38 E0 00 F0 */ li r7, 0xf0
|
|
/* 8009A5B0 000963F0 38 00 00 07 */ li r0, 7
|
|
/* 8009A5B4 000963F4 28 04 00 07 */ cmplwi r4, 7
|
|
/* 8009A5B8 000963F8 40 80 00 08 */ bge lbl_8009A5C0
|
|
/* 8009A5BC 000963FC 7C 80 23 78 */ mr r0, r4
|
|
lbl_8009A5C0:
|
|
/* 8009A5C0 00096400 54 08 06 3E */ clrlwi r8, r0, 0x18
|
|
/* 8009A5C4 00096404 B1 03 00 9A */ sth r8, 0x9a(r3)
|
|
/* 8009A5C8 00096408 48 00 00 0C */ b lbl_8009A5D4
|
|
lbl_8009A5CC:
|
|
/* 8009A5CC 0009640C 38 E0 00 00 */ li r7, 0
|
|
/* 8009A5D0 00096410 39 00 00 00 */ li r8, 0
|
|
lbl_8009A5D4:
|
|
/* 8009A5D4 00096414 88 03 00 69 */ lbz r0, 0x69(r3)
|
|
/* 8009A5D8 00096418 7F A4 EB 78 */ mr r4, r29
|
|
/* 8009A5DC 0009641C 7F C6 F3 78 */ mr r6, r30
|
|
/* 8009A5E0 00096420 38 A0 00 01 */ li r5, 1
|
|
/* 8009A5E4 00096424 60 00 00 01 */ ori r0, r0, 1
|
|
/* 8009A5E8 00096428 98 03 00 69 */ stb r0, 0x69(r3)
|
|
/* 8009A5EC 0009642C 7F 83 E3 78 */ mr r3, r28
|
|
/* 8009A5F0 00096430 48 00 07 E5 */ bl rfc_send_pn
|
|
/* 8009A5F4 00096434 7F E3 FB 78 */ mr r3, r31
|
|
/* 8009A5F8 00096438 38 80 00 3C */ li r4, 0x3c
|
|
/* 8009A5FC 0009643C 48 00 1C E5 */ bl rfc_port_timer_start
|
|
lbl_8009A600:
|
|
/* 8009A600 00096440 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 8009A604 00096444 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 8009A608 00096448 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 8009A60C 0009644C 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 8009A610 00096450 83 81 00 10 */ lwz r28, 0x10(r1)
|
|
/* 8009A614 00096454 7C 08 03 A6 */ mtlr r0
|
|
/* 8009A618 00096458 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 8009A61C 0009645C 4E 80 00 20 */ blr
|
|
|
|
.global RFCOMM_ParNegRsp
|
|
RFCOMM_ParNegRsp:
|
|
/* 8009A620 00096460 88 03 00 6C */ lbz r0, 0x6c(r3)
|
|
/* 8009A624 00096464 7C C9 33 78 */ mr r9, r6
|
|
/* 8009A628 00096468 7C E8 3B 78 */ mr r8, r7
|
|
/* 8009A62C 0009646C 28 00 00 05 */ cmplwi r0, 5
|
|
/* 8009A630 00096470 4C 82 00 20 */ bnelr
|
|
/* 8009A634 00096474 7C A6 2B 78 */ mr r6, r5
|
|
/* 8009A638 00096478 7D 27 4B 78 */ mr r7, r9
|
|
/* 8009A63C 0009647C 38 A0 00 00 */ li r5, 0
|
|
/* 8009A640 00096480 48 00 07 94 */ b rfc_send_pn
|
|
/* 8009A644 00096484 4E 80 00 20 */ blr
|
|
|
|
.global RFCOMM_PortNegReq
|
|
RFCOMM_PortNegReq:
|
|
/* 8009A648 00096488 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 8009A64C 0009648C 7C 08 02 A6 */ mflr r0
|
|
/* 8009A650 00096490 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 8009A654 00096494 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 8009A658 00096498 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 8009A65C 0009649C 7C BE 2B 78 */ mr r30, r5
|
|
/* 8009A660 000964A0 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 8009A664 000964A4 7C 9D 23 78 */ mr r29, r4
|
|
/* 8009A668 000964A8 93 81 00 10 */ stw r28, 0x10(r1)
|
|
/* 8009A66C 000964AC 7C 7C 1B 78 */ mr r28, r3
|
|
/* 8009A670 000964B0 4B FF D3 39 */ bl port_find_mcb_dlci_port
|
|
/* 8009A674 000964B4 88 1C 00 6C */ lbz r0, 0x6c(r28)
|
|
/* 8009A678 000964B8 7C 7F 1B 78 */ mr r31, r3
|
|
/* 8009A67C 000964BC 28 00 00 05 */ cmplwi r0, 5
|
|
/* 8009A680 000964C0 41 82 00 1C */ beq lbl_8009A69C
|
|
/* 8009A684 000964C4 7F 83 E3 78 */ mr r3, r28
|
|
/* 8009A688 000964C8 7F A4 EB 78 */ mr r4, r29
|
|
/* 8009A68C 000964CC 38 A0 00 00 */ li r5, 0
|
|
/* 8009A690 000964D0 38 C0 00 01 */ li r6, 1
|
|
/* 8009A694 000964D4 4B FF C5 45 */ bl PORT_PortNegCnf
|
|
/* 8009A698 000964D8 48 00 00 4C */ b lbl_8009A6E4
|
|
lbl_8009A69C:
|
|
/* 8009A69C 000964DC 2C 1E 00 00 */ cmpwi r30, 0
|
|
/* 8009A6A0 000964E0 40 82 00 14 */ bne lbl_8009A6B4
|
|
/* 8009A6A4 000964E4 88 03 00 69 */ lbz r0, 0x69(r3)
|
|
/* 8009A6A8 000964E8 60 00 00 02 */ ori r0, r0, 2
|
|
/* 8009A6AC 000964EC 98 03 00 69 */ stb r0, 0x69(r3)
|
|
/* 8009A6B0 000964F0 48 00 00 10 */ b lbl_8009A6C0
|
|
lbl_8009A6B4:
|
|
/* 8009A6B4 000964F4 88 03 00 69 */ lbz r0, 0x69(r3)
|
|
/* 8009A6B8 000964F8 60 00 00 04 */ ori r0, r0, 4
|
|
/* 8009A6BC 000964FC 98 03 00 69 */ stb r0, 0x69(r3)
|
|
lbl_8009A6C0:
|
|
/* 8009A6C0 00096500 7F 83 E3 78 */ mr r3, r28
|
|
/* 8009A6C4 00096504 7F A4 EB 78 */ mr r4, r29
|
|
/* 8009A6C8 00096508 7F C6 F3 78 */ mr r6, r30
|
|
/* 8009A6CC 0009650C 38 A0 00 01 */ li r5, 1
|
|
/* 8009A6D0 00096510 38 E0 3F 7F */ li r7, 0x3f7f
|
|
/* 8009A6D4 00096514 48 00 0A C1 */ bl rfc_send_rpn
|
|
/* 8009A6D8 00096518 7F E3 FB 78 */ mr r3, r31
|
|
/* 8009A6DC 0009651C 38 80 00 3C */ li r4, 0x3c
|
|
/* 8009A6E0 00096520 48 00 1C 01 */ bl rfc_port_timer_start
|
|
lbl_8009A6E4:
|
|
/* 8009A6E4 00096524 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 8009A6E8 00096528 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 8009A6EC 0009652C 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 8009A6F0 00096530 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 8009A6F4 00096534 83 81 00 10 */ lwz r28, 0x10(r1)
|
|
/* 8009A6F8 00096538 7C 08 03 A6 */ mtlr r0
|
|
/* 8009A6FC 0009653C 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 8009A700 00096540 4E 80 00 20 */ blr
|
|
|
|
.global RFCOMM_PortNegRsp
|
|
RFCOMM_PortNegRsp:
|
|
/* 8009A704 00096544 88 03 00 6C */ lbz r0, 0x6c(r3)
|
|
/* 8009A708 00096548 7C C7 33 78 */ mr r7, r6
|
|
/* 8009A70C 0009654C 28 00 00 05 */ cmplwi r0, 5
|
|
/* 8009A710 00096550 4C 82 00 20 */ bnelr
|
|
/* 8009A714 00096554 7C A6 2B 78 */ mr r6, r5
|
|
/* 8009A718 00096558 38 A0 00 00 */ li r5, 0
|
|
/* 8009A71C 0009655C 48 00 0A 78 */ b rfc_send_rpn
|
|
/* 8009A720 00096560 4E 80 00 20 */ blr
|
|
|
|
.global RFCOMM_ControlReq
|
|
RFCOMM_ControlReq:
|
|
/* 8009A724 00096564 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 8009A728 00096568 7C 08 02 A6 */ mflr r0
|
|
/* 8009A72C 0009656C 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 8009A730 00096570 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 8009A734 00096574 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 8009A738 00096578 7C BE 2B 78 */ mr r30, r5
|
|
/* 8009A73C 0009657C 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 8009A740 00096580 7C 9D 23 78 */ mr r29, r4
|
|
/* 8009A744 00096584 93 81 00 10 */ stw r28, 0x10(r1)
|
|
/* 8009A748 00096588 7C 7C 1B 78 */ mr r28, r3
|
|
/* 8009A74C 0009658C 4B FF D2 5D */ bl port_find_mcb_dlci_port
|
|
/* 8009A750 00096590 88 03 00 02 */ lbz r0, 2(r3)
|
|
/* 8009A754 00096594 7C 7F 1B 78 */ mr r31, r3
|
|
/* 8009A758 00096598 28 00 00 02 */ cmplwi r0, 2
|
|
/* 8009A75C 0009659C 40 82 00 4C */ bne lbl_8009A7A8
|
|
/* 8009A760 000965A0 88 03 00 68 */ lbz r0, 0x68(r3)
|
|
/* 8009A764 000965A4 28 00 00 04 */ cmplwi r0, 4
|
|
/* 8009A768 000965A8 41 82 00 08 */ beq lbl_8009A770
|
|
/* 8009A76C 000965AC 48 00 00 3C */ b lbl_8009A7A8
|
|
lbl_8009A770:
|
|
/* 8009A770 000965B0 88 03 00 64 */ lbz r0, 0x64(r3)
|
|
/* 8009A774 000965B4 7F A4 EB 78 */ mr r4, r29
|
|
/* 8009A778 000965B8 7F C6 F3 78 */ mr r6, r30
|
|
/* 8009A77C 000965BC 38 A0 00 01 */ li r5, 1
|
|
/* 8009A780 000965C0 60 00 00 01 */ ori r0, r0, 1
|
|
/* 8009A784 000965C4 98 03 00 64 */ stb r0, 0x64(r3)
|
|
/* 8009A788 000965C8 88 03 00 69 */ lbz r0, 0x69(r3)
|
|
/* 8009A78C 000965CC 60 00 00 08 */ ori r0, r0, 8
|
|
/* 8009A790 000965D0 98 03 00 69 */ stb r0, 0x69(r3)
|
|
/* 8009A794 000965D4 7F 83 E3 78 */ mr r3, r28
|
|
/* 8009A798 000965D8 48 00 08 2D */ bl rfc_send_msc
|
|
/* 8009A79C 000965DC 7F E3 FB 78 */ mr r3, r31
|
|
/* 8009A7A0 000965E0 38 80 00 3C */ li r4, 0x3c
|
|
/* 8009A7A4 000965E4 48 00 1B 3D */ bl rfc_port_timer_start
|
|
lbl_8009A7A8:
|
|
/* 8009A7A8 000965E8 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 8009A7AC 000965EC 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 8009A7B0 000965F0 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 8009A7B4 000965F4 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 8009A7B8 000965F8 83 81 00 10 */ lwz r28, 0x10(r1)
|
|
/* 8009A7BC 000965FC 7C 08 03 A6 */ mtlr r0
|
|
/* 8009A7C0 00096600 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 8009A7C4 00096604 4E 80 00 20 */ blr
|
|
|
|
.global RFCOMM_FlowReq
|
|
RFCOMM_FlowReq:
|
|
/* 8009A7C8 00096608 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 8009A7CC 0009660C 7C 08 02 A6 */ mflr r0
|
|
/* 8009A7D0 00096610 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 8009A7D4 00096614 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 8009A7D8 00096618 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 8009A7DC 0009661C 7C BE 2B 78 */ mr r30, r5
|
|
/* 8009A7E0 00096620 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 8009A7E4 00096624 7C 9D 23 78 */ mr r29, r4
|
|
/* 8009A7E8 00096628 93 81 00 10 */ stw r28, 0x10(r1)
|
|
/* 8009A7EC 0009662C 7C 7C 1B 78 */ mr r28, r3
|
|
/* 8009A7F0 00096630 4B FF D1 B9 */ bl port_find_mcb_dlci_port
|
|
/* 8009A7F4 00096634 88 03 00 02 */ lbz r0, 2(r3)
|
|
/* 8009A7F8 00096638 7C 7F 1B 78 */ mr r31, r3
|
|
/* 8009A7FC 0009663C 28 00 00 02 */ cmplwi r0, 2
|
|
/* 8009A800 00096640 40 82 00 4C */ bne lbl_8009A84C
|
|
/* 8009A804 00096644 88 03 00 68 */ lbz r0, 0x68(r3)
|
|
/* 8009A808 00096648 28 00 00 04 */ cmplwi r0, 4
|
|
/* 8009A80C 0009664C 41 82 00 08 */ beq lbl_8009A814
|
|
/* 8009A810 00096650 48 00 00 3C */ b lbl_8009A84C
|
|
lbl_8009A814:
|
|
/* 8009A814 00096654 7F C0 00 34 */ cntlzw r0, r30
|
|
/* 8009A818 00096658 7F A4 EB 78 */ mr r4, r29
|
|
/* 8009A81C 0009665C 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f
|
|
/* 8009A820 00096660 38 DF 00 5A */ addi r6, r31, 0x5a
|
|
/* 8009A824 00096664 98 03 00 5E */ stb r0, 0x5e(r3)
|
|
/* 8009A828 00096668 38 A0 00 01 */ li r5, 1
|
|
/* 8009A82C 0009666C 88 03 00 69 */ lbz r0, 0x69(r3)
|
|
/* 8009A830 00096670 60 00 00 08 */ ori r0, r0, 8
|
|
/* 8009A834 00096674 98 03 00 69 */ stb r0, 0x69(r3)
|
|
/* 8009A838 00096678 7F 83 E3 78 */ mr r3, r28
|
|
/* 8009A83C 0009667C 48 00 07 89 */ bl rfc_send_msc
|
|
/* 8009A840 00096680 7F E3 FB 78 */ mr r3, r31
|
|
/* 8009A844 00096684 38 80 00 3C */ li r4, 0x3c
|
|
/* 8009A848 00096688 48 00 1A 99 */ bl rfc_port_timer_start
|
|
lbl_8009A84C:
|
|
/* 8009A84C 0009668C 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 8009A850 00096690 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 8009A854 00096694 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 8009A858 00096698 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 8009A85C 0009669C 83 81 00 10 */ lwz r28, 0x10(r1)
|
|
/* 8009A860 000966A0 7C 08 03 A6 */ mtlr r0
|
|
/* 8009A864 000966A4 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 8009A868 000966A8 4E 80 00 20 */ blr
|
|
|
|
.global RFCOMM_LineStatusReq
|
|
RFCOMM_LineStatusReq:
|
|
/* 8009A86C 000966AC 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 8009A870 000966B0 7C 08 02 A6 */ mflr r0
|
|
/* 8009A874 000966B4 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 8009A878 000966B8 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 8009A87C 000966BC 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 8009A880 000966C0 7C BE 2B 78 */ mr r30, r5
|
|
/* 8009A884 000966C4 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 8009A888 000966C8 7C 9D 23 78 */ mr r29, r4
|
|
/* 8009A88C 000966CC 93 81 00 10 */ stw r28, 0x10(r1)
|
|
/* 8009A890 000966D0 7C 7C 1B 78 */ mr r28, r3
|
|
/* 8009A894 000966D4 4B FF D1 15 */ bl port_find_mcb_dlci_port
|
|
/* 8009A898 000966D8 88 03 00 02 */ lbz r0, 2(r3)
|
|
/* 8009A89C 000966DC 7C 7F 1B 78 */ mr r31, r3
|
|
/* 8009A8A0 000966E0 28 00 00 02 */ cmplwi r0, 2
|
|
/* 8009A8A4 000966E4 40 82 00 40 */ bne lbl_8009A8E4
|
|
/* 8009A8A8 000966E8 88 03 00 68 */ lbz r0, 0x68(r3)
|
|
/* 8009A8AC 000966EC 28 00 00 04 */ cmplwi r0, 4
|
|
/* 8009A8B0 000966F0 41 82 00 08 */ beq lbl_8009A8B8
|
|
/* 8009A8B4 000966F4 48 00 00 30 */ b lbl_8009A8E4
|
|
lbl_8009A8B8:
|
|
/* 8009A8B8 000966F8 88 03 00 69 */ lbz r0, 0x69(r3)
|
|
/* 8009A8BC 000966FC 7F A4 EB 78 */ mr r4, r29
|
|
/* 8009A8C0 00096700 7F C6 F3 78 */ mr r6, r30
|
|
/* 8009A8C4 00096704 38 A0 00 01 */ li r5, 1
|
|
/* 8009A8C8 00096708 60 00 00 10 */ ori r0, r0, 0x10
|
|
/* 8009A8CC 0009670C 98 03 00 69 */ stb r0, 0x69(r3)
|
|
/* 8009A8D0 00096710 7F 83 E3 78 */ mr r3, r28
|
|
/* 8009A8D4 00096714 48 00 08 11 */ bl rfc_send_rls
|
|
/* 8009A8D8 00096718 7F E3 FB 78 */ mr r3, r31
|
|
/* 8009A8DC 0009671C 38 80 00 3C */ li r4, 0x3c
|
|
/* 8009A8E0 00096720 48 00 1A 01 */ bl rfc_port_timer_start
|
|
lbl_8009A8E4:
|
|
/* 8009A8E4 00096724 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 8009A8E8 00096728 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 8009A8EC 0009672C 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 8009A8F0 00096730 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 8009A8F4 00096734 83 81 00 10 */ lwz r28, 0x10(r1)
|
|
/* 8009A8F8 00096738 7C 08 03 A6 */ mtlr r0
|
|
/* 8009A8FC 0009673C 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 8009A900 00096740 4E 80 00 20 */ blr
|
|
|
|
.global RFCOMM_DlcReleaseReq
|
|
RFCOMM_DlcReleaseReq:
|
|
/* 8009A904 00096744 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 8009A908 00096748 7C 08 02 A6 */ mflr r0
|
|
/* 8009A90C 0009674C 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 8009A910 00096750 4B FF D0 99 */ bl port_find_mcb_dlci_port
|
|
/* 8009A914 00096754 38 80 00 0C */ li r4, 0xc
|
|
/* 8009A918 00096758 38 A0 00 00 */ li r5, 0
|
|
/* 8009A91C 0009675C 4B FF E9 85 */ bl rfc_port_sm_execute
|
|
/* 8009A920 00096760 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 8009A924 00096764 7C 08 03 A6 */ mtlr r0
|
|
/* 8009A928 00096768 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 8009A92C 0009676C 4E 80 00 20 */ blr
|
|
|
|
.global RFCOMM_DataReq
|
|
RFCOMM_DataReq:
|
|
/* 8009A930 00096770 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 8009A934 00096774 7C 08 02 A6 */ mflr r0
|
|
/* 8009A938 00096778 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 8009A93C 0009677C 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 8009A940 00096780 7C BF 2B 78 */ mr r31, r5
|
|
/* 8009A944 00096784 4B FF D0 65 */ bl port_find_mcb_dlci_port
|
|
/* 8009A948 00096788 7F E5 FB 78 */ mr r5, r31
|
|
/* 8009A94C 0009678C 38 80 00 0E */ li r4, 0xe
|
|
/* 8009A950 00096790 4B FF E9 51 */ bl rfc_port_sm_execute
|
|
/* 8009A954 00096794 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 8009A958 00096798 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 8009A95C 0009679C 7C 08 03 A6 */ mtlr r0
|
|
/* 8009A960 000967A0 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 8009A964 000967A4 4E 80 00 20 */ blr
|
|
|
|
.section .bss, "wa" # 0x80496700 - 0x805643FC
|
|
.global rfc_cb
|
|
rfc_cb:
|
|
.skip 0x418
|