diff options
Diffstat (limited to 'asm/SDK')
-rw-r--r-- | asm/SDK/OS/OS.s | 1402 | ||||
-rw-r--r-- | asm/SDK/OS/OSAlarm.s | 581 | ||||
-rw-r--r-- | asm/SDK/OS/OSAlloc.s | 167 |
3 files changed, 2150 insertions, 0 deletions
diff --git a/asm/SDK/OS/OS.s b/asm/SDK/OS/OS.s new file mode 100644 index 0000000..1a6655a --- /dev/null +++ b/asm/SDK/OS/OS.s @@ -0,0 +1,1402 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global __OSFPRInit +__OSFPRInit: +/* 80268398 00263FF8 7C 60 00 A6 */ mfmsr r3 +/* 8026839C 00263FFC 60 63 20 00 */ ori r3, r3, 0x2000 +/* 802683A0 00264000 7C 60 01 24 */ mtmsr r3 +/* 802683A4 00264004 7C 78 E2 A6 */ mfspr r3, 0x398 +/* 802683A8 00264008 54 63 1F FF */ rlwinm. r3, r3, 3, 0x1f, 0x1f +/* 802683AC 0026400C 41 82 00 8C */ beq lbl_80268438 +/* 802683B0 00264010 3C 60 80 64 */ lis r3, lbl_8063FA40@ha +/* 802683B4 00264014 38 63 FA 40 */ addi r3, r3, lbl_8063FA40@l +/* 802683B8 00264018 E0 03 00 00 */ psq_l f0, 0(r3), 0, qr0 +/* 802683BC 0026401C 10 20 00 90 */ ps_mr f1, f0 +/* 802683C0 00264020 10 40 00 90 */ ps_mr f2, f0 +/* 802683C4 00264024 10 60 00 90 */ ps_mr f3, f0 +/* 802683C8 00264028 10 80 00 90 */ ps_mr f4, f0 +/* 802683CC 0026402C 10 A0 00 90 */ ps_mr f5, f0 +/* 802683D0 00264030 10 C0 00 90 */ ps_mr f6, f0 +/* 802683D4 00264034 10 E0 00 90 */ ps_mr f7, f0 +/* 802683D8 00264038 11 00 00 90 */ ps_mr f8, f0 +/* 802683DC 0026403C 11 20 00 90 */ ps_mr f9, f0 +/* 802683E0 00264040 11 40 00 90 */ ps_mr f10, f0 +/* 802683E4 00264044 11 60 00 90 */ ps_mr f11, f0 +/* 802683E8 00264048 11 80 00 90 */ ps_mr f12, f0 +/* 802683EC 0026404C 11 A0 00 90 */ ps_mr f13, f0 +/* 802683F0 00264050 11 C0 00 90 */ ps_mr f14, f0 +/* 802683F4 00264054 11 E0 00 90 */ ps_mr f15, f0 +/* 802683F8 00264058 12 00 00 90 */ ps_mr f16, f0 +/* 802683FC 0026405C 12 20 00 90 */ ps_mr f17, f0 +/* 80268400 00264060 12 40 00 90 */ ps_mr f18, f0 +/* 80268404 00264064 12 60 00 90 */ ps_mr f19, f0 +/* 80268408 00264068 12 80 00 90 */ ps_mr f20, f0 +/* 8026840C 0026406C 12 A0 00 90 */ ps_mr f21, f0 +/* 80268410 00264070 12 C0 00 90 */ ps_mr f22, f0 +/* 80268414 00264074 12 E0 00 90 */ ps_mr f23, f0 +/* 80268418 00264078 13 00 00 90 */ ps_mr f24, f0 +/* 8026841C 0026407C 13 20 00 90 */ ps_mr f25, f0 +/* 80268420 00264080 13 40 00 90 */ ps_mr f26, f0 +/* 80268424 00264084 13 60 00 90 */ ps_mr f27, f0 +/* 80268428 00264088 13 80 00 90 */ ps_mr f28, f0 +/* 8026842C 0026408C 13 A0 00 90 */ ps_mr f29, f0 +/* 80268430 00264090 13 C0 00 90 */ ps_mr f30, f0 +/* 80268434 00264094 13 E0 00 90 */ ps_mr f31, f0 +lbl_80268438: +/* 80268438 00264098 C8 0D A7 88 */ lfd f0, lbl_8063FA48-_SDA_BASE_(r13) +/* 8026843C 0026409C FC 20 00 90 */ fmr f1, f0 +/* 80268440 002640A0 FC 40 00 90 */ fmr f2, f0 +/* 80268444 002640A4 FC 60 00 90 */ fmr f3, f0 +/* 80268448 002640A8 FC 80 00 90 */ fmr f4, f0 +/* 8026844C 002640AC FC A0 00 90 */ fmr f5, f0 +/* 80268450 002640B0 FC C0 00 90 */ fmr f6, f0 +/* 80268454 002640B4 FC E0 00 90 */ fmr f7, f0 +/* 80268458 002640B8 FD 00 00 90 */ fmr f8, f0 +/* 8026845C 002640BC FD 20 00 90 */ fmr f9, f0 +/* 80268460 002640C0 FD 40 00 90 */ fmr f10, f0 +/* 80268464 002640C4 FD 60 00 90 */ fmr f11, f0 +/* 80268468 002640C8 FD 80 00 90 */ fmr f12, f0 +/* 8026846C 002640CC FD A0 00 90 */ fmr f13, f0 +/* 80268470 002640D0 FD C0 00 90 */ fmr f14, f0 +/* 80268474 002640D4 FD E0 00 90 */ fmr f15, f0 +/* 80268478 002640D8 FE 00 00 90 */ fmr f16, f0 +/* 8026847C 002640DC FE 20 00 90 */ fmr f17, f0 +/* 80268480 002640E0 FE 40 00 90 */ fmr f18, f0 +/* 80268484 002640E4 FE 60 00 90 */ fmr f19, f0 +/* 80268488 002640E8 FE 80 00 90 */ fmr f20, f0 +/* 8026848C 002640EC FE A0 00 90 */ fmr f21, f0 +/* 80268490 002640F0 FE C0 00 90 */ fmr f22, f0 +/* 80268494 002640F4 FE E0 00 90 */ fmr f23, f0 +/* 80268498 002640F8 FF 00 00 90 */ fmr f24, f0 +/* 8026849C 002640FC FF 20 00 90 */ fmr f25, f0 +/* 802684A0 00264100 FF 40 00 90 */ fmr f26, f0 +/* 802684A4 00264104 FF 60 00 90 */ fmr f27, f0 +/* 802684A8 00264108 FF 80 00 90 */ fmr f28, f0 +/* 802684AC 0026410C FF A0 00 90 */ fmr f29, f0 +/* 802684B0 00264110 FF C0 00 90 */ fmr f30, f0 +/* 802684B4 00264114 FF E0 00 90 */ fmr f31, f0 +/* 802684B8 00264118 FD FE 05 8E */ mtfsf 0xff, f0 +/* 802684BC 0026411C 4E 80 00 20 */ blr + +.global __OSGetIOSRev +__OSGetIOSRev: +/* 802684C0 00264120 3C 80 C0 00 */ lis r4, 0xC0003144@ha +/* 802684C4 00264124 81 44 31 44 */ lwz r10, 0xC0003144@l(r4) +/* 802684C8 00264128 81 24 31 40 */ lwz r9, 0x3140(r4) +/* 802684CC 0026412C 55 40 E7 3E */ rlwinm r0, r10, 0x1c, 0x1c, 0x1f +/* 802684D0 00264130 55 46 67 3E */ rlwinm r6, r10, 0xc, 0x1c, 0x1f +/* 802684D4 00264134 1C 80 00 0A */ mulli r4, r0, 0xa +/* 802684D8 00264138 55 27 46 3E */ srwi r7, r9, 0x18 +/* 802684DC 0026413C 55 40 07 3E */ clrlwi r0, r10, 0x1c +/* 802684E0 00264140 98 E3 00 00 */ stb r7, 0(r3) +/* 802684E4 00264144 55 28 86 3E */ rlwinm r8, r9, 0x10, 0x18, 0x1f +/* 802684E8 00264148 7C 80 22 14 */ add r4, r0, r4 +/* 802684EC 0026414C 38 04 07 D0 */ addi r0, r4, 0x7d0 +/* 802684F0 00264150 55 45 A7 3E */ rlwinm r5, r10, 0x14, 0x1c, 0x1f +/* 802684F4 00264154 1C 85 00 0A */ mulli r4, r5, 0xa +/* 802684F8 00264158 99 03 00 01 */ stb r8, 1(r3) +/* 802684FC 0026415C 55 45 C7 3E */ rlwinm r5, r10, 0x18, 0x1c, 0x1f +/* 80268500 00264160 55 28 C6 3E */ rlwinm r8, r9, 0x18, 0x18, 0x1f +/* 80268504 00264164 99 23 00 03 */ stb r9, 3(r3) +/* 80268508 00264168 7C 85 22 14 */ add r4, r5, r4 +/* 8026850C 0026416C 1C C6 00 0A */ mulli r6, r6, 0xa +/* 80268510 00264170 55 47 87 3E */ rlwinm r7, r10, 0x10, 0x1c, 0x1f +/* 80268514 00264174 99 03 00 02 */ stb r8, 2(r3) +/* 80268518 00264178 7C C7 32 14 */ add r6, r7, r6 +/* 8026851C 0026417C 98 83 00 05 */ stb r4, 5(r3) +/* 80268520 00264180 98 C3 00 04 */ stb r6, 4(r3) +/* 80268524 00264184 B0 03 00 06 */ sth r0, 6(r3) +/* 80268528 00264188 4E 80 00 20 */ blr + +.global OSGetConsoleType +OSGetConsoleType: +/* 8026852C 0026418C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80268530 00264190 7C 08 02 A6 */ mflr r0 +/* 80268534 00264194 90 01 00 14 */ stw r0, 0x14(r1) +/* 80268538 00264198 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8026853C 0026419C 80 6D A7 A0 */ lwz r3, lbl_8063FA60-_SDA_BASE_(r13) +/* 80268540 002641A0 2C 03 00 00 */ cmpwi r3, 0 +/* 80268544 002641A4 41 82 00 10 */ beq lbl_80268554 +/* 80268548 002641A8 80 03 00 2C */ lwz r0, 0x2c(r3) +/* 8026854C 002641AC 2C 00 00 00 */ cmpwi r0, 0 +/* 80268550 002641B0 40 82 00 10 */ bne lbl_80268560 +lbl_80268554: +/* 80268554 002641B4 3C 60 10 00 */ lis r3, 0x10000002@ha +/* 80268558 002641B8 38 63 00 02 */ addi r3, r3, 0x10000002@l +/* 8026855C 002641BC 48 00 02 2C */ b lbl_80268788 +lbl_80268560: +/* 80268560 002641C0 3C 60 80 00 */ lis r3, 0x800030E6@ha +/* 80268564 002641C4 A0 03 30 E6 */ lhz r0, 0x800030E6@l(r3) +/* 80268568 002641C8 83 E3 31 38 */ lwz r31, 0x3138(r3) +/* 8026856C 002641CC 54 00 04 21 */ rlwinm. r0, r0, 0, 0x10, 0x10 +/* 80268570 002641D0 41 82 01 28 */ beq lbl_80268698 +/* 80268574 002641D4 A0 03 30 E6 */ lhz r0, 0x30e6(r3) +/* 80268578 002641D8 54 00 04 5E */ rlwinm r0, r0, 0, 0x11, 0xf +/* 8026857C 002641DC 2C 00 02 01 */ cmpwi r0, 0x201 +/* 80268580 002641E0 40 80 00 18 */ bge lbl_80268598 +/* 80268584 002641E4 2C 00 00 04 */ cmpwi r0, 4 +/* 80268588 002641E8 40 80 01 10 */ bge lbl_80268698 +/* 8026858C 002641EC 2C 00 00 02 */ cmpwi r0, 2 +/* 80268590 002641F0 40 80 00 18 */ bge lbl_802685A8 +/* 80268594 002641F4 48 00 01 04 */ b lbl_80268698 +lbl_80268598: +/* 80268598 002641F8 2C 00 02 03 */ cmpwi r0, 0x203 +/* 8026859C 002641FC 41 82 00 0C */ beq lbl_802685A8 +/* 802685A0 00264200 40 80 00 F8 */ bge lbl_80268698 +/* 802685A4 00264204 48 00 00 70 */ b lbl_80268614 +lbl_802685A8: +/* 802685A8 00264208 2C 1F 00 02 */ cmpwi r31, 2 +/* 802685AC 0026420C 41 82 00 40 */ beq lbl_802685EC +/* 802685B0 00264210 40 80 00 14 */ bge lbl_802685C4 +/* 802685B4 00264214 2C 1F 00 00 */ cmpwi r31, 0 +/* 802685B8 00264218 41 82 00 24 */ beq lbl_802685DC +/* 802685BC 0026421C 40 80 00 28 */ bge lbl_802685E4 +/* 802685C0 00264220 48 00 00 44 */ b lbl_80268604 +lbl_802685C4: +/* 802685C4 00264224 2C 1F 00 11 */ cmpwi r31, 0x11 +/* 802685C8 00264228 41 82 00 34 */ beq lbl_802685FC +/* 802685CC 0026422C 40 80 00 38 */ bge lbl_80268604 +/* 802685D0 00264230 2C 1F 00 10 */ cmpwi r31, 0x10 +/* 802685D4 00264234 40 80 00 20 */ bge lbl_802685F4 +/* 802685D8 00264238 48 00 00 2C */ b lbl_80268604 +lbl_802685DC: +/* 802685DC 0026423C 38 60 00 10 */ li r3, 0x10 +/* 802685E0 00264240 48 00 01 A8 */ b lbl_80268788 +lbl_802685E4: +/* 802685E4 00264244 38 60 00 11 */ li r3, 0x11 +/* 802685E8 00264248 48 00 01 A0 */ b lbl_80268788 +lbl_802685EC: +/* 802685EC 0026424C 38 60 00 12 */ li r3, 0x12 +/* 802685F0 00264250 48 00 01 98 */ b lbl_80268788 +lbl_802685F4: +/* 802685F4 00264254 38 60 00 20 */ li r3, 0x20 +/* 802685F8 00264258 48 00 01 90 */ b lbl_80268788 +lbl_802685FC: +/* 802685FC 0026425C 38 60 00 21 */ li r3, 0x21 +/* 80268600 00264260 48 00 01 88 */ b lbl_80268788 +lbl_80268604: +/* 80268604 00264264 28 1F 00 11 */ cmplwi r31, 0x11 +/* 80268608 00264268 40 81 00 0C */ ble lbl_80268614 +/* 8026860C 0026426C 38 60 00 21 */ li r3, 0x21 +/* 80268610 00264270 48 00 01 78 */ b lbl_80268788 +lbl_80268614: +/* 80268614 00264274 2C 1F 00 02 */ cmpwi r31, 2 +/* 80268618 00264278 41 82 00 48 */ beq lbl_80268660 +/* 8026861C 0026427C 40 80 00 14 */ bge lbl_80268630 +/* 80268620 00264280 2C 1F 00 00 */ cmpwi r31, 0 +/* 80268624 00264284 41 82 00 24 */ beq lbl_80268648 +/* 80268628 00264288 40 80 00 2C */ bge lbl_80268654 +/* 8026862C 0026428C 48 00 00 58 */ b lbl_80268684 +lbl_80268630: +/* 80268630 00264290 2C 1F 00 11 */ cmpwi r31, 0x11 +/* 80268634 00264294 41 82 00 44 */ beq lbl_80268678 +/* 80268638 00264298 40 80 00 4C */ bge lbl_80268684 +/* 8026863C 0026429C 2C 1F 00 10 */ cmpwi r31, 0x10 +/* 80268640 002642A0 40 80 00 2C */ bge lbl_8026866C +/* 80268644 002642A4 48 00 00 40 */ b lbl_80268684 +lbl_80268648: +/* 80268648 002642A8 3C 60 10 00 */ lis r3, 0x10000010@ha +/* 8026864C 002642AC 38 63 00 10 */ addi r3, r3, 0x10000010@l +/* 80268650 002642B0 48 00 01 38 */ b lbl_80268788 +lbl_80268654: +/* 80268654 002642B4 3C 60 10 00 */ lis r3, 0x10000011@ha +/* 80268658 002642B8 38 63 00 11 */ addi r3, r3, 0x10000011@l +/* 8026865C 002642BC 48 00 01 2C */ b lbl_80268788 +lbl_80268660: +/* 80268660 002642C0 3C 60 10 00 */ lis r3, 0x10000012@ha +/* 80268664 002642C4 38 63 00 12 */ addi r3, r3, 0x10000012@l +/* 80268668 002642C8 48 00 01 20 */ b lbl_80268788 +lbl_8026866C: +/* 8026866C 002642CC 3C 60 10 00 */ lis r3, 0x10000020@ha +/* 80268670 002642D0 38 63 00 20 */ addi r3, r3, 0x10000020@l +/* 80268674 002642D4 48 00 01 14 */ b lbl_80268788 +lbl_80268678: +/* 80268678 002642D8 3C 60 10 00 */ lis r3, 0x10000021@ha +/* 8026867C 002642DC 38 63 00 21 */ addi r3, r3, 0x10000021@l +/* 80268680 002642E0 48 00 01 08 */ b lbl_80268788 +lbl_80268684: +/* 80268684 002642E4 28 1F 00 11 */ cmplwi r31, 0x11 +/* 80268688 002642E8 40 81 00 10 */ ble lbl_80268698 +/* 8026868C 002642EC 3C 60 10 00 */ lis r3, 0x10000021@ha +/* 80268690 002642F0 38 63 00 21 */ addi r3, r3, 0x10000021@l +/* 80268694 002642F4 48 00 00 F4 */ b lbl_80268788 +lbl_80268698: +/* 80268698 002642F8 48 00 6A 71 */ bl func_8026F108 +/* 8026869C 002642FC 2C 1F 00 02 */ cmpwi r31, 2 +/* 802686A0 00264300 41 82 00 68 */ beq lbl_80268708 +/* 802686A4 00264304 40 80 00 14 */ bge lbl_802686B8 +/* 802686A8 00264308 2C 1F 00 00 */ cmpwi r31, 0 +/* 802686AC 0026430C 41 82 00 24 */ beq lbl_802686D0 +/* 802686B0 00264310 40 80 00 3C */ bge lbl_802686EC +/* 802686B4 00264314 48 00 00 A8 */ b lbl_8026875C +lbl_802686B8: +/* 802686B8 00264318 2C 1F 00 11 */ cmpwi r31, 0x11 +/* 802686BC 0026431C 41 82 00 84 */ beq lbl_80268740 +/* 802686C0 00264320 40 80 00 9C */ bge lbl_8026875C +/* 802686C4 00264324 2C 1F 00 10 */ cmpwi r31, 0x10 +/* 802686C8 00264328 40 80 00 5C */ bge lbl_80268724 +/* 802686CC 0026432C 48 00 00 90 */ b lbl_8026875C +lbl_802686D0: +/* 802686D0 00264330 3C 03 FC 00 */ addis r0, r3, 0xfc00 +/* 802686D4 00264334 3C 60 10 00 */ lis r3, 0x10000010@ha +/* 802686D8 00264338 28 00 00 00 */ cmplwi r0, 0 +/* 802686DC 0026433C 38 63 00 10 */ addi r3, r3, 0x10000010@l +/* 802686E0 00264340 40 82 00 A8 */ bne lbl_80268788 +/* 802686E4 00264344 38 60 00 10 */ li r3, 0x10 +/* 802686E8 00264348 48 00 00 A0 */ b lbl_80268788 +lbl_802686EC: +/* 802686EC 0026434C 3C 03 FC 00 */ addis r0, r3, 0xfc00 +/* 802686F0 00264350 3C 60 10 00 */ lis r3, 0x10000011@ha +/* 802686F4 00264354 28 00 00 00 */ cmplwi r0, 0 +/* 802686F8 00264358 38 63 00 11 */ addi r3, r3, 0x10000011@l +/* 802686FC 0026435C 40 82 00 8C */ bne lbl_80268788 +/* 80268700 00264360 38 60 00 11 */ li r3, 0x11 +/* 80268704 00264364 48 00 00 84 */ b lbl_80268788 +lbl_80268708: +/* 80268708 00264368 3C 03 FC 00 */ addis r0, r3, 0xfc00 +/* 8026870C 0026436C 3C 60 10 00 */ lis r3, 0x10000012@ha +/* 80268710 00264370 28 00 00 00 */ cmplwi r0, 0 +/* 80268714 00264374 38 63 00 12 */ addi r3, r3, 0x10000012@l +/* 80268718 00264378 40 82 00 70 */ bne lbl_80268788 +/* 8026871C 0026437C 38 60 00 12 */ li r3, 0x12 +/* 80268720 00264380 48 00 00 68 */ b lbl_80268788 +lbl_80268724: +/* 80268724 00264384 3C 03 FC 00 */ addis r0, r3, 0xfc00 +/* 80268728 00264388 3C 60 10 00 */ lis r3, 0x10000020@ha +/* 8026872C 0026438C 28 00 00 00 */ cmplwi r0, 0 +/* 80268730 00264390 38 63 00 20 */ addi r3, r3, 0x10000020@l +/* 80268734 00264394 40 82 00 54 */ bne lbl_80268788 +/* 80268738 00264398 38 60 00 20 */ li r3, 0x20 +/* 8026873C 0026439C 48 00 00 4C */ b lbl_80268788 +lbl_80268740: +/* 80268740 002643A0 3C 03 FC 00 */ addis r0, r3, 0xfc00 +/* 80268744 002643A4 3C 60 10 00 */ lis r3, 0x10000021@ha +/* 80268748 002643A8 28 00 00 00 */ cmplwi r0, 0 +/* 8026874C 002643AC 38 63 00 21 */ addi r3, r3, 0x10000021@l +/* 80268750 002643B0 40 82 00 38 */ bne lbl_80268788 +/* 80268754 002643B4 38 60 00 21 */ li r3, 0x21 +/* 80268758 002643B8 48 00 00 30 */ b lbl_80268788 +lbl_8026875C: +/* 8026875C 002643BC 28 1F 00 11 */ cmplwi r31, 0x11 +/* 80268760 002643C0 40 81 00 20 */ ble lbl_80268780 +/* 80268764 002643C4 3C 03 FC 00 */ addis r0, r3, 0xfc00 +/* 80268768 002643C8 3C 60 10 00 */ lis r3, 0x10000021@ha +/* 8026876C 002643CC 28 00 00 00 */ cmplwi r0, 0 +/* 80268770 002643D0 38 63 00 21 */ addi r3, r3, 0x10000021@l +/* 80268774 002643D4 40 82 00 14 */ bne lbl_80268788 +/* 80268778 002643D8 38 60 00 21 */ li r3, 0x21 +/* 8026877C 002643DC 48 00 00 0C */ b lbl_80268788 +lbl_80268780: +/* 80268780 002643E0 80 6D A7 A0 */ lwz r3, lbl_8063FA60-_SDA_BASE_(r13) +/* 80268784 002643E4 80 63 00 2C */ lwz r3, 0x2c(r3) +lbl_80268788: +/* 80268788 002643E8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8026878C 002643EC 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80268790 002643F0 7C 08 03 A6 */ mtlr r0 +/* 80268794 002643F4 38 21 00 10 */ addi r1, r1, 0x10 +/* 80268798 002643F8 4E 80 00 20 */ blr + +.global ClearArena +ClearArena: +/* 8026879C 002643FC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802687A0 00264400 7C 08 02 A6 */ mflr r0 +/* 802687A4 00264404 90 01 00 14 */ stw r0, 0x14(r1) +/* 802687A8 00264408 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802687AC 0026440C 93 C1 00 08 */ stw r30, 8(r1) +/* 802687B0 00264410 48 00 7B E1 */ bl OSGetResetCode +/* 802687B4 00264414 54 60 0F FF */ rlwinm. r0, r3, 1, 0x1f, 0x1f +/* 802687B8 00264418 40 82 00 4C */ bne lbl_80268804 +/* 802687BC 0026441C 48 00 19 21 */ bl func_8026A0DC +/* 802687C0 00264420 7C 7F 1B 78 */ mr r31, r3 +/* 802687C4 00264424 48 00 19 31 */ bl func_8026A0F4 +/* 802687C8 00264428 7F E3 F8 50 */ subf r31, r3, r31 +/* 802687CC 0026442C 48 00 19 29 */ bl func_8026A0F4 +/* 802687D0 00264430 3C 00 00 04 */ lis r0, 4 +/* 802687D4 00264434 7C 1F 00 40 */ cmplw r31, r0 +/* 802687D8 00264438 40 81 00 10 */ ble lbl_802687E8 +/* 802687DC 0026443C 3F DF FF FC */ addis r30, r31, 0xfffc +/* 802687E0 00264440 7F C3 F2 14 */ add r30, r3, r30 +/* 802687E4 00264444 48 00 00 08 */ b lbl_802687EC +lbl_802687E8: +/* 802687E8 00264448 7C 7E 1B 78 */ mr r30, r3 +lbl_802687EC: +/* 802687EC 0026444C 7F E4 FB 78 */ mr r4, r31 +/* 802687F0 00264450 48 00 1F 1D */ bl DCZeroRange +/* 802687F4 00264454 7F C3 F3 78 */ mr r3, r30 +/* 802687F8 00264458 3C 80 00 04 */ lis r4, 4 +/* 802687FC 0026445C 48 00 1E 59 */ bl DCFlushRange +/* 80268800 00264460 48 00 01 60 */ b lbl_80268960 +lbl_80268804: +/* 80268804 00264464 3F E0 80 50 */ lis r31, lbl_80503C80@ha +/* 80268808 00264468 3B FF 3C 80 */ addi r31, r31, lbl_80503C80@l +/* 8026880C 0026446C 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 80268810 00264470 2C 00 00 00 */ cmpwi r0, 0 +/* 80268814 00264474 41 82 00 0C */ beq lbl_80268820 +/* 80268818 00264478 54 00 00 87 */ rlwinm. r0, r0, 0, 2, 3 +/* 8026881C 0026447C 41 82 00 4C */ beq lbl_80268868 +lbl_80268820: +/* 80268820 00264480 48 00 18 BD */ bl func_8026A0DC +/* 80268824 00264484 7C 7F 1B 78 */ mr r31, r3 +/* 80268828 00264488 48 00 18 CD */ bl func_8026A0F4 +/* 8026882C 0026448C 7F E3 F8 50 */ subf r31, r3, r31 +/* 80268830 00264490 48 00 18 C5 */ bl func_8026A0F4 +/* 80268834 00264494 3C 00 00 04 */ lis r0, 4 +/* 80268838 00264498 7C 1F 00 40 */ cmplw r31, r0 +/* 8026883C 0026449C 40 81 00 10 */ ble lbl_8026884C +/* 80268840 002644A0 3F DF FF FC */ addis r30, r31, 0xfffc +/* 80268844 002644A4 7F C3 F2 14 */ add r30, r3, r30 +/* 80268848 002644A8 48 00 00 08 */ b lbl_80268850 +lbl_8026884C: +/* 8026884C 002644AC 7C 7E 1B 78 */ mr r30, r3 +lbl_80268850: +/* 80268850 002644B0 7F E4 FB 78 */ mr r4, r31 +/* 80268854 002644B4 48 00 1E B9 */ bl DCZeroRange +/* 80268858 002644B8 7F C3 F3 78 */ mr r3, r30 +/* 8026885C 002644BC 3C 80 00 04 */ lis r4, 4 +/* 80268860 002644C0 48 00 1D F5 */ bl DCFlushRange +/* 80268864 002644C4 48 00 00 FC */ b lbl_80268960 +lbl_80268868: +/* 80268868 002644C8 48 00 18 8D */ bl func_8026A0F4 +/* 8026886C 002644CC 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 80268870 002644D0 7C 03 00 40 */ cmplw r3, r0 +/* 80268874 002644D4 40 80 00 EC */ bge lbl_80268960 +/* 80268878 002644D8 48 00 18 65 */ bl func_8026A0DC +/* 8026887C 002644DC 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 80268880 002644E0 7C 03 00 40 */ cmplw r3, r0 +/* 80268884 002644E4 41 81 00 4C */ bgt lbl_802688D0 +/* 80268888 002644E8 48 00 18 55 */ bl func_8026A0DC +/* 8026888C 002644EC 7C 7F 1B 78 */ mr r31, r3 +/* 80268890 002644F0 48 00 18 65 */ bl func_8026A0F4 +/* 80268894 002644F4 7F E3 F8 50 */ subf r31, r3, r31 +/* 80268898 002644F8 48 00 18 5D */ bl func_8026A0F4 +/* 8026889C 002644FC 3C 00 00 04 */ lis r0, 4 +/* 802688A0 00264500 7C 1F 00 40 */ cmplw r31, r0 +/* 802688A4 00264504 40 81 00 10 */ ble lbl_802688B4 +/* 802688A8 00264508 3F DF FF FC */ addis r30, r31, 0xfffc +/* 802688AC 0026450C 7F C3 F2 14 */ add r30, r3, r30 +/* 802688B0 00264510 48 00 00 08 */ b lbl_802688B8 +lbl_802688B4: +/* 802688B4 00264514 7C 7E 1B 78 */ mr r30, r3 +lbl_802688B8: +/* 802688B8 00264518 7F E4 FB 78 */ mr r4, r31 +/* 802688BC 0026451C 48 00 1E 51 */ bl DCZeroRange +/* 802688C0 00264520 7F C3 F3 78 */ mr r3, r30 +/* 802688C4 00264524 3C 80 00 04 */ lis r4, 4 +/* 802688C8 00264528 48 00 1D 8D */ bl DCFlushRange +/* 802688CC 0026452C 48 00 00 94 */ b lbl_80268960 +lbl_802688D0: +/* 802688D0 00264530 48 00 18 25 */ bl func_8026A0F4 +/* 802688D4 00264534 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 802688D8 00264538 7F E3 00 50 */ subf r31, r3, r0 +/* 802688DC 0026453C 48 00 18 19 */ bl func_8026A0F4 +/* 802688E0 00264540 3C 00 00 04 */ lis r0, 4 +/* 802688E4 00264544 7C 1F 00 40 */ cmplw r31, r0 +/* 802688E8 00264548 40 81 00 10 */ ble lbl_802688F8 +/* 802688EC 0026454C 3F DF FF FC */ addis r30, r31, 0xfffc +/* 802688F0 00264550 7F C3 F2 14 */ add r30, r3, r30 +/* 802688F4 00264554 48 00 00 08 */ b lbl_802688FC +lbl_802688F8: +/* 802688F8 00264558 7C 7E 1B 78 */ mr r30, r3 +lbl_802688FC: +/* 802688FC 0026455C 7F E4 FB 78 */ mr r4, r31 +/* 80268900 00264560 48 00 1E 0D */ bl DCZeroRange +/* 80268904 00264564 7F C3 F3 78 */ mr r3, r30 +/* 80268908 00264568 3C 80 00 04 */ lis r4, 4 +/* 8026890C 0026456C 48 00 1D 49 */ bl DCFlushRange +/* 80268910 00264570 3C 60 80 50 */ lis r3, lbl_80503C80@ha +/* 80268914 00264574 38 63 3C 80 */ addi r3, r3, lbl_80503C80@l +/* 80268918 00264578 83 E3 00 10 */ lwz r31, 0x10(r3) +/* 8026891C 0026457C 48 00 17 C1 */ bl func_8026A0DC +/* 80268920 00264580 7C 03 F8 40 */ cmplw r3, r31 +/* 80268924 00264584 40 81 00 3C */ ble lbl_80268960 +/* 80268928 00264588 48 00 17 B5 */ bl func_8026A0DC +/* 8026892C 0026458C 7C 9F 18 50 */ subf r4, r31, r3 +/* 80268930 00264590 3C 00 00 04 */ lis r0, 4 +/* 80268934 00264594 7C 04 00 40 */ cmplw r4, r0 +/* 80268938 00264598 40 81 00 10 */ ble lbl_80268948 +/* 8026893C 0026459C 3F C4 FF FC */ addis r30, r4, 0xfffc +/* 80268940 002645A0 7F DF F2 14 */ add r30, r31, r30 +/* 80268944 002645A4 48 00 00 08 */ b lbl_8026894C +lbl_80268948: +/* 80268948 002645A8 7F FE FB 78 */ mr r30, r31 +lbl_8026894C: +/* 8026894C 002645AC 7F E3 FB 78 */ mr r3, r31 +/* 80268950 002645B0 48 00 1D BD */ bl DCZeroRange +/* 80268954 002645B4 7F C3 F3 78 */ mr r3, r30 +/* 80268958 002645B8 3C 80 00 04 */ lis r4, 4 +/* 8026895C 002645BC 48 00 1C F9 */ bl DCFlushRange +lbl_80268960: +/* 80268960 002645C0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80268964 002645C4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80268968 002645C8 83 C1 00 08 */ lwz r30, 8(r1) +/* 8026896C 002645CC 7C 08 03 A6 */ mtlr r0 +/* 80268970 002645D0 38 21 00 10 */ addi r1, r1, 0x10 +/* 80268974 002645D4 4E 80 00 20 */ blr + +.global ClearMEM2Arena +ClearMEM2Arena: +/* 80268978 002645D8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8026897C 002645DC 7C 08 02 A6 */ mflr r0 +/* 80268980 002645E0 90 01 00 14 */ stw r0, 0x14(r1) +/* 80268984 002645E4 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80268988 002645E8 93 C1 00 08 */ stw r30, 8(r1) +/* 8026898C 002645EC 48 00 7A 05 */ bl OSGetResetCode +/* 80268990 002645F0 54 60 0F FF */ rlwinm. r0, r3, 1, 0x1f, 0x1f +/* 80268994 002645F4 40 82 00 4C */ bne lbl_802689E0 +/* 80268998 002645F8 48 00 17 3D */ bl func_8026A0D4 +/* 8026899C 002645FC 7C 7F 1B 78 */ mr r31, r3 +/* 802689A0 00264600 48 00 17 4D */ bl func_8026A0EC +/* 802689A4 00264604 7F E3 F8 50 */ subf r31, r3, r31 +/* 802689A8 00264608 48 00 17 45 */ bl func_8026A0EC +/* 802689AC 0026460C 3C 00 00 04 */ lis r0, 4 +/* 802689B0 00264610 7C 1F 00 40 */ cmplw r31, r0 +/* 802689B4 00264614 40 81 00 10 */ ble lbl_802689C4 +/* 802689B8 00264618 3F DF FF FC */ addis r30, r31, 0xfffc +/* 802689BC 0026461C 7F C3 F2 14 */ add r30, r3, r30 +/* 802689C0 00264620 48 00 00 08 */ b lbl_802689C8 +lbl_802689C4: +/* 802689C4 00264624 7C 7E 1B 78 */ mr r30, r3 +lbl_802689C8: +/* 802689C8 00264628 7F E4 FB 78 */ mr r4, r31 +/* 802689CC 0026462C 48 00 1D 41 */ bl DCZeroRange +/* 802689D0 00264630 7F C3 F3 78 */ mr r3, r30 +/* 802689D4 00264634 3C 80 00 04 */ lis r4, 4 +/* 802689D8 00264638 48 00 1C 7D */ bl DCFlushRange +/* 802689DC 0026463C 48 00 01 68 */ b lbl_80268B44 +lbl_802689E0: +/* 802689E0 00264640 3F E0 80 50 */ lis r31, lbl_80503C80@ha +/* 802689E4 00264644 3B FF 3C 80 */ addi r31, r31, lbl_80503C80@l +/* 802689E8 00264648 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 802689EC 0026464C 2C 00 00 00 */ cmpwi r0, 0 +/* 802689F0 00264650 41 82 00 14 */ beq lbl_80268A04 +/* 802689F4 00264654 54 03 00 86 */ rlwinm r3, r0, 0, 2, 3 +/* 802689F8 00264658 3C 03 F0 00 */ addis r0, r3, 0xf000 +/* 802689FC 0026465C 28 00 00 00 */ cmplwi r0, 0 +/* 80268A00 00264660 41 82 00 4C */ beq lbl_80268A4C +lbl_80268A04: +/* 80268A04 00264664 48 00 16 D1 */ bl func_8026A0D4 +/* 80268A08 00264668 7C 7F 1B 78 */ mr r31, r3 +/* 80268A0C 0026466C 48 00 16 E1 */ bl func_8026A0EC +/* 80268A10 00264670 7F E3 F8 50 */ subf r31, r3, r31 +/* 80268A14 00264674 48 00 16 D9 */ bl func_8026A0EC +/* 80268A18 00264678 3C 00 00 04 */ lis r0, 4 +/* 80268A1C 0026467C 7C 1F 00 40 */ cmplw r31, r0 +/* 80268A20 00264680 40 81 00 10 */ ble lbl_80268A30 +/* 80268A24 00264684 3F DF FF FC */ addis r30, r31, 0xfffc +/* 80268A28 00264688 7F C3 F2 14 */ add r30, r3, r30 +/* 80268A2C 0026468C 48 00 00 08 */ b lbl_80268A34 +lbl_80268A30: +/* 80268A30 00264690 7C 7E 1B 78 */ mr r30, r3 +lbl_80268A34: +/* 80268A34 00264694 7F E4 FB 78 */ mr r4, r31 +/* 80268A38 00264698 48 00 1C D5 */ bl DCZeroRange +/* 80268A3C 0026469C 7F C3 F3 78 */ mr r3, r30 +/* 80268A40 002646A0 3C 80 00 04 */ lis r4, 4 +/* 80268A44 002646A4 48 00 1C 11 */ bl DCFlushRange +/* 80268A48 002646A8 48 00 00 FC */ b lbl_80268B44 +lbl_80268A4C: +/* 80268A4C 002646AC 48 00 16 A1 */ bl func_8026A0EC +/* 80268A50 002646B0 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 80268A54 002646B4 7C 03 00 40 */ cmplw r3, r0 +/* 80268A58 002646B8 40 80 00 EC */ bge lbl_80268B44 +/* 80268A5C 002646BC 48 00 16 79 */ bl func_8026A0D4 +/* 80268A60 002646C0 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 80268A64 002646C4 7C 03 00 40 */ cmplw r3, r0 +/* 80268A68 002646C8 41 81 00 4C */ bgt lbl_80268AB4 +/* 80268A6C 002646CC 48 00 16 69 */ bl func_8026A0D4 +/* 80268A70 002646D0 7C 7F 1B 78 */ mr r31, r3 +/* 80268A74 002646D4 48 00 16 79 */ bl func_8026A0EC +/* 80268A78 002646D8 7F E3 F8 50 */ subf r31, r3, r31 +/* 80268A7C 002646DC 48 00 16 71 */ bl func_8026A0EC +/* 80268A80 002646E0 3C 00 00 04 */ lis r0, 4 +/* 80268A84 002646E4 7C 1F 00 40 */ cmplw r31, r0 +/* 80268A88 002646E8 40 81 00 10 */ ble lbl_80268A98 +/* 80268A8C 002646EC 3F DF FF FC */ addis r30, r31, 0xfffc +/* 80268A90 002646F0 7F C3 F2 14 */ add r30, r3, r30 +/* 80268A94 002646F4 48 00 00 08 */ b lbl_80268A9C +lbl_80268A98: +/* 80268A98 002646F8 7C 7E 1B 78 */ mr r30, r3 +lbl_80268A9C: +/* 80268A9C 002646FC 7F E4 FB 78 */ mr r4, r31 +/* 80268AA0 00264700 48 00 1C 6D */ bl DCZeroRange +/* 80268AA4 00264704 7F C3 F3 78 */ mr r3, r30 +/* 80268AA8 00264708 3C 80 00 04 */ lis r4, 4 +/* 80268AAC 0026470C 48 00 1B A9 */ bl DCFlushRange +/* 80268AB0 00264710 48 00 00 94 */ b lbl_80268B44 +lbl_80268AB4: +/* 80268AB4 00264714 48 00 16 39 */ bl func_8026A0EC +/* 80268AB8 00264718 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 80268ABC 0026471C 7F E3 00 50 */ subf r31, r3, r0 +/* 80268AC0 00264720 48 00 16 2D */ bl func_8026A0EC +/* 80268AC4 00264724 3C 00 00 04 */ lis r0, 4 +/* 80268AC8 00264728 7C 1F 00 40 */ cmplw r31, r0 +/* 80268ACC 0026472C 40 81 00 10 */ ble lbl_80268ADC +/* 80268AD0 00264730 3F DF FF FC */ addis r30, r31, 0xfffc +/* 80268AD4 00264734 7F C3 F2 14 */ add r30, r3, r30 +/* 80268AD8 00264738 48 00 00 08 */ b lbl_80268AE0 +lbl_80268ADC: +/* 80268ADC 0026473C 7C 7E 1B 78 */ mr r30, r3 +lbl_80268AE0: +/* 80268AE0 00264740 7F E4 FB 78 */ mr r4, r31 +/* 80268AE4 00264744 48 00 1C 29 */ bl DCZeroRange +/* 80268AE8 00264748 7F C3 F3 78 */ mr r3, r30 +/* 80268AEC 0026474C 3C 80 00 04 */ lis r4, 4 +/* 80268AF0 00264750 48 00 1B 65 */ bl DCFlushRange +/* 80268AF4 00264754 3C 60 80 50 */ lis r3, lbl_80503C80@ha +/* 80268AF8 00264758 38 63 3C 80 */ addi r3, r3, lbl_80503C80@l +/* 80268AFC 0026475C 83 E3 00 10 */ lwz r31, 0x10(r3) +/* 80268B00 00264760 48 00 15 D5 */ bl func_8026A0D4 +/* 80268B04 00264764 7C 03 F8 40 */ cmplw r3, r31 +/* 80268B08 00264768 40 81 00 3C */ ble lbl_80268B44 +/* 80268B0C 0026476C 48 00 15 C9 */ bl func_8026A0D4 +/* 80268B10 00264770 7C 9F 18 50 */ subf r4, r31, r3 +/* 80268B14 00264774 3C 00 00 04 */ lis r0, 4 +/* 80268B18 00264778 7C 04 00 40 */ cmplw r4, r0 +/* 80268B1C 0026477C 40 81 00 10 */ ble lbl_80268B2C +/* 80268B20 00264780 3F C4 FF FC */ addis r30, r4, 0xfffc +/* 80268B24 00264784 7F DF F2 14 */ add r30, r31, r30 +/* 80268B28 00264788 48 00 00 08 */ b lbl_80268B30 +lbl_80268B2C: +/* 80268B2C 0026478C 7F FE FB 78 */ mr r30, r31 +lbl_80268B30: +/* 80268B30 00264790 7F E3 FB 78 */ mr r3, r31 +/* 80268B34 00264794 48 00 1B D9 */ bl DCZeroRange +/* 80268B38 00264798 7F C3 F3 78 */ mr r3, r30 +/* 80268B3C 0026479C 3C 80 00 04 */ lis r4, 4 +/* 80268B40 002647A0 48 00 1B 15 */ bl DCFlushRange +lbl_80268B44: +/* 80268B44 002647A4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80268B48 002647A8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80268B4C 002647AC 83 C1 00 08 */ lwz r30, 8(r1) +/* 80268B50 002647B0 7C 08 03 A6 */ mtlr r0 +/* 80268B54 002647B4 38 21 00 10 */ addi r1, r1, 0x10 +/* 80268B58 002647B8 4E 80 00 20 */ blr + +.global InquiryCallback +InquiryCallback: +/* 80268B5C 002647BC 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80268B60 002647C0 2C 00 00 00 */ cmpwi r0, 0 +/* 80268B64 002647C4 41 82 00 08 */ beq lbl_80268B6C +/* 80268B68 002647C8 48 00 00 20 */ b lbl_80268B88 +lbl_80268B6C: +/* 80268B6C 002647CC 3C 80 80 50 */ lis r4, lbl_80503CA0@ha +/* 80268B70 002647D0 3C 60 80 00 */ lis r3, 0x800030E6@ha +/* 80268B74 002647D4 38 84 3C A0 */ addi r4, r4, lbl_80503CA0@l +/* 80268B78 002647D8 A0 04 00 02 */ lhz r0, 2(r4) +/* 80268B7C 002647DC 60 00 80 00 */ ori r0, r0, 0x8000 +/* 80268B80 002647E0 B0 03 30 E6 */ sth r0, 0x800030E6@l(r3) +/* 80268B84 002647E4 4E 80 00 20 */ blr +lbl_80268B88: +/* 80268B88 002647E8 38 00 00 01 */ li r0, 1 +/* 80268B8C 002647EC 3C 60 80 00 */ lis r3, 0x800030E6@ha +/* 80268B90 002647F0 B0 03 30 E6 */ sth r0, 0x800030E6@l(r3) +/* 80268B94 002647F4 4E 80 00 20 */ blr + +.global ReportOSInfo +ReportOSInfo: +/* 80268B98 002647F8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80268B9C 002647FC 7C 08 02 A6 */ mflr r0 +/* 80268BA0 00264800 90 01 00 14 */ stw r0, 0x14(r1) +/* 80268BA4 00264804 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80268BA8 00264808 3F E0 80 42 */ lis r31, lbl_804265E0@ha +/* 80268BAC 0026480C 3B FF 65 E0 */ addi r31, r31, lbl_804265E0@l +/* 80268BB0 00264810 93 C1 00 08 */ stw r30, 8(r1) +/* 80268BB4 00264814 38 7F 00 48 */ addi r3, r31, 0x48 +/* 80268BB8 00264818 4C C6 31 82 */ crclr 6 +/* 80268BBC 0026481C 4B D9 EF 09 */ bl func_80007AC4 +/* 80268BC0 00264820 38 7F 00 58 */ addi r3, r31, 0x58 +/* 80268BC4 00264824 38 9F 00 70 */ addi r4, r31, 0x70 +/* 80268BC8 00264828 38 BF 00 7C */ addi r5, r31, 0x7c +/* 80268BCC 0026482C 4C C6 31 82 */ crclr 6 +/* 80268BD0 00264830 4B D9 EE F5 */ bl func_80007AC4 +/* 80268BD4 00264834 38 7F 00 88 */ addi r3, r31, 0x88 +/* 80268BD8 00264838 4C C6 31 82 */ crclr 6 +/* 80268BDC 0026483C 4B D9 EE E9 */ bl func_80007AC4 +/* 80268BE0 00264840 4B FF F9 4D */ bl OSGetConsoleType +/* 80268BE4 00264844 54 64 00 06 */ rlwinm r4, r3, 0, 0, 3 +/* 80268BE8 00264848 3C 00 10 00 */ lis r0, 0x1000 +/* 80268BEC 0026484C 7C 04 00 00 */ cmpw r4, r0 +/* 80268BF0 00264850 41 82 00 8C */ beq lbl_80268C7C +/* 80268BF4 00264854 40 80 00 10 */ bge lbl_80268C04 +/* 80268BF8 00264858 2C 04 00 00 */ cmpwi r4, 0 +/* 80268BFC 0026485C 41 82 00 18 */ beq lbl_80268C14 +/* 80268C00 00264860 48 00 01 30 */ b lbl_80268D30 +lbl_80268C04: +/* 80268C04 00264864 3C 00 20 00 */ lis r0, 0x2000 +/* 80268C08 00264868 7C 04 00 00 */ cmpw r4, r0 +/* 80268C0C 0026486C 41 82 01 0C */ beq lbl_80268D18 +/* 80268C10 00264870 48 00 01 20 */ b lbl_80268D30 +lbl_80268C14: +/* 80268C14 00264874 2C 03 00 12 */ cmpwi r3, 0x12 +/* 80268C18 00264878 41 82 00 30 */ beq lbl_80268C48 +/* 80268C1C 0026487C 40 80 00 10 */ bge lbl_80268C2C +/* 80268C20 00264880 2C 03 00 11 */ cmpwi r3, 0x11 +/* 80268C24 00264884 40 80 00 14 */ bge lbl_80268C38 +/* 80268C28 00264888 48 00 00 40 */ b lbl_80268C68 +lbl_80268C2C: +/* 80268C2C 0026488C 2C 03 00 20 */ cmpwi r3, 0x20 +/* 80268C30 00264890 41 82 00 28 */ beq lbl_80268C58 +/* 80268C34 00264894 48 00 00 34 */ b lbl_80268C68 +lbl_80268C38: +/* 80268C38 00264898 38 7F 00 98 */ addi r3, r31, 0x98 +/* 80268C3C 0026489C 4C C6 31 82 */ crclr 6 +/* 80268C40 002648A0 4B D9 EE 85 */ bl func_80007AC4 +/* 80268C44 002648A4 48 00 00 FC */ b lbl_80268D40 +lbl_80268C48: +/* 80268C48 002648A8 38 7F 00 B0 */ addi r3, r31, 0xb0 +/* 80268C4C 002648AC 4C C6 31 82 */ crclr 6 +/* 80268C50 002648B0 4B D9 EE 75 */ bl func_80007AC4 +/* 80268C54 002648B4 48 00 00 EC */ b lbl_80268D40 +lbl_80268C58: +/* 80268C58 002648B8 38 7F 00 CC */ addi r3, r31, 0xcc +/* 80268C5C 002648BC 4C C6 31 82 */ crclr 6 +/* 80268C60 002648C0 4B D9 EE 65 */ bl func_80007AC4 +/* 80268C64 002648C4 48 00 00 DC */ b lbl_80268D40 +lbl_80268C68: +/* 80268C68 002648C8 7C 64 1B 78 */ mr r4, r3 +/* 80268C6C 002648CC 38 7F 00 E8 */ addi r3, r31, 0xe8 +/* 80268C70 002648D0 4C C6 31 82 */ crclr 6 +/* 80268C74 002648D4 4B D9 EE 51 */ bl func_80007AC4 +/* 80268C78 002648D8 48 00 00 C8 */ b lbl_80268D40 +lbl_80268C7C: +/* 80268C7C 002648DC 3C A3 F0 00 */ addis r5, r3, 0xf000 +/* 80268C80 002648E0 38 A5 FF F8 */ addi r5, r5, -8 +/* 80268C84 002648E4 28 05 00 19 */ cmplwi r5, 0x19 +/* 80268C88 002648E8 41 81 00 7C */ bgt lbl_80268D04 +/* 80268C8C 002648EC 3C 80 80 42 */ lis r4, lbl_804267D0@ha +/* 80268C90 002648F0 54 A5 10 3A */ slwi r5, r5, 2 +/* 80268C94 002648F4 38 84 67 D0 */ addi r4, r4, lbl_804267D0@l +/* 80268C98 002648F8 7C 84 28 2E */ lwzx r4, r4, r5 +/* 80268C9C 002648FC 7C 89 03 A6 */ mtctr r4 +/* 80268CA0 00264900 4E 80 04 20 */ bctr +/* 80268CA4 00264904 38 7F 00 F4 */ addi r3, r31, 0xf4 +/* 80268CA8 00264908 4C C6 31 82 */ crclr 6 +/* 80268CAC 0026490C 4B D9 EE 19 */ bl func_80007AC4 +/* 80268CB0 00264910 48 00 00 90 */ b lbl_80268D40 +/* 80268CB4 00264914 38 7F 01 00 */ addi r3, r31, 0x100 +/* 80268CB8 00264918 4C C6 31 82 */ crclr 6 +/* 80268CBC 0026491C 4B D9 EE 09 */ bl func_80007AC4 +/* 80268CC0 00264920 48 00 00 80 */ b lbl_80268D40 +/* 80268CC4 00264924 38 7F 01 0C */ addi r3, r31, 0x10c +/* 80268CC8 00264928 4C C6 31 82 */ crclr 6 +/* 80268CCC 0026492C 4B D9 ED F9 */ bl func_80007AC4 +/* 80268CD0 00264930 48 00 00 70 */ b lbl_80268D40 +/* 80268CD4 00264934 38 7F 01 18 */ addi r3, r31, 0x118 +/* 80268CD8 00264938 4C C6 31 82 */ crclr 6 +/* 80268CDC 0026493C 4B D9 ED E9 */ bl func_80007AC4 +/* 80268CE0 00264940 48 00 00 60 */ b lbl_80268D40 +/* 80268CE4 00264944 38 7F 01 24 */ addi r3, r31, 0x124 +/* 80268CE8 00264948 4C C6 31 82 */ crclr 6 +/* 80268CEC 0026494C 4B D9 ED D9 */ bl func_80007AC4 +/* 80268CF0 00264950 48 00 00 50 */ b lbl_80268D40 +/* 80268CF4 00264954 38 7F 01 30 */ addi r3, r31, 0x130 +/* 80268CF8 00264958 4C C6 31 82 */ crclr 6 +/* 80268CFC 0026495C 4B D9 ED C9 */ bl func_80007AC4 +/* 80268D00 00264960 48 00 00 40 */ b lbl_80268D40 +lbl_80268D04: +/* 80268D04 00264964 7C 64 1B 78 */ mr r4, r3 +/* 80268D08 00264968 38 7F 01 48 */ addi r3, r31, 0x148 +/* 80268D0C 0026496C 4C C6 31 82 */ crclr 6 +/* 80268D10 00264970 4B D9 ED B5 */ bl func_80007AC4 +/* 80268D14 00264974 48 00 00 2C */ b lbl_80268D40 +lbl_80268D18: +/* 80268D18 00264978 54 64 01 3E */ clrlwi r4, r3, 4 +/* 80268D1C 0026497C 38 7F 01 64 */ addi r3, r31, 0x164 +/* 80268D20 00264980 38 84 FF FD */ addi r4, r4, -3 +/* 80268D24 00264984 4C C6 31 82 */ crclr 6 +/* 80268D28 00264988 4B D9 ED 9D */ bl func_80007AC4 +/* 80268D2C 0026498C 48 00 00 14 */ b lbl_80268D40 +lbl_80268D30: +/* 80268D30 00264990 7C 64 1B 78 */ mr r4, r3 +/* 80268D34 00264994 38 6D 87 84 */ addi r3, r13, lbl_8063DA44-_SDA_BASE_ +/* 80268D38 00264998 4C C6 31 82 */ crclr 6 +/* 80268D3C 0026499C 4B D9 ED 89 */ bl func_80007AC4 +lbl_80268D40: +/* 80268D40 002649A0 3C 80 C0 00 */ lis r4, 0xC0003140@ha +/* 80268D44 002649A4 38 7F 01 80 */ addi r3, r31, 0x180 +/* 80268D48 002649A8 80 04 31 40 */ lwz r0, 0xC0003140@l(r4) +/* 80268D4C 002649AC 83 C4 31 44 */ lwz r30, 0x3144(r4) +/* 80268D50 002649B0 54 04 86 3E */ rlwinm r4, r0, 0x10, 0x18, 0x1f +/* 80268D54 002649B4 54 05 C6 3E */ rlwinm r5, r0, 0x18, 0x18, 0x1f +/* 80268D58 002649B8 54 06 06 3E */ clrlwi r6, r0, 0x18 +/* 80268D5C 002649BC 4C C6 31 82 */ crclr 6 +/* 80268D60 002649C0 4B D9 ED 65 */ bl func_80007AC4 +/* 80268D64 002649C4 57 C3 E7 3E */ rlwinm r3, r30, 0x1c, 0x1c, 0x1f +/* 80268D68 002649C8 57 C6 67 3E */ rlwinm r6, r30, 0xc, 0x1c, 0x1f +/* 80268D6C 002649CC 1C 83 00 0A */ mulli r4, r3, 0xa +/* 80268D70 002649D0 57 C5 A7 3E */ rlwinm r5, r30, 0x14, 0x1c, 0x1f +/* 80268D74 002649D4 57 C0 07 3E */ clrlwi r0, r30, 0x1c +/* 80268D78 002649D8 57 C8 87 3E */ rlwinm r8, r30, 0x10, 0x1c, 0x1f +/* 80268D7C 002649DC 7C 80 22 14 */ add r4, r0, r4 +/* 80268D80 002649E0 57 C7 C7 3E */ rlwinm r7, r30, 0x18, 0x1c, 0x1f +/* 80268D84 002649E4 1C C6 00 0A */ mulli r6, r6, 0xa +/* 80268D88 002649E8 38 7F 01 9C */ addi r3, r31, 0x19c +/* 80268D8C 002649EC 38 04 07 D0 */ addi r0, r4, 0x7d0 +/* 80268D90 002649F0 7C 88 32 14 */ add r4, r8, r6 +/* 80268D94 002649F4 1C A5 00 0A */ mulli r5, r5, 0xa +/* 80268D98 002649F8 54 06 04 3E */ clrlwi r6, r0, 0x10 +/* 80268D9C 002649FC 54 84 06 3E */ clrlwi r4, r4, 0x18 +/* 80268DA0 00264A00 7C 07 2A 14 */ add r0, r7, r5 +/* 80268DA4 00264A04 54 05 06 3E */ clrlwi r5, r0, 0x18 +/* 80268DA8 00264A08 4C C6 31 82 */ crclr 6 +/* 80268DAC 00264A0C 4B D9 ED 19 */ bl func_80007AC4 +/* 80268DB0 00264A10 48 00 63 71 */ bl func_8026F120 +/* 80268DB4 00264A14 7C 7E 1B 78 */ mr r30, r3 +/* 80268DB8 00264A18 48 00 63 5D */ bl func_8026F114 +/* 80268DBC 00264A1C 7C 03 F2 14 */ add r0, r3, r30 +/* 80268DC0 00264A20 38 7F 01 A8 */ addi r3, r31, 0x1a8 +/* 80268DC4 00264A24 54 04 65 3E */ srwi r4, r0, 0x14 +/* 80268DC8 00264A28 4C C6 31 82 */ crclr 6 +/* 80268DCC 00264A2C 4B D9 EC F9 */ bl func_80007AC4 +/* 80268DD0 00264A30 48 00 12 FD */ bl func_8026A0CC +/* 80268DD4 00264A34 7C 7E 1B 78 */ mr r30, r3 +/* 80268DD8 00264A38 48 00 13 0D */ bl func_8026A0E4 +/* 80268DDC 00264A3C 7C 64 1B 78 */ mr r4, r3 +/* 80268DE0 00264A40 7F C5 F3 78 */ mr r5, r30 +/* 80268DE4 00264A44 38 7F 01 B8 */ addi r3, r31, 0x1b8 +/* 80268DE8 00264A48 4C C6 31 82 */ crclr 6 +/* 80268DEC 00264A4C 4B D9 EC D9 */ bl func_80007AC4 +/* 80268DF0 00264A50 48 00 12 E5 */ bl func_8026A0D4 +/* 80268DF4 00264A54 7C 7E 1B 78 */ mr r30, r3 +/* 80268DF8 00264A58 48 00 12 F5 */ bl func_8026A0EC +/* 80268DFC 00264A5C 7C 64 1B 78 */ mr r4, r3 +/* 80268E00 00264A60 7F C5 F3 78 */ mr r5, r30 +/* 80268E04 00264A64 38 7F 01 D4 */ addi r3, r31, 0x1d4 +/* 80268E08 00264A68 4C C6 31 82 */ crclr 6 +/* 80268E0C 00264A6C 4B D9 EC B9 */ bl func_80007AC4 +/* 80268E10 00264A70 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80268E14 00264A74 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80268E18 00264A78 83 C1 00 08 */ lwz r30, 8(r1) +/* 80268E1C 00264A7C 7C 08 03 A6 */ mtlr r0 +/* 80268E20 00264A80 38 21 00 10 */ addi r1, r1, 0x10 +/* 80268E24 00264A84 4E 80 00 20 */ blr + +.global OSInit +OSInit: +/* 80268E28 00264A88 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80268E2C 00264A8C 7C 08 02 A6 */ mflr r0 +/* 80268E30 00264A90 90 01 00 14 */ stw r0, 0x14(r1) +/* 80268E34 00264A94 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80268E38 00264A98 3F E0 80 42 */ lis r31, lbl_804265E0@ha +/* 80268E3C 00264A9C 3B FF 65 E0 */ addi r31, r31, lbl_804265E0@l +/* 80268E40 00264AA0 93 C1 00 08 */ stw r30, 8(r1) +/* 80268E44 00264AA4 3F C0 80 50 */ lis r30, lbl_80503C80@ha +/* 80268E48 00264AA8 3B DE 3C 80 */ addi r30, r30, lbl_80503C80@l +/* 80268E4C 00264AAC 80 0D A7 74 */ lwz r0, lbl_8063FA34-_SDA_BASE_(r13) +/* 80268E50 00264AB0 2C 00 00 00 */ cmpwi r0, 0 +/* 80268E54 00264AB4 40 82 03 C0 */ bne lbl_80269214 +/* 80268E58 00264AB8 38 00 00 01 */ li r0, 1 +/* 80268E5C 00264ABC 90 0D A7 74 */ stw r0, lbl_8063FA34-_SDA_BASE_(r13) +/* 80268E60 00264AC0 48 00 99 79 */ bl func_802727D8 +/* 80268E64 00264AC4 90 8D A7 AC */ stw r4, lbl_8063FA6C-_SDA_BASE_(r13) +/* 80268E68 00264AC8 90 6D A7 A8 */ stw r3, lbl_8063FA68-_SDA_BASE_(r13) +/* 80268E6C 00264ACC 48 00 58 F1 */ bl OSDisableInterrupts +/* 80268E70 00264AD0 38 7E 00 00 */ addi r3, r30, 0 +/* 80268E74 00264AD4 48 00 2E 95 */ bl func_8026BD08 +/* 80268E78 00264AD8 38 60 00 00 */ li r3, 0 +/* 80268E7C 00264ADC 4B FF F4 01 */ bl func_8026827C +/* 80268E80 00264AE0 38 60 00 00 */ li r3, 0 +/* 80268E84 00264AE4 4B FF F4 01 */ bl func_80268284 +/* 80268E88 00264AE8 38 60 00 00 */ li r3, 0 +/* 80268E8C 00264AEC 4B FF F4 01 */ bl func_8026828C +/* 80268E90 00264AF0 38 60 00 00 */ li r3, 0 +/* 80268E94 00264AF4 4B FF F4 01 */ bl func_80268294 +/* 80268E98 00264AF8 38 60 00 00 */ li r3, 0 +/* 80268E9C 00264AFC 4B FF F4 01 */ bl func_8026829C +/* 80268EA0 00264B00 38 60 00 00 */ li r3, 0 +/* 80268EA4 00264B04 4B FF F4 01 */ bl func_802682A4 +/* 80268EA8 00264B08 3C 60 83 90 */ lis r3, 0x8390 +/* 80268EAC 00264B0C 4B FF F4 9D */ bl func_80268348 +/* 80268EB0 00264B10 4B FF F4 69 */ bl func_80268318 +/* 80268EB4 00264B14 4B FF F4 8D */ bl func_80268340 +/* 80268EB8 00264B18 38 00 00 00 */ li r0, 0 +/* 80268EBC 00264B1C 3C 80 80 00 */ lis r4, 0x800000F4@ha +/* 80268EC0 00264B20 90 8D A7 A0 */ stw r4, lbl_8063FA60-_SDA_BASE_(r13) +/* 80268EC4 00264B24 90 0D A7 9C */ stw r0, lbl_8063FA5C-_SDA_BASE_(r13) +/* 80268EC8 00264B28 90 0D 88 A8 */ stw r0, lbl_8063DB68-_SDA_BASE_(r13) +/* 80268ECC 00264B2C 80 A4 00 F4 */ lwz r5, 0x800000F4@l(r4) +/* 80268ED0 00264B30 2C 05 00 00 */ cmpwi r5, 0 +/* 80268ED4 00264B34 41 82 00 28 */ beq lbl_80268EFC +/* 80268ED8 00264B38 38 65 00 0C */ addi r3, r5, 0xc +/* 80268EDC 00264B3C 90 6D A7 9C */ stw r3, lbl_8063FA5C-_SDA_BASE_(r13) +/* 80268EE0 00264B40 80 05 00 24 */ lwz r0, 0x24(r5) +/* 80268EE4 00264B44 90 0D AE 30 */ stw r0, lbl_806400F0-_SDA_BASE_(r13) +/* 80268EE8 00264B48 80 05 00 0C */ lwz r0, 0xc(r5) +/* 80268EEC 00264B4C 98 04 30 E8 */ stb r0, 0x30e8(r4) +/* 80268EF0 00264B50 80 0D AE 30 */ lwz r0, lbl_806400F0-_SDA_BASE_(r13) +/* 80268EF4 00264B54 98 04 30 E9 */ stb r0, 0x30e9(r4) +/* 80268EF8 00264B58 48 00 00 28 */ b lbl_80268F20 +lbl_80268EFC: +/* 80268EFC 00264B5C 80 04 00 34 */ lwz r0, 0x34(r4) +/* 80268F00 00264B60 2C 00 00 00 */ cmpwi r0, 0 +/* 80268F04 00264B64 41 82 00 1C */ beq lbl_80268F20 +/* 80268F08 00264B68 88 64 30 E8 */ lbz r3, 0x30e8(r4) +/* 80268F0C 00264B6C 38 0D A7 98 */ addi r0, r13, lbl_8063FA58-_SDA_BASE_ +/* 80268F10 00264B70 90 6D A7 98 */ stw r3, lbl_8063FA58-_SDA_BASE_(r13) +/* 80268F14 00264B74 90 0D A7 9C */ stw r0, lbl_8063FA5C-_SDA_BASE_(r13) +/* 80268F18 00264B78 88 04 30 E9 */ lbz r0, 0x30e9(r4) +/* 80268F1C 00264B7C 90 0D AE 30 */ stw r0, lbl_806400F0-_SDA_BASE_(r13) +lbl_80268F20: +/* 80268F20 00264B80 38 00 00 01 */ li r0, 1 +/* 80268F24 00264B84 3C 80 80 00 */ lis r4, 0x8000310C@ha +/* 80268F28 00264B88 90 0D 88 A8 */ stw r0, lbl_8063DB68-_SDA_BASE_(r13) +/* 80268F2C 00264B8C 80 64 31 0C */ lwz r3, 0x8000310C@l(r4) +/* 80268F30 00264B90 2C 03 00 00 */ cmpwi r3, 0 +/* 80268F34 00264B94 40 82 00 6C */ bne lbl_80268FA0 +/* 80268F38 00264B98 3C 60 80 65 */ lis r3, 0x80655060@ha +/* 80268F3C 00264B9C 38 63 50 60 */ addi r3, r3, 0x80655060@l +/* 80268F40 00264BA0 54 60 00 87 */ rlwinm. r0, r3, 0, 2, 3 +/* 80268F44 00264BA4 40 82 00 58 */ bne lbl_80268F9C +/* 80268F48 00264BA8 80 8D A7 A0 */ lwz r4, lbl_8063FA60-_SDA_BASE_(r13) +/* 80268F4C 00264BAC 80 04 00 30 */ lwz r0, 0x30(r4) +/* 80268F50 00264BB0 2C 00 00 00 */ cmpwi r0, 0 +/* 80268F54 00264BB4 40 82 00 08 */ bne lbl_80268F5C +/* 80268F58 00264BB8 48 00 00 08 */ b lbl_80268F60 +lbl_80268F5C: +/* 80268F5C 00264BBC 7C 03 03 78 */ mr r3, r0 +lbl_80268F60: +/* 80268F60 00264BC0 80 8D A7 A0 */ lwz r4, lbl_8063FA60-_SDA_BASE_(r13) +/* 80268F64 00264BC4 80 04 00 30 */ lwz r0, 0x30(r4) +/* 80268F68 00264BC8 2C 00 00 00 */ cmpwi r0, 0 +/* 80268F6C 00264BCC 40 82 00 34 */ bne lbl_80268FA0 +/* 80268F70 00264BD0 80 8D A7 9C */ lwz r4, lbl_8063FA5C-_SDA_BASE_(r13) +/* 80268F74 00264BD4 2C 04 00 00 */ cmpwi r4, 0 +/* 80268F78 00264BD8 41 82 00 28 */ beq lbl_80268FA0 +/* 80268F7C 00264BDC 80 04 00 00 */ lwz r0, 0(r4) +/* 80268F80 00264BE0 28 00 00 02 */ cmplwi r0, 2 +/* 80268F84 00264BE4 40 80 00 1C */ bge lbl_80268FA0 +/* 80268F88 00264BE8 3C 60 80 65 */ lis r3, 0x80653050@ha +/* 80268F8C 00264BEC 38 63 30 50 */ addi r3, r3, 0x80653050@l +/* 80268F90 00264BF0 38 03 00 1F */ addi r0, r3, 0x1f +/* 80268F94 00264BF4 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a +/* 80268F98 00264BF8 48 00 00 08 */ b lbl_80268FA0 +lbl_80268F9C: +/* 80268F9C 00264BFC 38 64 40 00 */ addi r3, r4, 0x4000 +lbl_80268FA0: +/* 80268FA0 00264C00 48 00 11 75 */ bl func_8026A114 +/* 80268FA4 00264C04 3C 60 80 00 */ lis r3, 0x80003110@ha +/* 80268FA8 00264C08 80 63 31 10 */ lwz r3, 0x80003110@l(r3) +/* 80268FAC 00264C0C 2C 03 00 00 */ cmpwi r3, 0 +/* 80268FB0 00264C10 40 82 00 1C */ bne lbl_80268FCC +/* 80268FB4 00264C14 80 6D A7 A0 */ lwz r3, lbl_8063FA60-_SDA_BASE_(r13) +/* 80268FB8 00264C18 80 63 00 34 */ lwz r3, 0x34(r3) +/* 80268FBC 00264C1C 2C 03 00 00 */ cmpwi r3, 0 +/* 80268FC0 00264C20 40 82 00 0C */ bne lbl_80268FCC +/* 80268FC4 00264C24 3C 60 81 70 */ lis r3, 0x81700000@ha +/* 80268FC8 00264C28 38 63 00 00 */ addi r3, r3, 0x81700000@l +lbl_80268FCC: +/* 80268FCC 00264C2C 48 00 11 31 */ bl func_8026A0FC +/* 80268FD0 00264C30 3C 60 80 00 */ lis r3, 0x80003124@ha +/* 80268FD4 00264C34 80 63 31 24 */ lwz r3, 0x80003124@l(r3) +/* 80268FD8 00264C38 2C 03 00 00 */ cmpwi r3, 0 +/* 80268FDC 00264C3C 41 82 00 6C */ beq lbl_80269048 +/* 80268FE0 00264C40 3C A0 80 65 */ lis r5, 0x80655060@ha +/* 80268FE4 00264C44 38 A5 50 60 */ addi r5, r5, 0x80655060@l +/* 80268FE8 00264C48 54 A4 00 86 */ rlwinm r4, r5, 0, 2, 3 +/* 80268FEC 00264C4C 3C 04 F0 00 */ addis r0, r4, 0xf000 +/* 80268FF0 00264C50 28 00 00 00 */ cmplwi r0, 0 +/* 80268FF4 00264C54 40 82 00 34 */ bne lbl_80269028 +/* 80268FF8 00264C58 80 8D A7 9C */ lwz r4, lbl_8063FA5C-_SDA_BASE_(r13) +/* 80268FFC 00264C5C 7C A3 2B 78 */ mr r3, r5 +/* 80269000 00264C60 2C 04 00 00 */ cmpwi r4, 0 +/* 80269004 00264C64 41 82 00 40 */ beq lbl_80269044 +/* 80269008 00264C68 80 04 00 00 */ lwz r0, 0(r4) +/* 8026900C 00264C6C 28 00 00 02 */ cmplwi r0, 2 +/* 80269010 00264C70 40 80 00 34 */ bge lbl_80269044 +/* 80269014 00264C74 3C 60 80 65 */ lis r3, 0x80653050@ha +/* 80269018 00264C78 38 63 30 50 */ addi r3, r3, 0x80653050@l +/* 8026901C 00264C7C 38 03 00 1F */ addi r0, r3, 0x1f +/* 80269020 00264C80 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a +/* 80269024 00264C84 48 00 00 20 */ b lbl_80269044 +lbl_80269028: +/* 80269028 00264C88 3C 80 90 00 */ lis r4, 0x9000 +/* 8026902C 00264C8C 7C 03 20 40 */ cmplw r3, r4 +/* 80269030 00264C90 41 80 00 14 */ blt lbl_80269044 +/* 80269034 00264C94 38 04 08 00 */ addi r0, r4, 0x800 +/* 80269038 00264C98 7C 03 00 40 */ cmplw r3, r0 +/* 8026903C 00264C9C 40 80 00 08 */ bge lbl_80269044 +/* 80269040 00264CA0 7C 03 03 78 */ mr r3, r0 +lbl_80269044: +/* 80269044 00264CA4 48 00 10 D9 */ bl func_8026A11C +lbl_80269048: +/* 80269048 00264CA8 3C 60 80 00 */ lis r3, 0x80003128@ha +/* 8026904C 00264CAC 80 63 31 28 */ lwz r3, 0x80003128@l(r3) +/* 80269050 00264CB0 2C 03 00 00 */ cmpwi r3, 0 +/* 80269054 00264CB4 41 82 00 08 */ beq lbl_8026905C +/* 80269058 00264CB8 48 00 10 AD */ bl func_8026A104 +lbl_8026905C: +/* 8026905C 00264CBC 48 00 A0 59 */ bl func_802730B4 +/* 80269060 00264CC0 48 00 01 CD */ bl OSExceptionInit +/* 80269064 00264CC4 48 00 7F 9D */ bl func_80271000 +/* 80269068 00264CC8 48 00 06 65 */ bl __OSInitAlarm +/* 8026906C 00264CCC 48 00 5E 75 */ bl func_8026EEE0 +/* 80269070 00264CD0 48 00 57 5D */ bl func_8026E7CC +/* 80269074 00264CD4 48 00 23 E1 */ bl func_8026B454 +/* 80269078 00264CD8 48 00 1A 65 */ bl func_8026AADC +/* 8026907C 00264CDC 48 00 C6 05 */ bl func_80275680 +/* 80269080 00264CE0 48 00 D9 0D */ bl func_8027698C +/* 80269084 00264CE4 48 00 74 91 */ bl func_80270514 +/* 80269088 00264CE8 48 00 7F DD */ bl func_80271064 +/* 8026908C 00264CEC 48 00 12 F5 */ bl func_8026A380 +/* 80269090 00264CF0 4B FF F2 65 */ bl func_802682F4 +/* 80269094 00264CF4 54 63 00 80 */ rlwinm r3, r3, 0, 2, 0 +/* 80269098 00264CF8 4B FF F2 65 */ bl func_802682FC +/* 8026909C 00264CFC 80 0D A7 68 */ lwz r0, lbl_8063FA28-_SDA_BASE_(r13) +/* 802690A0 00264D00 2C 00 00 00 */ cmpwi r0, 0 +/* 802690A4 00264D04 40 82 00 08 */ bne lbl_802690AC +/* 802690A8 00264D08 48 00 67 B9 */ bl func_8026F860 +lbl_802690AC: +/* 802690AC 00264D0C 4B FF FA ED */ bl ReportOSInfo +/* 802690B0 00264D10 80 8D 87 80 */ lwz r4, lbl_8063DA40-_SDA_BASE_(r13) +/* 802690B4 00264D14 38 6D 87 8C */ addi r3, r13, lbl_8063DA4C-_SDA_BASE_ +/* 802690B8 00264D18 4C C6 31 82 */ crclr 6 +/* 802690BC 00264D1C 4B D9 EA 09 */ bl func_80007AC4 +/* 802690C0 00264D20 80 6D A7 9C */ lwz r3, lbl_8063FA5C-_SDA_BASE_(r13) +/* 802690C4 00264D24 2C 03 00 00 */ cmpwi r3, 0 +/* 802690C8 00264D28 41 82 00 14 */ beq lbl_802690DC +/* 802690CC 00264D2C 80 03 00 00 */ lwz r0, 0(r3) +/* 802690D0 00264D30 28 00 00 02 */ cmplwi r0, 2 +/* 802690D4 00264D34 41 80 00 08 */ blt lbl_802690DC +/* 802690D8 00264D38 4B F7 03 5D */ bl func_801D9434 +lbl_802690DC: +/* 802690DC 00264D3C 4B FF F6 C1 */ bl ClearArena +/* 802690E0 00264D40 4B FF F8 99 */ bl ClearMEM2Arena +/* 802690E4 00264D44 48 00 56 8D */ bl OSEnableInterrupts +/* 802690E8 00264D48 48 03 9C 59 */ bl func_802A2D40 +/* 802690EC 00264D4C 80 0D A7 6C */ lwz r0, lbl_8063FA2C-_SDA_BASE_(r13) +/* 802690F0 00264D50 2C 00 00 00 */ cmpwi r0, 0 +/* 802690F4 00264D54 40 82 00 28 */ bne lbl_8026911C +/* 802690F8 00264D58 80 0D A7 D0 */ lwz r0, lbl_8063FA90-_SDA_BASE_(r13) +/* 802690FC 00264D5C 2C 00 00 00 */ cmpwi r0, 0 +/* 80269100 00264D60 40 82 00 1C */ bne lbl_8026911C +/* 80269104 00264D64 48 00 A1 F1 */ bl func_802732F4 +/* 80269108 00264D68 48 08 18 45 */ bl func_802EA94C +lbl_8026910C: +/* 8026910C 00264D6C 48 08 18 E1 */ bl func_802EA9EC +/* 80269110 00264D70 28 03 00 01 */ cmplwi r3, 1 +/* 80269114 00264D74 41 82 FF F8 */ beq lbl_8026910C +/* 80269118 00264D78 48 00 AF F9 */ bl func_80274110 +lbl_8026911C: +/* 8026911C 00264D7C 80 0D A7 68 */ lwz r0, lbl_8063FA28-_SDA_BASE_(r13) +/* 80269120 00264D80 2C 00 00 00 */ cmpwi r0, 0 +/* 80269124 00264D84 40 82 00 C8 */ bne lbl_802691EC +/* 80269128 00264D88 3C 60 80 00 */ lis r3, 0x8000315C@ha +/* 8026912C 00264D8C 88 03 31 5C */ lbz r0, 0x8000315C@l(r3) +/* 80269130 00264D90 2C 00 00 81 */ cmpwi r0, 0x81 +/* 80269134 00264D94 41 82 00 0C */ beq lbl_80269140 +/* 80269138 00264D98 40 80 00 28 */ bge lbl_80269160 +/* 8026913C 00264D9C 48 00 00 24 */ b lbl_80269160 +lbl_80269140: +/* 80269140 00264DA0 38 7F 02 58 */ addi r3, r31, 0x258 +/* 80269144 00264DA4 4C C6 31 82 */ crclr 6 +/* 80269148 00264DA8 4B D9 E9 7D */ bl func_80007AC4 +/* 8026914C 00264DAC 38 BF 02 A8 */ addi r5, r31, 0x2a8 +/* 80269150 00264DB0 38 6D 87 90 */ addi r3, r13, lbl_8063DA50-_SDA_BASE_ +/* 80269154 00264DB4 38 80 04 58 */ li r4, 0x458 +/* 80269158 00264DB8 4C C6 31 82 */ crclr 6 +/* 8026915C 00264DBC 48 00 23 41 */ bl func_8026B49C +lbl_80269160: +/* 80269160 00264DC0 3C 60 80 00 */ lis r3, 0x8000315D@ha +/* 80269164 00264DC4 88 03 31 5D */ lbz r0, 0x8000315D@l(r3) +/* 80269168 00264DC8 2C 00 00 81 */ cmpwi r0, 0x81 +/* 8026916C 00264DCC 41 82 00 0C */ beq lbl_80269178 +/* 80269170 00264DD0 40 80 00 28 */ bge lbl_80269198 +/* 80269174 00264DD4 48 00 00 24 */ b lbl_80269198 +lbl_80269178: +/* 80269178 00264DD8 38 7F 02 C0 */ addi r3, r31, 0x2c0 +/* 8026917C 00264DDC 4C C6 31 82 */ crclr 6 +/* 80269180 00264DE0 4B D9 E9 45 */ bl func_80007AC4 +/* 80269184 00264DE4 38 BF 02 A8 */ addi r5, r31, 0x2a8 +/* 80269188 00264DE8 38 6D 87 90 */ addi r3, r13, lbl_8063DA50-_SDA_BASE_ +/* 8026918C 00264DEC 38 80 04 6A */ li r4, 0x46a +/* 80269190 00264DF0 4C C6 31 82 */ crclr 6 +/* 80269194 00264DF4 48 00 23 09 */ bl func_8026B49C +lbl_80269198: +/* 80269198 00264DF8 48 01 F0 AD */ bl func_80288244 +/* 8026919C 00264DFC 80 0D A7 70 */ lwz r0, lbl_8063FA30-_SDA_BASE_(r13) +/* 802691A0 00264E00 2C 00 00 00 */ cmpwi r0, 0 +/* 802691A4 00264E04 41 82 00 18 */ beq lbl_802691BC +/* 802691A8 00264E08 3C 80 00 01 */ lis r4, 0x00009000@ha +/* 802691AC 00264E0C 3C 60 80 00 */ lis r3, 0x800030E6@ha +/* 802691B0 00264E10 38 04 90 00 */ addi r0, r4, 0x00009000@l +/* 802691B4 00264E14 B0 03 30 E6 */ sth r0, 0x800030E6@l(r3) +/* 802691B8 00264E18 48 00 00 34 */ b lbl_802691EC +lbl_802691BC: +/* 802691BC 00264E1C 3C 60 80 00 */ lis r3, 0x800030E6@ha +/* 802691C0 00264E20 A0 03 30 E6 */ lhz r0, 0x800030E6@l(r3) +/* 802691C4 00264E24 2C 00 00 00 */ cmpwi r0, 0 +/* 802691C8 00264E28 40 82 00 24 */ bne lbl_802691EC +/* 802691CC 00264E2C 38 7E 00 20 */ addi r3, r30, 0x20 +/* 802691D0 00264E30 38 80 00 20 */ li r4, 0x20 +/* 802691D4 00264E34 48 00 14 55 */ bl DCInvalidateRange +/* 802691D8 00264E38 3C A0 80 27 */ lis r5, InquiryCallback@ha +/* 802691DC 00264E3C 38 7E 00 40 */ addi r3, r30, 0x40 +/* 802691E0 00264E40 38 9E 00 20 */ addi r4, r30, 0x20 +/* 802691E4 00264E44 38 A5 8B 5C */ addi r5, r5, InquiryCallback@l +/* 802691E8 00264E48 48 02 2B 45 */ bl func_8028BD2C +lbl_802691EC: +/* 802691EC 00264E4C 80 0D A7 68 */ lwz r0, lbl_8063FA28-_SDA_BASE_(r13) +/* 802691F0 00264E50 2C 00 00 00 */ cmpwi r0, 0 +/* 802691F4 00264E54 40 82 00 20 */ bne lbl_80269214 +/* 802691F8 00264E58 80 0D A7 6C */ lwz r0, lbl_8063FA2C-_SDA_BASE_(r13) +/* 802691FC 00264E5C 2C 00 00 00 */ cmpwi r0, 0 +/* 80269200 00264E60 40 82 00 14 */ bne lbl_80269214 +/* 80269204 00264E64 80 0D A7 D0 */ lwz r0, lbl_8063FA90-_SDA_BASE_(r13) +/* 80269208 00264E68 2C 00 00 00 */ cmpwi r0, 0 +/* 8026920C 00264E6C 40 82 00 08 */ bne lbl_80269214 +/* 80269210 00264E70 48 00 AA B9 */ bl func_80273CC8 +lbl_80269214: +/* 80269214 00264E74 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80269218 00264E78 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8026921C 00264E7C 83 C1 00 08 */ lwz r30, 8(r1) +/* 80269220 00264E80 7C 08 03 A6 */ mtlr r0 +/* 80269224 00264E84 38 21 00 10 */ addi r1, r1, 0x10 +/* 80269228 00264E88 4E 80 00 20 */ blr + +.global OSExceptionInit +OSExceptionInit: +/* 8026922C 00264E8C 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 80269230 00264E90 7C 08 02 A6 */ mflr r0 +/* 80269234 00264E94 90 01 00 44 */ stw r0, 0x44(r1) +/* 80269238 00264E98 39 61 00 40 */ addi r11, r1, 0x40 +/* 8026923C 00264E9C 4B F5 DE D1 */ bl func_801C710C +/* 80269240 00264EA0 3E C0 80 00 */ lis r22, 0x80000060@ha +/* 80269244 00264EA4 3F 40 80 27 */ lis r26, OSExceptionVector@ha +/* 80269248 00264EA8 80 16 00 60 */ lwz r0, 0x80000060@l(r22) +/* 8026924C 00264EAC 3C 60 80 27 */ lis r3, lbl_80269590@ha +/* 80269250 00264EB0 3F 80 80 27 */ lis r28, 0x8027 +/* 80269254 00264EB4 3F C0 80 42 */ lis r30, lbl_804265E0@ha +/* 80269258 00264EB8 2C 00 00 00 */ cmpwi r0, 0 +/* 8026925C 00264EBC 3B 5A 94 F8 */ addi r26, r26, OSExceptionVector@l +/* 80269260 00264EC0 38 63 95 90 */ addi r3, r3, lbl_80269590@l +/* 80269264 00264EC4 87 7C 95 60 */ lwzu r27, -0x6aa0(r28) +/* 80269268 00264EC8 3B DE 65 E0 */ addi r30, r30, lbl_804265E0@l +/* 8026926C 00264ECC 7F 3A 18 50 */ subf r25, r26, r3 +/* 80269270 00264ED0 40 82 00 4C */ bne lbl_802692BC +/* 80269274 00264ED4 38 7E 03 54 */ addi r3, r30, 0x354 +/* 80269278 00264ED8 4C C6 31 82 */ crclr 6 +/* 8026927C 00264EDC 48 00 E1 CD */ bl func_80277448 +/* 80269280 00264EE0 3C 80 80 27 */ lis r4, __OSDBIntegrator@ha +/* 80269284 00264EE4 3C A0 80 27 */ lis r5, __OSDBJump@ha +/* 80269288 00264EE8 38 84 94 AC */ addi r4, r4, __OSDBIntegrator@l +/* 8026928C 00264EEC 38 76 00 60 */ addi r3, r22, 0x60 +/* 80269290 00264EF0 38 A5 94 D0 */ addi r5, r5, __OSDBJump@l +/* 80269294 00264EF4 7E A4 28 50 */ subf r21, r4, r5 +/* 80269298 00264EF8 7E A5 AB 78 */ mr r5, r21 +/* 8026929C 00264EFC 4B D9 AD 65 */ bl memcpy +/* 802692A0 00264F00 7E A4 AB 78 */ mr r4, r21 +/* 802692A4 00264F04 38 76 00 60 */ addi r3, r22, 0x60 +/* 802692A8 00264F08 48 00 14 0D */ bl DCFlushRangeNoSync +/* 802692AC 00264F0C 7C 00 04 AC */ sync 0 +/* 802692B0 00264F10 7E A4 AB 78 */ mr r4, r21 +/* 802692B4 00264F14 38 76 00 60 */ addi r3, r22, 0x60 +/* 802692B8 00264F18 48 00 14 81 */ bl ICInvalidateRange +lbl_802692BC: +/* 802692BC 00264F1C 3F E0 80 27 */ lis r31, __OSDBJump@ha +/* 802692C0 00264F20 3C 60 80 27 */ lis r3, __OSSetExceptionHandler@ha +/* 802692C4 00264F24 38 1F 94 D0 */ addi r0, r31, __OSDBJump@l +/* 802692C8 00264F28 3B 1E 03 18 */ addi r24, r30, 0x318 +/* 802692CC 00264F2C 38 63 94 D4 */ addi r3, r3, __OSSetExceptionHandler@l +/* 802692D0 00264F30 3B A0 00 00 */ li r29, 0 +/* 802692D4 00264F34 7E A0 18 50 */ subf r21, r0, r3 +/* 802692D8 00264F38 3E E0 60 00 */ lis r23, 0x6000 +/* 802692DC 00264F3C 3E C0 80 27 */ lis r22, 0x8027 +lbl_802692E0: +/* 802692E0 00264F40 80 6D A7 9C */ lwz r3, lbl_8063FA5C-_SDA_BASE_(r13) +/* 802692E4 00264F44 2C 03 00 00 */ cmpwi r3, 0 +/* 802692E8 00264F48 41 82 00 34 */ beq lbl_8026931C +/* 802692EC 00264F4C 80 03 00 00 */ lwz r0, 0(r3) +/* 802692F0 00264F50 28 00 00 02 */ cmplwi r0, 2 +/* 802692F4 00264F54 41 80 00 28 */ blt lbl_8026931C +/* 802692F8 00264F58 57 A3 06 3E */ clrlwi r3, r29, 0x18 +/* 802692FC 00264F5C 48 00 E1 35 */ bl func_80277430 +/* 80269300 00264F60 2C 03 00 00 */ cmpwi r3, 0 +/* 80269304 00264F64 41 82 00 18 */ beq lbl_8026931C +/* 80269308 00264F68 38 7E 03 70 */ addi r3, r30, 0x370 +/* 8026930C 00264F6C 57 A4 06 3E */ clrlwi r4, r29, 0x18 +/* 80269310 00264F70 4C C6 31 82 */ crclr 6 +/* 80269314 00264F74 48 00 E1 35 */ bl func_80277448 +/* 80269318 00264F78 48 00 00 D8 */ b lbl_802693F0 +lbl_8026931C: +/* 8026931C 00264F7C 57 A3 06 3E */ clrlwi r3, r29, 0x18 +/* 80269320 00264F80 7F 60 1B 78 */ or r0, r27, r3 +/* 80269324 00264F84 90 1C 00 00 */ stw r0, 0(r28) +/* 80269328 00264F88 48 00 E1 09 */ bl func_80277430 +/* 8026932C 00264F8C 2C 03 00 00 */ cmpwi r3, 0 +/* 80269330 00264F90 41 82 00 28 */ beq lbl_80269358 +/* 80269334 00264F94 38 7E 03 A0 */ addi r3, r30, 0x3a0 +/* 80269338 00264F98 57 A4 06 3E */ clrlwi r4, r29, 0x18 +/* 8026933C 00264F9C 4C C6 31 82 */ crclr 6 +/* 80269340 00264FA0 48 00 E1 09 */ bl func_80277448 +/* 80269344 00264FA4 7E A5 AB 78 */ mr r5, r21 +/* 80269348 00264FA8 38 76 95 50 */ addi r3, r22, -27312 +/* 8026934C 00264FAC 38 9F 94 D0 */ addi r4, r31, -27440 +/* 80269350 00264FB0 4B D9 AC B1 */ bl memcpy +/* 80269354 00264FB4 48 00 00 64 */ b lbl_802693B8 +lbl_80269358: +/* 80269358 00264FB8 28 15 00 00 */ cmplwi r21, 0 +/* 8026935C 00264FBC 38 75 00 03 */ addi r3, r21, 3 +/* 80269360 00264FC0 38 96 95 50 */ addi r4, r22, -27312 +/* 80269364 00264FC4 54 63 F0 BE */ srwi r3, r3, 2 +/* 80269368 00264FC8 40 81 00 50 */ ble lbl_802693B8 +/* 8026936C 00264FCC 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 80269370 00264FD0 7C 09 03 A6 */ mtctr r0 +/* 80269374 00264FD4 41 82 00 34 */ beq lbl_802693A8 +lbl_80269378: +/* 80269378 00264FD8 92 E4 00 00 */ stw r23, 0(r4) +/* 8026937C 00264FDC 92 E4 00 04 */ stw r23, 4(r4) +/* 80269380 00264FE0 92 E4 00 08 */ stw r23, 8(r4) +/* 80269384 00264FE4 92 E4 00 0C */ stw r23, 0xc(r4) +/* 80269388 00264FE8 92 E4 00 10 */ stw r23, 0x10(r4) +/* 8026938C 00264FEC 92 E4 00 14 */ stw r23, 0x14(r4) +/* 80269390 00264FF0 92 E4 00 18 */ stw r23, 0x18(r4) +/* 80269394 00264FF4 92 E4 00 1C */ stw r23, 0x1c(r4) +/* 80269398 00264FF8 38 84 00 20 */ addi r4, r4, 0x20 +/* 8026939C 00264FFC 42 00 FF DC */ bdnz lbl_80269378 +/* 802693A0 00265000 70 63 00 07 */ andi. r3, r3, 7 +/* 802693A4 00265004 41 82 00 14 */ beq lbl_802693B8 +lbl_802693A8: +/* 802693A8 00265008 7C 69 03 A6 */ mtctr r3 +lbl_802693AC: +/* 802693AC 0026500C 92 E4 00 00 */ stw r23, 0(r4) +/* 802693B0 00265010 38 84 00 04 */ addi r4, r4, 4 +/* 802693B4 00265014 42 00 FF F8 */ bdnz lbl_802693AC +lbl_802693B8: +/* 802693B8 00265018 57 A0 15 BA */ rlwinm r0, r29, 2, 0x16, 0x1d +/* 802693BC 0026501C 7F 44 D3 78 */ mr r4, r26 +/* 802693C0 00265020 7C 78 00 2E */ lwzx r3, r24, r0 +/* 802693C4 00265024 7F 25 CB 78 */ mr r5, r25 +/* 802693C8 00265028 3E 83 80 00 */ addis r20, r3, 0x8000 +/* 802693CC 0026502C 7E 83 A3 78 */ mr r3, r20 +/* 802693D0 00265030 4B D9 AC 31 */ bl memcpy +/* 802693D4 00265034 7E 83 A3 78 */ mr r3, r20 +/* 802693D8 00265038 7F 24 CB 78 */ mr r4, r25 +/* 802693DC 0026503C 48 00 12 D9 */ bl DCFlushRangeNoSync +/* 802693E0 00265040 7C 00 04 AC */ sync 0 +/* 802693E4 00265044 7E 83 A3 78 */ mr r3, r20 +/* 802693E8 00265048 7F 24 CB 78 */ mr r4, r25 +/* 802693EC 0026504C 48 00 13 4D */ bl ICInvalidateRange +lbl_802693F0: +/* 802693F0 00265050 3B BD 00 01 */ addi r29, r29, 1 +/* 802693F4 00265054 28 1D 00 0F */ cmplwi r29, 0xf +/* 802693F8 00265058 41 80 FE E8 */ blt lbl_802692E0 +/* 802693FC 0026505C 3C 60 80 00 */ lis r3, 0x80003000@ha +/* 80269400 00265060 3C A0 80 27 */ lis r5, OSDefaultExceptionHandler@ha +/* 80269404 00265064 38 83 30 00 */ addi r4, r3, 0x80003000@l +/* 80269408 00265068 90 8D A7 78 */ stw r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 8026940C 0026506C 38 A5 95 94 */ addi r5, r5, OSDefaultExceptionHandler@l +/* 80269410 00265070 38 7E 03 D0 */ addi r3, r30, 0x3d0 +/* 80269414 00265074 90 A4 00 00 */ stw r5, 0(r4) +/* 80269418 00265078 80 8D A7 78 */ lwz r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 8026941C 0026507C 90 A4 00 04 */ stw r5, 4(r4) +/* 80269420 00265080 80 8D A7 78 */ lwz r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 80269424 00265084 90 A4 00 08 */ stw r5, 8(r4) +/* 80269428 00265088 80 8D A7 78 */ lwz r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 8026942C 0026508C 90 A4 00 0C */ stw r5, 0xc(r4) +/* 80269430 00265090 80 8D A7 78 */ lwz r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 80269434 00265094 90 A4 00 10 */ stw r5, 0x10(r4) +/* 80269438 00265098 80 8D A7 78 */ lwz r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 8026943C 0026509C 90 A4 00 14 */ stw r5, 0x14(r4) +/* 80269440 002650A0 80 8D A7 78 */ lwz r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 80269444 002650A4 90 A4 00 18 */ stw r5, 0x18(r4) +/* 80269448 002650A8 80 8D A7 78 */ lwz r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 8026944C 002650AC 90 A4 00 1C */ stw r5, 0x1c(r4) +/* 80269450 002650B0 80 8D A7 78 */ lwz r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 80269454 002650B4 90 A4 00 20 */ stw r5, 0x20(r4) +/* 80269458 002650B8 80 8D A7 78 */ lwz r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 8026945C 002650BC 90 A4 00 24 */ stw r5, 0x24(r4) +/* 80269460 002650C0 80 8D A7 78 */ lwz r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 80269464 002650C4 90 A4 00 28 */ stw r5, 0x28(r4) +/* 80269468 002650C8 80 8D A7 78 */ lwz r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 8026946C 002650CC 90 A4 00 2C */ stw r5, 0x2c(r4) +/* 80269470 002650D0 80 8D A7 78 */ lwz r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 80269474 002650D4 90 A4 00 30 */ stw r5, 0x30(r4) +/* 80269478 002650D8 80 8D A7 78 */ lwz r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 8026947C 002650DC 90 A4 00 34 */ stw r5, 0x34(r4) +/* 80269480 002650E0 80 8D A7 78 */ lwz r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 80269484 002650E4 90 A4 00 38 */ stw r5, 0x38(r4) +/* 80269488 002650E8 93 7C 00 00 */ stw r27, 0(r28) +/* 8026948C 002650EC 4C C6 31 82 */ crclr 6 +/* 80269490 002650F0 48 00 DF B9 */ bl func_80277448 +/* 80269494 002650F4 39 61 00 40 */ addi r11, r1, 0x40 +/* 80269498 002650F8 4B F5 DC C1 */ bl func_801C7158 +/* 8026949C 002650FC 80 01 00 44 */ lwz r0, 0x44(r1) +/* 802694A0 00265100 7C 08 03 A6 */ mtlr r0 +/* 802694A4 00265104 38 21 00 40 */ addi r1, r1, 0x40 +/* 802694A8 00265108 4E 80 00 20 */ blr + +.global __OSDBIntegrator +__OSDBIntegrator: +/* 802694AC 0026510C 38 A0 00 40 */ li r5, 0x40 +/* 802694B0 00265110 7C 68 02 A6 */ mflr r3 +/* 802694B4 00265114 90 65 00 0C */ stw r3, 0xc(r5) +/* 802694B8 00265118 80 65 00 08 */ lwz r3, 8(r5) +/* 802694BC 0026511C 64 63 80 00 */ oris r3, r3, 0x8000 +/* 802694C0 00265120 7C 68 03 A6 */ mtlr r3 +/* 802694C4 00265124 38 60 00 30 */ li r3, 0x30 +/* 802694C8 00265128 7C 60 01 24 */ mtmsr r3 +/* 802694CC 0026512C 4E 80 00 20 */ blr + +.global __OSDBJump +__OSDBJump: +/* 802694D0 00265130 48 00 00 61 */ bl lbl_80269530 + +.global __OSSetExceptionHandler +__OSSetExceptionHandler: +/* 802694D4 00265134 80 AD A7 78 */ lwz r5, lbl_8063FA38-_SDA_BASE_(r13) +/* 802694D8 00265138 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d +/* 802694DC 0026513C 7C 65 00 2E */ lwzx r3, r5, r0 +/* 802694E0 00265140 7C 85 01 2E */ stwx r4, r5, r0 +/* 802694E4 00265144 4E 80 00 20 */ blr + +.global __OSGetExceptionHandler +__OSGetExceptionHandler: +/* 802694E8 00265148 80 8D A7 78 */ lwz r4, lbl_8063FA38-_SDA_BASE_(r13) +/* 802694EC 0026514C 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d +/* 802694F0 00265150 7C 64 00 2E */ lwzx r3, r4, r0 +/* 802694F4 00265154 4E 80 00 20 */ blr + +.global OSExceptionVector +OSExceptionVector: +/* 802694F8 00265158 7C 90 43 A6 */ mtspr 0x110, r4 +/* 802694FC 0026515C 80 80 00 C0 */ lwz r4, 0xc0(0) +/* 80269500 00265160 90 64 00 0C */ stw r3, 0xc(r4) +/* 80269504 00265164 7C 70 42 A6 */ mfspr r3, 0x110 +/* 80269508 00265168 90 64 00 10 */ stw r3, 0x10(r4) +/* 8026950C 0026516C 90 A4 00 14 */ stw r5, 0x14(r4) +/* 80269510 00265170 A0 64 01 A2 */ lhz r3, 0x1a2(r4) +/* 80269514 00265174 60 63 00 02 */ ori r3, r3, 2 +/* 80269518 00265178 B0 64 01 A2 */ sth r3, 0x1a2(r4) +/* 8026951C 0026517C 7C 60 00 26 */ mfcr r3 +/* 80269520 00265180 90 64 00 80 */ stw r3, 0x80(r4) +/* 80269524 00265184 7C 68 02 A6 */ mflr r3 +/* 80269528 00265188 90 64 00 84 */ stw r3, 0x84(r4) +/* 8026952C 0026518C 7C 69 02 A6 */ mfctr r3 +lbl_80269530: +/* 80269530 00265190 90 64 00 88 */ stw r3, 0x88(r4) +/* 80269534 00265194 7C 61 02 A6 */ mfxer r3 +/* 80269538 00265198 90 64 00 8C */ stw r3, 0x8c(r4) +/* 8026953C 0026519C 7C 7A 02 A6 */ mfspr r3, 0x1a +/* 80269540 002651A0 90 64 01 98 */ stw r3, 0x198(r4) +/* 80269544 002651A4 7C 7B 02 A6 */ mfspr r3, 0x1b +/* 80269548 002651A8 90 64 01 9C */ stw r3, 0x19c(r4) +/* 8026954C 002651AC 7C 65 1B 78 */ mr r5, r3 +/* 80269550 002651B0 60 00 00 00 */ nop +/* 80269554 002651B4 7C 60 00 A6 */ mfmsr r3 +/* 80269558 002651B8 60 63 00 30 */ ori r3, r3, 0x30 +/* 8026955C 002651BC 7C 7B 03 A6 */ mtspr 0x1b, r3 +/* 80269560 002651C0 38 60 00 00 */ li r3, 0 +/* 80269564 002651C4 80 80 00 D4 */ lwz r4, 0xd4(0) +/* 80269568 002651C8 54 A5 07 BD */ rlwinm. r5, r5, 0, 0x1e, 0x1e +/* 8026956C 002651CC 40 82 00 14 */ bne lbl_80269580 +/* 80269570 002651D0 3C A0 80 27 */ lis r5, OSDefaultExceptionHandler@ha +/* 80269574 002651D4 38 A5 95 94 */ addi r5, r5, OSDefaultExceptionHandler@l +/* 80269578 002651D8 7C BA 03 A6 */ mtspr 0x1a, r5 +/* 8026957C 002651DC 4C 00 00 64 */ rfi +lbl_80269580: +/* 80269580 002651E0 54 65 15 BA */ rlwinm r5, r3, 2, 0x16, 0x1d +/* 80269584 002651E4 80 A5 30 00 */ lwz r5, 0x3000(r5) +/* 80269588 002651E8 7C BA 03 A6 */ mtspr 0x1a, r5 +/* 8026958C 002651EC 4C 00 00 64 */ rfi +lbl_80269590: +/* 80269590 002651F0 60 00 00 00 */ nop + +.global OSDefaultExceptionHandler +OSDefaultExceptionHandler: +/* 80269594 002651F4 90 04 00 00 */ stw r0, 0(r4) +/* 80269598 002651F8 90 24 00 04 */ stw r1, 4(r4) +/* 8026959C 002651FC 90 44 00 08 */ stw r2, 8(r4) +/* 802695A0 00265200 BC C4 00 18 */ stmw r6, 0x18(r4) +/* 802695A4 00265204 7C 11 E2 A6 */ mfspr r0, 0x391 +/* 802695A8 00265208 90 04 01 A8 */ stw r0, 0x1a8(r4) +/* 802695AC 0026520C 7C 12 E2 A6 */ mfspr r0, 0x392 +/* 802695B0 00265210 90 04 01 AC */ stw r0, 0x1ac(r4) +/* 802695B4 00265214 7C 13 E2 A6 */ mfspr r0, 0x393 +/* 802695B8 00265218 90 04 01 B0 */ stw r0, 0x1b0(r4) +/* 802695BC 0026521C 7C 14 E2 A6 */ mfspr r0, 0x394 +/* 802695C0 00265220 90 04 01 B4 */ stw r0, 0x1b4(r4) +/* 802695C4 00265224 7C 15 E2 A6 */ mfspr r0, 0x395 +/* 802695C8 00265228 90 04 01 B8 */ stw r0, 0x1b8(r4) +/* 802695CC 0026522C 7C 16 E2 A6 */ mfspr r0, 0x396 +/* 802695D0 00265230 90 04 01 BC */ stw r0, 0x1bc(r4) +/* 802695D4 00265234 7C 17 E2 A6 */ mfspr r0, 0x397 +/* 802695D8 00265238 90 04 01 C0 */ stw r0, 0x1c0(r4) +/* 802695DC 0026523C 7C B2 02 A6 */ mfdsisr r5 +/* 802695E0 00265240 7C D3 02 A6 */ mfdar r6 +/* 802695E4 00265244 94 21 FF F8 */ stwu r1, -8(r1) +/* 802695E8 00265248 48 00 22 68 */ b func_8026B850 + +.global __OSPSInit +__OSPSInit: +/* 802695EC 0026524C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802695F0 00265250 7C 08 02 A6 */ mflr r0 +/* 802695F4 00265254 90 01 00 14 */ stw r0, 0x14(r1) +/* 802695F8 00265258 4B FF EC FD */ bl func_802682F4 +/* 802695FC 0026525C 64 63 A0 00 */ oris r3, r3, 0xa000 +/* 80269600 00265260 4B FF EC FD */ bl func_802682FC +/* 80269604 00265264 48 00 11 69 */ bl ICFlashInvalidate +/* 80269608 00265268 7C 00 04 AC */ sync 0 +/* 8026960C 0026526C 38 60 00 00 */ li r3, 0 +/* 80269610 00265270 7C 70 E3 A6 */ mtspr 0x390, r3 +/* 80269614 00265274 7C 71 E3 A6 */ mtspr 0x391, r3 +/* 80269618 00265278 7C 72 E3 A6 */ mtspr 0x392, r3 +/* 8026961C 0026527C 7C 73 E3 A6 */ mtspr 0x393, r3 +/* 80269620 00265280 7C 74 E3 A6 */ mtspr 0x394, r3 +/* 80269624 00265284 7C 75 E3 A6 */ mtspr 0x395, r3 +/* 80269628 00265288 7C 76 E3 A6 */ mtspr 0x396, r3 +/* 8026962C 0026528C 7C 77 E3 A6 */ mtspr 0x397, r3 +/* 80269630 00265290 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80269634 00265294 7C 08 03 A6 */ mtlr r0 +/* 80269638 00265298 38 21 00 10 */ addi r1, r1, 0x10 +/* 8026963C 0026529C 4E 80 00 20 */ blr + +.global __OSGetDIConfig +__OSGetDIConfig: +/* 80269640 002652A0 3C 60 CD 00 */ lis r3, 0xCD006024@ha +/* 80269644 002652A4 80 03 60 24 */ lwz r0, 0xCD006024@l(r3) +/* 80269648 002652A8 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 8026964C 002652AC 4E 80 00 20 */ blr + +.global OSRegisterVersion +OSRegisterVersion: +/* 80269650 002652B0 7C 64 1B 78 */ mr r4, r3 +/* 80269654 002652B4 38 6D 87 8C */ addi r3, r13, lbl_8063DA4C-_SDA_BASE_ +/* 80269658 002652B8 4C C6 31 82 */ crclr 6 +/* 8026965C 002652BC 4B D9 E4 68 */ b func_80007AC4 + +.global OSGetAppGamename +OSGetAppGamename: +/* 80269660 002652C0 80 0D A7 68 */ lwz r0, lbl_8063FA28-_SDA_BASE_(r13) +/* 80269664 002652C4 3C 60 80 00 */ lis r3, 0x80003180@ha +/* 80269668 002652C8 38 C3 31 80 */ addi r6, r3, 0x80003180@l +/* 8026966C 002652CC 2C 00 00 00 */ cmpwi r0, 0 +/* 80269670 002652D0 41 82 00 08 */ beq lbl_80269678 +/* 80269674 002652D4 80 CD 87 A0 */ lwz r6, lbl_8063DA60-_SDA_BASE_(r13) +lbl_80269678: +/* 80269678 002652D8 88 86 00 00 */ lbz r4, 0(r6) +/* 8026967C 002652DC 38 AD A7 90 */ addi r5, r13, lbl_8063FA50-_SDA_BASE_ +/* 80269680 002652E0 38 00 00 00 */ li r0, 0 +/* 80269684 002652E4 38 6D A7 90 */ addi r3, r13, lbl_8063FA50-_SDA_BASE_ +/* 80269688 002652E8 98 8D A7 90 */ stb r4, lbl_8063FA50-_SDA_BASE_(r13) +/* 8026968C 002652EC 88 86 00 01 */ lbz r4, 1(r6) +/* 80269690 002652F0 98 85 00 01 */ stb r4, 1(r5) +/* 80269694 002652F4 88 86 00 02 */ lbz r4, 2(r6) +/* 80269698 002652F8 98 85 00 02 */ stb r4, 2(r5) +/* 8026969C 002652FC 88 86 00 03 */ lbz r4, 3(r6) +/* 802696A0 00265300 98 85 00 03 */ stb r4, 3(r5) +/* 802696A4 00265304 98 05 00 04 */ stb r0, 4(r5) +/* 802696A8 00265308 4E 80 00 20 */ blr + +.global OSGetAppType +OSGetAppType: +/* 802696AC 0026530C 80 0D A7 68 */ lwz r0, lbl_8063FA28-_SDA_BASE_(r13) +/* 802696B0 00265310 2C 00 00 00 */ cmpwi r0, 0 +/* 802696B4 00265314 41 82 00 0C */ beq lbl_802696C0 +/* 802696B8 00265318 38 60 00 40 */ li r3, 0x40 +/* 802696BC 0026531C 4E 80 00 20 */ blr +lbl_802696C0: +/* 802696C0 00265320 3C 60 80 00 */ lis r3, 0x80003184@ha +/* 802696C4 00265324 88 63 31 84 */ lbz r3, 0x80003184@l(r3) +/* 802696C8 00265328 4E 80 00 20 */ blr diff --git a/asm/SDK/OS/OSAlarm.s b/asm/SDK/OS/OSAlarm.s new file mode 100644 index 0000000..01fcbc0 --- /dev/null +++ b/asm/SDK/OS/OSAlarm.s @@ -0,0 +1,581 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global __OSInitAlarm +__OSInitAlarm: +/* 802696CC 0026532C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802696D0 00265330 7C 08 02 A6 */ mflr r0 +/* 802696D4 00265334 38 60 00 08 */ li r3, 8 +/* 802696D8 00265338 90 01 00 14 */ stw r0, 0x14(r1) +/* 802696DC 0026533C 4B FF FE 0D */ bl __OSGetExceptionHandler +/* 802696E0 00265340 3C 80 80 27 */ lis r4, DecrementerExceptionHandler@ha +/* 802696E4 00265344 38 84 9D BC */ addi r4, r4, DecrementerExceptionHandler@l +/* 802696E8 00265348 7C 03 20 40 */ cmplw r3, r4 +/* 802696EC 0026534C 41 82 00 28 */ beq lbl_80269714 +/* 802696F0 00265350 38 00 00 00 */ li r0, 0 +/* 802696F4 00265354 38 6D A7 B0 */ addi r3, r13, lbl_8063FA70-_SDA_BASE_ +/* 802696F8 00265358 90 03 00 04 */ stw r0, 4(r3) +/* 802696FC 0026535C 38 60 00 08 */ li r3, 8 +/* 80269700 00265360 90 0D A7 B0 */ stw r0, lbl_8063FA70-_SDA_BASE_(r13) +/* 80269704 00265364 4B FF FD D1 */ bl __OSSetExceptionHandler +/* 80269708 00265368 3C 60 80 42 */ lis r3, lbl_804269D0@ha +/* 8026970C 0026536C 38 63 69 D0 */ addi r3, r3, lbl_804269D0@l +/* 80269710 00265370 48 00 65 81 */ bl func_8026FC90 +lbl_80269714: +/* 80269714 00265374 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80269718 00265378 7C 08 03 A6 */ mtlr r0 +/* 8026971C 0026537C 38 21 00 10 */ addi r1, r1, 0x10 +/* 80269720 00265380 4E 80 00 20 */ blr + +.global OSCreateAlarm +OSCreateAlarm: +/* 80269724 00265384 38 00 00 00 */ li r0, 0 +/* 80269728 00265388 90 03 00 00 */ stw r0, 0(r3) +/* 8026972C 0026538C 90 03 00 04 */ stw r0, 4(r3) +/* 80269730 00265390 4E 80 00 20 */ blr + +.global InsertAlarm +InsertAlarm: +/* 80269734 00265394 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 80269738 00265398 7C 08 02 A6 */ mflr r0 +/* 8026973C 0026539C 90 01 00 34 */ stw r0, 0x34(r1) +/* 80269740 002653A0 39 61 00 30 */ addi r11, r1, 0x30 +/* 80269744 002653A4 4B F5 D9 DD */ bl func_801C7120 +/* 80269748 002653A8 80 83 00 18 */ lwz r4, 0x18(r3) +/* 8026974C 002653AC 3B A0 00 00 */ li r29, 0 +/* 80269750 002653B0 81 03 00 1C */ lwz r8, 0x1c(r3) +/* 80269754 002653B4 7C 7E 1B 78 */ mr r30, r3 +/* 80269758 002653B8 6F A0 80 00 */ xoris r0, r29, 0x8000 +/* 8026975C 002653BC 6C 84 80 00 */ xoris r4, r4, 0x8000 +/* 80269760 002653C0 7C 68 E8 10 */ subfc r3, r8, r29 +/* 80269764 002653C4 7C FF 3B 78 */ mr r31, r7 +/* 80269768 002653C8 7C 84 01 10 */ subfe r4, r4, r0 +/* 8026976C 002653CC 7C 80 01 10 */ subfe r4, r0, r0 +/* 80269770 002653D0 7C 84 00 D1 */ neg. r4, r4 +/* 80269774 002653D4 41 82 00 7C */ beq lbl_802697F0 +/* 80269778 002653D8 48 00 90 61 */ bl func_802727D8 +/* 8026977C 002653DC 83 9E 00 20 */ lwz r28, 0x20(r30) +/* 80269780 002653E0 6C 67 80 00 */ xoris r7, r3, 0x8000 +/* 80269784 002653E4 83 7E 00 24 */ lwz r27, 0x24(r30) +/* 80269788 002653E8 6F 80 80 00 */ xoris r0, r28, 0x8000 +/* 8026978C 002653EC 7F 85 E3 78 */ mr r5, r28 +/* 80269790 002653F0 7C C4 D8 10 */ subfc r6, r4, r27 +/* 80269794 002653F4 7C E7 01 10 */ subfe r7, r7, r0 +/* 80269798 002653F8 7C E0 01 10 */ subfe r7, r0, r0 +/* 8026979C 002653FC 7F 66 DB 78 */ mr r6, r27 +/* 802697A0 00265400 7C E7 00 D1 */ neg. r7, r7 +/* 802697A4 00265404 41 82 00 4C */ beq lbl_802697F0 +/* 802697A8 00265408 83 5E 00 18 */ lwz r26, 0x18(r30) +/* 802697AC 0026540C 7C 9B 20 10 */ subfc r4, r27, r4 +/* 802697B0 00265410 83 3E 00 1C */ lwz r25, 0x1c(r30) +/* 802697B4 00265414 7C 7C 19 10 */ subfe r3, r28, r3 +/* 802697B8 00265418 7F 45 D3 78 */ mr r5, r26 +/* 802697BC 0026541C 7F 26 CB 78 */ mr r6, r25 +/* 802697C0 00265420 4B F5 DA B9 */ bl __div2i +/* 802697C4 00265424 38 00 00 01 */ li r0, 1 +/* 802697C8 00265428 7C 84 00 14 */ addc r4, r4, r0 +/* 802697CC 0026542C 7C 19 20 16 */ mulhwu r0, r25, r4 +/* 802697D0 00265430 7C A3 E9 14 */ adde r5, r3, r29 +/* 802697D4 00265434 7C 7A 21 D6 */ mullw r3, r26, r4 +/* 802697D8 00265438 7C 99 21 D6 */ mullw r4, r25, r4 +/* 802697DC 0026543C 7C 60 1A 14 */ add r3, r0, r3 +/* 802697E0 00265440 7C 19 29 D6 */ mullw r0, r25, r5 +/* 802697E4 00265444 7C DB 20 14 */ addc r6, r27, r4 +/* 802697E8 00265448 7C 03 02 14 */ add r0, r3, r0 +/* 802697EC 0026544C 7C BC 01 14 */ adde r5, r28, r0 +lbl_802697F0: +/* 802697F0 00265450 93 FE 00 00 */ stw r31, 0(r30) +/* 802697F4 00265454 6C A0 80 00 */ xoris r0, r5, 0x8000 +/* 802697F8 00265458 90 DE 00 0C */ stw r6, 0xc(r30) +/* 802697FC 0026545C 90 BE 00 08 */ stw r5, 8(r30) +/* 80269800 00265460 80 ED A7 B0 */ lwz r7, lbl_8063FA70-_SDA_BASE_(r13) +/* 80269804 00265464 48 00 00 C4 */ b lbl_802698C8 +lbl_80269808: +/* 80269808 00265468 80 67 00 08 */ lwz r3, 8(r7) +/* 8026980C 0026546C 80 A7 00 0C */ lwz r5, 0xc(r7) +/* 80269810 00265470 6C 64 80 00 */ xoris r4, r3, 0x8000 +/* 80269814 00265474 7C 65 30 10 */ subfc r3, r5, r6 +/* 80269818 00265478 7C 84 01 10 */ subfe r4, r4, r0 +/* 8026981C 0026547C 7C 80 01 10 */ subfe r4, r0, r0 +/* 80269820 00265480 7C 84 00 D1 */ neg. r4, r4 +/* 80269824 00265484 41 82 00 A0 */ beq lbl_802698C4 +/* 80269828 00265488 80 07 00 10 */ lwz r0, 0x10(r7) +/* 8026982C 0026548C 90 1E 00 10 */ stw r0, 0x10(r30) +/* 80269830 00265490 93 C7 00 10 */ stw r30, 0x10(r7) +/* 80269834 00265494 80 7E 00 10 */ lwz r3, 0x10(r30) +/* 80269838 00265498 90 FE 00 14 */ stw r7, 0x14(r30) +/* 8026983C 0026549C 2C 03 00 00 */ cmpwi r3, 0 +/* 80269840 002654A0 41 82 00 0C */ beq lbl_8026984C +/* 80269844 002654A4 93 C3 00 14 */ stw r30, 0x14(r3) +/* 80269848 002654A8 48 00 01 24 */ b lbl_8026996C +lbl_8026984C: +/* 8026984C 002654AC 93 CD A7 B0 */ stw r30, lbl_8063FA70-_SDA_BASE_(r13) +/* 80269850 002654B0 48 00 8F 89 */ bl func_802727D8 +/* 80269854 002654B4 80 BE 00 0C */ lwz r5, 0xc(r30) +/* 80269858 002654B8 38 E0 00 00 */ li r7, 0 +/* 8026985C 002654BC 80 1E 00 08 */ lwz r0, 8(r30) +/* 80269860 002654C0 6C E6 80 00 */ xoris r6, r7, 0x8000 +/* 80269864 002654C4 7D 04 28 10 */ subfc r8, r4, r5 +/* 80269868 002654C8 7C 03 01 10 */ subfe r0, r3, r0 +/* 8026986C 002654CC 6C 05 80 00 */ xoris r5, r0, 0x8000 +/* 80269870 002654D0 7C 07 40 10 */ subfc r0, r7, r8 +/* 80269874 002654D4 7C C6 29 10 */ subfe r6, r6, r5 +/* 80269878 002654D8 7C C5 29 10 */ subfe r6, r5, r5 +/* 8026987C 002654DC 7C C6 00 D1 */ neg. r6, r6 +/* 80269880 002654E0 41 82 00 10 */ beq lbl_80269890 +/* 80269884 002654E4 38 60 00 00 */ li r3, 0 +/* 80269888 002654E8 4B FF E9 D1 */ bl func_80268258 +/* 8026988C 002654EC 48 00 00 E0 */ b lbl_8026996C +lbl_80269890: +/* 80269890 002654F0 3C 80 80 00 */ lis r4, 0x8000 +/* 80269894 002654F4 6C E3 80 00 */ xoris r3, r7, 0x8000 +/* 80269898 002654F8 7C 04 40 10 */ subfc r0, r4, r8 +/* 8026989C 002654FC 7C 63 29 10 */ subfe r3, r3, r5 +/* 802698A0 00265500 7C 65 29 10 */ subfe r3, r5, r5 +/* 802698A4 00265504 7C 63 00 D1 */ neg. r3, r3 +/* 802698A8 00265508 41 82 00 10 */ beq lbl_802698B8 +/* 802698AC 0026550C 7D 03 43 78 */ mr r3, r8 +/* 802698B0 00265510 4B FF E9 A9 */ bl func_80268258 +/* 802698B4 00265514 48 00 00 B8 */ b lbl_8026996C +lbl_802698B8: +/* 802698B8 00265518 38 64 FF FF */ addi r3, r4, -1 +/* 802698BC 0026551C 4B FF E9 9D */ bl func_80268258 +/* 802698C0 00265520 48 00 00 AC */ b lbl_8026996C +lbl_802698C4: +/* 802698C4 00265524 80 E7 00 14 */ lwz r7, 0x14(r7) +lbl_802698C8: +/* 802698C8 00265528 2C 07 00 00 */ cmpwi r7, 0 +/* 802698CC 0026552C 40 82 FF 3C */ bne lbl_80269808 +/* 802698D0 00265530 3B E0 00 00 */ li r31, 0 +/* 802698D4 00265534 38 6D A7 B0 */ addi r3, r13, lbl_8063FA70-_SDA_BASE_ +/* 802698D8 00265538 93 FE 00 14 */ stw r31, 0x14(r30) +/* 802698DC 0026553C 80 83 00 04 */ lwz r4, 4(r3) +/* 802698E0 00265540 93 C3 00 04 */ stw r30, 4(r3) +/* 802698E4 00265544 2C 04 00 00 */ cmpwi r4, 0 +/* 802698E8 00265548 90 9E 00 10 */ stw r4, 0x10(r30) +/* 802698EC 0026554C 41 82 00 0C */ beq lbl_802698F8 +/* 802698F0 00265550 93 C4 00 14 */ stw r30, 0x14(r4) +/* 802698F4 00265554 48 00 00 78 */ b lbl_8026996C +lbl_802698F8: +/* 802698F8 00265558 93 C3 00 04 */ stw r30, 4(r3) +/* 802698FC 0026555C 93 CD A7 B0 */ stw r30, lbl_8063FA70-_SDA_BASE_(r13) +/* 80269900 00265560 48 00 8E D9 */ bl func_802727D8 +/* 80269904 00265564 80 BE 00 0C */ lwz r5, 0xc(r30) +/* 80269908 00265568 6F E6 80 00 */ xoris r6, r31, 0x8000 +/* 8026990C 0026556C 80 1E 00 08 */ lwz r0, 8(r30) +/* 80269910 00265570 7C E4 28 10 */ subfc r7, r4, r5 +/* 80269914 00265574 7C 03 01 10 */ subfe r0, r3, r0 +/* 80269918 00265578 6C 05 80 00 */ xoris r5, r0, 0x8000 +/* 8026991C 0026557C 7C 1F 38 10 */ subfc r0, r31, r7 +/* 80269920 00265580 7C C6 29 10 */ subfe r6, r6, r5 +/* 80269924 00265584 7C C5 29 10 */ subfe r6, r5, r5 +/* 80269928 00265588 7C C6 00 D1 */ neg. r6, r6 +/* 8026992C 0026558C 41 82 00 10 */ beq lbl_8026993C +/* 80269930 00265590 38 60 00 00 */ li r3, 0 +/* 80269934 00265594 4B FF E9 25 */ bl func_80268258 +/* 80269938 00265598 48 00 00 34 */ b lbl_8026996C +lbl_8026993C: +/* 8026993C 0026559C 3C 80 80 00 */ lis r4, 0x8000 +/* 80269940 002655A0 6F E3 80 00 */ xoris r3, r31, 0x8000 +/* 80269944 002655A4 7C 04 38 10 */ subfc r0, r4, r7 +/* 80269948 002655A8 7C 63 29 10 */ subfe r3, r3, r5 +/* 8026994C 002655AC 7C 65 29 10 */ subfe r3, r5, r5 +/* 80269950 002655B0 7C 63 00 D1 */ neg. r3, r3 +/* 80269954 002655B4 41 82 00 10 */ beq lbl_80269964 +/* 80269958 002655B8 7C E3 3B 78 */ mr r3, r7 +/* 8026995C 002655BC 4B FF E8 FD */ bl func_80268258 +/* 80269960 002655C0 48 00 00 0C */ b lbl_8026996C +lbl_80269964: +/* 80269964 002655C4 38 64 FF FF */ addi r3, r4, -1 +/* 80269968 002655C8 4B FF E8 F1 */ bl func_80268258 +lbl_8026996C: +/* 8026996C 002655CC 39 61 00 30 */ addi r11, r1, 0x30 +/* 80269970 002655D0 4B F5 D7 FD */ bl func_801C716C +/* 80269974 002655D4 80 01 00 34 */ lwz r0, 0x34(r1) +/* 80269978 002655D8 7C 08 03 A6 */ mtlr r0 +/* 8026997C 002655DC 38 21 00 30 */ addi r1, r1, 0x30 +/* 80269980 002655E0 4E 80 00 20 */ blr + +.global OSSetAlarm +OSSetAlarm: +/* 80269984 002655E4 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80269988 002655E8 7C 08 02 A6 */ mflr r0 +/* 8026998C 002655EC 90 01 00 24 */ stw r0, 0x24(r1) +/* 80269990 002655F0 39 61 00 20 */ addi r11, r1, 0x20 +/* 80269994 002655F4 4B F5 D7 95 */ bl func_801C7128 +/* 80269998 002655F8 7C 7B 1B 78 */ mr r27, r3 +/* 8026999C 002655FC 7C BD 2B 78 */ mr r29, r5 +/* 802699A0 00265600 7C DC 33 78 */ mr r28, r6 +/* 802699A4 00265604 7C FE 3B 78 */ mr r30, r7 +/* 802699A8 00265608 48 00 4D B5 */ bl OSDisableInterrupts +/* 802699AC 0026560C 38 00 00 00 */ li r0, 0 +/* 802699B0 00265610 7C 7F 1B 78 */ mr r31, r3 +/* 802699B4 00265614 90 1B 00 1C */ stw r0, 0x1c(r27) +/* 802699B8 00265618 90 1B 00 18 */ stw r0, 0x18(r27) +/* 802699BC 0026561C 48 00 8E 1D */ bl func_802727D8 +/* 802699C0 00265620 7C DC 20 14 */ addc r6, r28, r4 +/* 802699C4 00265624 7F C7 F3 78 */ mr r7, r30 +/* 802699C8 00265628 7C BD 19 14 */ adde r5, r29, r3 +/* 802699CC 0026562C 7F 63 DB 78 */ mr r3, r27 +/* 802699D0 00265630 4B FF FD 65 */ bl InsertAlarm +/* 802699D4 00265634 7F E3 FB 78 */ mr r3, r31 +/* 802699D8 00265638 48 00 4D AD */ bl OSRestoreInterrupts +/* 802699DC 0026563C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802699E0 00265640 4B F5 D7 95 */ bl func_801C7174 +/* 802699E4 00265644 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802699E8 00265648 7C 08 03 A6 */ mtlr r0 +/* 802699EC 0026564C 38 21 00 20 */ addi r1, r1, 0x20 +/* 802699F0 00265650 4E 80 00 20 */ blr + +.global OSSetPeriodicAlarm +OSSetPeriodicAlarm: +/* 802699F4 00265654 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802699F8 00265658 7C 08 02 A6 */ mflr r0 +/* 802699FC 0026565C 90 01 00 24 */ stw r0, 0x24(r1) +/* 80269A00 00265660 39 61 00 20 */ addi r11, r1, 0x20 +/* 80269A04 00265664 4B F5 D7 21 */ bl func_801C7124 +/* 80269A08 00265668 7C 7A 1B 78 */ mr r26, r3 +/* 80269A0C 0026566C 7C BC 2B 78 */ mr r28, r5 +/* 80269A10 00265670 7C DB 33 78 */ mr r27, r6 +/* 80269A14 00265674 7C FD 3B 78 */ mr r29, r7 +/* 80269A18 00265678 7D 1F 43 78 */ mr r31, r8 +/* 80269A1C 0026567C 7D 3E 4B 78 */ mr r30, r9 +/* 80269A20 00265680 48 00 4D 3D */ bl OSDisableInterrupts +/* 80269A24 00265684 93 FA 00 1C */ stw r31, 0x1c(r26) +/* 80269A28 00265688 7C 7F 1B 78 */ mr r31, r3 +/* 80269A2C 0026568C 7F 64 DB 78 */ mr r4, r27 +/* 80269A30 00265690 7F 83 E3 78 */ mr r3, r28 +/* 80269A34 00265694 93 BA 00 18 */ stw r29, 0x18(r26) +/* 80269A38 00265698 48 00 8E 05 */ bl func_8027283C +/* 80269A3C 0026569C 90 7A 00 20 */ stw r3, 0x20(r26) +/* 80269A40 002656A0 7F 43 D3 78 */ mr r3, r26 +/* 80269A44 002656A4 7F C7 F3 78 */ mr r7, r30 +/* 80269A48 002656A8 38 C0 00 00 */ li r6, 0 +/* 80269A4C 002656AC 90 9A 00 24 */ stw r4, 0x24(r26) +/* 80269A50 002656B0 38 A0 00 00 */ li r5, 0 +/* 80269A54 002656B4 4B FF FC E1 */ bl InsertAlarm +/* 80269A58 002656B8 7F E3 FB 78 */ mr r3, r31 +/* 80269A5C 002656BC 48 00 4D 29 */ bl OSRestoreInterrupts +/* 80269A60 002656C0 39 61 00 20 */ addi r11, r1, 0x20 +/* 80269A64 002656C4 4B F5 D7 0D */ bl func_801C7170 +/* 80269A68 002656C8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80269A6C 002656CC 7C 08 03 A6 */ mtlr r0 +/* 80269A70 002656D0 38 21 00 20 */ addi r1, r1, 0x20 +/* 80269A74 002656D4 4E 80 00 20 */ blr + +.global OSCancelAlarm +OSCancelAlarm: +/* 80269A78 002656D8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80269A7C 002656DC 7C 08 02 A6 */ mflr r0 +/* 80269A80 002656E0 90 01 00 24 */ stw r0, 0x24(r1) +/* 80269A84 002656E4 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 80269A88 002656E8 93 C1 00 18 */ stw r30, 0x18(r1) +/* 80269A8C 002656EC 7C 7E 1B 78 */ mr r30, r3 +/* 80269A90 002656F0 93 A1 00 14 */ stw r29, 0x14(r1) +/* 80269A94 002656F4 48 00 4C C9 */ bl OSDisableInterrupts +/* 80269A98 002656F8 80 1E 00 00 */ lwz r0, 0(r30) +/* 80269A9C 002656FC 7C 7F 1B 78 */ mr r31, r3 +/* 80269AA0 00265700 2C 00 00 00 */ cmpwi r0, 0 +/* 80269AA4 00265704 40 82 00 0C */ bne lbl_80269AB0 +/* 80269AA8 00265708 48 00 4C DD */ bl OSRestoreInterrupts +/* 80269AAC 0026570C 48 00 00 C8 */ b lbl_80269B74 +lbl_80269AB0: +/* 80269AB0 00265710 83 BE 00 14 */ lwz r29, 0x14(r30) +/* 80269AB4 00265714 2C 1D 00 00 */ cmpwi r29, 0 +/* 80269AB8 00265718 40 82 00 14 */ bne lbl_80269ACC +/* 80269ABC 0026571C 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 80269AC0 00265720 38 6D A7 B0 */ addi r3, r13, lbl_8063FA70-_SDA_BASE_ +/* 80269AC4 00265724 90 03 00 04 */ stw r0, 4(r3) +/* 80269AC8 00265728 48 00 00 0C */ b lbl_80269AD4 +lbl_80269ACC: +/* 80269ACC 0026572C 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 80269AD0 00265730 90 1D 00 10 */ stw r0, 0x10(r29) +lbl_80269AD4: +/* 80269AD4 00265734 80 7E 00 10 */ lwz r3, 0x10(r30) +/* 80269AD8 00265738 2C 03 00 00 */ cmpwi r3, 0 +/* 80269ADC 0026573C 41 82 00 0C */ beq lbl_80269AE8 +/* 80269AE0 00265740 93 A3 00 14 */ stw r29, 0x14(r3) +/* 80269AE4 00265744 48 00 00 80 */ b lbl_80269B64 +lbl_80269AE8: +/* 80269AE8 00265748 2C 1D 00 00 */ cmpwi r29, 0 +/* 80269AEC 0026574C 93 AD A7 B0 */ stw r29, lbl_8063FA70-_SDA_BASE_(r13) +/* 80269AF0 00265750 41 82 00 74 */ beq lbl_80269B64 +/* 80269AF4 00265754 48 00 8C E5 */ bl func_802727D8 +/* 80269AF8 00265758 80 BD 00 0C */ lwz r5, 0xc(r29) +/* 80269AFC 0026575C 38 E0 00 00 */ li r7, 0 +/* 80269B00 00265760 80 1D 00 08 */ lwz r0, 8(r29) +/* 80269B04 00265764 6C E6 80 00 */ xoris r6, r7, 0x8000 +/* 80269B08 00265768 7D 04 28 10 */ subfc r8, r4, r5 +/* 80269B0C 0026576C 7C 03 01 10 */ subfe r0, r3, r0 +/* 80269B10 00265770 6C 05 80 00 */ xoris r5, r0, 0x8000 +/* 80269B14 00265774 7C 07 40 10 */ subfc r0, r7, r8 +/* 80269B18 00265778 7C C6 29 10 */ subfe r6, r6, r5 +/* 80269B1C 0026577C 7C C5 29 10 */ subfe r6, r5, r5 +/* 80269B20 00265780 7C C6 00 D1 */ neg. r6, r6 +/* 80269B24 00265784 41 82 00 10 */ beq lbl_80269B34 +/* 80269B28 00265788 38 60 00 00 */ li r3, 0 +/* 80269B2C 0026578C 4B FF E7 2D */ bl func_80268258 +/* 80269B30 00265790 48 00 00 34 */ b lbl_80269B64 +lbl_80269B34: +/* 80269B34 00265794 3C 80 80 00 */ lis r4, 0x8000 +/* 80269B38 00265798 6C E3 80 00 */ xoris r3, r7, 0x8000 +/* 80269B3C 0026579C 7C 04 40 10 */ subfc r0, r4, r8 +/* 80269B40 002657A0 7C 63 29 10 */ subfe r3, r3, r5 +/* 80269B44 002657A4 7C 65 29 10 */ subfe r3, r5, r5 +/* 80269B48 002657A8 7C 63 00 D1 */ neg. r3, r3 +/* 80269B4C 002657AC 41 82 00 10 */ beq lbl_80269B5C +/* 80269B50 002657B0 7D 03 43 78 */ mr r3, r8 +/* 80269B54 002657B4 4B FF E7 05 */ bl func_80268258 +/* 80269B58 002657B8 48 00 00 0C */ b lbl_80269B64 +lbl_80269B5C: +/* 80269B5C 002657BC 38 64 FF FF */ addi r3, r4, -1 +/* 80269B60 002657C0 4B FF E6 F9 */ bl func_80268258 +lbl_80269B64: +/* 80269B64 002657C4 38 00 00 00 */ li r0, 0 +/* 80269B68 002657C8 7F E3 FB 78 */ mr r3, r31 +/* 80269B6C 002657CC 90 1E 00 00 */ stw r0, 0(r30) +/* 80269B70 002657D0 48 00 4C 15 */ bl OSRestoreInterrupts +lbl_80269B74: +/* 80269B74 002657D4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80269B78 002657D8 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 80269B7C 002657DC 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 80269B80 002657E0 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 80269B84 002657E4 7C 08 03 A6 */ mtlr r0 +/* 80269B88 002657E8 38 21 00 20 */ addi r1, r1, 0x20 +/* 80269B8C 002657EC 4E 80 00 20 */ blr + +.global DecrementerExceptionCallback +DecrementerExceptionCallback: +/* 80269B90 002657F0 94 21 FD 20 */ stwu r1, -0x2e0(r1) +/* 80269B94 002657F4 7C 08 02 A6 */ mflr r0 +/* 80269B98 002657F8 90 01 02 E4 */ stw r0, 0x2e4(r1) +/* 80269B9C 002657FC 93 E1 02 DC */ stw r31, 0x2dc(r1) +/* 80269BA0 00265800 93 C1 02 D8 */ stw r30, 0x2d8(r1) +/* 80269BA4 00265804 93 A1 02 D4 */ stw r29, 0x2d4(r1) +/* 80269BA8 00265808 7C 9D 23 78 */ mr r29, r4 +/* 80269BAC 0026580C 93 81 02 D0 */ stw r28, 0x2d0(r1) +/* 80269BB0 00265810 48 00 8C 29 */ bl func_802727D8 +/* 80269BB4 00265814 83 ED A7 B0 */ lwz r31, lbl_8063FA70-_SDA_BASE_(r13) +/* 80269BB8 00265818 7C 9C 23 78 */ mr r28, r4 +/* 80269BBC 0026581C 7C 7E 1B 78 */ mr r30, r3 +/* 80269BC0 00265820 2C 1F 00 00 */ cmpwi r31, 0 +/* 80269BC4 00265824 40 82 00 0C */ bne lbl_80269BD0 +/* 80269BC8 00265828 7F A3 EB 78 */ mr r3, r29 +/* 80269BCC 0026582C 48 00 13 85 */ bl OSLoadContext +lbl_80269BD0: +/* 80269BD0 00265830 80 7F 00 08 */ lwz r3, 8(r31) +/* 80269BD4 00265834 6F C0 80 00 */ xoris r0, r30, 0x8000 +/* 80269BD8 00265838 80 BF 00 0C */ lwz r5, 0xc(r31) +/* 80269BDC 0026583C 6C 64 80 00 */ xoris r4, r3, 0x8000 +/* 80269BE0 00265840 7C 65 E0 10 */ subfc r3, r5, r28 +/* 80269BE4 00265844 7C 84 01 10 */ subfe r4, r4, r0 +/* 80269BE8 00265848 7C 80 01 10 */ subfe r4, r0, r0 +/* 80269BEC 0026584C 7C 84 00 D1 */ neg. r4, r4 +/* 80269BF0 00265850 41 82 00 7C */ beq lbl_80269C6C +/* 80269BF4 00265854 48 00 8B E5 */ bl func_802727D8 +/* 80269BF8 00265858 80 BF 00 0C */ lwz r5, 0xc(r31) +/* 80269BFC 0026585C 38 E0 00 00 */ li r7, 0 +/* 80269C00 00265860 80 1F 00 08 */ lwz r0, 8(r31) +/* 80269C04 00265864 6C E6 80 00 */ xoris r6, r7, 0x8000 +/* 80269C08 00265868 7D 04 28 10 */ subfc r8, r4, r5 +/* 80269C0C 0026586C 7C 03 01 10 */ subfe r0, r3, r0 +/* 80269C10 00265870 6C 05 80 00 */ xoris r5, r0, 0x8000 +/* 80269C14 00265874 7C 07 40 10 */ subfc r0, r7, r8 +/* 80269C18 00265878 7C C6 29 10 */ subfe r6, r6, r5 +/* 80269C1C 0026587C 7C C5 29 10 */ subfe r6, r5, r5 +/* 80269C20 00265880 7C C6 00 D1 */ neg. r6, r6 +/* 80269C24 00265884 41 82 00 10 */ beq lbl_80269C34 +/* 80269C28 00265888 38 60 00 00 */ li r3, 0 +/* 80269C2C 0026588C 4B FF E6 2D */ bl func_80268258 +/* 80269C30 00265890 48 00 00 34 */ b lbl_80269C64 +lbl_80269C34: +/* 80269C34 00265894 3C 80 80 00 */ lis r4, 0x8000 +/* 80269C38 00265898 6C E3 80 00 */ xoris r3, r7, 0x8000 +/* 80269C3C 0026589C 7C 04 40 10 */ subfc r0, r4, r8 +/* 80269C40 002658A0 7C 63 29 10 */ subfe r3, r3, r5 +/* 80269C44 002658A4 7C 65 29 10 */ subfe r3, r5, r5 +/* 80269C48 002658A8 7C 63 00 D1 */ neg. r3, r3 +/* 80269C4C 002658AC 41 82 00 10 */ beq lbl_80269C5C +/* 80269C50 002658B0 7D 03 43 78 */ mr r3, r8 +/* 80269C54 002658B4 4B FF E6 05 */ bl func_80268258 +/* 80269C58 002658B8 48 00 00 0C */ b lbl_80269C64 +lbl_80269C5C: +/* 80269C5C 002658BC 38 64 FF FF */ addi r3, r4, -1 +/* 80269C60 002658C0 4B FF E5 F9 */ bl func_80268258 +lbl_80269C64: +/* 80269C64 002658C4 7F A3 EB 78 */ mr r3, r29 +/* 80269C68 002658C8 48 00 12 E9 */ bl OSLoadContext +lbl_80269C6C: +/* 80269C6C 002658CC 80 7F 00 14 */ lwz r3, 0x14(r31) +/* 80269C70 002658D0 2C 03 00 00 */ cmpwi r3, 0 +/* 80269C74 002658D4 90 6D A7 B0 */ stw r3, lbl_8063FA70-_SDA_BASE_(r13) +/* 80269C78 002658D8 40 82 00 14 */ bne lbl_80269C8C +/* 80269C7C 002658DC 38 00 00 00 */ li r0, 0 +/* 80269C80 002658E0 38 6D A7 B0 */ addi r3, r13, lbl_8063FA70-_SDA_BASE_ +/* 80269C84 002658E4 90 03 00 04 */ stw r0, 4(r3) +/* 80269C88 002658E8 48 00 00 0C */ b lbl_80269C94 +lbl_80269C8C: +/* 80269C8C 002658EC 38 00 00 00 */ li r0, 0 +/* 80269C90 002658F0 90 03 00 10 */ stw r0, 0x10(r3) +lbl_80269C94: +/* 80269C94 002658F4 83 DF 00 00 */ lwz r30, 0(r31) +/* 80269C98 002658F8 38 C0 00 00 */ li r6, 0 +/* 80269C9C 002658FC 6C C0 80 00 */ xoris r0, r6, 0x8000 +/* 80269CA0 00265900 90 DF 00 00 */ stw r6, 0(r31) +/* 80269CA4 00265904 80 7F 00 18 */ lwz r3, 0x18(r31) +/* 80269CA8 00265908 80 BF 00 1C */ lwz r5, 0x1c(r31) +/* 80269CAC 0026590C 6C 64 80 00 */ xoris r4, r3, 0x8000 +/* 80269CB0 00265910 7C 65 30 10 */ subfc r3, r5, r6 +/* 80269CB4 00265914 7C 84 01 10 */ subfe r4, r4, r0 +/* 80269CB8 00265918 7C 80 01 10 */ subfe r4, r0, r0 +/* 80269CBC 0026591C 7C 84 00 D1 */ neg. r4, r4 +/* 80269CC0 00265920 41 82 00 18 */ beq lbl_80269CD8 +/* 80269CC4 00265924 7F E3 FB 78 */ mr r3, r31 +/* 80269CC8 00265928 7F C7 F3 78 */ mr r7, r30 +/* 80269CCC 0026592C 38 C0 00 00 */ li r6, 0 +/* 80269CD0 00265930 38 A0 00 00 */ li r5, 0 +/* 80269CD4 00265934 4B FF FA 61 */ bl InsertAlarm +lbl_80269CD8: +/* 80269CD8 00265938 83 8D A7 B0 */ lwz r28, lbl_8063FA70-_SDA_BASE_(r13) +/* 80269CDC 0026593C 2C 1C 00 00 */ cmpwi r28, 0 +/* 80269CE0 00265940 41 82 00 74 */ beq lbl_80269D54 +/* 80269CE4 00265944 48 00 8A F5 */ bl func_802727D8 +/* 80269CE8 00265948 80 BC 00 0C */ lwz r5, 0xc(r28) +/* 80269CEC 0026594C 38 E0 00 00 */ li r7, 0 +/* 80269CF0 00265950 80 1C 00 08 */ lwz r0, 8(r28) +/* 80269CF4 00265954 6C E6 80 00 */ xoris r6, r7, 0x8000 +/* 80269CF8 00265958 7D 04 28 10 */ subfc r8, r4, r5 +/* 80269CFC 0026595C 7C 03 01 10 */ subfe r0, r3, r0 +/* 80269D00 00265960 6C 05 80 00 */ xoris r5, r0, 0x8000 +/* 80269D04 00265964 7C 07 40 10 */ subfc r0, r7, r8 +/* 80269D08 00265968 7C C6 29 10 */ subfe r6, r6, r5 +/* 80269D0C 0026596C 7C C5 29 10 */ subfe r6, r5, r5 +/* 80269D10 00265970 7C C6 00 D1 */ neg. r6, r6 +/* 80269D14 00265974 41 82 00 10 */ beq lbl_80269D24 +/* 80269D18 00265978 38 60 00 00 */ li r3, 0 +/* 80269D1C 0026597C 4B FF E5 3D */ bl func_80268258 +/* 80269D20 00265980 48 00 00 34 */ b lbl_80269D54 +lbl_80269D24: +/* 80269D24 00265984 3C 80 80 00 */ lis r4, 0x8000 +/* 80269D28 00265988 6C E3 80 00 */ xoris r3, r7, 0x8000 +/* 80269D2C 0026598C 7C 04 40 10 */ subfc r0, r4, r8 +/* 80269D30 00265990 7C 63 29 10 */ subfe r3, r3, r5 +/* 80269D34 00265994 7C 65 29 10 */ subfe r3, r5, r5 +/* 80269D38 00265998 7C 63 00 D1 */ neg. r3, r3 +/* 80269D3C 0026599C 41 82 00 10 */ beq lbl_80269D4C +/* 80269D40 002659A0 7D 03 43 78 */ mr r3, r8 +/* 80269D44 002659A4 4B FF E5 15 */ bl func_80268258 +/* 80269D48 002659A8 48 00 00 0C */ b lbl_80269D54 +lbl_80269D4C: +/* 80269D4C 002659AC 38 64 FF FF */ addi r3, r4, -1 +/* 80269D50 002659B0 4B FF E5 09 */ bl func_80268258 +lbl_80269D54: +/* 80269D54 002659B4 48 00 75 F1 */ bl func_80271344 +/* 80269D58 002659B8 38 61 00 08 */ addi r3, r1, 8 +/* 80269D5C 002659BC 48 00 13 35 */ bl func_8026B090 +/* 80269D60 002659C0 38 61 00 08 */ addi r3, r1, 8 +/* 80269D64 002659C4 48 00 11 05 */ bl OSSetCurrentContext +/* 80269D68 002659C8 7F CC F3 78 */ mr r12, r30 +/* 80269D6C 002659CC 7F E3 FB 78 */ mr r3, r31 +/* 80269D70 002659D0 7F A4 EB 78 */ mr r4, r29 +/* 80269D74 002659D4 7D 89 03 A6 */ mtctr r12 +/* 80269D78 002659D8 4E 80 04 21 */ bctrl +/* 80269D7C 002659DC 38 61 00 08 */ addi r3, r1, 8 +/* 80269D80 002659E0 48 00 13 11 */ bl func_8026B090 +/* 80269D84 002659E4 7F A3 EB 78 */ mr r3, r29 +/* 80269D88 002659E8 48 00 10 E1 */ bl OSSetCurrentContext +/* 80269D8C 002659EC 48 00 75 F5 */ bl func_80271380 +/* 80269D90 002659F0 48 00 7A FD */ bl func_8027188C +/* 80269D94 002659F4 7F A3 EB 78 */ mr r3, r29 +/* 80269D98 002659F8 48 00 11 B9 */ bl OSLoadContext +/* 80269D9C 002659FC 80 01 02 E4 */ lwz r0, 0x2e4(r1) +/* 80269DA0 00265A00 83 E1 02 DC */ lwz r31, 0x2dc(r1) +/* 80269DA4 00265A04 83 C1 02 D8 */ lwz r30, 0x2d8(r1) +/* 80269DA8 00265A08 83 A1 02 D4 */ lwz r29, 0x2d4(r1) +/* 80269DAC 00265A0C 83 81 02 D0 */ lwz r28, 0x2d0(r1) +/* 80269DB0 00265A10 7C 08 03 A6 */ mtlr r0 +/* 80269DB4 00265A14 38 21 02 E0 */ addi r1, r1, 0x2e0 +/* 80269DB8 00265A18 4E 80 00 20 */ blr + +.global DecrementerExceptionHandler +DecrementerExceptionHandler: +/* 80269DBC 00265A1C 90 04 00 00 */ stw r0, 0(r4) +/* 80269DC0 00265A20 90 24 00 04 */ stw r1, 4(r4) +/* 80269DC4 00265A24 90 44 00 08 */ stw r2, 8(r4) +/* 80269DC8 00265A28 BC C4 00 18 */ stmw r6, 0x18(r4) +/* 80269DCC 00265A2C 7C 11 E2 A6 */ mfspr r0, 0x391 +/* 80269DD0 00265A30 90 04 01 A8 */ stw r0, 0x1a8(r4) +/* 80269DD4 00265A34 7C 12 E2 A6 */ mfspr r0, 0x392 +/* 80269DD8 00265A38 90 04 01 AC */ stw r0, 0x1ac(r4) +/* 80269DDC 00265A3C 7C 13 E2 A6 */ mfspr r0, 0x393 +/* 80269DE0 00265A40 90 04 01 B0 */ stw r0, 0x1b0(r4) +/* 80269DE4 00265A44 7C 14 E2 A6 */ mfspr r0, 0x394 +/* 80269DE8 00265A48 90 04 01 B4 */ stw r0, 0x1b4(r4) +/* 80269DEC 00265A4C 7C 15 E2 A6 */ mfspr r0, 0x395 +/* 80269DF0 00265A50 90 04 01 B8 */ stw r0, 0x1b8(r4) +/* 80269DF4 00265A54 7C 16 E2 A6 */ mfspr r0, 0x396 +/* 80269DF8 00265A58 90 04 01 BC */ stw r0, 0x1bc(r4) +/* 80269DFC 00265A5C 7C 17 E2 A6 */ mfspr r0, 0x397 +/* 80269E00 00265A60 90 04 01 C0 */ stw r0, 0x1c0(r4) +/* 80269E04 00265A64 94 21 FF F8 */ stwu r1, -8(r1) +/* 80269E08 00265A68 4B FF FD 88 */ b DecrementerExceptionCallback + +.global OSSetAlarmTag +OSSetAlarmTag: +/* 80269E0C 00265A6C 90 83 00 04 */ stw r4, 4(r3) +/* 80269E10 00265A70 4E 80 00 20 */ blr + +.global OnReset +OnReset: +/* 80269E14 00265A74 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80269E18 00265A78 7C 08 02 A6 */ mflr r0 +/* 80269E1C 00265A7C 2C 03 00 00 */ cmpwi r3, 0 +/* 80269E20 00265A80 90 01 00 14 */ stw r0, 0x14(r1) +/* 80269E24 00265A84 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80269E28 00265A88 93 C1 00 08 */ stw r30, 8(r1) +/* 80269E2C 00265A8C 41 82 00 58 */ beq lbl_80269E84 +/* 80269E30 00265A90 83 ED A7 B0 */ lwz r31, lbl_8063FA70-_SDA_BASE_(r13) +/* 80269E34 00265A94 2C 1F 00 00 */ cmpwi r31, 0 +/* 80269E38 00265A98 41 82 00 0C */ beq lbl_80269E44 +/* 80269E3C 00265A9C 83 DF 00 14 */ lwz r30, 0x14(r31) +/* 80269E40 00265AA0 48 00 00 3C */ b lbl_80269E7C +lbl_80269E44: +/* 80269E44 00265AA4 3B C0 00 00 */ li r30, 0 +/* 80269E48 00265AA8 48 00 00 34 */ b lbl_80269E7C +lbl_80269E4C: +/* 80269E4C 00265AAC 7F E3 FB 78 */ mr r3, r31 +/* 80269E50 00265AB0 48 02 2B 11 */ bl func_8028C960 +/* 80269E54 00265AB4 2C 03 00 00 */ cmpwi r3, 0 +/* 80269E58 00265AB8 40 82 00 0C */ bne lbl_80269E64 +/* 80269E5C 00265ABC 7F E3 FB 78 */ mr r3, r31 +/* 80269E60 00265AC0 4B FF FC 19 */ bl OSCancelAlarm +lbl_80269E64: +/* 80269E64 00265AC4 2C 1E 00 00 */ cmpwi r30, 0 +/* 80269E68 00265AC8 7F DF F3 78 */ mr r31, r30 +/* 80269E6C 00265ACC 41 82 00 0C */ beq lbl_80269E78 +/* 80269E70 00265AD0 83 DE 00 14 */ lwz r30, 0x14(r30) +/* 80269E74 00265AD4 48 00 00 08 */ b lbl_80269E7C +lbl_80269E78: +/* 80269E78 00265AD8 3B C0 00 00 */ li r30, 0 +lbl_80269E7C: +/* 80269E7C 00265ADC 2C 1F 00 00 */ cmpwi r31, 0 +/* 80269E80 00265AE0 40 82 FF CC */ bne lbl_80269E4C +lbl_80269E84: +/* 80269E84 00265AE4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80269E88 00265AE8 38 60 00 01 */ li r3, 1 +/* 80269E8C 00265AEC 83 C1 00 08 */ lwz r30, 8(r1) +/* 80269E90 00265AF0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80269E94 00265AF4 7C 08 03 A6 */ mtlr r0 +/* 80269E98 00265AF8 38 21 00 10 */ addi r1, r1, 0x10 +/* 80269E9C 00265AFC 4E 80 00 20 */ blr + +.global OSSetAlarmUserData +OSSetAlarmUserData: +/* 80269EA0 00265B00 90 83 00 28 */ stw r4, 0x28(r3) +/* 80269EA4 00265B04 4E 80 00 20 */ blr + +.global OSGetAlarmUserData +OSGetAlarmUserData: +/* 80269EA8 00265B08 80 63 00 28 */ lwz r3, 0x28(r3) +/* 80269EAC 00265B0C 4E 80 00 20 */ blr diff --git a/asm/SDK/OS/OSAlloc.s b/asm/SDK/OS/OSAlloc.s new file mode 100644 index 0000000..766a0b4 --- /dev/null +++ b/asm/SDK/OS/OSAlloc.s @@ -0,0 +1,167 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global DLInsert +DLInsert: +/* 80269EB0 00265B10 7C 67 1B 78 */ mr r7, r3 +/* 80269EB4 00265B14 38 C0 00 00 */ li r6, 0 +/* 80269EB8 00265B18 48 00 00 14 */ b lbl_80269ECC +lbl_80269EBC: +/* 80269EBC 00265B1C 7C 04 38 40 */ cmplw r4, r7 +/* 80269EC0 00265B20 40 81 00 14 */ ble lbl_80269ED4 +/* 80269EC4 00265B24 7C E6 3B 78 */ mr r6, r7 +/* 80269EC8 00265B28 80 E7 00 04 */ lwz r7, 4(r7) +lbl_80269ECC: +/* 80269ECC 00265B2C 2C 07 00 00 */ cmpwi r7, 0 +/* 80269ED0 00265B30 40 82 FF EC */ bne lbl_80269EBC +lbl_80269ED4: +/* 80269ED4 00265B34 2C 07 00 00 */ cmpwi r7, 0 +/* 80269ED8 00265B38 90 E4 00 04 */ stw r7, 4(r4) +/* 80269EDC 00265B3C 90 C4 00 00 */ stw r6, 0(r4) +/* 80269EE0 00265B40 41 82 00 38 */ beq lbl_80269F18 +/* 80269EE4 00265B44 90 87 00 00 */ stw r4, 0(r7) +/* 80269EE8 00265B48 80 A4 00 08 */ lwz r5, 8(r4) +/* 80269EEC 00265B4C 7C 04 2A 14 */ add r0, r4, r5 +/* 80269EF0 00265B50 7C 00 38 40 */ cmplw r0, r7 +/* 80269EF4 00265B54 40 82 00 24 */ bne lbl_80269F18 +/* 80269EF8 00265B58 80 07 00 08 */ lwz r0, 8(r7) +/* 80269EFC 00265B5C 7C 05 02 14 */ add r0, r5, r0 +/* 80269F00 00265B60 90 04 00 08 */ stw r0, 8(r4) +/* 80269F04 00265B64 80 E7 00 04 */ lwz r7, 4(r7) +/* 80269F08 00265B68 2C 07 00 00 */ cmpwi r7, 0 +/* 80269F0C 00265B6C 90 E4 00 04 */ stw r7, 4(r4) +/* 80269F10 00265B70 41 82 00 08 */ beq lbl_80269F18 +/* 80269F14 00265B74 90 87 00 00 */ stw r4, 0(r7) +lbl_80269F18: +/* 80269F18 00265B78 2C 06 00 00 */ cmpwi r6, 0 +/* 80269F1C 00265B7C 41 82 00 38 */ beq lbl_80269F54 +/* 80269F20 00265B80 90 86 00 04 */ stw r4, 4(r6) +/* 80269F24 00265B84 80 A6 00 08 */ lwz r5, 8(r6) +/* 80269F28 00265B88 7C 06 2A 14 */ add r0, r6, r5 +/* 80269F2C 00265B8C 7C 00 20 40 */ cmplw r0, r4 +/* 80269F30 00265B90 4C 82 00 20 */ bnelr +/* 80269F34 00265B94 80 04 00 08 */ lwz r0, 8(r4) +/* 80269F38 00265B98 2C 07 00 00 */ cmpwi r7, 0 +/* 80269F3C 00265B9C 7C 05 02 14 */ add r0, r5, r0 +/* 80269F40 00265BA0 90 06 00 08 */ stw r0, 8(r6) +/* 80269F44 00265BA4 90 E6 00 04 */ stw r7, 4(r6) +/* 80269F48 00265BA8 4D 82 00 20 */ beqlr +/* 80269F4C 00265BAC 90 C7 00 00 */ stw r6, 0(r7) +/* 80269F50 00265BB0 4E 80 00 20 */ blr +lbl_80269F54: +/* 80269F54 00265BB4 7C 83 23 78 */ mr r3, r4 +/* 80269F58 00265BB8 4E 80 00 20 */ blr + +.global OSAllocFromHeap +OSAllocFromHeap: +/* 80269F5C 00265BBC 1C 63 00 0C */ mulli r3, r3, 0xc +/* 80269F60 00265BC0 80 AD A7 B8 */ lwz r5, lbl_8063FA78-_SDA_BASE_(r13) +/* 80269F64 00265BC4 38 04 00 3F */ addi r0, r4, 0x3f +/* 80269F68 00265BC8 7C A5 1A 14 */ add r5, r5, r3 +/* 80269F6C 00265BCC 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a +/* 80269F70 00265BD0 80 65 00 04 */ lwz r3, 4(r5) +/* 80269F74 00265BD4 7C 66 1B 78 */ mr r6, r3 +/* 80269F78 00265BD8 48 00 00 14 */ b lbl_80269F8C +lbl_80269F7C: +/* 80269F7C 00265BDC 80 06 00 08 */ lwz r0, 8(r6) +/* 80269F80 00265BE0 7C 04 00 00 */ cmpw r4, r0 +/* 80269F84 00265BE4 40 81 00 10 */ ble lbl_80269F94 +/* 80269F88 00265BE8 80 C6 00 04 */ lwz r6, 4(r6) +lbl_80269F8C: +/* 80269F8C 00265BEC 2C 06 00 00 */ cmpwi r6, 0 +/* 80269F90 00265BF0 40 82 FF EC */ bne lbl_80269F7C +lbl_80269F94: +/* 80269F94 00265BF4 2C 06 00 00 */ cmpwi r6, 0 +/* 80269F98 00265BF8 40 82 00 0C */ bne lbl_80269FA4 +/* 80269F9C 00265BFC 38 60 00 00 */ li r3, 0 +/* 80269FA0 00265C00 4E 80 00 20 */ blr +lbl_80269FA4: +/* 80269FA4 00265C04 80 06 00 08 */ lwz r0, 8(r6) +/* 80269FA8 00265C08 7C 04 00 50 */ subf r0, r4, r0 +/* 80269FAC 00265C0C 28 00 00 40 */ cmplwi r0, 0x40 +/* 80269FB0 00265C10 40 80 00 3C */ bge lbl_80269FEC +/* 80269FB4 00265C14 80 86 00 04 */ lwz r4, 4(r6) +/* 80269FB8 00265C18 2C 04 00 00 */ cmpwi r4, 0 +/* 80269FBC 00265C1C 41 82 00 0C */ beq lbl_80269FC8 +/* 80269FC0 00265C20 80 06 00 00 */ lwz r0, 0(r6) +/* 80269FC4 00265C24 90 04 00 00 */ stw r0, 0(r4) +lbl_80269FC8: +/* 80269FC8 00265C28 80 86 00 00 */ lwz r4, 0(r6) +/* 80269FCC 00265C2C 2C 04 00 00 */ cmpwi r4, 0 +/* 80269FD0 00265C30 40 82 00 0C */ bne lbl_80269FDC +/* 80269FD4 00265C34 80 66 00 04 */ lwz r3, 4(r6) +/* 80269FD8 00265C38 48 00 00 0C */ b lbl_80269FE4 +lbl_80269FDC: +/* 80269FDC 00265C3C 80 06 00 04 */ lwz r0, 4(r6) +/* 80269FE0 00265C40 90 04 00 04 */ stw r0, 4(r4) +lbl_80269FE4: +/* 80269FE4 00265C44 90 65 00 04 */ stw r3, 4(r5) +/* 80269FE8 00265C48 48 00 00 44 */ b lbl_8026A02C +lbl_80269FEC: +/* 80269FEC 00265C4C 90 86 00 08 */ stw r4, 8(r6) +/* 80269FF0 00265C50 7C 86 22 14 */ add r4, r6, r4 +/* 80269FF4 00265C54 90 04 00 08 */ stw r0, 8(r4) +/* 80269FF8 00265C58 80 06 00 00 */ lwz r0, 0(r6) +/* 80269FFC 00265C5C 90 04 00 00 */ stw r0, 0(r4) +/* 8026A000 00265C60 80 66 00 04 */ lwz r3, 4(r6) +/* 8026A004 00265C64 2C 03 00 00 */ cmpwi r3, 0 +/* 8026A008 00265C68 90 64 00 04 */ stw r3, 4(r4) +/* 8026A00C 00265C6C 41 82 00 08 */ beq lbl_8026A014 +/* 8026A010 00265C70 90 83 00 00 */ stw r4, 0(r3) +lbl_8026A014: +/* 8026A014 00265C74 80 64 00 00 */ lwz r3, 0(r4) +/* 8026A018 00265C78 2C 03 00 00 */ cmpwi r3, 0 +/* 8026A01C 00265C7C 41 82 00 0C */ beq lbl_8026A028 +/* 8026A020 00265C80 90 83 00 04 */ stw r4, 4(r3) +/* 8026A024 00265C84 48 00 00 08 */ b lbl_8026A02C +lbl_8026A028: +/* 8026A028 00265C88 90 85 00 04 */ stw r4, 4(r5) +lbl_8026A02C: +/* 8026A02C 00265C8C 80 65 00 08 */ lwz r3, 8(r5) +/* 8026A030 00265C90 38 00 00 00 */ li r0, 0 +/* 8026A034 00265C94 90 66 00 04 */ stw r3, 4(r6) +/* 8026A038 00265C98 2C 03 00 00 */ cmpwi r3, 0 +/* 8026A03C 00265C9C 90 06 00 00 */ stw r0, 0(r6) +/* 8026A040 00265CA0 41 82 00 08 */ beq lbl_8026A048 +/* 8026A044 00265CA4 90 C3 00 00 */ stw r6, 0(r3) +lbl_8026A048: +/* 8026A048 00265CA8 90 C5 00 08 */ stw r6, 8(r5) +/* 8026A04C 00265CAC 38 66 00 20 */ addi r3, r6, 0x20 +/* 8026A050 00265CB0 4E 80 00 20 */ blr + +.global OSFreeToHeap +OSFreeToHeap: +/* 8026A054 00265CB4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8026A058 00265CB8 7C 08 02 A6 */ mflr r0 +/* 8026A05C 00265CBC 38 84 FF E0 */ addi r4, r4, -32 +/* 8026A060 00265CC0 90 01 00 14 */ stw r0, 0x14(r1) +/* 8026A064 00265CC4 1C 03 00 0C */ mulli r0, r3, 0xc +/* 8026A068 00265CC8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8026A06C 00265CCC 80 AD A7 B8 */ lwz r5, lbl_8063FA78-_SDA_BASE_(r13) +/* 8026A070 00265CD0 80 C4 00 04 */ lwz r6, 4(r4) +/* 8026A074 00265CD4 7F E5 02 14 */ add r31, r5, r0 +/* 8026A078 00265CD8 2C 06 00 00 */ cmpwi r6, 0 +/* 8026A07C 00265CDC 80 7F 00 08 */ lwz r3, 8(r31) +/* 8026A080 00265CE0 41 82 00 0C */ beq lbl_8026A08C +/* 8026A084 00265CE4 80 04 00 00 */ lwz r0, 0(r4) +/* 8026A088 00265CE8 90 06 00 00 */ stw r0, 0(r6) +lbl_8026A08C: +/* 8026A08C 00265CEC 80 A4 00 00 */ lwz r5, 0(r4) +/* 8026A090 00265CF0 2C 05 00 00 */ cmpwi r5, 0 +/* 8026A094 00265CF4 40 82 00 0C */ bne lbl_8026A0A0 +/* 8026A098 00265CF8 80 64 00 04 */ lwz r3, 4(r4) +/* 8026A09C 00265CFC 48 00 00 0C */ b lbl_8026A0A8 +lbl_8026A0A0: +/* 8026A0A0 00265D00 80 04 00 04 */ lwz r0, 4(r4) +/* 8026A0A4 00265D04 90 05 00 04 */ stw r0, 4(r5) +lbl_8026A0A8: +/* 8026A0A8 00265D08 90 7F 00 08 */ stw r3, 8(r31) +/* 8026A0AC 00265D0C 80 7F 00 04 */ lwz r3, 4(r31) +/* 8026A0B0 00265D10 4B FF FE 01 */ bl DLInsert +/* 8026A0B4 00265D14 90 7F 00 04 */ stw r3, 4(r31) +/* 8026A0B8 00265D18 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8026A0BC 00265D1C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8026A0C0 00265D20 7C 08 03 A6 */ mtlr r0 +/* 8026A0C4 00265D24 38 21 00 10 */ addi r1, r1, 0x10 +/* 8026A0C8 00265D28 4E 80 00 20 */ blr |