1925 lines
89 KiB
ArmAsm
1925 lines
89 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
|
|
.global SetExiInterruptMask
|
|
SetExiInterruptMask:
|
|
/* 800285F0 00024430 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 800285F4 00024434 7C 08 02 A6 */ mflr r0
|
|
/* 800285F8 00024438 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 800285FC 0002443C 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 80028600 00024440 7C 9F 23 78 */ mr r31, r4
|
|
/* 80028604 00024444 3C A0 80 4A */ lis r5, Ecb@ha
|
|
/* 80028608 00024448 38 A5 A2 90 */ addi r5, r5, Ecb@l
|
|
/* 8002860C 0002444C 2C 03 00 00 */ cmpwi r3, 0x0
|
|
/* 80028610 00024450 41 82 00 18 */ beq lbl_80028628
|
|
/* 80028614 00024454 2C 03 00 01 */ cmpwi r3, 0x1
|
|
/* 80028618 00024458 41 82 00 4C */ beq lbl_80028664
|
|
/* 8002861C 0002445C 2C 03 00 02 */ cmpwi r3, 0x2
|
|
/* 80028620 00024460 41 82 00 74 */ beq lbl_80028694
|
|
/* 80028624 00024464 48 00 00 A0 */ b lbl_800286C4
|
|
.global lbl_80028628
|
|
lbl_80028628:
|
|
/* 80028628 00024468 80 04 00 00 */ lwz r0, 0x0(r4)
|
|
/* 8002862C 0002446C 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80028630 00024470 40 82 00 10 */ bne lbl_80028640
|
|
/* 80028634 00024474 80 05 00 80 */ lwz r0, 0x80(r5)
|
|
/* 80028638 00024478 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 8002863C 0002447C 41 82 00 10 */ beq lbl_8002864C
|
|
.global lbl_80028640
|
|
lbl_80028640:
|
|
/* 80028640 00024480 80 04 00 0C */ lwz r0, 0xc(r4)
|
|
/* 80028644 00024484 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
|
|
/* 80028648 00024488 41 82 00 10 */ beq lbl_80028658
|
|
.global lbl_8002864C
|
|
lbl_8002864C:
|
|
/* 8002864C 0002448C 3C 60 00 41 */ lis r3, 0x41
|
|
/* 80028650 00024490 4B FF 95 A1 */ bl __OSMaskInterrupts
|
|
/* 80028654 00024494 48 00 00 70 */ b lbl_800286C4
|
|
.global lbl_80028658
|
|
lbl_80028658:
|
|
/* 80028658 00024498 3C 60 00 41 */ lis r3, 0x41
|
|
/* 8002865C 0002449C 4B FF 96 15 */ bl __OSUnmaskInterrupts
|
|
/* 80028660 000244A0 48 00 00 64 */ b lbl_800286C4
|
|
.global lbl_80028664
|
|
lbl_80028664:
|
|
/* 80028664 000244A4 80 04 00 00 */ lwz r0, 0x0(r4)
|
|
/* 80028668 000244A8 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 8002866C 000244AC 41 82 00 10 */ beq lbl_8002867C
|
|
/* 80028670 000244B0 80 04 00 0C */ lwz r0, 0xc(r4)
|
|
/* 80028674 000244B4 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
|
|
/* 80028678 000244B8 41 82 00 10 */ beq lbl_80028688
|
|
.global lbl_8002867C
|
|
lbl_8002867C:
|
|
/* 8002867C 000244BC 3C 60 00 08 */ lis r3, 0x8
|
|
/* 80028680 000244C0 4B FF 95 71 */ bl __OSMaskInterrupts
|
|
/* 80028684 000244C4 48 00 00 40 */ b lbl_800286C4
|
|
.global lbl_80028688
|
|
lbl_80028688:
|
|
/* 80028688 000244C8 3C 60 00 08 */ lis r3, 0x8
|
|
/* 8002868C 000244CC 4B FF 95 E5 */ bl __OSUnmaskInterrupts
|
|
/* 80028690 000244D0 48 00 00 34 */ b lbl_800286C4
|
|
.global lbl_80028694
|
|
lbl_80028694:
|
|
/* 80028694 000244D4 38 60 00 19 */ li r3, 0x19
|
|
/* 80028698 000244D8 4B FF 92 19 */ bl __OSGetInterruptHandler
|
|
/* 8002869C 000244DC 2C 03 00 00 */ cmpwi r3, 0x0
|
|
/* 800286A0 000244E0 41 82 00 10 */ beq lbl_800286B0
|
|
/* 800286A4 000244E4 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 800286A8 000244E8 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
|
|
/* 800286AC 000244EC 41 82 00 10 */ beq lbl_800286BC
|
|
.global lbl_800286B0
|
|
lbl_800286B0:
|
|
/* 800286B0 000244F0 38 60 00 40 */ li r3, 0x40
|
|
/* 800286B4 000244F4 4B FF 95 3D */ bl __OSMaskInterrupts
|
|
/* 800286B8 000244F8 48 00 00 0C */ b lbl_800286C4
|
|
.global lbl_800286BC
|
|
lbl_800286BC:
|
|
/* 800286BC 000244FC 38 60 00 40 */ li r3, 0x40
|
|
/* 800286C0 00024500 4B FF 95 B1 */ bl __OSUnmaskInterrupts
|
|
.global lbl_800286C4
|
|
lbl_800286C4:
|
|
/* 800286C4 00024504 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 800286C8 00024508 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 800286CC 0002450C 7C 08 03 A6 */ mtlr r0
|
|
/* 800286D0 00024510 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 800286D4 00024514 4E 80 00 20 */ blr
|
|
/* 800286D8 00024518 00 00 00 00 */ .4byte 0x00000000
|
|
/* 800286DC 0002451C 00 00 00 00 */ .4byte 0x00000000
|
|
.global EXIImm
|
|
EXIImm:
|
|
/* 800286E0 00024520 94 21 FF D0 */ stwu r1, -0x30(r1)
|
|
/* 800286E4 00024524 7C 08 02 A6 */ mflr r0
|
|
/* 800286E8 00024528 90 01 00 34 */ stw r0, 0x34(r1)
|
|
/* 800286EC 0002452C 39 61 00 30 */ addi r11, r1, 0x30
|
|
/* 800286F0 00024530 4B FD EC 45 */ bl lbl_80007334
|
|
/* 800286F4 00024534 7C 7A 1B 78 */ mr r26, r3
|
|
/* 800286F8 00024538 7C 9B 23 78 */ mr r27, r4
|
|
/* 800286FC 0002453C 7C BC 2B 78 */ mr r28, r5
|
|
/* 80028700 00024540 7C DD 33 78 */ mr r29, r6
|
|
/* 80028704 00024544 7C F9 3B 78 */ mr r25, r7
|
|
/* 80028708 00024548 54 60 30 32 */ slwi r0, r3, 6
|
|
/* 8002870C 0002454C 3C 60 80 4A */ lis r3, Ecb@ha
|
|
/* 80028710 00024550 38 63 A2 90 */ addi r3, r3, Ecb@l
|
|
/* 80028714 00024554 7F E3 02 14 */ add r31, r3, r0
|
|
/* 80028718 00024558 4B FF 91 09 */ bl OSDisableInterrupts
|
|
/* 8002871C 0002455C 7C 7E 1B 78 */ mr r30, r3
|
|
/* 80028720 00024560 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80028724 00024564 54 00 07 BF */ clrlwi. r0, r0, 30
|
|
/* 80028728 00024568 40 82 00 10 */ bne lbl_80028738
|
|
/* 8002872C 0002456C 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80028730 00024570 54 00 07 7B */ rlwinm. r0, r0, 0, 29, 29
|
|
/* 80028734 00024574 40 82 00 14 */ bne lbl_80028748
|
|
.global lbl_80028738
|
|
lbl_80028738:
|
|
/* 80028738 00024578 7F C3 F3 78 */ mr r3, r30
|
|
/* 8002873C 0002457C 4B FF 91 25 */ bl OSRestoreInterrupts
|
|
/* 80028740 00024580 38 60 00 00 */ li r3, 0x0
|
|
/* 80028744 00024584 48 00 02 00 */ b lbl_80028944
|
|
.global lbl_80028748
|
|
lbl_80028748:
|
|
/* 80028748 00024588 93 3F 00 04 */ stw r25, 0x4(r31)
|
|
/* 8002874C 0002458C 2C 19 00 00 */ cmpwi r25, 0x0
|
|
/* 80028750 00024590 41 82 00 34 */ beq lbl_80028784
|
|
/* 80028754 00024594 1C 7A 00 14 */ mulli r3, r26, 0x14
|
|
/* 80028758 00024598 3C 00 CD 00 */ lis r0, 0xcd00
|
|
/* 8002875C 0002459C 7C 60 1A 14 */ add r3, r0, r3
|
|
/* 80028760 000245A0 80 03 68 00 */ lwz r0, 0x6800(r3)
|
|
/* 80028764 000245A4 70 00 07 F5 */ andi. r0, r0, 0x7f5
|
|
/* 80028768 000245A8 60 00 00 08 */ ori r0, r0, 0x8
|
|
/* 8002876C 000245AC 90 03 68 00 */ stw r0, 0x6800(r3)
|
|
/* 80028770 000245B0 3C 60 00 20 */ lis r3, 0x20
|
|
/* 80028774 000245B4 57 40 10 3A */ slwi r0, r26, 2
|
|
/* 80028778 000245B8 7C 1A 00 50 */ subf r0, r26, r0
|
|
/* 8002877C 000245BC 7C 63 04 30 */ srw r3, r3, r0
|
|
/* 80028780 000245C0 4B FF 94 F1 */ bl __OSUnmaskInterrupts
|
|
.global lbl_80028784
|
|
lbl_80028784:
|
|
/* 80028784 000245C4 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80028788 000245C8 60 00 00 02 */ ori r0, r0, 0x2
|
|
/* 8002878C 000245CC 90 1F 00 0C */ stw r0, 0xc(r31)
|
|
/* 80028790 000245D0 2C 1D 00 00 */ cmpwi r29, 0x0
|
|
/* 80028794 000245D4 41 82 01 64 */ beq lbl_800288F8
|
|
/* 80028798 000245D8 38 00 00 00 */ li r0, 0x0
|
|
/* 8002879C 000245DC 38 80 00 00 */ li r4, 0x0
|
|
/* 800287A0 000245E0 2C 9C 00 00 */ cmpwi cr1, r28, 0x0
|
|
/* 800287A4 000245E4 40 85 01 44 */ ble cr1, lbl_800288E8
|
|
/* 800287A8 000245E8 38 DC FF F8 */ addi r6, r28, -0x8
|
|
/* 800287AC 000245EC 2C 1C 00 08 */ cmpwi r28, 0x8
|
|
/* 800287B0 000245F0 40 81 01 04 */ ble lbl_800288B4
|
|
/* 800287B4 000245F4 38 A0 00 00 */ li r5, 0x0
|
|
/* 800287B8 000245F8 41 84 00 18 */ blt cr1, lbl_800287D0
|
|
/* 800287BC 000245FC 3C 60 80 00 */ lis r3, 0x8000
|
|
/* 800287C0 00024600 38 63 FF FE */ addi r3, r3, -0x2
|
|
/* 800287C4 00024604 7C 1C 18 00 */ cmpw r28, r3
|
|
/* 800287C8 00024608 41 81 00 08 */ bgt lbl_800287D0
|
|
/* 800287CC 0002460C 38 A0 00 01 */ li r5, 0x1
|
|
.global lbl_800287D0
|
|
lbl_800287D0:
|
|
/* 800287D0 00024610 2C 05 00 00 */ cmpwi r5, 0x0
|
|
/* 800287D4 00024614 41 82 00 E0 */ beq lbl_800288B4
|
|
/* 800287D8 00024618 7F 63 DB 78 */ mr r3, r27
|
|
/* 800287DC 0002461C 38 A6 00 07 */ addi r5, r6, 0x7
|
|
/* 800287E0 00024620 54 A5 E8 FE */ srwi r5, r5, 3
|
|
/* 800287E4 00024624 7C A9 03 A6 */ mtctr r5
|
|
/* 800287E8 00024628 2C 06 00 00 */ cmpwi r6, 0x0
|
|
/* 800287EC 0002462C 40 81 00 C8 */ ble lbl_800288B4
|
|
.global lbl_800287F0
|
|
lbl_800287F0:
|
|
/* 800287F0 00024630 88 C3 00 00 */ lbz r6, 0x0(r3)
|
|
/* 800287F4 00024634 20 A4 00 03 */ subfic r5, r4, 0x3
|
|
/* 800287F8 00024638 54 A5 18 38 */ slwi r5, r5, 3
|
|
/* 800287FC 0002463C 7C C5 28 30 */ slw r5, r6, r5
|
|
/* 80028800 00024640 7C 00 2B 78 */ or r0, r0, r5
|
|
/* 80028804 00024644 88 C3 00 01 */ lbz r6, 0x1(r3)
|
|
/* 80028808 00024648 38 A4 00 01 */ addi r5, r4, 0x1
|
|
/* 8002880C 0002464C 20 A5 00 03 */ subfic r5, r5, 0x3
|
|
/* 80028810 00024650 54 A5 18 38 */ slwi r5, r5, 3
|
|
/* 80028814 00024654 7C C5 28 30 */ slw r5, r6, r5
|
|
/* 80028818 00024658 7C 00 2B 78 */ or r0, r0, r5
|
|
/* 8002881C 0002465C 88 C3 00 02 */ lbz r6, 0x2(r3)
|
|
/* 80028820 00024660 38 A4 00 02 */ addi r5, r4, 0x2
|
|
/* 80028824 00024664 20 A5 00 03 */ subfic r5, r5, 0x3
|
|
/* 80028828 00024668 54 A5 18 38 */ slwi r5, r5, 3
|
|
/* 8002882C 0002466C 7C C5 28 30 */ slw r5, r6, r5
|
|
/* 80028830 00024670 7C 00 2B 78 */ or r0, r0, r5
|
|
/* 80028834 00024674 88 C3 00 03 */ lbz r6, 0x3(r3)
|
|
/* 80028838 00024678 7C A4 00 D0 */ neg r5, r4
|
|
/* 8002883C 0002467C 54 A5 18 38 */ slwi r5, r5, 3
|
|
/* 80028840 00024680 7C C5 28 30 */ slw r5, r6, r5
|
|
/* 80028844 00024684 7C 00 2B 78 */ or r0, r0, r5
|
|
/* 80028848 00024688 88 C3 00 04 */ lbz r6, 0x4(r3)
|
|
/* 8002884C 0002468C 38 A4 00 04 */ addi r5, r4, 0x4
|
|
/* 80028850 00024690 20 A5 00 03 */ subfic r5, r5, 0x3
|
|
/* 80028854 00024694 54 A5 18 38 */ slwi r5, r5, 3
|
|
/* 80028858 00024698 7C C5 28 30 */ slw r5, r6, r5
|
|
/* 8002885C 0002469C 7C 00 2B 78 */ or r0, r0, r5
|
|
/* 80028860 000246A0 88 C3 00 05 */ lbz r6, 0x5(r3)
|
|
/* 80028864 000246A4 38 A4 00 05 */ addi r5, r4, 0x5
|
|
/* 80028868 000246A8 20 A5 00 03 */ subfic r5, r5, 0x3
|
|
/* 8002886C 000246AC 54 A5 18 38 */ slwi r5, r5, 3
|
|
/* 80028870 000246B0 7C C5 28 30 */ slw r5, r6, r5
|
|
/* 80028874 000246B4 7C 00 2B 78 */ or r0, r0, r5
|
|
/* 80028878 000246B8 88 C3 00 06 */ lbz r6, 0x6(r3)
|
|
/* 8002887C 000246BC 38 A4 00 06 */ addi r5, r4, 0x6
|
|
/* 80028880 000246C0 20 A5 00 03 */ subfic r5, r5, 0x3
|
|
/* 80028884 000246C4 54 A5 18 38 */ slwi r5, r5, 3
|
|
/* 80028888 000246C8 7C C5 28 30 */ slw r5, r6, r5
|
|
/* 8002888C 000246CC 7C 00 2B 78 */ or r0, r0, r5
|
|
/* 80028890 000246D0 88 C3 00 07 */ lbz r6, 0x7(r3)
|
|
/* 80028894 000246D4 38 A4 00 07 */ addi r5, r4, 0x7
|
|
/* 80028898 000246D8 20 A5 00 03 */ subfic r5, r5, 0x3
|
|
/* 8002889C 000246DC 54 A5 18 38 */ slwi r5, r5, 3
|
|
/* 800288A0 000246E0 7C C5 28 30 */ slw r5, r6, r5
|
|
/* 800288A4 000246E4 7C 00 2B 78 */ or r0, r0, r5
|
|
/* 800288A8 000246E8 38 63 00 08 */ addi r3, r3, 0x8
|
|
/* 800288AC 000246EC 38 84 00 08 */ addi r4, r4, 0x8
|
|
/* 800288B0 000246F0 42 00 FF 40 */ bdnz lbl_800287F0
|
|
.global lbl_800288B4
|
|
lbl_800288B4:
|
|
/* 800288B4 000246F4 7C DB 22 14 */ add r6, r27, r4
|
|
/* 800288B8 000246F8 7C 64 E0 50 */ subf r3, r4, r28
|
|
/* 800288BC 000246FC 7C 69 03 A6 */ mtctr r3
|
|
/* 800288C0 00024700 7C 04 E0 00 */ cmpw r4, r28
|
|
/* 800288C4 00024704 40 80 00 24 */ bge lbl_800288E8
|
|
.global lbl_800288C8
|
|
lbl_800288C8:
|
|
/* 800288C8 00024708 88 A6 00 00 */ lbz r5, 0x0(r6)
|
|
/* 800288CC 0002470C 20 64 00 03 */ subfic r3, r4, 0x3
|
|
/* 800288D0 00024710 54 63 18 38 */ slwi r3, r3, 3
|
|
/* 800288D4 00024714 7C A3 18 30 */ slw r3, r5, r3
|
|
/* 800288D8 00024718 7C 00 1B 78 */ or r0, r0, r3
|
|
/* 800288DC 0002471C 38 C6 00 01 */ addi r6, r6, 0x1
|
|
/* 800288E0 00024720 38 84 00 01 */ addi r4, r4, 0x1
|
|
/* 800288E4 00024724 42 00 FF E4 */ bdnz lbl_800288C8
|
|
.global lbl_800288E8
|
|
lbl_800288E8:
|
|
/* 800288E8 00024728 3C 80 CD 00 */ lis r4, 0xcd00
|
|
/* 800288EC 0002472C 1C 7A 00 14 */ mulli r3, r26, 0x14
|
|
/* 800288F0 00024730 7C 64 1A 14 */ add r3, r4, r3
|
|
/* 800288F4 00024734 90 03 68 10 */ stw r0, 0x6810(r3)
|
|
.global lbl_800288F8
|
|
lbl_800288F8:
|
|
/* 800288F8 00024738 93 7F 00 14 */ stw r27, 0x14(r31)
|
|
/* 800288FC 0002473C 38 7D FF FF */ addi r3, r29, -0x1
|
|
/* 80028900 00024740 20 1D 00 01 */ subfic r0, r29, 0x1
|
|
/* 80028904 00024744 7C 60 03 78 */ or r0, r3, r0
|
|
/* 80028908 00024748 7C 00 FE 70 */ srawi r0, r0, 31
|
|
/* 8002890C 0002474C 7F 80 00 38 */ and r0, r28, r0
|
|
/* 80028910 00024750 90 1F 00 10 */ stw r0, 0x10(r31)
|
|
/* 80028914 00024754 57 A0 10 3A */ slwi r0, r29, 2
|
|
/* 80028918 00024758 60 03 00 01 */ ori r3, r0, 0x1
|
|
/* 8002891C 0002475C 38 1C FF FF */ addi r0, r28, -0x1
|
|
/* 80028920 00024760 54 00 20 36 */ slwi r0, r0, 4
|
|
/* 80028924 00024764 7C 64 03 78 */ or r4, r3, r0
|
|
/* 80028928 00024768 3C 60 CD 00 */ lis r3, 0xcd00
|
|
/* 8002892C 0002476C 1C 1A 00 14 */ mulli r0, r26, 0x14
|
|
/* 80028930 00024770 7C 63 02 14 */ add r3, r3, r0
|
|
/* 80028934 00024774 90 83 68 0C */ stw r4, 0x680c(r3)
|
|
/* 80028938 00024778 7F C3 F3 78 */ mr r3, r30
|
|
/* 8002893C 0002477C 4B FF 8F 25 */ bl OSRestoreInterrupts
|
|
/* 80028940 00024780 38 60 00 01 */ li r3, 0x1
|
|
.global lbl_80028944
|
|
lbl_80028944:
|
|
/* 80028944 00024784 39 61 00 30 */ addi r11, r1, 0x30
|
|
/* 80028948 00024788 4B FD EA 39 */ bl lbl_80007380
|
|
/* 8002894C 0002478C 80 01 00 34 */ lwz r0, 0x34(r1)
|
|
/* 80028950 00024790 7C 08 03 A6 */ mtlr r0
|
|
/* 80028954 00024794 38 21 00 30 */ addi r1, r1, 0x30
|
|
/* 80028958 00024798 4E 80 00 20 */ blr
|
|
/* 8002895C 0002479C 00 00 00 00 */ .4byte 0x00000000
|
|
.global EXIImmEx
|
|
EXIImmEx:
|
|
/* 80028960 000247A0 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 80028964 000247A4 7C 08 02 A6 */ mflr r0
|
|
/* 80028968 000247A8 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 8002896C 000247AC 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 80028970 000247B0 4B FD E9 CD */ bl lbl_8000733C
|
|
/* 80028974 000247B4 7C 7B 1B 78 */ mr r27, r3
|
|
/* 80028978 000247B8 7C 9C 23 78 */ mr r28, r4
|
|
/* 8002897C 000247BC 7C BD 2B 78 */ mr r29, r5
|
|
/* 80028980 000247C0 7C DE 33 78 */ mr r30, r6
|
|
/* 80028984 000247C4 48 00 00 5C */ b lbl_800289E0
|
|
.global lbl_80028988
|
|
lbl_80028988:
|
|
/* 80028988 000247C8 2C 1D 00 04 */ cmpwi r29, 0x4
|
|
/* 8002898C 000247CC 3B E0 00 04 */ li r31, 0x4
|
|
/* 80028990 000247D0 40 80 00 08 */ bge lbl_80028998
|
|
/* 80028994 000247D4 7F BF EB 78 */ mr r31, r29
|
|
.global lbl_80028998
|
|
lbl_80028998:
|
|
/* 80028998 000247D8 7F 63 DB 78 */ mr r3, r27
|
|
/* 8002899C 000247DC 7F 84 E3 78 */ mr r4, r28
|
|
/* 800289A0 000247E0 7F E5 FB 78 */ mr r5, r31
|
|
/* 800289A4 000247E4 7F C6 F3 78 */ mr r6, r30
|
|
/* 800289A8 000247E8 38 E0 00 00 */ li r7, 0x0
|
|
/* 800289AC 000247EC 4B FF FD 35 */ bl EXIImm
|
|
/* 800289B0 000247F0 2C 03 00 00 */ cmpwi r3, 0x0
|
|
/* 800289B4 000247F4 40 82 00 0C */ bne lbl_800289C0
|
|
/* 800289B8 000247F8 38 60 00 00 */ li r3, 0x0
|
|
/* 800289BC 000247FC 48 00 00 30 */ b lbl_800289EC
|
|
.global lbl_800289C0
|
|
lbl_800289C0:
|
|
/* 800289C0 00024800 7F 63 DB 78 */ mr r3, r27
|
|
/* 800289C4 00024804 48 00 01 4D */ bl EXISync
|
|
/* 800289C8 00024808 2C 03 00 00 */ cmpwi r3, 0x0
|
|
/* 800289CC 0002480C 40 82 00 0C */ bne lbl_800289D8
|
|
/* 800289D0 00024810 38 60 00 00 */ li r3, 0x0
|
|
/* 800289D4 00024814 48 00 00 18 */ b lbl_800289EC
|
|
.global lbl_800289D8
|
|
lbl_800289D8:
|
|
/* 800289D8 00024818 7F 9C FA 14 */ add r28, r28, r31
|
|
/* 800289DC 0002481C 7F BF E8 50 */ subf r29, r31, r29
|
|
.global lbl_800289E0
|
|
lbl_800289E0:
|
|
/* 800289E0 00024820 2C 1D 00 00 */ cmpwi r29, 0x0
|
|
/* 800289E4 00024824 40 82 FF A4 */ bne lbl_80028988
|
|
/* 800289E8 00024828 38 60 00 01 */ li r3, 0x1
|
|
.global lbl_800289EC
|
|
lbl_800289EC:
|
|
/* 800289EC 0002482C 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 800289F0 00024830 4B FD E9 99 */ bl lbl_80007388
|
|
/* 800289F4 00024834 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 800289F8 00024838 7C 08 03 A6 */ mtlr r0
|
|
/* 800289FC 0002483C 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 80028A00 00024840 4E 80 00 20 */ blr
|
|
/* 80028A04 00024844 00 00 00 00 */ .4byte 0x00000000
|
|
/* 80028A08 00024848 00 00 00 00 */ .4byte 0x00000000
|
|
/* 80028A0C 0002484C 00 00 00 00 */ .4byte 0x00000000
|
|
.global EXIDma
|
|
EXIDma:
|
|
/* 80028A10 00024850 94 21 FF D0 */ stwu r1, -0x30(r1)
|
|
/* 80028A14 00024854 7C 08 02 A6 */ mflr r0
|
|
/* 80028A18 00024858 90 01 00 34 */ stw r0, 0x34(r1)
|
|
/* 80028A1C 0002485C 39 61 00 30 */ addi r11, r1, 0x30
|
|
/* 80028A20 00024860 4B FD E9 15 */ bl lbl_80007334
|
|
/* 80028A24 00024864 7C 7A 1B 78 */ mr r26, r3
|
|
/* 80028A28 00024868 7C 9B 23 78 */ mr r27, r4
|
|
/* 80028A2C 0002486C 7C BC 2B 78 */ mr r28, r5
|
|
/* 80028A30 00024870 7C DD 33 78 */ mr r29, r6
|
|
/* 80028A34 00024874 7C F9 3B 78 */ mr r25, r7
|
|
/* 80028A38 00024878 54 60 30 32 */ slwi r0, r3, 6
|
|
/* 80028A3C 0002487C 3C 60 80 4A */ lis r3, Ecb@ha
|
|
/* 80028A40 00024880 38 63 A2 90 */ addi r3, r3, Ecb@l
|
|
/* 80028A44 00024884 7F E3 02 14 */ add r31, r3, r0
|
|
/* 80028A48 00024888 4B FF 8D D9 */ bl OSDisableInterrupts
|
|
/* 80028A4C 0002488C 7C 7E 1B 78 */ mr r30, r3
|
|
/* 80028A50 00024890 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80028A54 00024894 54 00 07 BF */ clrlwi. r0, r0, 30
|
|
/* 80028A58 00024898 40 82 00 10 */ bne lbl_80028A68
|
|
/* 80028A5C 0002489C 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80028A60 000248A0 54 00 07 7B */ rlwinm. r0, r0, 0, 29, 29
|
|
/* 80028A64 000248A4 40 82 00 14 */ bne lbl_80028A78
|
|
.global lbl_80028A68
|
|
lbl_80028A68:
|
|
/* 80028A68 000248A8 7F C3 F3 78 */ mr r3, r30
|
|
/* 80028A6C 000248AC 4B FF 8D F5 */ bl OSRestoreInterrupts
|
|
/* 80028A70 000248B0 38 60 00 00 */ li r3, 0x0
|
|
/* 80028A74 000248B4 48 00 00 7C */ b lbl_80028AF0
|
|
.global lbl_80028A78
|
|
lbl_80028A78:
|
|
/* 80028A78 000248B8 93 3F 00 04 */ stw r25, 0x4(r31)
|
|
/* 80028A7C 000248BC 2C 19 00 00 */ cmpwi r25, 0x0
|
|
/* 80028A80 000248C0 41 82 00 34 */ beq lbl_80028AB4
|
|
/* 80028A84 000248C4 1C 7A 00 14 */ mulli r3, r26, 0x14
|
|
/* 80028A88 000248C8 3C 00 CD 00 */ lis r0, 0xcd00
|
|
/* 80028A8C 000248CC 7C 60 1A 14 */ add r3, r0, r3
|
|
/* 80028A90 000248D0 80 03 68 00 */ lwz r0, 0x6800(r3)
|
|
/* 80028A94 000248D4 70 00 07 F5 */ andi. r0, r0, 0x7f5
|
|
/* 80028A98 000248D8 60 00 00 08 */ ori r0, r0, 0x8
|
|
/* 80028A9C 000248DC 90 03 68 00 */ stw r0, 0x6800(r3)
|
|
/* 80028AA0 000248E0 3C 60 00 20 */ lis r3, 0x20
|
|
/* 80028AA4 000248E4 57 40 10 3A */ slwi r0, r26, 2
|
|
/* 80028AA8 000248E8 7C 1A 00 50 */ subf r0, r26, r0
|
|
/* 80028AAC 000248EC 7C 63 04 30 */ srw r3, r3, r0
|
|
/* 80028AB0 000248F0 4B FF 91 C1 */ bl __OSUnmaskInterrupts
|
|
.global lbl_80028AB4
|
|
lbl_80028AB4:
|
|
/* 80028AB4 000248F4 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80028AB8 000248F8 60 00 00 01 */ ori r0, r0, 0x1
|
|
/* 80028ABC 000248FC 90 1F 00 0C */ stw r0, 0xc(r31)
|
|
/* 80028AC0 00024900 1C 7A 00 14 */ mulli r3, r26, 0x14
|
|
/* 80028AC4 00024904 57 64 00 34 */ clrrwi r4, r27, 5
|
|
/* 80028AC8 00024908 3C 00 CD 00 */ lis r0, 0xcd00
|
|
/* 80028ACC 0002490C 7C 60 1A 14 */ add r3, r0, r3
|
|
/* 80028AD0 00024910 90 83 68 04 */ stw r4, 0x6804(r3)
|
|
/* 80028AD4 00024914 93 83 68 08 */ stw r28, 0x6808(r3)
|
|
/* 80028AD8 00024918 57 A0 10 3A */ slwi r0, r29, 2
|
|
/* 80028ADC 0002491C 60 00 00 03 */ ori r0, r0, 0x3
|
|
/* 80028AE0 00024920 90 03 68 0C */ stw r0, 0x680c(r3)
|
|
/* 80028AE4 00024924 7F C3 F3 78 */ mr r3, r30
|
|
/* 80028AE8 00024928 4B FF 8D 79 */ bl OSRestoreInterrupts
|
|
/* 80028AEC 0002492C 38 60 00 01 */ li r3, 0x1
|
|
.global lbl_80028AF0
|
|
lbl_80028AF0:
|
|
/* 80028AF0 00024930 39 61 00 30 */ addi r11, r1, 0x30
|
|
/* 80028AF4 00024934 4B FD E8 8D */ bl lbl_80007380
|
|
/* 80028AF8 00024938 80 01 00 34 */ lwz r0, 0x34(r1)
|
|
/* 80028AFC 0002493C 7C 08 03 A6 */ mtlr r0
|
|
/* 80028B00 00024940 38 21 00 30 */ addi r1, r1, 0x30
|
|
/* 80028B04 00024944 4E 80 00 20 */ blr
|
|
/* 80028B08 00024948 00 00 00 00 */ .4byte 0x00000000
|
|
/* 80028B0C 0002494C 00 00 00 00 */ .4byte 0x00000000
|
|
.global EXISync
|
|
EXISync:
|
|
/* 80028B10 00024950 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 80028B14 00024954 7C 08 02 A6 */ mflr r0
|
|
/* 80028B18 00024958 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 80028B1C 0002495C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 80028B20 00024960 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 80028B24 00024964 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 80028B28 00024968 93 81 00 10 */ stw r28, 0x10(r1)
|
|
/* 80028B2C 0002496C 54 60 30 32 */ slwi r0, r3, 6
|
|
/* 80028B30 00024970 3C 80 80 4A */ lis r4, Ecb@ha
|
|
/* 80028B34 00024974 38 84 A2 90 */ addi r4, r4, Ecb@l
|
|
/* 80028B38 00024978 7F E4 02 14 */ add r31, r4, r0
|
|
/* 80028B3C 0002497C 3B A0 00 00 */ li r29, 0x0
|
|
/* 80028B40 00024980 1F C3 00 14 */ mulli r30, r3, 0x14
|
|
/* 80028B44 00024984 3C 00 CD 00 */ lis r0, 0xcd00
|
|
/* 80028B48 00024988 7C 60 F2 14 */ add r3, r0, r30
|
|
/* 80028B4C 0002498C 48 00 02 10 */ b lbl_80028D5C
|
|
.global lbl_80028B50
|
|
lbl_80028B50:
|
|
/* 80028B50 00024990 80 03 68 0C */ lwz r0, 0x680c(r3)
|
|
/* 80028B54 00024994 54 00 07 FF */ clrlwi. r0, r0, 31
|
|
/* 80028B58 00024998 40 82 02 04 */ bne lbl_80028D5C
|
|
/* 80028B5C 0002499C 4B FF 8C C5 */ bl OSDisableInterrupts
|
|
/* 80028B60 000249A0 7C 7C 1B 78 */ mr r28, r3
|
|
/* 80028B64 000249A4 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80028B68 000249A8 54 00 07 7B */ rlwinm. r0, r0, 0, 29, 29
|
|
/* 80028B6C 000249AC 41 82 01 E4 */ beq lbl_80028D50
|
|
/* 80028B70 000249B0 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80028B74 000249B4 54 00 07 BF */ clrlwi. r0, r0, 30
|
|
/* 80028B78 000249B8 41 82 01 54 */ beq lbl_80028CCC
|
|
/* 80028B7C 000249BC 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80028B80 000249C0 54 00 07 BD */ rlwinm. r0, r0, 0, 30, 30
|
|
/* 80028B84 000249C4 41 82 01 3C */ beq lbl_80028CC0
|
|
/* 80028B88 000249C8 80 BF 00 10 */ lwz r5, 0x10(r31)
|
|
/* 80028B8C 000249CC 2C 85 00 00 */ cmpwi cr1, r5, 0x0
|
|
/* 80028B90 000249D0 41 86 01 30 */ beq cr1, lbl_80028CC0
|
|
/* 80028B94 000249D4 80 9F 00 14 */ lwz r4, 0x14(r31)
|
|
/* 80028B98 000249D8 3C 00 CD 00 */ lis r0, 0xcd00
|
|
/* 80028B9C 000249DC 7C 60 F2 14 */ add r3, r0, r30
|
|
/* 80028BA0 000249E0 80 03 68 10 */ lwz r0, 0x6810(r3)
|
|
/* 80028BA4 000249E4 38 60 00 00 */ li r3, 0x0
|
|
/* 80028BA8 000249E8 40 85 01 18 */ ble cr1, lbl_80028CC0
|
|
/* 80028BAC 000249EC 38 E5 FF F8 */ addi r7, r5, -0x8
|
|
/* 80028BB0 000249F0 2C 05 00 08 */ cmpwi r5, 0x8
|
|
/* 80028BB4 000249F4 40 81 00 E0 */ ble lbl_80028C94
|
|
/* 80028BB8 000249F8 39 00 00 00 */ li r8, 0x0
|
|
/* 80028BBC 000249FC 41 84 00 18 */ blt cr1, lbl_80028BD4
|
|
/* 80028BC0 00024A00 3C C0 80 00 */ lis r6, 0x8000
|
|
/* 80028BC4 00024A04 38 C6 FF FE */ addi r6, r6, -0x2
|
|
/* 80028BC8 00024A08 7C 05 30 00 */ cmpw r5, r6
|
|
/* 80028BCC 00024A0C 41 81 00 08 */ bgt lbl_80028BD4
|
|
/* 80028BD0 00024A10 39 00 00 01 */ li r8, 0x1
|
|
.global lbl_80028BD4
|
|
lbl_80028BD4:
|
|
/* 80028BD4 00024A14 2C 08 00 00 */ cmpwi r8, 0x0
|
|
/* 80028BD8 00024A18 41 82 00 BC */ beq lbl_80028C94
|
|
/* 80028BDC 00024A1C 38 C7 00 07 */ addi r6, r7, 0x7
|
|
/* 80028BE0 00024A20 54 C6 E8 FE */ srwi r6, r6, 3
|
|
/* 80028BE4 00024A24 7C C9 03 A6 */ mtctr r6
|
|
/* 80028BE8 00024A28 2C 07 00 00 */ cmpwi r7, 0x0
|
|
/* 80028BEC 00024A2C 40 81 00 A8 */ ble lbl_80028C94
|
|
.global lbl_80028BF0
|
|
lbl_80028BF0:
|
|
/* 80028BF0 00024A30 20 C3 00 03 */ subfic r6, r3, 0x3
|
|
/* 80028BF4 00024A34 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 80028BF8 00024A38 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 80028BFC 00024A3C 98 C4 00 00 */ stb r6, 0x0(r4)
|
|
/* 80028C00 00024A40 38 C3 00 01 */ addi r6, r3, 0x1
|
|
/* 80028C04 00024A44 20 C6 00 03 */ subfic r6, r6, 0x3
|
|
/* 80028C08 00024A48 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 80028C0C 00024A4C 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 80028C10 00024A50 98 C4 00 01 */ stb r6, 0x1(r4)
|
|
/* 80028C14 00024A54 38 C3 00 02 */ addi r6, r3, 0x2
|
|
/* 80028C18 00024A58 20 C6 00 03 */ subfic r6, r6, 0x3
|
|
/* 80028C1C 00024A5C 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 80028C20 00024A60 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 80028C24 00024A64 98 C4 00 02 */ stb r6, 0x2(r4)
|
|
/* 80028C28 00024A68 7C C3 00 D0 */ neg r6, r3
|
|
/* 80028C2C 00024A6C 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 80028C30 00024A70 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 80028C34 00024A74 98 C4 00 03 */ stb r6, 0x3(r4)
|
|
/* 80028C38 00024A78 38 C3 00 04 */ addi r6, r3, 0x4
|
|
/* 80028C3C 00024A7C 20 C6 00 03 */ subfic r6, r6, 0x3
|
|
/* 80028C40 00024A80 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 80028C44 00024A84 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 80028C48 00024A88 98 C4 00 04 */ stb r6, 0x4(r4)
|
|
/* 80028C4C 00024A8C 38 C3 00 05 */ addi r6, r3, 0x5
|
|
/* 80028C50 00024A90 20 C6 00 03 */ subfic r6, r6, 0x3
|
|
/* 80028C54 00024A94 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 80028C58 00024A98 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 80028C5C 00024A9C 98 C4 00 05 */ stb r6, 0x5(r4)
|
|
/* 80028C60 00024AA0 38 C3 00 06 */ addi r6, r3, 0x6
|
|
/* 80028C64 00024AA4 20 C6 00 03 */ subfic r6, r6, 0x3
|
|
/* 80028C68 00024AA8 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 80028C6C 00024AAC 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 80028C70 00024AB0 98 C4 00 06 */ stb r6, 0x6(r4)
|
|
/* 80028C74 00024AB4 38 C3 00 07 */ addi r6, r3, 0x7
|
|
/* 80028C78 00024AB8 20 C6 00 03 */ subfic r6, r6, 0x3
|
|
/* 80028C7C 00024ABC 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 80028C80 00024AC0 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 80028C84 00024AC4 98 C4 00 07 */ stb r6, 0x7(r4)
|
|
/* 80028C88 00024AC8 38 84 00 08 */ addi r4, r4, 0x8
|
|
/* 80028C8C 00024ACC 38 63 00 08 */ addi r3, r3, 0x8
|
|
/* 80028C90 00024AD0 42 00 FF 60 */ bdnz lbl_80028BF0
|
|
.global lbl_80028C94
|
|
lbl_80028C94:
|
|
/* 80028C94 00024AD4 7C C3 28 50 */ subf r6, r3, r5
|
|
/* 80028C98 00024AD8 7C C9 03 A6 */ mtctr r6
|
|
/* 80028C9C 00024ADC 7C 03 28 00 */ cmpw r3, r5
|
|
/* 80028CA0 00024AE0 40 80 00 20 */ bge lbl_80028CC0
|
|
.global lbl_80028CA4
|
|
lbl_80028CA4:
|
|
/* 80028CA4 00024AE4 20 A3 00 03 */ subfic r5, r3, 0x3
|
|
/* 80028CA8 00024AE8 54 A5 18 38 */ slwi r5, r5, 3
|
|
/* 80028CAC 00024AEC 7C 05 2C 30 */ srw r5, r0, r5
|
|
/* 80028CB0 00024AF0 98 A4 00 00 */ stb r5, 0x0(r4)
|
|
/* 80028CB4 00024AF4 38 84 00 01 */ addi r4, r4, 0x1
|
|
/* 80028CB8 00024AF8 38 63 00 01 */ addi r3, r3, 0x1
|
|
/* 80028CBC 00024AFC 42 00 FF E8 */ bdnz lbl_80028CA4
|
|
.global lbl_80028CC0
|
|
lbl_80028CC0:
|
|
/* 80028CC0 00024B00 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80028CC4 00024B04 54 00 00 3A */ clrrwi r0, r0, 2
|
|
/* 80028CC8 00024B08 90 1F 00 0C */ stw r0, 0xc(r31)
|
|
.global lbl_80028CCC
|
|
lbl_80028CCC:
|
|
/* 80028CCC 00024B0C 4B FF 2A 05 */ bl __OSGetDIConfig
|
|
/* 80028CD0 00024B10 28 03 00 FF */ cmplwi r3, 0xff
|
|
/* 80028CD4 00024B14 40 82 00 78 */ bne lbl_80028D4C
|
|
/* 80028CD8 00024B18 4B FF 17 89 */ bl OSGetConsoleType
|
|
/* 80028CDC 00024B1C 54 63 00 06 */ clrrwi r3, r3, 28
|
|
/* 80028CE0 00024B20 3C 03 E0 00 */ addis r0, r3, 0xe000
|
|
/* 80028CE4 00024B24 28 00 00 00 */ cmplwi r0, 0x0
|
|
/* 80028CE8 00024B28 41 82 00 64 */ beq lbl_80028D4C
|
|
/* 80028CEC 00024B2C 80 1F 00 10 */ lwz r0, 0x10(r31)
|
|
/* 80028CF0 00024B30 2C 00 00 04 */ cmpwi r0, 0x4
|
|
/* 80028CF4 00024B34 40 82 00 58 */ bne lbl_80028D4C
|
|
/* 80028CF8 00024B38 3C 00 CD 00 */ lis r0, 0xcd00
|
|
/* 80028CFC 00024B3C 7C 80 F2 14 */ add r4, r0, r30
|
|
/* 80028D00 00024B40 80 04 68 00 */ lwz r0, 0x6800(r4)
|
|
/* 80028D04 00024B44 54 00 06 77 */ rlwinm. r0, r0, 0, 25, 27
|
|
/* 80028D08 00024B48 40 82 00 44 */ bne lbl_80028D4C
|
|
/* 80028D0C 00024B4C 80 64 68 10 */ lwz r3, 0x6810(r4)
|
|
/* 80028D10 00024B50 3C 03 FE FF */ addis r0, r3, 0xfeff
|
|
/* 80028D14 00024B54 28 00 00 00 */ cmplwi r0, 0x0
|
|
/* 80028D18 00024B58 41 82 00 24 */ beq lbl_80028D3C
|
|
/* 80028D1C 00024B5C 80 64 68 10 */ lwz r3, 0x6810(r4)
|
|
/* 80028D20 00024B60 3C 03 FA F9 */ addis r0, r3, 0xfaf9
|
|
/* 80028D24 00024B64 28 00 00 00 */ cmplwi r0, 0x0
|
|
/* 80028D28 00024B68 41 82 00 14 */ beq lbl_80028D3C
|
|
/* 80028D2C 00024B6C 80 64 68 10 */ lwz r3, 0x6810(r4)
|
|
/* 80028D30 00024B70 3C 03 FB DE */ addis r0, r3, 0xfbde
|
|
/* 80028D34 00024B74 28 00 00 01 */ cmplwi r0, 0x1
|
|
/* 80028D38 00024B78 40 82 00 14 */ bne lbl_80028D4C
|
|
.global lbl_80028D3C
|
|
lbl_80028D3C:
|
|
/* 80028D3C 00024B7C 3C 60 80 00 */ lis r3, 0x800030E6@ha
|
|
/* 80028D40 00024B80 A0 03 30 E6 */ lhz r0, 0x800030E6@l(r3)
|
|
/* 80028D44 00024B84 28 00 82 00 */ cmplwi r0, 0x8200
|
|
/* 80028D48 00024B88 40 82 00 08 */ bne lbl_80028D50
|
|
.global lbl_80028D4C
|
|
lbl_80028D4C:
|
|
/* 80028D4C 00024B8C 3B A0 00 01 */ li r29, 0x1
|
|
.global lbl_80028D50
|
|
lbl_80028D50:
|
|
/* 80028D50 00024B90 7F 83 E3 78 */ mr r3, r28
|
|
/* 80028D54 00024B94 4B FF 8B 0D */ bl OSRestoreInterrupts
|
|
/* 80028D58 00024B98 48 00 00 10 */ b lbl_80028D68
|
|
.global lbl_80028D5C
|
|
lbl_80028D5C:
|
|
/* 80028D5C 00024B9C 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80028D60 00024BA0 54 00 07 7B */ rlwinm. r0, r0, 0, 29, 29
|
|
/* 80028D64 00024BA4 40 82 FD EC */ bne lbl_80028B50
|
|
.global lbl_80028D68
|
|
lbl_80028D68:
|
|
/* 80028D68 00024BA8 7F A3 EB 78 */ mr r3, r29
|
|
/* 80028D6C 00024BAC 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 80028D70 00024BB0 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 80028D74 00024BB4 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 80028D78 00024BB8 83 81 00 10 */ lwz r28, 0x10(r1)
|
|
/* 80028D7C 00024BBC 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 80028D80 00024BC0 7C 08 03 A6 */ mtlr r0
|
|
/* 80028D84 00024BC4 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 80028D88 00024BC8 4E 80 00 20 */ blr
|
|
/* 80028D8C 00024BCC 00 00 00 00 */ .4byte 0x00000000
|
|
.global EXISetExiCallback
|
|
EXISetExiCallback:
|
|
/* 80028D90 00024BD0 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 80028D94 00024BD4 7C 08 02 A6 */ mflr r0
|
|
/* 80028D98 00024BD8 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 80028D9C 00024BDC 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 80028DA0 00024BE0 4B FD E5 99 */ bl lbl_80007338
|
|
/* 80028DA4 00024BE4 7C 7A 1B 78 */ mr r26, r3
|
|
/* 80028DA8 00024BE8 7C 9B 23 78 */ mr r27, r4
|
|
/* 80028DAC 00024BEC 54 60 30 32 */ slwi r0, r3, 6
|
|
/* 80028DB0 00024BF0 3F E0 80 4A */ lis r31, Ecb@ha
|
|
/* 80028DB4 00024BF4 3B FF A2 90 */ addi r31, r31, Ecb@l
|
|
/* 80028DB8 00024BF8 7F DF 02 14 */ add r30, r31, r0
|
|
/* 80028DBC 00024BFC 4B FF 8A 65 */ bl OSDisableInterrupts
|
|
/* 80028DC0 00024C00 7C 7C 1B 78 */ mr r28, r3
|
|
/* 80028DC4 00024C04 83 BE 00 00 */ lwz r29, 0x0(r30)
|
|
/* 80028DC8 00024C08 93 7E 00 00 */ stw r27, 0x0(r30)
|
|
/* 80028DCC 00024C0C 2C 1A 00 02 */ cmpwi r26, 0x2
|
|
/* 80028DD0 00024C10 41 82 00 14 */ beq lbl_80028DE4
|
|
/* 80028DD4 00024C14 7F 43 D3 78 */ mr r3, r26
|
|
/* 80028DD8 00024C18 7F C4 F3 78 */ mr r4, r30
|
|
/* 80028DDC 00024C1C 4B FF F8 15 */ bl SetExiInterruptMask
|
|
/* 80028DE0 00024C20 48 00 00 10 */ b lbl_80028DF0
|
|
.global lbl_80028DE4
|
|
lbl_80028DE4:
|
|
/* 80028DE4 00024C24 38 60 00 00 */ li r3, 0x0
|
|
/* 80028DE8 00024C28 7F E4 FB 78 */ mr r4, r31
|
|
/* 80028DEC 00024C2C 4B FF F8 05 */ bl SetExiInterruptMask
|
|
.global lbl_80028DF0
|
|
lbl_80028DF0:
|
|
/* 80028DF0 00024C30 7F 83 E3 78 */ mr r3, r28
|
|
/* 80028DF4 00024C34 4B FF 8A 6D */ bl OSRestoreInterrupts
|
|
/* 80028DF8 00024C38 7F A3 EB 78 */ mr r3, r29
|
|
/* 80028DFC 00024C3C 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 80028E00 00024C40 4B FD E5 85 */ bl lbl_80007384
|
|
/* 80028E04 00024C44 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 80028E08 00024C48 7C 08 03 A6 */ mtlr r0
|
|
/* 80028E0C 00024C4C 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 80028E10 00024C50 4E 80 00 20 */ blr
|
|
/* 80028E14 00024C54 00 00 00 00 */ .4byte 0x00000000
|
|
/* 80028E18 00024C58 00 00 00 00 */ .4byte 0x00000000
|
|
/* 80028E1C 00024C5C 00 00 00 00 */ .4byte 0x00000000
|
|
.global __EXIProbe
|
|
__EXIProbe:
|
|
/* 80028E20 00024C60 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 80028E24 00024C64 7C 08 02 A6 */ mflr r0
|
|
/* 80028E28 00024C68 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 80028E2C 00024C6C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 80028E30 00024C70 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 80028E34 00024C74 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 80028E38 00024C78 93 81 00 10 */ stw r28, 0x10(r1)
|
|
/* 80028E3C 00024C7C 7C 7C 1B 78 */ mr r28, r3
|
|
/* 80028E40 00024C80 54 60 30 32 */ slwi r0, r3, 6
|
|
/* 80028E44 00024C84 3C 80 80 4A */ lis r4, Ecb@ha
|
|
/* 80028E48 00024C88 38 84 A2 90 */ addi r4, r4, Ecb@l
|
|
/* 80028E4C 00024C8C 7F E4 02 14 */ add r31, r4, r0
|
|
/* 80028E50 00024C90 2C 03 00 02 */ cmpwi r3, 0x2
|
|
/* 80028E54 00024C94 40 82 00 0C */ bne lbl_80028E60
|
|
/* 80028E58 00024C98 38 60 00 01 */ li r3, 0x1
|
|
/* 80028E5C 00024C9C 48 00 01 24 */ b lbl_80028F80
|
|
.global lbl_80028E60
|
|
lbl_80028E60:
|
|
/* 80028E60 00024CA0 3B A0 00 01 */ li r29, 0x1
|
|
/* 80028E64 00024CA4 4B FF 89 BD */ bl OSDisableInterrupts
|
|
/* 80028E68 00024CA8 7C 7E 1B 78 */ mr r30, r3
|
|
/* 80028E6C 00024CAC 1C 7C 00 14 */ mulli r3, r28, 0x14
|
|
/* 80028E70 00024CB0 3C 00 CD 00 */ lis r0, 0xcd00
|
|
/* 80028E74 00024CB4 7C 60 1A 14 */ add r3, r0, r3
|
|
/* 80028E78 00024CB8 80 A3 68 00 */ lwz r5, 0x6800(r3)
|
|
/* 80028E7C 00024CBC 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80028E80 00024CC0 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
|
|
/* 80028E84 00024CC4 40 82 00 C4 */ bne lbl_80028F48
|
|
/* 80028E88 00024CC8 54 A0 05 29 */ rlwinm. r0, r5, 0, 20, 20
|
|
/* 80028E8C 00024CCC 41 82 00 2C */ beq lbl_80028EB8
|
|
/* 80028E90 00024CD0 80 03 68 00 */ lwz r0, 0x6800(r3)
|
|
/* 80028E94 00024CD4 70 00 07 F5 */ andi. r0, r0, 0x7f5
|
|
/* 80028E98 00024CD8 60 00 08 00 */ ori r0, r0, 0x800
|
|
/* 80028E9C 00024CDC 90 03 68 00 */ stw r0, 0x6800(r3)
|
|
/* 80028EA0 00024CE0 38 80 00 00 */ li r4, 0x0
|
|
/* 80028EA4 00024CE4 90 9F 00 20 */ stw r4, 0x20(r31)
|
|
/* 80028EA8 00024CE8 57 83 10 3A */ slwi r3, r28, 2
|
|
/* 80028EAC 00024CEC 3C 00 80 00 */ lis r0, 0x8000
|
|
/* 80028EB0 00024CF0 7C 60 1A 14 */ add r3, r0, r3
|
|
/* 80028EB4 00024CF4 90 83 30 C0 */ stw r4, 0x30c0(r3)
|
|
.global lbl_80028EB8
|
|
lbl_80028EB8:
|
|
/* 80028EB8 00024CF8 54 A0 04 E7 */ rlwinm. r0, r5, 0, 19, 19
|
|
/* 80028EBC 00024CFC 41 82 00 6C */ beq lbl_80028F28
|
|
/* 80028EC0 00024D00 4B FF CC 81 */ bl OSGetTime
|
|
/* 80028EC4 00024D04 3F E0 80 00 */ lis r31, 0x800000F8@ha
|
|
/* 80028EC8 00024D08 80 1F 00 F8 */ lwz r0, 0x800000F8@l(r31)
|
|
/* 80028ECC 00024D0C 54 00 F0 BE */ srwi r0, r0, 2
|
|
/* 80028ED0 00024D10 3C A0 10 62 */ lis r5, 0x1062
|
|
/* 80028ED4 00024D14 38 A5 4D D3 */ addi r5, r5, 0x4dd3
|
|
/* 80028ED8 00024D18 7C 05 00 16 */ mulhwu r0, r5, r0
|
|
/* 80028EDC 00024D1C 54 06 D1 BE */ srwi r6, r0, 6
|
|
/* 80028EE0 00024D20 38 A0 00 00 */ li r5, 0x0
|
|
/* 80028EE4 00024D24 4B FD E5 A9 */ bl __div2i
|
|
/* 80028EE8 00024D28 38 C0 00 64 */ li r6, 0x64
|
|
/* 80028EEC 00024D2C 38 A0 00 00 */ li r5, 0x0
|
|
/* 80028EF0 00024D30 4B FD E5 9D */ bl __div2i
|
|
/* 80028EF4 00024D34 38 84 00 01 */ addi r4, r4, 0x1
|
|
/* 80028EF8 00024D38 57 80 10 3A */ slwi r0, r28, 2
|
|
/* 80028EFC 00024D3C 7C 7F 02 14 */ add r3, r31, r0
|
|
/* 80028F00 00024D40 80 03 30 C0 */ lwz r0, 0x30c0(r3)
|
|
/* 80028F04 00024D44 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80028F08 00024D48 40 82 00 08 */ bne lbl_80028F10
|
|
/* 80028F0C 00024D4C 90 83 30 C0 */ stw r4, 0x30c0(r3)
|
|
.global lbl_80028F10
|
|
lbl_80028F10:
|
|
/* 80028F10 00024D50 80 03 30 C0 */ lwz r0, 0x30c0(r3)
|
|
/* 80028F14 00024D54 7C 00 20 50 */ subf r0, r0, r4
|
|
/* 80028F18 00024D58 2C 00 00 03 */ cmpwi r0, 0x3
|
|
/* 80028F1C 00024D5C 40 80 00 58 */ bge lbl_80028F74
|
|
/* 80028F20 00024D60 3B A0 00 00 */ li r29, 0x0
|
|
/* 80028F24 00024D64 48 00 00 50 */ b lbl_80028F74
|
|
.global lbl_80028F28
|
|
lbl_80028F28:
|
|
/* 80028F28 00024D68 38 80 00 00 */ li r4, 0x0
|
|
/* 80028F2C 00024D6C 90 9F 00 20 */ stw r4, 0x20(r31)
|
|
/* 80028F30 00024D70 57 83 10 3A */ slwi r3, r28, 2
|
|
/* 80028F34 00024D74 3C 00 80 00 */ lis r0, 0x8000
|
|
/* 80028F38 00024D78 7C 60 1A 14 */ add r3, r0, r3
|
|
/* 80028F3C 00024D7C 90 83 30 C0 */ stw r4, 0x30c0(r3)
|
|
/* 80028F40 00024D80 3B A0 00 00 */ li r29, 0x0
|
|
/* 80028F44 00024D84 48 00 00 30 */ b lbl_80028F74
|
|
.global lbl_80028F48
|
|
lbl_80028F48:
|
|
/* 80028F48 00024D88 54 A0 04 E7 */ rlwinm. r0, r5, 0, 19, 19
|
|
/* 80028F4C 00024D8C 41 82 00 0C */ beq lbl_80028F58
|
|
/* 80028F50 00024D90 54 A0 05 29 */ rlwinm. r0, r5, 0, 20, 20
|
|
/* 80028F54 00024D94 41 82 00 20 */ beq lbl_80028F74
|
|
.global lbl_80028F58
|
|
lbl_80028F58:
|
|
/* 80028F58 00024D98 38 80 00 00 */ li r4, 0x0
|
|
/* 80028F5C 00024D9C 90 9F 00 20 */ stw r4, 0x20(r31)
|
|
/* 80028F60 00024DA0 57 83 10 3A */ slwi r3, r28, 2
|
|
/* 80028F64 00024DA4 3C 00 80 00 */ lis r0, 0x8000
|
|
/* 80028F68 00024DA8 7C 60 1A 14 */ add r3, r0, r3
|
|
/* 80028F6C 00024DAC 90 83 30 C0 */ stw r4, 0x30c0(r3)
|
|
/* 80028F70 00024DB0 3B A0 00 00 */ li r29, 0x0
|
|
.global lbl_80028F74
|
|
lbl_80028F74:
|
|
/* 80028F74 00024DB4 7F C3 F3 78 */ mr r3, r30
|
|
/* 80028F78 00024DB8 4B FF 88 E9 */ bl OSRestoreInterrupts
|
|
/* 80028F7C 00024DBC 7F A3 EB 78 */ mr r3, r29
|
|
.global lbl_80028F80
|
|
lbl_80028F80:
|
|
/* 80028F80 00024DC0 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 80028F84 00024DC4 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 80028F88 00024DC8 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 80028F8C 00024DCC 83 81 00 10 */ lwz r28, 0x10(r1)
|
|
/* 80028F90 00024DD0 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 80028F94 00024DD4 7C 08 03 A6 */ mtlr r0
|
|
/* 80028F98 00024DD8 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 80028F9C 00024DDC 4E 80 00 20 */ blr
|
|
.global EXIAttach
|
|
EXIAttach:
|
|
/* 80028FA0 00024DE0 94 21 FF D0 */ stwu r1, -0x30(r1)
|
|
/* 80028FA4 00024DE4 7C 08 02 A6 */ mflr r0
|
|
/* 80028FA8 00024DE8 90 01 00 34 */ stw r0, 0x34(r1)
|
|
/* 80028FAC 00024DEC 39 61 00 30 */ addi r11, r1, 0x30
|
|
/* 80028FB0 00024DF0 4B FD E3 8D */ bl lbl_8000733C
|
|
/* 80028FB4 00024DF4 7C 7D 1B 78 */ mr r29, r3
|
|
/* 80028FB8 00024DF8 7C 9B 23 78 */ mr r27, r4
|
|
/* 80028FBC 00024DFC 54 60 30 32 */ slwi r0, r3, 6
|
|
/* 80028FC0 00024E00 3C 80 80 4A */ lis r4, Ecb@ha
|
|
/* 80028FC4 00024E04 38 84 A2 90 */ addi r4, r4, Ecb@l
|
|
/* 80028FC8 00024E08 7F E4 02 14 */ add r31, r4, r0
|
|
/* 80028FCC 00024E0C 4B FF FE 55 */ bl __EXIProbe
|
|
/* 80028FD0 00024E10 2C 03 00 00 */ cmpwi r3, 0x0
|
|
/* 80028FD4 00024E14 41 82 00 20 */ beq lbl_80028FF4
|
|
/* 80028FD8 00024E18 80 1F 00 20 */ lwz r0, 0x20(r31)
|
|
/* 80028FDC 00024E1C 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80028FE0 00024E20 40 82 00 14 */ bne lbl_80028FF4
|
|
/* 80028FE4 00024E24 7F A3 EB 78 */ mr r3, r29
|
|
/* 80028FE8 00024E28 38 80 00 00 */ li r4, 0x0
|
|
/* 80028FEC 00024E2C 38 A1 00 08 */ addi r5, r1, 0x8
|
|
/* 80028FF0 00024E30 48 00 0B 51 */ bl EXIGetID
|
|
.global lbl_80028FF4
|
|
lbl_80028FF4:
|
|
/* 80028FF4 00024E34 4B FF 88 2D */ bl OSDisableInterrupts
|
|
/* 80028FF8 00024E38 7C 7E 1B 78 */ mr r30, r3
|
|
/* 80028FFC 00024E3C 80 1F 00 20 */ lwz r0, 0x20(r31)
|
|
/* 80029000 00024E40 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80029004 00024E44 40 82 00 10 */ bne lbl_80029014
|
|
/* 80029008 00024E48 4B FF 88 59 */ bl OSRestoreInterrupts
|
|
/* 8002900C 00024E4C 38 60 00 00 */ li r3, 0x0
|
|
/* 80029010 00024E50 48 00 00 90 */ b lbl_800290A0
|
|
.global lbl_80029014
|
|
lbl_80029014:
|
|
/* 80029014 00024E54 4B FF 88 0D */ bl OSDisableInterrupts
|
|
/* 80029018 00024E58 7C 7C 1B 78 */ mr r28, r3
|
|
/* 8002901C 00024E5C 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80029020 00024E60 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
|
|
/* 80029024 00024E64 40 82 00 14 */ bne lbl_80029038
|
|
/* 80029028 00024E68 7F A3 EB 78 */ mr r3, r29
|
|
/* 8002902C 00024E6C 4B FF FD F5 */ bl __EXIProbe
|
|
/* 80029030 00024E70 2C 03 00 00 */ cmpwi r3, 0x0
|
|
/* 80029034 00024E74 40 82 00 14 */ bne lbl_80029048
|
|
.global lbl_80029038
|
|
lbl_80029038:
|
|
/* 80029038 00024E78 7F 83 E3 78 */ mr r3, r28
|
|
/* 8002903C 00024E7C 4B FF 88 25 */ bl OSRestoreInterrupts
|
|
/* 80029040 00024E80 3B A0 00 00 */ li r29, 0x0
|
|
/* 80029044 00024E84 48 00 00 50 */ b lbl_80029094
|
|
.global lbl_80029048
|
|
lbl_80029048:
|
|
/* 80029048 00024E88 1C 7D 00 14 */ mulli r3, r29, 0x14
|
|
/* 8002904C 00024E8C 3C 00 CD 00 */ lis r0, 0xcd00
|
|
/* 80029050 00024E90 7C 60 1A 14 */ add r3, r0, r3
|
|
/* 80029054 00024E94 80 03 68 00 */ lwz r0, 0x6800(r3)
|
|
/* 80029058 00024E98 70 00 07 F5 */ andi. r0, r0, 0x7f5
|
|
/* 8002905C 00024E9C 60 00 00 02 */ ori r0, r0, 0x2
|
|
/* 80029060 00024EA0 90 03 68 00 */ stw r0, 0x6800(r3)
|
|
/* 80029064 00024EA4 93 7F 00 08 */ stw r27, 0x8(r31)
|
|
/* 80029068 00024EA8 3C 60 00 10 */ lis r3, 0x10
|
|
/* 8002906C 00024EAC 57 A0 10 3A */ slwi r0, r29, 2
|
|
/* 80029070 00024EB0 7C 1D 00 50 */ subf r0, r29, r0
|
|
/* 80029074 00024EB4 7C 63 04 30 */ srw r3, r3, r0
|
|
/* 80029078 00024EB8 4B FF 8B F9 */ bl __OSUnmaskInterrupts
|
|
/* 8002907C 00024EBC 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80029080 00024EC0 60 00 00 08 */ ori r0, r0, 0x8
|
|
/* 80029084 00024EC4 90 1F 00 0C */ stw r0, 0xc(r31)
|
|
/* 80029088 00024EC8 7F 83 E3 78 */ mr r3, r28
|
|
/* 8002908C 00024ECC 4B FF 87 D5 */ bl OSRestoreInterrupts
|
|
/* 80029090 00024ED0 3B A0 00 01 */ li r29, 0x1
|
|
.global lbl_80029094
|
|
lbl_80029094:
|
|
/* 80029094 00024ED4 7F C3 F3 78 */ mr r3, r30
|
|
/* 80029098 00024ED8 4B FF 87 C9 */ bl OSRestoreInterrupts
|
|
/* 8002909C 00024EDC 7F A3 EB 78 */ mr r3, r29
|
|
.global lbl_800290A0
|
|
lbl_800290A0:
|
|
/* 800290A0 00024EE0 39 61 00 30 */ addi r11, r1, 0x30
|
|
/* 800290A4 00024EE4 4B FD E2 E5 */ bl lbl_80007388
|
|
/* 800290A8 00024EE8 80 01 00 34 */ lwz r0, 0x34(r1)
|
|
/* 800290AC 00024EEC 7C 08 03 A6 */ mtlr r0
|
|
/* 800290B0 00024EF0 38 21 00 30 */ addi r1, r1, 0x30
|
|
/* 800290B4 00024EF4 4E 80 00 20 */ blr
|
|
/* 800290B8 00024EF8 00 00 00 00 */ .4byte 0x00000000
|
|
/* 800290BC 00024EFC 00 00 00 00 */ .4byte 0x00000000
|
|
.global EXIDetach
|
|
EXIDetach:
|
|
/* 800290C0 00024F00 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 800290C4 00024F04 7C 08 02 A6 */ mflr r0
|
|
/* 800290C8 00024F08 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 800290CC 00024F0C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 800290D0 00024F10 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 800290D4 00024F14 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 800290D8 00024F18 7C 7D 1B 78 */ mr r29, r3
|
|
/* 800290DC 00024F1C 54 60 30 32 */ slwi r0, r3, 6
|
|
/* 800290E0 00024F20 3C 60 80 4A */ lis r3, Ecb@ha
|
|
/* 800290E4 00024F24 38 63 A2 90 */ addi r3, r3, Ecb@l
|
|
/* 800290E8 00024F28 7F E3 02 14 */ add r31, r3, r0
|
|
/* 800290EC 00024F2C 4B FF 87 35 */ bl OSDisableInterrupts
|
|
/* 800290F0 00024F30 7C 7E 1B 78 */ mr r30, r3
|
|
/* 800290F4 00024F34 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 800290F8 00024F38 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
|
|
/* 800290FC 00024F3C 40 82 00 10 */ bne lbl_8002910C
|
|
/* 80029100 00024F40 4B FF 87 61 */ bl OSRestoreInterrupts
|
|
/* 80029104 00024F44 38 60 00 01 */ li r3, 0x1
|
|
/* 80029108 00024F48 48 00 00 54 */ b lbl_8002915C
|
|
.global lbl_8002910C
|
|
lbl_8002910C:
|
|
/* 8002910C 00024F4C 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80029110 00024F50 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
|
|
/* 80029114 00024F54 41 82 00 1C */ beq lbl_80029130
|
|
/* 80029118 00024F58 80 1F 00 18 */ lwz r0, 0x18(r31)
|
|
/* 8002911C 00024F5C 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80029120 00024F60 40 82 00 10 */ bne lbl_80029130
|
|
/* 80029124 00024F64 4B FF 87 3D */ bl OSRestoreInterrupts
|
|
/* 80029128 00024F68 38 60 00 00 */ li r3, 0x0
|
|
/* 8002912C 00024F6C 48 00 00 30 */ b lbl_8002915C
|
|
.global lbl_80029130
|
|
lbl_80029130:
|
|
/* 80029130 00024F70 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80029134 00024F74 54 00 07 76 */ rlwinm r0, r0, 0, 29, 27
|
|
/* 80029138 00024F78 90 1F 00 0C */ stw r0, 0xc(r31)
|
|
/* 8002913C 00024F7C 3C 60 00 50 */ lis r3, 0x50
|
|
/* 80029140 00024F80 57 A0 10 3A */ slwi r0, r29, 2
|
|
/* 80029144 00024F84 7C 1D 00 50 */ subf r0, r29, r0
|
|
/* 80029148 00024F88 7C 63 04 30 */ srw r3, r3, r0
|
|
/* 8002914C 00024F8C 4B FF 8A A5 */ bl __OSMaskInterrupts
|
|
/* 80029150 00024F90 7F C3 F3 78 */ mr r3, r30
|
|
/* 80029154 00024F94 4B FF 87 0D */ bl OSRestoreInterrupts
|
|
/* 80029158 00024F98 38 60 00 01 */ li r3, 0x1
|
|
.global lbl_8002915C
|
|
lbl_8002915C:
|
|
/* 8002915C 00024F9C 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 80029160 00024FA0 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 80029164 00024FA4 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 80029168 00024FA8 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 8002916C 00024FAC 7C 08 03 A6 */ mtlr r0
|
|
/* 80029170 00024FB0 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 80029174 00024FB4 4E 80 00 20 */ blr
|
|
/* 80029178 00024FB8 00 00 00 00 */ .4byte 0x00000000
|
|
/* 8002917C 00024FBC 00 00 00 00 */ .4byte 0x00000000
|
|
.global EXISelect
|
|
EXISelect:
|
|
/* 80029180 00024FC0 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 80029184 00024FC4 7C 08 02 A6 */ mflr r0
|
|
/* 80029188 00024FC8 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 8002918C 00024FCC 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 80029190 00024FD0 4B FD E1 AD */ bl lbl_8000733C
|
|
/* 80029194 00024FD4 7C 7B 1B 78 */ mr r27, r3
|
|
/* 80029198 00024FD8 7C 9C 23 78 */ mr r28, r4
|
|
/* 8002919C 00024FDC 7C BD 2B 78 */ mr r29, r5
|
|
/* 800291A0 00024FE0 54 60 30 32 */ slwi r0, r3, 6
|
|
/* 800291A4 00024FE4 3C 60 80 4A */ lis r3, Ecb@ha
|
|
/* 800291A8 00024FE8 38 63 A2 90 */ addi r3, r3, Ecb@l
|
|
/* 800291AC 00024FEC 7F E3 02 14 */ add r31, r3, r0
|
|
/* 800291B0 00024FF0 4B FF 86 71 */ bl OSDisableInterrupts
|
|
/* 800291B4 00024FF4 7C 7E 1B 78 */ mr r30, r3
|
|
/* 800291B8 00024FF8 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 800291BC 00024FFC 54 00 07 7B */ rlwinm. r0, r0, 0, 29, 29
|
|
/* 800291C0 00025000 40 82 00 48 */ bne lbl_80029208
|
|
/* 800291C4 00025004 2C 1B 00 02 */ cmpwi r27, 0x2
|
|
/* 800291C8 00025008 41 82 00 50 */ beq lbl_80029218
|
|
/* 800291CC 0002500C 2C 1C 00 00 */ cmpwi r28, 0x0
|
|
/* 800291D0 00025010 40 82 00 20 */ bne lbl_800291F0
|
|
/* 800291D4 00025014 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 800291D8 00025018 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
|
|
/* 800291DC 0002501C 40 82 00 14 */ bne lbl_800291F0
|
|
/* 800291E0 00025020 7F 63 DB 78 */ mr r3, r27
|
|
/* 800291E4 00025024 4B FF FC 3D */ bl __EXIProbe
|
|
/* 800291E8 00025028 2C 03 00 00 */ cmpwi r3, 0x0
|
|
/* 800291EC 0002502C 41 82 00 1C */ beq lbl_80029208
|
|
.global lbl_800291F0
|
|
lbl_800291F0:
|
|
/* 800291F0 00025030 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 800291F4 00025034 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
|
|
/* 800291F8 00025038 41 82 00 10 */ beq lbl_80029208
|
|
/* 800291FC 0002503C 80 1F 00 18 */ lwz r0, 0x18(r31)
|
|
/* 80029200 00025040 7C 00 E0 40 */ cmplw r0, r28
|
|
/* 80029204 00025044 41 82 00 14 */ beq lbl_80029218
|
|
.global lbl_80029208
|
|
lbl_80029208:
|
|
/* 80029208 00025048 7F C3 F3 78 */ mr r3, r30
|
|
/* 8002920C 0002504C 4B FF 86 55 */ bl OSRestoreInterrupts
|
|
/* 80029210 00025050 38 60 00 00 */ li r3, 0x0
|
|
/* 80029214 00025054 48 00 00 80 */ b lbl_80029294
|
|
.global lbl_80029218
|
|
lbl_80029218:
|
|
/* 80029218 00025058 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 8002921C 0002505C 60 00 00 04 */ ori r0, r0, 0x4
|
|
/* 80029220 00025060 90 1F 00 0C */ stw r0, 0xc(r31)
|
|
/* 80029224 00025064 1C 7B 00 14 */ mulli r3, r27, 0x14
|
|
/* 80029228 00025068 3C 00 CD 00 */ lis r0, 0xcd00
|
|
/* 8002922C 0002506C 7C 80 1A 14 */ add r4, r0, r3
|
|
/* 80029230 00025070 80 64 68 00 */ lwz r3, 0x6800(r4)
|
|
/* 80029234 00025074 70 63 04 05 */ andi. r3, r3, 0x405
|
|
/* 80029238 00025078 57 A0 20 36 */ slwi r0, r29, 4
|
|
/* 8002923C 0002507C 7C 63 03 78 */ or r3, r3, r0
|
|
/* 80029240 00025080 38 00 00 01 */ li r0, 0x1
|
|
/* 80029244 00025084 7C 00 E0 30 */ slw r0, r0, r28
|
|
/* 80029248 00025088 54 00 38 30 */ slwi r0, r0, 7
|
|
/* 8002924C 0002508C 7C 63 03 78 */ or r3, r3, r0
|
|
/* 80029250 00025090 90 64 68 00 */ stw r3, 0x6800(r4)
|
|
/* 80029254 00025094 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80029258 00025098 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
|
|
/* 8002925C 0002509C 41 82 00 2C */ beq lbl_80029288
|
|
/* 80029260 000250A0 2C 1B 00 00 */ cmpwi r27, 0x0
|
|
/* 80029264 000250A4 41 82 00 10 */ beq lbl_80029274
|
|
/* 80029268 000250A8 2C 1B 00 01 */ cmpwi r27, 0x1
|
|
/* 8002926C 000250AC 41 82 00 14 */ beq lbl_80029280
|
|
/* 80029270 000250B0 48 00 00 18 */ b lbl_80029288
|
|
.global lbl_80029274
|
|
lbl_80029274:
|
|
/* 80029274 000250B4 3C 60 00 10 */ lis r3, 0x10
|
|
/* 80029278 000250B8 4B FF 89 79 */ bl __OSMaskInterrupts
|
|
/* 8002927C 000250BC 48 00 00 0C */ b lbl_80029288
|
|
.global lbl_80029280
|
|
lbl_80029280:
|
|
/* 80029280 000250C0 3C 60 00 02 */ lis r3, 0x2
|
|
/* 80029284 000250C4 4B FF 89 6D */ bl __OSMaskInterrupts
|
|
.global lbl_80029288
|
|
lbl_80029288:
|
|
/* 80029288 000250C8 7F C3 F3 78 */ mr r3, r30
|
|
/* 8002928C 000250CC 4B FF 85 D5 */ bl OSRestoreInterrupts
|
|
/* 80029290 000250D0 38 60 00 01 */ li r3, 0x1
|
|
.global lbl_80029294
|
|
lbl_80029294:
|
|
/* 80029294 000250D4 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 80029298 000250D8 4B FD E0 F1 */ bl lbl_80007388
|
|
/* 8002929C 000250DC 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 800292A0 000250E0 7C 08 03 A6 */ mtlr r0
|
|
/* 800292A4 000250E4 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 800292A8 000250E8 4E 80 00 20 */ blr
|
|
/* 800292AC 000250EC 00 00 00 00 */ .4byte 0x00000000
|
|
.global EXIDeselect
|
|
EXIDeselect:
|
|
/* 800292B0 000250F0 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 800292B4 000250F4 7C 08 02 A6 */ mflr r0
|
|
/* 800292B8 000250F8 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 800292BC 000250FC 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 800292C0 00025100 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 800292C4 00025104 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 800292C8 00025108 93 81 00 10 */ stw r28, 0x10(r1)
|
|
/* 800292CC 0002510C 7C 7C 1B 78 */ mr r28, r3
|
|
/* 800292D0 00025110 54 60 30 32 */ slwi r0, r3, 6
|
|
/* 800292D4 00025114 3C 60 80 4A */ lis r3, Ecb@ha
|
|
/* 800292D8 00025118 38 63 A2 90 */ addi r3, r3, Ecb@l
|
|
/* 800292DC 0002511C 7F E3 02 14 */ add r31, r3, r0
|
|
/* 800292E0 00025120 4B FF 85 41 */ bl OSDisableInterrupts
|
|
/* 800292E4 00025124 7C 7D 1B 78 */ mr r29, r3
|
|
/* 800292E8 00025128 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 800292EC 0002512C 54 00 07 7B */ rlwinm. r0, r0, 0, 29, 29
|
|
/* 800292F0 00025130 40 82 00 10 */ bne lbl_80029300
|
|
/* 800292F4 00025134 4B FF 85 6D */ bl OSRestoreInterrupts
|
|
/* 800292F8 00025138 38 60 00 00 */ li r3, 0x0
|
|
/* 800292FC 0002513C 48 00 00 90 */ b lbl_8002938C
|
|
.global lbl_80029300
|
|
lbl_80029300:
|
|
/* 80029300 00025140 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80029304 00025144 54 00 07 B8 */ rlwinm r0, r0, 0, 30, 28
|
|
/* 80029308 00025148 90 1F 00 0C */ stw r0, 0xc(r31)
|
|
/* 8002930C 0002514C 1C 7C 00 14 */ mulli r3, r28, 0x14
|
|
/* 80029310 00025150 3C 00 CD 00 */ lis r0, 0xcd00
|
|
/* 80029314 00025154 7C 60 1A 14 */ add r3, r0, r3
|
|
/* 80029318 00025158 83 C3 68 00 */ lwz r30, 0x6800(r3)
|
|
/* 8002931C 0002515C 73 C0 04 05 */ andi. r0, r30, 0x405
|
|
/* 80029320 00025160 90 03 68 00 */ stw r0, 0x6800(r3)
|
|
/* 80029324 00025164 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80029328 00025168 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
|
|
/* 8002932C 0002516C 41 82 00 2C */ beq lbl_80029358
|
|
/* 80029330 00025170 2C 1C 00 00 */ cmpwi r28, 0x0
|
|
/* 80029334 00025174 41 82 00 10 */ beq lbl_80029344
|
|
/* 80029338 00025178 2C 1C 00 01 */ cmpwi r28, 0x1
|
|
/* 8002933C 0002517C 41 82 00 14 */ beq lbl_80029350
|
|
/* 80029340 00025180 48 00 00 18 */ b lbl_80029358
|
|
.global lbl_80029344
|
|
lbl_80029344:
|
|
/* 80029344 00025184 3C 60 00 10 */ lis r3, 0x10
|
|
/* 80029348 00025188 4B FF 89 29 */ bl __OSUnmaskInterrupts
|
|
/* 8002934C 0002518C 48 00 00 0C */ b lbl_80029358
|
|
.global lbl_80029350
|
|
lbl_80029350:
|
|
/* 80029350 00025190 3C 60 00 02 */ lis r3, 0x2
|
|
/* 80029354 00025194 4B FF 89 1D */ bl __OSUnmaskInterrupts
|
|
.global lbl_80029358
|
|
lbl_80029358:
|
|
/* 80029358 00025198 7F A3 EB 78 */ mr r3, r29
|
|
/* 8002935C 0002519C 4B FF 85 05 */ bl OSRestoreInterrupts
|
|
/* 80029360 000251A0 2C 1C 00 02 */ cmpwi r28, 0x2
|
|
/* 80029364 000251A4 41 82 00 24 */ beq lbl_80029388
|
|
/* 80029368 000251A8 57 C0 06 31 */ rlwinm. r0, r30, 0, 24, 24
|
|
/* 8002936C 000251AC 41 82 00 1C */ beq lbl_80029388
|
|
/* 80029370 000251B0 7F 83 E3 78 */ mr r3, r28
|
|
/* 80029374 000251B4 4B FF FA AD */ bl __EXIProbe
|
|
/* 80029378 000251B8 7C 03 00 D0 */ neg r0, r3
|
|
/* 8002937C 000251BC 7C 00 1B 78 */ or r0, r0, r3
|
|
/* 80029380 000251C0 54 03 0F FE */ srwi r3, r0, 31
|
|
/* 80029384 000251C4 48 00 00 08 */ b lbl_8002938C
|
|
.global lbl_80029388
|
|
lbl_80029388:
|
|
/* 80029388 000251C8 38 60 00 01 */ li r3, 0x1
|
|
.global lbl_8002938C
|
|
lbl_8002938C:
|
|
/* 8002938C 000251CC 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 80029390 000251D0 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 80029394 000251D4 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 80029398 000251D8 83 81 00 10 */ lwz r28, 0x10(r1)
|
|
/* 8002939C 000251DC 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 800293A0 000251E0 7C 08 03 A6 */ mtlr r0
|
|
/* 800293A4 000251E4 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 800293A8 000251E8 4E 80 00 20 */ blr
|
|
/* 800293AC 000251EC 00 00 00 00 */ .4byte 0x00000000
|
|
.global EXIIntrruptHandler
|
|
EXIIntrruptHandler:
|
|
/* 800293B0 000251F0 94 21 FD 20 */ stwu r1, -0x2e0(r1)
|
|
/* 800293B4 000251F4 7C 08 02 A6 */ mflr r0
|
|
/* 800293B8 000251F8 90 01 02 E4 */ stw r0, 0x2e4(r1)
|
|
/* 800293BC 000251FC 93 E1 02 DC */ stw r31, 0x2dc(r1)
|
|
/* 800293C0 00025200 93 C1 02 D8 */ stw r30, 0x2d8(r1)
|
|
/* 800293C4 00025204 93 A1 02 D4 */ stw r29, 0x2d4(r1)
|
|
/* 800293C8 00025208 7C 9D 23 78 */ mr r29, r4
|
|
/* 800293CC 0002520C 38 03 FF F7 */ addi r0, r3, -0x9
|
|
/* 800293D0 00025210 3C 60 55 55 */ lis r3, 0x5555
|
|
/* 800293D4 00025214 38 63 55 56 */ addi r3, r3, 0x5556
|
|
/* 800293D8 00025218 7C 63 00 96 */ mulhw r3, r3, r0
|
|
/* 800293DC 0002521C 54 60 0F FE */ srwi r0, r3, 31
|
|
/* 800293E0 00025220 7F E3 02 14 */ add r31, r3, r0
|
|
/* 800293E4 00025224 1C 7F 00 14 */ mulli r3, r31, 0x14
|
|
/* 800293E8 00025228 3C 00 CD 00 */ lis r0, 0xcd00
|
|
/* 800293EC 0002522C 7C 60 1A 14 */ add r3, r0, r3
|
|
/* 800293F0 00025230 80 03 68 00 */ lwz r0, 0x6800(r3)
|
|
/* 800293F4 00025234 70 00 07 F5 */ andi. r0, r0, 0x7f5
|
|
/* 800293F8 00025238 60 00 00 02 */ ori r0, r0, 0x2
|
|
/* 800293FC 0002523C 90 03 68 00 */ stw r0, 0x6800(r3)
|
|
/* 80029400 00025240 57 E0 30 32 */ slwi r0, r31, 6
|
|
/* 80029404 00025244 3C 60 80 4A */ lis r3, Ecb@ha
|
|
/* 80029408 00025248 38 63 A2 90 */ addi r3, r3, Ecb@l
|
|
/* 8002940C 0002524C 7F C3 00 2E */ lwzx r30, r3, r0
|
|
/* 80029410 00025250 2C 1E 00 00 */ cmpwi r30, 0x0
|
|
/* 80029414 00025254 41 82 00 38 */ beq lbl_8002944C
|
|
/* 80029418 00025258 38 61 00 08 */ addi r3, r1, 0x8
|
|
/* 8002941C 0002525C 4B FF 40 25 */ bl OSClearContext
|
|
/* 80029420 00025260 38 61 00 08 */ addi r3, r1, 0x8
|
|
/* 80029424 00025264 4B FF 3D DD */ bl OSSetCurrentContext
|
|
/* 80029428 00025268 7F E3 FB 78 */ mr r3, r31
|
|
/* 8002942C 0002526C 7F A4 EB 78 */ mr r4, r29
|
|
/* 80029430 00025270 7F CC F3 78 */ mr r12, r30
|
|
/* 80029434 00025274 7D 89 03 A6 */ mtctr r12
|
|
/* 80029438 00025278 4E 80 04 21 */ bctrl
|
|
/* 8002943C 0002527C 38 61 00 08 */ addi r3, r1, 0x8
|
|
/* 80029440 00025280 4B FF 40 01 */ bl OSClearContext
|
|
/* 80029444 00025284 7F A3 EB 78 */ mr r3, r29
|
|
/* 80029448 00025288 4B FF 3D B9 */ bl OSSetCurrentContext
|
|
.global lbl_8002944C
|
|
lbl_8002944C:
|
|
/* 8002944C 0002528C 83 E1 02 DC */ lwz r31, 0x2dc(r1)
|
|
/* 80029450 00025290 83 C1 02 D8 */ lwz r30, 0x2d8(r1)
|
|
/* 80029454 00025294 83 A1 02 D4 */ lwz r29, 0x2d4(r1)
|
|
/* 80029458 00025298 80 01 02 E4 */ lwz r0, 0x2e4(r1)
|
|
/* 8002945C 0002529C 7C 08 03 A6 */ mtlr r0
|
|
/* 80029460 000252A0 38 21 02 E0 */ addi r1, r1, 0x2e0
|
|
/* 80029464 000252A4 4E 80 00 20 */ blr
|
|
/* 80029468 000252A8 00 00 00 00 */ .4byte 0x00000000
|
|
/* 8002946C 000252AC 00 00 00 00 */ .4byte 0x00000000
|
|
.global TCIntrruptHandler
|
|
TCIntrruptHandler:
|
|
/* 80029470 000252B0 94 21 FD 10 */ stwu r1, -0x2f0(r1)
|
|
/* 80029474 000252B4 7C 08 02 A6 */ mflr r0
|
|
/* 80029478 000252B8 90 01 02 F4 */ stw r0, 0x2f4(r1)
|
|
/* 8002947C 000252BC 39 61 02 F0 */ addi r11, r1, 0x2f0
|
|
/* 80029480 000252C0 4B FD DE BD */ bl lbl_8000733C
|
|
/* 80029484 000252C4 7C 9B 23 78 */ mr r27, r4
|
|
/* 80029488 000252C8 38 03 FF F6 */ addi r0, r3, -0xa
|
|
/* 8002948C 000252CC 3C 80 55 55 */ lis r4, 0x5555
|
|
/* 80029490 000252D0 38 84 55 56 */ addi r4, r4, 0x5556
|
|
/* 80029494 000252D4 7C 84 00 96 */ mulhw r4, r4, r0
|
|
/* 80029498 000252D8 54 80 0F FE */ srwi r0, r4, 31
|
|
/* 8002949C 000252DC 7F A4 02 14 */ add r29, r4, r0
|
|
/* 800294A0 000252E0 57 A0 30 32 */ slwi r0, r29, 6
|
|
/* 800294A4 000252E4 3C 80 80 4A */ lis r4, Ecb@ha
|
|
/* 800294A8 000252E8 38 84 A2 90 */ addi r4, r4, Ecb@l
|
|
/* 800294AC 000252EC 7F C4 02 14 */ add r30, r4, r0
|
|
/* 800294B0 000252F0 3F E0 80 00 */ lis r31, 0x8000
|
|
/* 800294B4 000252F4 7F E3 1C 30 */ srw r3, r31, r3
|
|
/* 800294B8 000252F8 4B FF 87 39 */ bl __OSMaskInterrupts
|
|
/* 800294BC 000252FC 1C 7D 00 14 */ mulli r3, r29, 0x14
|
|
/* 800294C0 00025300 3C 00 CD 00 */ lis r0, 0xcd00
|
|
/* 800294C4 00025304 7C 60 1A 14 */ add r3, r0, r3
|
|
/* 800294C8 00025308 80 03 68 00 */ lwz r0, 0x6800(r3)
|
|
/* 800294CC 0002530C 70 00 07 F5 */ andi. r0, r0, 0x7f5
|
|
/* 800294D0 00025310 60 00 00 08 */ ori r0, r0, 0x8
|
|
/* 800294D4 00025314 90 03 68 00 */ stw r0, 0x6800(r3)
|
|
/* 800294D8 00025318 83 9E 00 04 */ lwz r28, 0x4(r30)
|
|
/* 800294DC 0002531C 2C 1C 00 00 */ cmpwi r28, 0x0
|
|
/* 800294E0 00025320 41 82 01 90 */ beq lbl_80029670
|
|
/* 800294E4 00025324 38 00 00 00 */ li r0, 0x0
|
|
/* 800294E8 00025328 90 1E 00 04 */ stw r0, 0x4(r30)
|
|
/* 800294EC 0002532C 80 1E 00 0C */ lwz r0, 0xc(r30)
|
|
/* 800294F0 00025330 54 00 07 BF */ clrlwi. r0, r0, 30
|
|
/* 800294F4 00025334 41 82 01 48 */ beq lbl_8002963C
|
|
/* 800294F8 00025338 80 1E 00 0C */ lwz r0, 0xc(r30)
|
|
/* 800294FC 0002533C 54 00 07 BD */ rlwinm. r0, r0, 0, 30, 30
|
|
/* 80029500 00025340 41 82 01 30 */ beq lbl_80029630
|
|
/* 80029504 00025344 80 BE 00 10 */ lwz r5, 0x10(r30)
|
|
/* 80029508 00025348 2C 85 00 00 */ cmpwi cr1, r5, 0x0
|
|
/* 8002950C 0002534C 41 86 01 24 */ beq cr1, lbl_80029630
|
|
/* 80029510 00025350 80 9E 00 14 */ lwz r4, 0x14(r30)
|
|
/* 80029514 00025354 80 03 68 10 */ lwz r0, 0x6810(r3)
|
|
/* 80029518 00025358 38 60 00 00 */ li r3, 0x0
|
|
/* 8002951C 0002535C 40 85 01 14 */ ble cr1, lbl_80029630
|
|
/* 80029520 00025360 38 E5 FF F8 */ addi r7, r5, -0x8
|
|
/* 80029524 00025364 2C 05 00 08 */ cmpwi r5, 0x8
|
|
/* 80029528 00025368 40 81 00 DC */ ble lbl_80029604
|
|
/* 8002952C 0002536C 39 00 00 00 */ li r8, 0x0
|
|
/* 80029530 00025370 41 84 00 14 */ blt cr1, lbl_80029544
|
|
/* 80029534 00025374 38 DF FF FE */ addi r6, r31, -0x2
|
|
/* 80029538 00025378 7C 05 30 00 */ cmpw r5, r6
|
|
/* 8002953C 0002537C 41 81 00 08 */ bgt lbl_80029544
|
|
/* 80029540 00025380 39 00 00 01 */ li r8, 0x1
|
|
.global lbl_80029544
|
|
lbl_80029544:
|
|
/* 80029544 00025384 2C 08 00 00 */ cmpwi r8, 0x0
|
|
/* 80029548 00025388 41 82 00 BC */ beq lbl_80029604
|
|
/* 8002954C 0002538C 38 C7 00 07 */ addi r6, r7, 0x7
|
|
/* 80029550 00025390 54 C6 E8 FE */ srwi r6, r6, 3
|
|
/* 80029554 00025394 7C C9 03 A6 */ mtctr r6
|
|
/* 80029558 00025398 2C 07 00 00 */ cmpwi r7, 0x0
|
|
/* 8002955C 0002539C 40 81 00 A8 */ ble lbl_80029604
|
|
.global lbl_80029560
|
|
lbl_80029560:
|
|
/* 80029560 000253A0 20 C3 00 03 */ subfic r6, r3, 0x3
|
|
/* 80029564 000253A4 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 80029568 000253A8 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 8002956C 000253AC 98 C4 00 00 */ stb r6, 0x0(r4)
|
|
/* 80029570 000253B0 38 C3 00 01 */ addi r6, r3, 0x1
|
|
/* 80029574 000253B4 20 C6 00 03 */ subfic r6, r6, 0x3
|
|
/* 80029578 000253B8 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 8002957C 000253BC 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 80029580 000253C0 98 C4 00 01 */ stb r6, 0x1(r4)
|
|
/* 80029584 000253C4 38 C3 00 02 */ addi r6, r3, 0x2
|
|
/* 80029588 000253C8 20 C6 00 03 */ subfic r6, r6, 0x3
|
|
/* 8002958C 000253CC 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 80029590 000253D0 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 80029594 000253D4 98 C4 00 02 */ stb r6, 0x2(r4)
|
|
/* 80029598 000253D8 7C C3 00 D0 */ neg r6, r3
|
|
/* 8002959C 000253DC 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 800295A0 000253E0 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 800295A4 000253E4 98 C4 00 03 */ stb r6, 0x3(r4)
|
|
/* 800295A8 000253E8 38 C3 00 04 */ addi r6, r3, 0x4
|
|
/* 800295AC 000253EC 20 C6 00 03 */ subfic r6, r6, 0x3
|
|
/* 800295B0 000253F0 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 800295B4 000253F4 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 800295B8 000253F8 98 C4 00 04 */ stb r6, 0x4(r4)
|
|
/* 800295BC 000253FC 38 C3 00 05 */ addi r6, r3, 0x5
|
|
/* 800295C0 00025400 20 C6 00 03 */ subfic r6, r6, 0x3
|
|
/* 800295C4 00025404 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 800295C8 00025408 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 800295CC 0002540C 98 C4 00 05 */ stb r6, 0x5(r4)
|
|
/* 800295D0 00025410 38 C3 00 06 */ addi r6, r3, 0x6
|
|
/* 800295D4 00025414 20 C6 00 03 */ subfic r6, r6, 0x3
|
|
/* 800295D8 00025418 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 800295DC 0002541C 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 800295E0 00025420 98 C4 00 06 */ stb r6, 0x6(r4)
|
|
/* 800295E4 00025424 38 C3 00 07 */ addi r6, r3, 0x7
|
|
/* 800295E8 00025428 20 C6 00 03 */ subfic r6, r6, 0x3
|
|
/* 800295EC 0002542C 54 C6 18 38 */ slwi r6, r6, 3
|
|
/* 800295F0 00025430 7C 06 34 30 */ srw r6, r0, r6
|
|
/* 800295F4 00025434 98 C4 00 07 */ stb r6, 0x7(r4)
|
|
/* 800295F8 00025438 38 84 00 08 */ addi r4, r4, 0x8
|
|
/* 800295FC 0002543C 38 63 00 08 */ addi r3, r3, 0x8
|
|
/* 80029600 00025440 42 00 FF 60 */ bdnz lbl_80029560
|
|
.global lbl_80029604
|
|
lbl_80029604:
|
|
/* 80029604 00025444 7C C3 28 50 */ subf r6, r3, r5
|
|
/* 80029608 00025448 7C C9 03 A6 */ mtctr r6
|
|
/* 8002960C 0002544C 7C 03 28 00 */ cmpw r3, r5
|
|
/* 80029610 00025450 40 80 00 20 */ bge lbl_80029630
|
|
.global lbl_80029614
|
|
lbl_80029614:
|
|
/* 80029614 00025454 20 A3 00 03 */ subfic r5, r3, 0x3
|
|
/* 80029618 00025458 54 A5 18 38 */ slwi r5, r5, 3
|
|
/* 8002961C 0002545C 7C 05 2C 30 */ srw r5, r0, r5
|
|
/* 80029620 00025460 98 A4 00 00 */ stb r5, 0x0(r4)
|
|
/* 80029624 00025464 38 84 00 01 */ addi r4, r4, 0x1
|
|
/* 80029628 00025468 38 63 00 01 */ addi r3, r3, 0x1
|
|
/* 8002962C 0002546C 42 00 FF E8 */ bdnz lbl_80029614
|
|
.global lbl_80029630
|
|
lbl_80029630:
|
|
/* 80029630 00025470 80 1E 00 0C */ lwz r0, 0xc(r30)
|
|
/* 80029634 00025474 54 00 00 3A */ clrrwi r0, r0, 2
|
|
/* 80029638 00025478 90 1E 00 0C */ stw r0, 0xc(r30)
|
|
.global lbl_8002963C
|
|
lbl_8002963C:
|
|
/* 8002963C 0002547C 38 61 00 08 */ addi r3, r1, 0x8
|
|
/* 80029640 00025480 4B FF 3E 01 */ bl OSClearContext
|
|
/* 80029644 00025484 38 61 00 08 */ addi r3, r1, 0x8
|
|
/* 80029648 00025488 4B FF 3B B9 */ bl OSSetCurrentContext
|
|
/* 8002964C 0002548C 7F A3 EB 78 */ mr r3, r29
|
|
/* 80029650 00025490 7F 64 DB 78 */ mr r4, r27
|
|
/* 80029654 00025494 7F 8C E3 78 */ mr r12, r28
|
|
/* 80029658 00025498 7D 89 03 A6 */ mtctr r12
|
|
/* 8002965C 0002549C 4E 80 04 21 */ bctrl
|
|
/* 80029660 000254A0 38 61 00 08 */ addi r3, r1, 0x8
|
|
/* 80029664 000254A4 4B FF 3D DD */ bl OSClearContext
|
|
/* 80029668 000254A8 7F 63 DB 78 */ mr r3, r27
|
|
/* 8002966C 000254AC 4B FF 3B 95 */ bl OSSetCurrentContext
|
|
.global lbl_80029670
|
|
lbl_80029670:
|
|
/* 80029670 000254B0 39 61 02 F0 */ addi r11, r1, 0x2f0
|
|
/* 80029674 000254B4 4B FD DD 15 */ bl lbl_80007388
|
|
/* 80029678 000254B8 80 01 02 F4 */ lwz r0, 0x2f4(r1)
|
|
/* 8002967C 000254BC 7C 08 03 A6 */ mtlr r0
|
|
/* 80029680 000254C0 38 21 02 F0 */ addi r1, r1, 0x2f0
|
|
/* 80029684 000254C4 4E 80 00 20 */ blr
|
|
/* 80029688 000254C8 00 00 00 00 */ .4byte 0x00000000
|
|
/* 8002968C 000254CC 00 00 00 00 */ .4byte 0x00000000
|
|
.global EXTIntrruptHandler
|
|
EXTIntrruptHandler:
|
|
/* 80029690 000254D0 94 21 FD 20 */ stwu r1, -0x2e0(r1)
|
|
/* 80029694 000254D4 7C 08 02 A6 */ mflr r0
|
|
/* 80029698 000254D8 90 01 02 E4 */ stw r0, 0x2e4(r1)
|
|
/* 8002969C 000254DC 93 E1 02 DC */ stw r31, 0x2dc(r1)
|
|
/* 800296A0 000254E0 93 C1 02 D8 */ stw r30, 0x2d8(r1)
|
|
/* 800296A4 000254E4 93 A1 02 D4 */ stw r29, 0x2d4(r1)
|
|
/* 800296A8 000254E8 93 81 02 D0 */ stw r28, 0x2d0(r1)
|
|
/* 800296AC 000254EC 7C 9C 23 78 */ mr r28, r4
|
|
/* 800296B0 000254F0 38 03 FF F5 */ addi r0, r3, -0xb
|
|
/* 800296B4 000254F4 3C 60 55 55 */ lis r3, 0x5555
|
|
/* 800296B8 000254F8 38 63 55 56 */ addi r3, r3, 0x5556
|
|
/* 800296BC 000254FC 7C 63 00 96 */ mulhw r3, r3, r0
|
|
/* 800296C0 00025500 54 60 0F FE */ srwi r0, r3, 31
|
|
/* 800296C4 00025504 7F E3 02 14 */ add r31, r3, r0
|
|
/* 800296C8 00025508 3C 60 00 50 */ lis r3, 0x50
|
|
/* 800296CC 0002550C 57 E0 10 3A */ slwi r0, r31, 2
|
|
/* 800296D0 00025510 7C 1F 00 50 */ subf r0, r31, r0
|
|
/* 800296D4 00025514 7C 63 04 30 */ srw r3, r3, r0
|
|
/* 800296D8 00025518 4B FF 85 19 */ bl __OSMaskInterrupts
|
|
/* 800296DC 0002551C 57 E0 30 32 */ slwi r0, r31, 6
|
|
/* 800296E0 00025520 3C 60 80 4A */ lis r3, Ecb@ha
|
|
/* 800296E4 00025524 38 63 A2 90 */ addi r3, r3, Ecb@l
|
|
/* 800296E8 00025528 7F C3 02 14 */ add r30, r3, r0
|
|
/* 800296EC 0002552C 83 BE 00 08 */ lwz r29, 0x8(r30)
|
|
/* 800296F0 00025530 80 1E 00 0C */ lwz r0, 0xc(r30)
|
|
/* 800296F4 00025534 54 00 07 76 */ rlwinm r0, r0, 0, 29, 27
|
|
/* 800296F8 00025538 90 1E 00 0C */ stw r0, 0xc(r30)
|
|
/* 800296FC 0002553C 2C 1D 00 00 */ cmpwi r29, 0x0
|
|
/* 80029700 00025540 41 82 00 40 */ beq lbl_80029740
|
|
/* 80029704 00025544 38 61 00 08 */ addi r3, r1, 0x8
|
|
/* 80029708 00025548 4B FF 3D 39 */ bl OSClearContext
|
|
/* 8002970C 0002554C 38 61 00 08 */ addi r3, r1, 0x8
|
|
/* 80029710 00025550 4B FF 3A F1 */ bl OSSetCurrentContext
|
|
/* 80029714 00025554 38 00 00 00 */ li r0, 0x0
|
|
/* 80029718 00025558 90 1E 00 08 */ stw r0, 0x8(r30)
|
|
/* 8002971C 0002555C 7F E3 FB 78 */ mr r3, r31
|
|
/* 80029720 00025560 7F 84 E3 78 */ mr r4, r28
|
|
/* 80029724 00025564 7F AC EB 78 */ mr r12, r29
|
|
/* 80029728 00025568 7D 89 03 A6 */ mtctr r12
|
|
/* 8002972C 0002556C 4E 80 04 21 */ bctrl
|
|
/* 80029730 00025570 38 61 00 08 */ addi r3, r1, 0x8
|
|
/* 80029734 00025574 4B FF 3D 0D */ bl OSClearContext
|
|
/* 80029738 00025578 7F 83 E3 78 */ mr r3, r28
|
|
/* 8002973C 0002557C 4B FF 3A C5 */ bl OSSetCurrentContext
|
|
.global lbl_80029740
|
|
lbl_80029740:
|
|
/* 80029740 00025580 83 E1 02 DC */ lwz r31, 0x2dc(r1)
|
|
/* 80029744 00025584 83 C1 02 D8 */ lwz r30, 0x2d8(r1)
|
|
/* 80029748 00025588 83 A1 02 D4 */ lwz r29, 0x2d4(r1)
|
|
/* 8002974C 0002558C 83 81 02 D0 */ lwz r28, 0x2d0(r1)
|
|
/* 80029750 00025590 80 01 02 E4 */ lwz r0, 0x2e4(r1)
|
|
/* 80029754 00025594 7C 08 03 A6 */ mtlr r0
|
|
/* 80029758 00025598 38 21 02 E0 */ addi r1, r1, 0x2e0
|
|
/* 8002975C 0002559C 4E 80 00 20 */ blr
|
|
.global EXIInit
|
|
EXIInit:
|
|
/* 80029760 000255A0 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 80029764 000255A4 7C 08 02 A6 */ mflr r0
|
|
/* 80029768 000255A8 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 8002976C 000255AC 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 80029770 000255B0 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 80029774 000255B4 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 80029778 000255B8 93 81 00 10 */ stw r28, 0x10(r1)
|
|
/* 8002977C 000255BC 3C 60 CD 00 */ lis r3, 0xCD00680C@ha
|
|
.global lbl_80029780
|
|
lbl_80029780:
|
|
/* 80029780 000255C0 80 03 68 0C */ lwz r0, 0xCD00680C@l(r3)
|
|
/* 80029784 000255C4 54 00 07 FE */ clrlwi r0, r0, 31
|
|
/* 80029788 000255C8 28 00 00 01 */ cmplwi r0, 0x1
|
|
/* 8002978C 000255CC 41 82 FF F4 */ beq lbl_80029780
|
|
/* 80029790 000255D0 80 03 68 20 */ lwz r0, 0x6820(r3)
|
|
/* 80029794 000255D4 54 00 07 FE */ clrlwi r0, r0, 31
|
|
/* 80029798 000255D8 28 00 00 01 */ cmplwi r0, 0x1
|
|
/* 8002979C 000255DC 41 82 FF E4 */ beq lbl_80029780
|
|
/* 800297A0 000255E0 80 03 68 34 */ lwz r0, 0x6834(r3)
|
|
/* 800297A4 000255E4 54 00 07 FE */ clrlwi r0, r0, 31
|
|
/* 800297A8 000255E8 28 00 00 01 */ cmplwi r0, 0x1
|
|
/* 800297AC 000255EC 41 82 FF D4 */ beq lbl_80029780
|
|
/* 800297B0 000255F0 3C 60 00 80 */ lis r3, 0x80
|
|
/* 800297B4 000255F4 38 63 80 00 */ addi r3, r3, -0x8000
|
|
/* 800297B8 000255F8 4B FF 84 39 */ bl __OSMaskInterrupts
|
|
/* 800297BC 000255FC 3B 80 00 00 */ li r28, 0x0
|
|
/* 800297C0 00025600 3C 60 CD 00 */ lis r3, 0xCD006800@ha
|
|
/* 800297C4 00025604 93 83 68 00 */ stw r28, 0xCD006800@l(r3)
|
|
/* 800297C8 00025608 93 83 68 14 */ stw r28, 0x6814(r3)
|
|
/* 800297CC 0002560C 93 83 68 28 */ stw r28, 0x6828(r3)
|
|
/* 800297D0 00025610 38 00 20 00 */ li r0, 0x2000
|
|
/* 800297D4 00025614 90 03 68 00 */ stw r0, 0x6800(r3)
|
|
/* 800297D8 00025618 38 60 00 09 */ li r3, 0x9
|
|
/* 800297DC 0002561C 3F A0 80 03 */ lis r29, EXIIntrruptHandler@ha
|
|
/* 800297E0 00025620 38 9D 93 B0 */ addi r4, r29, EXIIntrruptHandler@l
|
|
/* 800297E4 00025624 4B FF 80 AD */ bl __OSSetInterruptHandler
|
|
/* 800297E8 00025628 38 60 00 0A */ li r3, 0xa
|
|
/* 800297EC 0002562C 3F C0 80 03 */ lis r30, TCIntrruptHandler@ha
|
|
/* 800297F0 00025630 38 9E 94 70 */ addi r4, r30, TCIntrruptHandler@l
|
|
/* 800297F4 00025634 4B FF 80 9D */ bl __OSSetInterruptHandler
|
|
/* 800297F8 00025638 38 60 00 0B */ li r3, 0xb
|
|
/* 800297FC 0002563C 3F E0 80 03 */ lis r31, EXTIntrruptHandler@ha
|
|
/* 80029800 00025640 38 9F 96 90 */ addi r4, r31, EXTIntrruptHandler@l
|
|
/* 80029804 00025644 4B FF 80 8D */ bl __OSSetInterruptHandler
|
|
/* 80029808 00025648 38 60 00 0C */ li r3, 0xc
|
|
/* 8002980C 0002564C 38 9D 93 B0 */ addi r4, r29, -0x6c50
|
|
/* 80029810 00025650 4B FF 80 81 */ bl __OSSetInterruptHandler
|
|
/* 80029814 00025654 38 60 00 0D */ li r3, 0xd
|
|
/* 80029818 00025658 38 9E 94 70 */ addi r4, r30, -0x6b90
|
|
/* 8002981C 0002565C 4B FF 80 75 */ bl __OSSetInterruptHandler
|
|
/* 80029820 00025660 38 60 00 0E */ li r3, 0xe
|
|
/* 80029824 00025664 38 9F 96 90 */ addi r4, r31, -0x6970
|
|
/* 80029828 00025668 4B FF 80 69 */ bl __OSSetInterruptHandler
|
|
/* 8002982C 0002566C 38 60 00 0F */ li r3, 0xf
|
|
/* 80029830 00025670 38 9D 93 B0 */ addi r4, r29, -0x6c50
|
|
/* 80029834 00025674 4B FF 80 5D */ bl __OSSetInterruptHandler
|
|
/* 80029838 00025678 38 60 00 10 */ li r3, 0x10
|
|
/* 8002983C 0002567C 38 9E 94 70 */ addi r4, r30, -0x6b90
|
|
/* 80029840 00025680 4B FF 80 51 */ bl __OSSetInterruptHandler
|
|
/* 80029844 00025684 38 60 00 00 */ li r3, 0x0
|
|
/* 80029848 00025688 38 80 00 02 */ li r4, 0x2
|
|
/* 8002984C 0002568C 38 AD E4 A8 */ addi r5, r13, IDSerialPort1@sda21
|
|
/* 80029850 00025690 48 00 02 F1 */ bl EXIGetID
|
|
/* 80029854 00025694 80 0D E3 58 */ lwz r0, __OSInIPL@sda21(r13)
|
|
/* 80029858 00025698 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 8002985C 0002569C 41 82 00 34 */ beq lbl_80029890
|
|
/* 80029860 000256A0 3C 60 80 00 */ lis r3, 0x800030C4@ha
|
|
/* 80029864 000256A4 93 83 30 C4 */ stw r28, 0x800030C4@l(r3)
|
|
/* 80029868 000256A8 93 83 30 C0 */ stw r28, 0x30c0(r3)
|
|
/* 8002986C 000256AC 3C 60 80 4A */ lis r3, Ecb@ha
|
|
/* 80029870 000256B0 38 63 A2 90 */ addi r3, r3, Ecb@l
|
|
/* 80029874 000256B4 93 83 00 60 */ stw r28, 0x60(r3)
|
|
/* 80029878 000256B8 93 83 00 20 */ stw r28, 0x20(r3)
|
|
/* 8002987C 000256BC 38 60 00 00 */ li r3, 0x0
|
|
/* 80029880 000256C0 4B FF F5 A1 */ bl __EXIProbe
|
|
/* 80029884 000256C4 38 60 00 01 */ li r3, 0x1
|
|
/* 80029888 000256C8 4B FF F5 99 */ bl __EXIProbe
|
|
/* 8002988C 000256CC 48 00 00 70 */ b lbl_800298FC
|
|
.global lbl_80029890
|
|
lbl_80029890:
|
|
/* 80029890 000256D0 38 60 00 00 */ li r3, 0x0
|
|
/* 80029894 000256D4 38 80 00 00 */ li r4, 0x0
|
|
/* 80029898 000256D8 38 A1 00 08 */ addi r5, r1, 0x8
|
|
/* 8002989C 000256DC 48 00 02 A5 */ bl EXIGetID
|
|
/* 800298A0 000256E0 2C 03 00 00 */ cmpwi r3, 0x0
|
|
/* 800298A4 000256E4 41 82 00 24 */ beq lbl_800298C8
|
|
/* 800298A8 000256E8 80 61 00 08 */ lwz r3, 0x8(r1)
|
|
/* 800298AC 000256EC 3C 03 F8 FF */ addis r0, r3, 0xf8ff
|
|
/* 800298B0 000256F0 28 00 00 00 */ cmplwi r0, 0x0
|
|
/* 800298B4 000256F4 40 82 00 14 */ bne lbl_800298C8
|
|
/* 800298B8 000256F8 38 60 00 01 */ li r3, 0x1
|
|
/* 800298BC 000256FC 38 80 00 00 */ li r4, 0x0
|
|
/* 800298C0 00025700 48 00 07 B1 */ bl __OSEnableBarnacle
|
|
/* 800298C4 00025704 48 00 00 38 */ b lbl_800298FC
|
|
.global lbl_800298C8
|
|
lbl_800298C8:
|
|
/* 800298C8 00025708 38 60 00 01 */ li r3, 0x1
|
|
/* 800298CC 0002570C 38 80 00 00 */ li r4, 0x0
|
|
/* 800298D0 00025710 38 A1 00 08 */ addi r5, r1, 0x8
|
|
/* 800298D4 00025714 48 00 02 6D */ bl EXIGetID
|
|
/* 800298D8 00025718 2C 03 00 00 */ cmpwi r3, 0x0
|
|
/* 800298DC 0002571C 41 82 00 20 */ beq lbl_800298FC
|
|
/* 800298E0 00025720 80 61 00 08 */ lwz r3, 0x8(r1)
|
|
/* 800298E4 00025724 3C 03 F8 FF */ addis r0, r3, 0xf8ff
|
|
/* 800298E8 00025728 28 00 00 00 */ cmplwi r0, 0x0
|
|
/* 800298EC 0002572C 40 82 00 10 */ bne lbl_800298FC
|
|
/* 800298F0 00025730 38 60 00 00 */ li r3, 0x0
|
|
/* 800298F4 00025734 38 80 00 02 */ li r4, 0x2
|
|
/* 800298F8 00025738 48 00 07 79 */ bl __OSEnableBarnacle
|
|
.global lbl_800298FC
|
|
lbl_800298FC:
|
|
/* 800298FC 0002573C 80 6D 80 F8 */ lwz r3, __EXIVersion@sda21(r13)
|
|
/* 80029900 00025740 4B FF 1D E1 */ bl OSRegisterVersion
|
|
/* 80029904 00025744 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 80029908 00025748 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 8002990C 0002574C 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 80029910 00025750 83 81 00 10 */ lwz r28, 0x10(r1)
|
|
/* 80029914 00025754 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 80029918 00025758 7C 08 03 A6 */ mtlr r0
|
|
/* 8002991C 0002575C 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 80029920 00025760 4E 80 00 20 */ blr
|
|
/* 80029924 00025764 00 00 00 00 */ .4byte 0x00000000
|
|
/* 80029928 00025768 00 00 00 00 */ .4byte 0x00000000
|
|
/* 8002992C 0002576C 00 00 00 00 */ .4byte 0x00000000
|
|
.global EXILock
|
|
EXILock:
|
|
/* 80029930 00025770 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 80029934 00025774 7C 08 02 A6 */ mflr r0
|
|
/* 80029938 00025778 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 8002993C 0002577C 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 80029940 00025780 4B FD D9 FD */ bl lbl_8000733C
|
|
/* 80029944 00025784 7C 7B 1B 78 */ mr r27, r3
|
|
/* 80029948 00025788 7C 9F 23 78 */ mr r31, r4
|
|
/* 8002994C 0002578C 7C BC 2B 78 */ mr r28, r5
|
|
/* 80029950 00025790 54 60 30 32 */ slwi r0, r3, 6
|
|
/* 80029954 00025794 3C 60 80 4A */ lis r3, Ecb@ha
|
|
/* 80029958 00025798 38 63 A2 90 */ addi r3, r3, Ecb@l
|
|
/* 8002995C 0002579C 7F C3 02 14 */ add r30, r3, r0
|
|
/* 80029960 000257A0 4B FF 7E C1 */ bl OSDisableInterrupts
|
|
/* 80029964 000257A4 7C 7D 1B 78 */ mr r29, r3
|
|
/* 80029968 000257A8 80 1E 00 0C */ lwz r0, 0xc(r30)
|
|
/* 8002996C 000257AC 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
|
|
/* 80029970 000257B0 41 82 00 7C */ beq lbl_800299EC
|
|
/* 80029974 000257B4 2C 1C 00 00 */ cmpwi r28, 0x0
|
|
/* 80029978 000257B8 41 82 00 64 */ beq lbl_800299DC
|
|
/* 8002997C 000257BC 7F C3 F3 78 */ mr r3, r30
|
|
/* 80029980 000257C0 80 9E 00 24 */ lwz r4, 0x24(r30)
|
|
/* 80029984 000257C4 7C 89 03 A6 */ mtctr r4
|
|
/* 80029988 000257C8 2C 04 00 00 */ cmpwi r4, 0x0
|
|
/* 8002998C 000257CC 40 81 00 28 */ ble lbl_800299B4
|
|
.global lbl_80029990
|
|
lbl_80029990:
|
|
/* 80029990 000257D0 80 03 00 28 */ lwz r0, 0x28(r3)
|
|
/* 80029994 000257D4 7C 1F 00 40 */ cmplw r31, r0
|
|
/* 80029998 000257D8 40 82 00 14 */ bne lbl_800299AC
|
|
/* 8002999C 000257DC 7F A3 EB 78 */ mr r3, r29
|
|
/* 800299A0 000257E0 4B FF 7E C1 */ bl OSRestoreInterrupts
|
|
/* 800299A4 000257E4 38 60 00 00 */ li r3, 0x0
|
|
/* 800299A8 000257E8 48 00 00 6C */ b lbl_80029A14
|
|
.global lbl_800299AC
|
|
lbl_800299AC:
|
|
/* 800299AC 000257EC 38 63 00 08 */ addi r3, r3, 0x8
|
|
/* 800299B0 000257F0 42 00 FF E0 */ bdnz lbl_80029990
|
|
.global lbl_800299B4
|
|
lbl_800299B4:
|
|
/* 800299B4 000257F4 54 80 18 38 */ slwi r0, r4, 3
|
|
/* 800299B8 000257F8 7C 7E 02 14 */ add r3, r30, r0
|
|
/* 800299BC 000257FC 93 83 00 2C */ stw r28, 0x2c(r3)
|
|
/* 800299C0 00025800 80 1E 00 24 */ lwz r0, 0x24(r30)
|
|
/* 800299C4 00025804 54 00 18 38 */ slwi r0, r0, 3
|
|
/* 800299C8 00025808 7C 7E 02 14 */ add r3, r30, r0
|
|
/* 800299CC 0002580C 93 E3 00 28 */ stw r31, 0x28(r3)
|
|
/* 800299D0 00025810 80 7E 00 24 */ lwz r3, 0x24(r30)
|
|
/* 800299D4 00025814 38 03 00 01 */ addi r0, r3, 0x1
|
|
/* 800299D8 00025818 90 1E 00 24 */ stw r0, 0x24(r30)
|
|
.global lbl_800299DC
|
|
lbl_800299DC:
|
|
/* 800299DC 0002581C 7F A3 EB 78 */ mr r3, r29
|
|
/* 800299E0 00025820 4B FF 7E 81 */ bl OSRestoreInterrupts
|
|
/* 800299E4 00025824 38 60 00 00 */ li r3, 0x0
|
|
/* 800299E8 00025828 48 00 00 2C */ b lbl_80029A14
|
|
.global lbl_800299EC
|
|
lbl_800299EC:
|
|
/* 800299EC 0002582C 80 1E 00 0C */ lwz r0, 0xc(r30)
|
|
/* 800299F0 00025830 60 00 00 10 */ ori r0, r0, 0x10
|
|
/* 800299F4 00025834 90 1E 00 0C */ stw r0, 0xc(r30)
|
|
/* 800299F8 00025838 93 FE 00 18 */ stw r31, 0x18(r30)
|
|
/* 800299FC 0002583C 7F 63 DB 78 */ mr r3, r27
|
|
/* 80029A00 00025840 7F C4 F3 78 */ mr r4, r30
|
|
/* 80029A04 00025844 4B FF EB ED */ bl SetExiInterruptMask
|
|
/* 80029A08 00025848 7F A3 EB 78 */ mr r3, r29
|
|
/* 80029A0C 0002584C 4B FF 7E 55 */ bl OSRestoreInterrupts
|
|
/* 80029A10 00025850 38 60 00 01 */ li r3, 0x1
|
|
.global lbl_80029A14
|
|
lbl_80029A14:
|
|
/* 80029A14 00025854 39 61 00 20 */ addi r11, r1, 0x20
|
|
/* 80029A18 00025858 4B FD D9 71 */ bl lbl_80007388
|
|
/* 80029A1C 0002585C 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 80029A20 00025860 7C 08 03 A6 */ mtlr r0
|
|
/* 80029A24 00025864 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 80029A28 00025868 4E 80 00 20 */ blr
|
|
/* 80029A2C 0002586C 00 00 00 00 */ .4byte 0x00000000
|
|
.global EXIUnlock
|
|
EXIUnlock:
|
|
/* 80029A30 00025870 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 80029A34 00025874 7C 08 02 A6 */ mflr r0
|
|
/* 80029A38 00025878 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 80029A3C 0002587C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 80029A40 00025880 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 80029A44 00025884 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 80029A48 00025888 93 81 00 10 */ stw r28, 0x10(r1)
|
|
/* 80029A4C 0002588C 7C 7C 1B 78 */ mr r28, r3
|
|
/* 80029A50 00025890 54 60 30 32 */ slwi r0, r3, 6
|
|
/* 80029A54 00025894 3C 60 80 4A */ lis r3, Ecb@ha
|
|
/* 80029A58 00025898 38 63 A2 90 */ addi r3, r3, Ecb@l
|
|
/* 80029A5C 0002589C 7F E3 02 14 */ add r31, r3, r0
|
|
/* 80029A60 000258A0 4B FF 7D C1 */ bl OSDisableInterrupts
|
|
/* 80029A64 000258A4 7C 7E 1B 78 */ mr r30, r3
|
|
/* 80029A68 000258A8 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80029A6C 000258AC 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
|
|
/* 80029A70 000258B0 40 82 00 10 */ bne lbl_80029A80
|
|
/* 80029A74 000258B4 4B FF 7D ED */ bl OSRestoreInterrupts
|
|
/* 80029A78 000258B8 38 60 00 00 */ li r3, 0x0
|
|
/* 80029A7C 000258BC 48 00 00 6C */ b lbl_80029AE8
|
|
.global lbl_80029A80
|
|
lbl_80029A80:
|
|
/* 80029A80 000258C0 80 1F 00 0C */ lwz r0, 0xc(r31)
|
|
/* 80029A84 000258C4 54 00 07 34 */ rlwinm r0, r0, 0, 28, 26
|
|
/* 80029A88 000258C8 90 1F 00 0C */ stw r0, 0xc(r31)
|
|
/* 80029A8C 000258CC 7F 83 E3 78 */ mr r3, r28
|
|
/* 80029A90 000258D0 7F E4 FB 78 */ mr r4, r31
|
|
/* 80029A94 000258D4 4B FF EB 5D */ bl SetExiInterruptMask
|
|
/* 80029A98 000258D8 80 7F 00 24 */ lwz r3, 0x24(r31)
|
|
/* 80029A9C 000258DC 2C 03 00 00 */ cmpwi r3, 0x0
|
|
/* 80029AA0 000258E0 40 81 00 3C */ ble lbl_80029ADC
|
|
/* 80029AA4 000258E4 83 BF 00 2C */ lwz r29, 0x2c(r31)
|
|
/* 80029AA8 000258E8 34 03 FF FF */ addic. r0, r3, -0x1
|
|
/* 80029AAC 000258EC 90 1F 00 24 */ stw r0, 0x24(r31)
|
|
/* 80029AB0 000258F0 40 81 00 18 */ ble lbl_80029AC8
|
|
/* 80029AB4 000258F4 38 7F 00 28 */ addi r3, r31, 0x28
|
|
/* 80029AB8 000258F8 38 9F 00 30 */ addi r4, r31, 0x30
|
|
/* 80029ABC 000258FC 80 1F 00 24 */ lwz r0, 0x24(r31)
|
|
/* 80029AC0 00025900 54 05 18 38 */ slwi r5, r0, 3
|
|
/* 80029AC4 00025904 4B FE 12 89 */ bl memmove
|
|
.global lbl_80029AC8
|
|
lbl_80029AC8:
|
|
/* 80029AC8 00025908 7F 83 E3 78 */ mr r3, r28
|
|
/* 80029ACC 0002590C 38 80 00 00 */ li r4, 0x0
|
|
/* 80029AD0 00025910 7F AC EB 78 */ mr r12, r29
|
|
/* 80029AD4 00025914 7D 89 03 A6 */ mtctr r12
|
|
/* 80029AD8 00025918 4E 80 04 21 */ bctrl
|
|
.global lbl_80029ADC
|
|
lbl_80029ADC:
|
|
/* 80029ADC 0002591C 7F C3 F3 78 */ mr r3, r30
|
|
/* 80029AE0 00025920 4B FF 7D 81 */ bl OSRestoreInterrupts
|
|
/* 80029AE4 00025924 38 60 00 01 */ li r3, 0x1
|
|
.global lbl_80029AE8
|
|
lbl_80029AE8:
|
|
/* 80029AE8 00025928 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 80029AEC 0002592C 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 80029AF0 00025930 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 80029AF4 00025934 83 81 00 10 */ lwz r28, 0x10(r1)
|
|
/* 80029AF8 00025938 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 80029AFC 0002593C 7C 08 03 A6 */ mtlr r0
|
|
/* 80029B00 00025940 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 80029B04 00025944 4E 80 00 20 */ blr
|
|
/* 80029B08 00025948 00 00 00 00 */ .4byte 0x00000000
|
|
/* 80029B0C 0002594C 00 00 00 00 */ .4byte 0x00000000
|
|
.global UnlockedHandler
|
|
UnlockedHandler:
|
|
/* 80029B10 00025950 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80029B14 00025954 7C 08 02 A6 */ mflr r0
|
|
/* 80029B18 00025958 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 80029B1C 0002595C 38 80 00 00 */ li r4, 0x0
|
|
/* 80029B20 00025960 38 A1 00 08 */ addi r5, r1, 0x8
|
|
/* 80029B24 00025964 48 00 00 1D */ bl EXIGetID
|
|
/* 80029B28 00025968 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 80029B2C 0002596C 7C 08 03 A6 */ mtlr r0
|
|
/* 80029B30 00025970 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 80029B34 00025974 4E 80 00 20 */ blr
|
|
/* 80029B38 00025978 00 00 00 00 */ .4byte 0x00000000
|
|
/* 80029B3C 0002597C 00 00 00 00 */ .4byte 0x00000000
|
|
.global EXIGetID
|
|
EXIGetID:
|
|
/* 80029B40 00025980 94 21 FF C0 */ stwu r1, -0x40(r1)
|
|
/* 80029B44 00025984 7C 08 02 A6 */ mflr r0
|
|
/* 80029B48 00025988 90 01 00 44 */ stw r0, 0x44(r1)
|
|
/* 80029B4C 0002598C 39 61 00 40 */ addi r11, r1, 0x40
|
|
/* 80029B50 00025990 4B FD D7 DD */ bl lbl_8000732C
|
|
/* 80029B54 00025994 7C 79 1B 78 */ mr r25, r3
|
|
/* 80029B58 00025998 7C 9A 23 78 */ mr r26, r4
|
|
/* 80029B5C 0002599C 7C BB 2B 78 */ mr r27, r5
|
|
/* 80029B60 000259A0 54 60 30 32 */ slwi r0, r3, 6
|
|
/* 80029B64 000259A4 3C C0 80 4A */ lis r6, Ecb@ha
|
|
/* 80029B68 000259A8 38 C6 A2 90 */ addi r6, r6, Ecb@l
|
|
/* 80029B6C 000259AC 7F A6 02 14 */ add r29, r6, r0
|
|
/* 80029B70 000259B0 2C 03 00 00 */ cmpwi r3, 0x0
|
|
/* 80029B74 000259B4 40 82 00 24 */ bne lbl_80029B98
|
|
/* 80029B78 000259B8 28 04 00 02 */ cmplwi r4, 0x2
|
|
/* 80029B7C 000259BC 40 82 00 1C */ bne lbl_80029B98
|
|
/* 80029B80 000259C0 80 0D E4 A8 */ lwz r0, IDSerialPort1@sda21(r13)
|
|
/* 80029B84 000259C4 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80029B88 000259C8 41 82 00 10 */ beq lbl_80029B98
|
|
/* 80029B8C 000259CC 90 05 00 00 */ stw r0, 0x0(r5)
|
|
/* 80029B90 000259D0 38 60 00 01 */ li r3, 0x1
|
|
/* 80029B94 000259D4 48 00 03 3C */ b lbl_80029ED0
|
|
.global lbl_80029B98
|
|
lbl_80029B98:
|
|
/* 80029B98 000259D8 2C 03 00 02 */ cmpwi r3, 0x2
|
|
/* 80029B9C 000259DC 40 80 00 E8 */ bge lbl_80029C84
|
|
/* 80029BA0 000259E0 2C 04 00 00 */ cmpwi r4, 0x0
|
|
/* 80029BA4 000259E4 40 82 00 E0 */ bne lbl_80029C84
|
|
/* 80029BA8 000259E8 7F 23 CB 78 */ mr r3, r25
|
|
/* 80029BAC 000259EC 4B FF F2 75 */ bl __EXIProbe
|
|
/* 80029BB0 000259F0 2C 03 00 00 */ cmpwi r3, 0x0
|
|
/* 80029BB4 000259F4 40 82 00 0C */ bne lbl_80029BC0
|
|
/* 80029BB8 000259F8 38 60 00 00 */ li r3, 0x0
|
|
/* 80029BBC 000259FC 48 00 03 14 */ b lbl_80029ED0
|
|
.global lbl_80029BC0
|
|
lbl_80029BC0:
|
|
/* 80029BC0 00025A00 57 23 10 3A */ slwi r3, r25, 2
|
|
/* 80029BC4 00025A04 3C 00 80 00 */ lis r0, 0x8000
|
|
/* 80029BC8 00025A08 7F E0 1A 14 */ add r31, r0, r3
|
|
/* 80029BCC 00025A0C 80 7D 00 20 */ lwz r3, 0x20(r29)
|
|
/* 80029BD0 00025A10 80 1F 30 C0 */ lwz r0, 0x30c0(r31)
|
|
/* 80029BD4 00025A14 7C 03 00 00 */ cmpw r3, r0
|
|
/* 80029BD8 00025A18 40 82 00 14 */ bne lbl_80029BEC
|
|
/* 80029BDC 00025A1C 80 1D 00 1C */ lwz r0, 0x1c(r29)
|
|
/* 80029BE0 00025A20 90 1B 00 00 */ stw r0, 0x0(r27)
|
|
/* 80029BE4 00025A24 80 7D 00 20 */ lwz r3, 0x20(r29)
|
|
/* 80029BE8 00025A28 48 00 02 E8 */ b lbl_80029ED0
|
|
.global lbl_80029BEC
|
|
lbl_80029BEC:
|
|
/* 80029BEC 00025A2C 4B FF 7C 35 */ bl OSDisableInterrupts
|
|
/* 80029BF0 00025A30 7C 7E 1B 78 */ mr r30, r3
|
|
/* 80029BF4 00025A34 80 1D 00 0C */ lwz r0, 0xc(r29)
|
|
/* 80029BF8 00025A38 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
|
|
/* 80029BFC 00025A3C 40 82 00 14 */ bne lbl_80029C10
|
|
/* 80029C00 00025A40 7F 23 CB 78 */ mr r3, r25
|
|
/* 80029C04 00025A44 4B FF F2 1D */ bl __EXIProbe
|
|
/* 80029C08 00025A48 2C 03 00 00 */ cmpwi r3, 0x0
|
|
/* 80029C0C 00025A4C 40 82 00 14 */ bne lbl_80029C20
|
|
.global lbl_80029C10
|
|
lbl_80029C10:
|
|
/* 80029C10 00025A50 7F C3 F3 78 */ mr r3, r30
|
|
/* 80029C14 00025A54 4B FF 7C 4D */ bl OSRestoreInterrupts
|
|
/* 80029C18 00025A58 38 00 00 00 */ li r0, 0x0
|
|
/* 80029C1C 00025A5C 48 00 00 54 */ b lbl_80029C70
|
|
.global lbl_80029C20
|
|
lbl_80029C20:
|
|
/* 80029C20 00025A60 1C 79 00 14 */ mulli r3, r25, 0x14
|
|
/* 80029C24 00025A64 3C 00 CD 00 */ lis r0, 0xcd00
|
|
/* 80029C28 00025A68 7C 60 1A 14 */ add r3, r0, r3
|
|
/* 80029C2C 00025A6C 80 03 68 00 */ lwz r0, 0x6800(r3)
|
|
/* 80029C30 00025A70 70 00 07 F5 */ andi. r0, r0, 0x7f5
|
|
/* 80029C34 00025A74 60 00 00 02 */ ori r0, r0, 0x2
|
|
/* 80029C38 00025A78 90 03 68 00 */ stw r0, 0x6800(r3)
|
|
/* 80029C3C 00025A7C 38 00 00 00 */ li r0, 0x0
|
|
/* 80029C40 00025A80 90 1D 00 08 */ stw r0, 0x8(r29)
|
|
/* 80029C44 00025A84 3C 60 00 10 */ lis r3, 0x10
|
|
/* 80029C48 00025A88 57 20 10 3A */ slwi r0, r25, 2
|
|
/* 80029C4C 00025A8C 7C 19 00 50 */ subf r0, r25, r0
|
|
/* 80029C50 00025A90 7C 63 04 30 */ srw r3, r3, r0
|
|
/* 80029C54 00025A94 4B FF 80 1D */ bl __OSUnmaskInterrupts
|
|
/* 80029C58 00025A98 80 1D 00 0C */ lwz r0, 0xc(r29)
|
|
/* 80029C5C 00025A9C 60 00 00 08 */ ori r0, r0, 0x8
|
|
/* 80029C60 00025AA0 90 1D 00 0C */ stw r0, 0xc(r29)
|
|
/* 80029C64 00025AA4 7F C3 F3 78 */ mr r3, r30
|
|
/* 80029C68 00025AA8 4B FF 7B F9 */ bl OSRestoreInterrupts
|
|
/* 80029C6C 00025AAC 38 00 00 01 */ li r0, 0x1
|
|
.global lbl_80029C70
|
|
lbl_80029C70:
|
|
/* 80029C70 00025AB0 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80029C74 00025AB4 40 82 00 0C */ bne lbl_80029C80
|
|
/* 80029C78 00025AB8 38 60 00 00 */ li r3, 0x0
|
|
/* 80029C7C 00025ABC 48 00 02 54 */ b lbl_80029ED0
|
|
.global lbl_80029C80
|
|
lbl_80029C80:
|
|
/* 80029C80 00025AC0 83 FF 30 C0 */ lwz r31, 0x30c0(r31)
|
|
.global lbl_80029C84
|
|
lbl_80029C84:
|
|
/* 80029C84 00025AC4 4B FF 7B 9D */ bl OSDisableInterrupts
|
|
/* 80029C88 00025AC8 7C 7C 1B 78 */ mr r28, r3
|
|
/* 80029C8C 00025ACC 7F 23 CB 78 */ mr r3, r25
|
|
/* 80029C90 00025AD0 7F 44 D3 78 */ mr r4, r26
|
|
/* 80029C94 00025AD4 38 00 00 00 */ li r0, 0x0
|
|
/* 80029C98 00025AD8 2C 19 00 02 */ cmpwi r25, 0x2
|
|
/* 80029C9C 00025ADC 40 80 00 10 */ bge lbl_80029CAC
|
|
/* 80029CA0 00025AE0 2C 1A 00 00 */ cmpwi r26, 0x0
|
|
/* 80029CA4 00025AE4 40 82 00 08 */ bne lbl_80029CAC
|
|
/* 80029CA8 00025AE8 38 00 00 01 */ li r0, 0x1
|
|
.global lbl_80029CAC
|
|
lbl_80029CAC:
|
|
/* 80029CAC 00025AEC 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80029CB0 00025AF0 38 A0 00 00 */ li r5, 0x0
|
|
/* 80029CB4 00025AF4 41 82 00 0C */ beq lbl_80029CC0
|
|
/* 80029CB8 00025AF8 3C A0 80 03 */ lis r5, UnlockedHandler@ha
|
|
/* 80029CBC 00025AFC 38 A5 9B 10 */ addi r5, r5, UnlockedHandler@l
|
|
.global lbl_80029CC0
|
|
lbl_80029CC0:
|
|
/* 80029CC0 00025B00 4B FF FC 71 */ bl EXILock
|
|
/* 80029CC4 00025B04 7C 60 00 34 */ cntlzw r0, r3
|
|
/* 80029CC8 00025B08 54 1E D9 7F */ srwi. r30, r0, 5
|
|
/* 80029CCC 00025B0C 40 82 01 2C */ bne lbl_80029DF8
|
|
/* 80029CD0 00025B10 7F 23 CB 78 */ mr r3, r25
|
|
/* 80029CD4 00025B14 7F 44 D3 78 */ mr r4, r26
|
|
/* 80029CD8 00025B18 38 A0 00 00 */ li r5, 0x0
|
|
/* 80029CDC 00025B1C 4B FF F4 A5 */ bl EXISelect
|
|
/* 80029CE0 00025B20 7C 60 00 34 */ cntlzw r0, r3
|
|
/* 80029CE4 00025B24 54 1E D9 7F */ srwi. r30, r0, 5
|
|
/* 80029CE8 00025B28 40 82 00 90 */ bne lbl_80029D78
|
|
/* 80029CEC 00025B2C 38 00 00 00 */ li r0, 0x0
|
|
/* 80029CF0 00025B30 90 01 00 08 */ stw r0, 0x8(r1)
|
|
/* 80029CF4 00025B34 7F 23 CB 78 */ mr r3, r25
|
|
/* 80029CF8 00025B38 38 81 00 08 */ addi r4, r1, 0x8
|
|
/* 80029CFC 00025B3C 38 A0 00 02 */ li r5, 0x2
|
|
/* 80029D00 00025B40 38 C0 00 01 */ li r6, 0x1
|
|
/* 80029D04 00025B44 38 E0 00 00 */ li r7, 0x0
|
|
/* 80029D08 00025B48 4B FF E9 D9 */ bl EXIImm
|
|
/* 80029D0C 00025B4C 7C 60 00 34 */ cntlzw r0, r3
|
|
/* 80029D10 00025B50 54 00 D9 7E */ srwi r0, r0, 5
|
|
/* 80029D14 00025B54 7F DE 03 78 */ or r30, r30, r0
|
|
/* 80029D18 00025B58 7F 23 CB 78 */ mr r3, r25
|
|
/* 80029D1C 00025B5C 4B FF ED F5 */ bl EXISync
|
|
/* 80029D20 00025B60 7C 60 00 34 */ cntlzw r0, r3
|
|
/* 80029D24 00025B64 54 00 D9 7E */ srwi r0, r0, 5
|
|
/* 80029D28 00025B68 7F DE 03 78 */ or r30, r30, r0
|
|
/* 80029D2C 00025B6C 7F 23 CB 78 */ mr r3, r25
|
|
/* 80029D30 00025B70 7F 64 DB 78 */ mr r4, r27
|
|
/* 80029D34 00025B74 38 A0 00 04 */ li r5, 0x4
|
|
/* 80029D38 00025B78 38 C0 00 00 */ li r6, 0x0
|
|
/* 80029D3C 00025B7C 38 E0 00 00 */ li r7, 0x0
|
|
/* 80029D40 00025B80 4B FF E9 A1 */ bl EXIImm
|
|
/* 80029D44 00025B84 7C 60 00 34 */ cntlzw r0, r3
|
|
/* 80029D48 00025B88 54 00 D9 7E */ srwi r0, r0, 5
|
|
/* 80029D4C 00025B8C 7F DE 03 78 */ or r30, r30, r0
|
|
/* 80029D50 00025B90 7F 23 CB 78 */ mr r3, r25
|
|
/* 80029D54 00025B94 4B FF ED BD */ bl EXISync
|
|
/* 80029D58 00025B98 7C 60 00 34 */ cntlzw r0, r3
|
|
/* 80029D5C 00025B9C 54 00 D9 7E */ srwi r0, r0, 5
|
|
/* 80029D60 00025BA0 7F DE 03 78 */ or r30, r30, r0
|
|
/* 80029D64 00025BA4 7F 23 CB 78 */ mr r3, r25
|
|
/* 80029D68 00025BA8 4B FF F5 49 */ bl EXIDeselect
|
|
/* 80029D6C 00025BAC 7C 60 00 34 */ cntlzw r0, r3
|
|
/* 80029D70 00025BB0 54 00 D9 7E */ srwi r0, r0, 5
|
|
/* 80029D74 00025BB4 7F DE 03 78 */ or r30, r30, r0
|
|
.global lbl_80029D78
|
|
lbl_80029D78:
|
|
/* 80029D78 00025BB8 4B FF 7A A9 */ bl OSDisableInterrupts
|
|
/* 80029D7C 00025BBC 7C 77 1B 78 */ mr r23, r3
|
|
/* 80029D80 00025BC0 80 1D 00 0C */ lwz r0, 0xc(r29)
|
|
/* 80029D84 00025BC4 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
|
|
/* 80029D88 00025BC8 40 82 00 0C */ bne lbl_80029D94
|
|
/* 80029D8C 00025BCC 4B FF 7A D5 */ bl OSRestoreInterrupts
|
|
/* 80029D90 00025BD0 48 00 00 68 */ b lbl_80029DF8
|
|
.global lbl_80029D94
|
|
lbl_80029D94:
|
|
/* 80029D94 00025BD4 80 1D 00 0C */ lwz r0, 0xc(r29)
|
|
/* 80029D98 00025BD8 54 00 07 34 */ rlwinm r0, r0, 0, 28, 26
|
|
/* 80029D9C 00025BDC 90 1D 00 0C */ stw r0, 0xc(r29)
|
|
/* 80029DA0 00025BE0 7F 23 CB 78 */ mr r3, r25
|
|
/* 80029DA4 00025BE4 7F A4 EB 78 */ mr r4, r29
|
|
/* 80029DA8 00025BE8 4B FF E8 49 */ bl SetExiInterruptMask
|
|
/* 80029DAC 00025BEC 80 7D 00 24 */ lwz r3, 0x24(r29)
|
|
/* 80029DB0 00025BF0 2C 03 00 00 */ cmpwi r3, 0x0
|
|
/* 80029DB4 00025BF4 40 81 00 3C */ ble lbl_80029DF0
|
|
/* 80029DB8 00025BF8 83 1D 00 2C */ lwz r24, 0x2c(r29)
|
|
/* 80029DBC 00025BFC 34 03 FF FF */ addic. r0, r3, -0x1
|
|
/* 80029DC0 00025C00 90 1D 00 24 */ stw r0, 0x24(r29)
|
|
/* 80029DC4 00025C04 40 81 00 18 */ ble lbl_80029DDC
|
|
/* 80029DC8 00025C08 38 7D 00 28 */ addi r3, r29, 0x28
|
|
/* 80029DCC 00025C0C 38 9D 00 30 */ addi r4, r29, 0x30
|
|
/* 80029DD0 00025C10 80 1D 00 24 */ lwz r0, 0x24(r29)
|
|
/* 80029DD4 00025C14 54 05 18 38 */ slwi r5, r0, 3
|
|
/* 80029DD8 00025C18 4B FE 0F 75 */ bl memmove
|
|
.global lbl_80029DDC
|
|
lbl_80029DDC:
|
|
/* 80029DDC 00025C1C 7F 23 CB 78 */ mr r3, r25
|
|
/* 80029DE0 00025C20 38 80 00 00 */ li r4, 0x0
|
|
/* 80029DE4 00025C24 7F 0C C3 78 */ mr r12, r24
|
|
/* 80029DE8 00025C28 7D 89 03 A6 */ mtctr r12
|
|
/* 80029DEC 00025C2C 4E 80 04 21 */ bctrl
|
|
.global lbl_80029DF0
|
|
lbl_80029DF0:
|
|
/* 80029DF0 00025C30 7E E3 BB 78 */ mr r3, r23
|
|
/* 80029DF4 00025C34 4B FF 7A 6D */ bl OSRestoreInterrupts
|
|
.global lbl_80029DF8
|
|
lbl_80029DF8:
|
|
/* 80029DF8 00025C38 7F 83 E3 78 */ mr r3, r28
|
|
/* 80029DFC 00025C3C 4B FF 7A 65 */ bl OSRestoreInterrupts
|
|
/* 80029E00 00025C40 2C 19 00 02 */ cmpwi r25, 0x2
|
|
/* 80029E04 00025C44 40 80 00 C4 */ bge lbl_80029EC8
|
|
/* 80029E08 00025C48 2C 1A 00 00 */ cmpwi r26, 0x0
|
|
/* 80029E0C 00025C4C 40 82 00 BC */ bne lbl_80029EC8
|
|
/* 80029E10 00025C50 4B FF 7A 11 */ bl OSDisableInterrupts
|
|
/* 80029E14 00025C54 7C 77 1B 78 */ mr r23, r3
|
|
/* 80029E18 00025C58 80 1D 00 0C */ lwz r0, 0xc(r29)
|
|
/* 80029E1C 00025C5C 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
|
|
/* 80029E20 00025C60 40 82 00 0C */ bne lbl_80029E2C
|
|
/* 80029E24 00025C64 4B FF 7A 3D */ bl OSRestoreInterrupts
|
|
/* 80029E28 00025C68 48 00 00 4C */ b lbl_80029E74
|
|
.global lbl_80029E2C
|
|
lbl_80029E2C:
|
|
/* 80029E2C 00025C6C 80 1D 00 0C */ lwz r0, 0xc(r29)
|
|
/* 80029E30 00025C70 54 00 06 F7 */ rlwinm. r0, r0, 0, 27, 27
|
|
/* 80029E34 00025C74 41 82 00 18 */ beq lbl_80029E4C
|
|
/* 80029E38 00025C78 80 1D 00 18 */ lwz r0, 0x18(r29)
|
|
/* 80029E3C 00025C7C 2C 00 00 00 */ cmpwi r0, 0x0
|
|
/* 80029E40 00025C80 40 82 00 0C */ bne lbl_80029E4C
|
|
/* 80029E44 00025C84 4B FF 7A 1D */ bl OSRestoreInterrupts
|
|
/* 80029E48 00025C88 48 00 00 2C */ b lbl_80029E74
|
|
.global lbl_80029E4C
|
|
lbl_80029E4C:
|
|
/* 80029E4C 00025C8C 80 1D 00 0C */ lwz r0, 0xc(r29)
|
|
/* 80029E50 00025C90 54 00 07 76 */ rlwinm r0, r0, 0, 29, 27
|
|
/* 80029E54 00025C94 90 1D 00 0C */ stw r0, 0xc(r29)
|
|
/* 80029E58 00025C98 3C 60 00 50 */ lis r3, 0x50
|
|
/* 80029E5C 00025C9C 57 20 10 3A */ slwi r0, r25, 2
|
|
/* 80029E60 00025CA0 7C 19 00 50 */ subf r0, r25, r0
|
|
/* 80029E64 00025CA4 7C 63 04 30 */ srw r3, r3, r0
|
|
/* 80029E68 00025CA8 4B FF 7D 89 */ bl __OSMaskInterrupts
|
|
/* 80029E6C 00025CAC 7E E3 BB 78 */ mr r3, r23
|
|
/* 80029E70 00025CB0 4B FF 79 F1 */ bl OSRestoreInterrupts
|
|
.global lbl_80029E74
|
|
lbl_80029E74:
|
|
/* 80029E74 00025CB4 4B FF 79 AD */ bl OSDisableInterrupts
|
|
/* 80029E78 00025CB8 57 24 10 3A */ slwi r4, r25, 2
|
|
/* 80029E7C 00025CBC 3C 00 80 00 */ lis r0, 0x8000
|
|
/* 80029E80 00025CC0 7C 80 22 14 */ add r4, r0, r4
|
|
/* 80029E84 00025CC4 80 04 30 C0 */ lwz r0, 0x30c0(r4)
|
|
/* 80029E88 00025CC8 7C 9F 00 50 */ subf r4, r31, r0
|
|
/* 80029E8C 00025CCC 7C 00 F8 50 */ subf r0, r0, r31
|
|
/* 80029E90 00025CD0 7C 80 03 78 */ or r0, r4, r0
|
|
/* 80029E94 00025CD4 54 00 0F FE */ srwi r0, r0, 31
|
|
/* 80029E98 00025CD8 7F DE 03 79 */ or. r30, r30, r0
|
|
/* 80029E9C 00025CDC 40 82 00 10 */ bne lbl_80029EAC
|
|
/* 80029EA0 00025CE0 80 1B 00 00 */ lwz r0, 0x0(r27)
|
|
/* 80029EA4 00025CE4 90 1D 00 1C */ stw r0, 0x1c(r29)
|
|
/* 80029EA8 00025CE8 93 FD 00 20 */ stw r31, 0x20(r29)
|
|
.global lbl_80029EAC
|
|
lbl_80029EAC:
|
|
/* 80029EAC 00025CEC 4B FF 79 B5 */ bl OSRestoreInterrupts
|
|
/* 80029EB0 00025CF0 2C 1E 00 00 */ cmpwi r30, 0x0
|
|
/* 80029EB4 00025CF4 41 82 00 0C */ beq lbl_80029EC0
|
|
/* 80029EB8 00025CF8 38 60 00 00 */ li r3, 0x0
|
|
/* 80029EBC 00025CFC 48 00 00 14 */ b lbl_80029ED0
|
|
.global lbl_80029EC0
|
|
lbl_80029EC0:
|
|
/* 80029EC0 00025D00 80 7D 00 20 */ lwz r3, 0x20(r29)
|
|
/* 80029EC4 00025D04 48 00 00 0C */ b lbl_80029ED0
|
|
.global lbl_80029EC8
|
|
lbl_80029EC8:
|
|
/* 80029EC8 00025D08 7F C0 00 34 */ cntlzw r0, r30
|
|
/* 80029ECC 00025D0C 54 03 D9 7E */ srwi r3, r0, 5
|
|
.global lbl_80029ED0
|
|
lbl_80029ED0:
|
|
/* 80029ED0 00025D10 39 61 00 40 */ addi r11, r1, 0x40
|
|
/* 80029ED4 00025D14 4B FD D4 A5 */ bl lbl_80007378
|
|
/* 80029ED8 00025D18 80 01 00 44 */ lwz r0, 0x44(r1)
|
|
/* 80029EDC 00025D1C 7C 08 03 A6 */ mtlr r0
|
|
/* 80029EE0 00025D20 38 21 00 40 */ addi r1, r1, 0x40
|
|
/* 80029EE4 00025D24 4E 80 00 20 */ blr
|
|
/* 80029EE8 00025D28 00 00 00 00 */ .4byte 0x00000000
|
|
/* 80029EEC 00025D2C 00 00 00 00 */ .4byte 0x00000000
|
|
.include "macros.inc"
|
|
|
|
.section .data, "wa" # 0x80421040 - 0x80496700 ; 0x000756C0
|
|
.global "@1_8042FB40"
|
|
"@1_8042FB40":
|
|
|
|
.4byte 0x3C3C2052
|
|
.4byte 0x564C5F53
|
|
.4byte 0x444B202D
|
|
.4byte 0x20455849
|
|
.4byte 0x20097265
|
|
.4byte 0x6C656173
|
|
.4byte 0x65206275
|
|
.4byte 0x696C643A
|
|
.4byte 0x20417567
|
|
.4byte 0x20323320
|
|
.4byte 0x32303130
|
|
.4byte 0x2031373A
|
|
.4byte 0x33303A30
|
|
.4byte 0x38202830
|
|
.4byte 0x78343330
|
|
.4byte 0x325F3134
|
|
.4byte 0x3529203E
|
|
.4byte 0x3E000000
|
|
.include "macros.inc"
|
|
|
|
.section .bss, "", @nobits # 0x80496700 - 0x80556420 ; 0x000BFD20
|
|
.global Ecb
|
|
Ecb:
|
|
.skip 0xC0
|
|
.include "macros.inc"
|
|
|
|
.section .sdata, "wa" # 0x80556420 - 0x8055C6E0 ; 0x000062C0
|
|
.global __EXIVersion
|
|
__EXIVersion:
|
|
|
|
.4byte "@1_8042FB40"
|
|
.4byte 0
|
|
.include "macros.inc"
|
|
|
|
.section .sbss, "", @nobits # 0x8055C6E0 - 0x8055DF80 ; 0x000018A0
|
|
.global IDSerialPort1
|
|
IDSerialPort1:
|
|
.skip 0x8
|