.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global TRKDoSetOption TRKDoSetOption: /* 801D58C4 001D1524 94 21 FF B0 */ stwu r1, -0x50(r1) /* 801D58C8 001D1528 7C 08 02 A6 */ mflr r0 /* 801D58CC 001D152C 3C 80 80 40 */ lis r4, lbl_803FD680@ha /* 801D58D0 001D1530 90 01 00 54 */ stw r0, 0x54(r1) /* 801D58D4 001D1534 93 E1 00 4C */ stw r31, 0x4c(r1) /* 801D58D8 001D1538 3B E4 D6 80 */ addi r31, r4, lbl_803FD680@l /* 801D58DC 001D153C 93 C1 00 48 */ stw r30, 0x48(r1) /* 801D58E0 001D1540 88 03 00 18 */ lbz r0, 0x18(r3) /* 801D58E4 001D1544 8B C3 00 1C */ lbz r30, 0x1c(r3) /* 801D58E8 001D1548 28 00 00 01 */ cmplwi r0, 1 /* 801D58EC 001D154C 40 82 00 30 */ bne lbl_801D591C /* 801D58F0 001D1550 38 7F 00 00 */ addi r3, r31, 0 /* 801D58F4 001D1554 4B FF FE 01 */ bl usr_puts_serial /* 801D58F8 001D1558 28 1E 00 00 */ cmplwi r30, 0 /* 801D58FC 001D155C 41 82 00 10 */ beq lbl_801D590C /* 801D5900 001D1560 38 7F 00 20 */ addi r3, r31, 0x20 /* 801D5904 001D1564 4B FF FD F1 */ bl usr_puts_serial /* 801D5908 001D1568 48 00 00 0C */ b lbl_801D5914 lbl_801D590C: /* 801D590C 001D156C 38 7F 00 28 */ addi r3, r31, 0x28 /* 801D5910 001D1570 4B FF FD E5 */ bl usr_puts_serial lbl_801D5914: /* 801D5914 001D1574 7F C3 F3 78 */ mr r3, r30 /* 801D5918 001D1578 48 00 40 85 */ bl SetUseSerialIO lbl_801D591C: /* 801D591C 001D157C 38 61 00 08 */ addi r3, r1, 8 /* 801D5920 001D1580 38 80 00 00 */ li r4, 0 /* 801D5924 001D1584 38 A0 00 40 */ li r5, 0x40 /* 801D5928 001D1588 4B E2 E8 0D */ bl TRK_memset /* 801D592C 001D158C 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D5930 001D1590 38 00 00 80 */ li r0, 0x80 /* 801D5934 001D1594 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D5938 001D1598 38 C0 00 40 */ li r6, 0x40 /* 801D593C 001D159C 81 09 00 00 */ lwz r8, 0(r9) /* 801D5940 001D15A0 38 A0 00 00 */ li r5, 0 /* 801D5944 001D15A4 98 01 00 0C */ stb r0, 0xc(r1) /* 801D5948 001D15A8 38 61 00 08 */ addi r3, r1, 8 /* 801D594C 001D15AC 38 E8 00 01 */ addi r7, r8, 1 /* 801D5950 001D15B0 38 80 00 40 */ li r4, 0x40 /* 801D5954 001D15B4 91 01 00 14 */ stw r8, 0x14(r1) /* 801D5958 001D15B8 38 07 00 01 */ addi r0, r7, 1 /* 801D595C 001D15BC 90 E9 00 00 */ stw r7, 0(r9) /* 801D5960 001D15C0 90 C1 00 08 */ stw r6, 8(r1) /* 801D5964 001D15C4 98 A1 00 10 */ stb r5, 0x10(r1) /* 801D5968 001D15C8 90 09 00 00 */ stw r0, 0(r9) /* 801D596C 001D15CC 90 E1 00 14 */ stw r7, 0x14(r1) /* 801D5970 001D15D0 48 00 3C 9D */ bl TRKWriteUARTN /* 801D5974 001D15D4 80 01 00 54 */ lwz r0, 0x54(r1) /* 801D5978 001D15D8 38 60 00 00 */ li r3, 0 /* 801D597C 001D15DC 83 E1 00 4C */ lwz r31, 0x4c(r1) /* 801D5980 001D15E0 83 C1 00 48 */ lwz r30, 0x48(r1) /* 801D5984 001D15E4 7C 08 03 A6 */ mtlr r0 /* 801D5988 001D15E8 38 21 00 50 */ addi r1, r1, 0x50 /* 801D598C 001D15EC 4E 80 00 20 */ blr .global TRKDoStop TRKDoStop: /* 801D5990 001D15F0 94 21 FF B0 */ stwu r1, -0x50(r1) /* 801D5994 001D15F4 7C 08 02 A6 */ mflr r0 /* 801D5998 001D15F8 90 01 00 54 */ stw r0, 0x54(r1) /* 801D599C 001D15FC 93 E1 00 4C */ stw r31, 0x4c(r1) /* 801D59A0 001D1600 48 00 1C 5D */ bl TRKTargetStop /* 801D59A4 001D1604 2C 03 07 04 */ cmpwi r3, 0x704 /* 801D59A8 001D1608 41 82 00 2C */ beq lbl_801D59D4 /* 801D59AC 001D160C 40 80 00 10 */ bge lbl_801D59BC /* 801D59B0 001D1610 2C 03 00 00 */ cmpwi r3, 0 /* 801D59B4 001D1614 41 82 00 18 */ beq lbl_801D59CC /* 801D59B8 001D1618 48 00 00 34 */ b lbl_801D59EC lbl_801D59BC: /* 801D59BC 001D161C 2C 03 07 06 */ cmpwi r3, 0x706 /* 801D59C0 001D1620 41 82 00 24 */ beq lbl_801D59E4 /* 801D59C4 001D1624 40 80 00 28 */ bge lbl_801D59EC /* 801D59C8 001D1628 48 00 00 14 */ b lbl_801D59DC lbl_801D59CC: /* 801D59CC 001D162C 3B E0 00 00 */ li r31, 0 /* 801D59D0 001D1630 48 00 00 20 */ b lbl_801D59F0 lbl_801D59D4: /* 801D59D4 001D1634 3B E0 00 21 */ li r31, 0x21 /* 801D59D8 001D1638 48 00 00 18 */ b lbl_801D59F0 lbl_801D59DC: /* 801D59DC 001D163C 3B E0 00 22 */ li r31, 0x22 /* 801D59E0 001D1640 48 00 00 10 */ b lbl_801D59F0 lbl_801D59E4: /* 801D59E4 001D1644 3B E0 00 20 */ li r31, 0x20 /* 801D59E8 001D1648 48 00 00 08 */ b lbl_801D59F0 lbl_801D59EC: /* 801D59EC 001D164C 3B E0 00 01 */ li r31, 1 lbl_801D59F0: /* 801D59F0 001D1650 38 61 00 08 */ addi r3, r1, 8 /* 801D59F4 001D1654 38 80 00 00 */ li r4, 0 /* 801D59F8 001D1658 38 A0 00 40 */ li r5, 0x40 /* 801D59FC 001D165C 4B E2 E7 39 */ bl TRK_memset /* 801D5A00 001D1660 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D5A04 001D1664 38 00 00 80 */ li r0, 0x80 /* 801D5A08 001D1668 39 03 07 E8 */ addi r8, r3, lbl_804907E8@l /* 801D5A0C 001D166C 38 A0 00 40 */ li r5, 0x40 /* 801D5A10 001D1670 80 E8 00 00 */ lwz r7, 0(r8) /* 801D5A14 001D1674 38 61 00 08 */ addi r3, r1, 8 /* 801D5A18 001D1678 98 01 00 0C */ stb r0, 0xc(r1) /* 801D5A1C 001D167C 38 80 00 40 */ li r4, 0x40 /* 801D5A20 001D1680 38 C7 00 01 */ addi r6, r7, 1 /* 801D5A24 001D1684 90 E1 00 14 */ stw r7, 0x14(r1) /* 801D5A28 001D1688 38 06 00 01 */ addi r0, r6, 1 /* 801D5A2C 001D168C 90 C8 00 00 */ stw r6, 0(r8) /* 801D5A30 001D1690 90 A1 00 08 */ stw r5, 8(r1) /* 801D5A34 001D1694 9B E1 00 10 */ stb r31, 0x10(r1) /* 801D5A38 001D1698 90 08 00 00 */ stw r0, 0(r8) /* 801D5A3C 001D169C 90 C1 00 14 */ stw r6, 0x14(r1) /* 801D5A40 001D16A0 48 00 3B CD */ bl TRKWriteUARTN /* 801D5A44 001D16A4 80 01 00 54 */ lwz r0, 0x54(r1) /* 801D5A48 001D16A8 38 60 00 00 */ li r3, 0 /* 801D5A4C 001D16AC 83 E1 00 4C */ lwz r31, 0x4c(r1) /* 801D5A50 001D16B0 7C 08 03 A6 */ mtlr r0 /* 801D5A54 001D16B4 38 21 00 50 */ addi r1, r1, 0x50 /* 801D5A58 001D16B8 4E 80 00 20 */ blr .global TRKDoStep TRKDoStep: /* 801D5A5C 001D16BC 94 21 FE A0 */ stwu r1, -0x160(r1) /* 801D5A60 001D16C0 7C 08 02 A6 */ mflr r0 /* 801D5A64 001D16C4 38 80 00 00 */ li r4, 0 /* 801D5A68 001D16C8 90 01 01 64 */ stw r0, 0x164(r1) /* 801D5A6C 001D16CC BF 61 01 4C */ stmw r27, 0x14c(r1) /* 801D5A70 001D16D0 7C 7B 1B 78 */ mr r27, r3 /* 801D5A74 001D16D4 4B FF F8 95 */ bl TRKSetBufferPosition /* 801D5A78 001D16D8 8B FB 00 18 */ lbz r31, 0x18(r27) /* 801D5A7C 001D16DC 83 BB 00 20 */ lwz r29, 0x20(r27) /* 801D5A80 001D16E0 2C 1F 00 10 */ cmpwi r31, 0x10 /* 801D5A84 001D16E4 83 9B 00 24 */ lwz r28, 0x24(r27) /* 801D5A88 001D16E8 41 82 00 2C */ beq lbl_801D5AB4 /* 801D5A8C 001D16EC 40 80 00 1C */ bge lbl_801D5AA8 /* 801D5A90 001D16F0 2C 1F 00 01 */ cmpwi r31, 1 /* 801D5A94 001D16F4 41 82 00 8C */ beq lbl_801D5B20 /* 801D5A98 001D16F8 40 80 00 FC */ bge lbl_801D5B94 /* 801D5A9C 001D16FC 2C 1F 00 00 */ cmpwi r31, 0 /* 801D5AA0 001D1700 40 80 00 14 */ bge lbl_801D5AB4 /* 801D5AA4 001D1704 48 00 00 F0 */ b lbl_801D5B94 lbl_801D5AA8: /* 801D5AA8 001D1708 2C 1F 00 12 */ cmpwi r31, 0x12 /* 801D5AAC 001D170C 40 80 00 E8 */ bge lbl_801D5B94 /* 801D5AB0 001D1710 48 00 00 70 */ b lbl_801D5B20 lbl_801D5AB4: /* 801D5AB4 001D1714 8B DB 00 1C */ lbz r30, 0x1c(r27) /* 801D5AB8 001D1718 28 1E 00 01 */ cmplwi r30, 1 /* 801D5ABC 001D171C 40 80 01 38 */ bge lbl_801D5BF4 /* 801D5AC0 001D1720 38 61 01 08 */ addi r3, r1, 0x108 /* 801D5AC4 001D1724 38 80 00 00 */ li r4, 0 /* 801D5AC8 001D1728 38 A0 00 40 */ li r5, 0x40 /* 801D5ACC 001D172C 4B E2 E6 69 */ bl TRK_memset /* 801D5AD0 001D1730 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D5AD4 001D1734 38 00 00 80 */ li r0, 0x80 /* 801D5AD8 001D1738 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D5ADC 001D173C 38 C0 00 40 */ li r6, 0x40 /* 801D5AE0 001D1740 81 09 00 00 */ lwz r8, 0(r9) /* 801D5AE4 001D1744 38 A0 00 11 */ li r5, 0x11 /* 801D5AE8 001D1748 98 01 01 0C */ stb r0, 0x10c(r1) /* 801D5AEC 001D174C 38 61 01 08 */ addi r3, r1, 0x108 /* 801D5AF0 001D1750 38 E8 00 01 */ addi r7, r8, 1 /* 801D5AF4 001D1754 38 80 00 40 */ li r4, 0x40 /* 801D5AF8 001D1758 91 01 01 14 */ stw r8, 0x114(r1) /* 801D5AFC 001D175C 38 07 00 01 */ addi r0, r7, 1 /* 801D5B00 001D1760 90 E9 00 00 */ stw r7, 0(r9) /* 801D5B04 001D1764 90 C1 01 08 */ stw r6, 0x108(r1) /* 801D5B08 001D1768 98 A1 01 10 */ stb r5, 0x110(r1) /* 801D5B0C 001D176C 90 09 00 00 */ stw r0, 0(r9) /* 801D5B10 001D1770 90 E1 01 14 */ stw r7, 0x114(r1) /* 801D5B14 001D1774 48 00 3A F9 */ bl TRKWriteUARTN /* 801D5B18 001D1778 38 60 00 00 */ li r3, 0 /* 801D5B1C 001D177C 48 00 02 00 */ b lbl_801D5D1C lbl_801D5B20: /* 801D5B20 001D1780 48 00 1D 15 */ bl TRKTargetGetPC /* 801D5B24 001D1784 7C 03 E8 40 */ cmplw r3, r29 /* 801D5B28 001D1788 41 80 00 0C */ blt lbl_801D5B34 /* 801D5B2C 001D178C 7C 03 E0 40 */ cmplw r3, r28 /* 801D5B30 001D1790 40 81 00 C4 */ ble lbl_801D5BF4 lbl_801D5B34: /* 801D5B34 001D1794 38 61 00 C8 */ addi r3, r1, 0xc8 /* 801D5B38 001D1798 38 80 00 00 */ li r4, 0 /* 801D5B3C 001D179C 38 A0 00 40 */ li r5, 0x40 /* 801D5B40 001D17A0 4B E2 E5 F5 */ bl TRK_memset /* 801D5B44 001D17A4 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D5B48 001D17A8 38 00 00 80 */ li r0, 0x80 /* 801D5B4C 001D17AC 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D5B50 001D17B0 38 C0 00 40 */ li r6, 0x40 /* 801D5B54 001D17B4 81 09 00 00 */ lwz r8, 0(r9) /* 801D5B58 001D17B8 38 A0 00 11 */ li r5, 0x11 /* 801D5B5C 001D17BC 98 01 00 CC */ stb r0, 0xcc(r1) /* 801D5B60 001D17C0 38 61 00 C8 */ addi r3, r1, 0xc8 /* 801D5B64 001D17C4 38 E8 00 01 */ addi r7, r8, 1 /* 801D5B68 001D17C8 38 80 00 40 */ li r4, 0x40 /* 801D5B6C 001D17CC 91 01 00 D4 */ stw r8, 0xd4(r1) /* 801D5B70 001D17D0 38 07 00 01 */ addi r0, r7, 1 /* 801D5B74 001D17D4 90 E9 00 00 */ stw r7, 0(r9) /* 801D5B78 001D17D8 90 C1 00 C8 */ stw r6, 0xc8(r1) /* 801D5B7C 001D17DC 98 A1 00 D0 */ stb r5, 0xd0(r1) /* 801D5B80 001D17E0 90 09 00 00 */ stw r0, 0(r9) /* 801D5B84 001D17E4 90 E1 00 D4 */ stw r7, 0xd4(r1) /* 801D5B88 001D17E8 48 00 3A 85 */ bl TRKWriteUARTN /* 801D5B8C 001D17EC 38 60 00 00 */ li r3, 0 /* 801D5B90 001D17F0 48 00 01 8C */ b lbl_801D5D1C lbl_801D5B94: /* 801D5B94 001D17F4 38 61 00 88 */ addi r3, r1, 0x88 /* 801D5B98 001D17F8 38 80 00 00 */ li r4, 0 /* 801D5B9C 001D17FC 38 A0 00 40 */ li r5, 0x40 /* 801D5BA0 001D1800 4B E2 E5 95 */ bl TRK_memset /* 801D5BA4 001D1804 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D5BA8 001D1808 38 00 00 80 */ li r0, 0x80 /* 801D5BAC 001D180C 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D5BB0 001D1810 38 C0 00 40 */ li r6, 0x40 /* 801D5BB4 001D1814 81 09 00 00 */ lwz r8, 0(r9) /* 801D5BB8 001D1818 38 A0 00 12 */ li r5, 0x12 /* 801D5BBC 001D181C 98 01 00 8C */ stb r0, 0x8c(r1) /* 801D5BC0 001D1820 38 61 00 88 */ addi r3, r1, 0x88 /* 801D5BC4 001D1824 38 E8 00 01 */ addi r7, r8, 1 /* 801D5BC8 001D1828 38 80 00 40 */ li r4, 0x40 /* 801D5BCC 001D182C 91 01 00 94 */ stw r8, 0x94(r1) /* 801D5BD0 001D1830 38 07 00 01 */ addi r0, r7, 1 /* 801D5BD4 001D1834 90 E9 00 00 */ stw r7, 0(r9) /* 801D5BD8 001D1838 90 C1 00 88 */ stw r6, 0x88(r1) /* 801D5BDC 001D183C 98 A1 00 90 */ stb r5, 0x90(r1) /* 801D5BE0 001D1840 90 09 00 00 */ stw r0, 0(r9) /* 801D5BE4 001D1844 90 E1 00 94 */ stw r7, 0x94(r1) /* 801D5BE8 001D1848 48 00 3A 25 */ bl TRKWriteUARTN /* 801D5BEC 001D184C 38 60 00 00 */ li r3, 0 /* 801D5BF0 001D1850 48 00 01 2C */ b lbl_801D5D1C lbl_801D5BF4: /* 801D5BF4 001D1854 48 00 1A 31 */ bl TRKTargetStopped /* 801D5BF8 001D1858 2C 03 00 00 */ cmpwi r3, 0 /* 801D5BFC 001D185C 40 82 00 64 */ bne lbl_801D5C60 /* 801D5C00 001D1860 38 61 00 48 */ addi r3, r1, 0x48 /* 801D5C04 001D1864 38 80 00 00 */ li r4, 0 /* 801D5C08 001D1868 38 A0 00 40 */ li r5, 0x40 /* 801D5C0C 001D186C 4B E2 E5 29 */ bl TRK_memset /* 801D5C10 001D1870 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D5C14 001D1874 38 00 00 80 */ li r0, 0x80 /* 801D5C18 001D1878 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D5C1C 001D187C 38 C0 00 40 */ li r6, 0x40 /* 801D5C20 001D1880 81 09 00 00 */ lwz r8, 0(r9) /* 801D5C24 001D1884 38 A0 00 16 */ li r5, 0x16 /* 801D5C28 001D1888 98 01 00 4C */ stb r0, 0x4c(r1) /* 801D5C2C 001D188C 38 61 00 48 */ addi r3, r1, 0x48 /* 801D5C30 001D1890 38 E8 00 01 */ addi r7, r8, 1 /* 801D5C34 001D1894 38 80 00 40 */ li r4, 0x40 /* 801D5C38 001D1898 91 01 00 54 */ stw r8, 0x54(r1) /* 801D5C3C 001D189C 38 07 00 01 */ addi r0, r7, 1 /* 801D5C40 001D18A0 90 E9 00 00 */ stw r7, 0(r9) /* 801D5C44 001D18A4 90 C1 00 48 */ stw r6, 0x48(r1) /* 801D5C48 001D18A8 98 A1 00 50 */ stb r5, 0x50(r1) /* 801D5C4C 001D18AC 90 09 00 00 */ stw r0, 0(r9) /* 801D5C50 001D18B0 90 E1 00 54 */ stw r7, 0x54(r1) /* 801D5C54 001D18B4 48 00 39 B9 */ bl TRKWriteUARTN /* 801D5C58 001D18B8 38 60 00 00 */ li r3, 0 /* 801D5C5C 001D18BC 48 00 00 C0 */ b lbl_801D5D1C lbl_801D5C60: /* 801D5C60 001D18C0 38 61 00 08 */ addi r3, r1, 8 /* 801D5C64 001D18C4 38 80 00 00 */ li r4, 0 /* 801D5C68 001D18C8 38 A0 00 40 */ li r5, 0x40 /* 801D5C6C 001D18CC 4B E2 E4 C9 */ bl TRK_memset /* 801D5C70 001D18D0 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D5C74 001D18D4 38 00 00 80 */ li r0, 0x80 /* 801D5C78 001D18D8 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D5C7C 001D18DC 38 C0 00 40 */ li r6, 0x40 /* 801D5C80 001D18E0 81 09 00 00 */ lwz r8, 0(r9) /* 801D5C84 001D18E4 38 A0 00 00 */ li r5, 0 /* 801D5C88 001D18E8 98 01 00 0C */ stb r0, 0xc(r1) /* 801D5C8C 001D18EC 38 61 00 08 */ addi r3, r1, 8 /* 801D5C90 001D18F0 38 E8 00 01 */ addi r7, r8, 1 /* 801D5C94 001D18F4 38 80 00 40 */ li r4, 0x40 /* 801D5C98 001D18F8 91 01 00 14 */ stw r8, 0x14(r1) /* 801D5C9C 001D18FC 38 07 00 01 */ addi r0, r7, 1 /* 801D5CA0 001D1900 90 E9 00 00 */ stw r7, 0(r9) /* 801D5CA4 001D1904 90 C1 00 08 */ stw r6, 8(r1) /* 801D5CA8 001D1908 98 A1 00 10 */ stb r5, 0x10(r1) /* 801D5CAC 001D190C 90 09 00 00 */ stw r0, 0(r9) /* 801D5CB0 001D1910 90 E1 00 14 */ stw r7, 0x14(r1) /* 801D5CB4 001D1914 48 00 39 59 */ bl TRKWriteUARTN /* 801D5CB8 001D1918 2C 1F 00 10 */ cmpwi r31, 0x10 /* 801D5CBC 001D191C 38 60 00 00 */ li r3, 0 /* 801D5CC0 001D1920 41 82 00 2C */ beq lbl_801D5CEC /* 801D5CC4 001D1924 40 80 00 1C */ bge lbl_801D5CE0 /* 801D5CC8 001D1928 2C 1F 00 01 */ cmpwi r31, 1 /* 801D5CCC 001D192C 41 82 00 38 */ beq lbl_801D5D04 /* 801D5CD0 001D1930 40 80 00 4C */ bge lbl_801D5D1C /* 801D5CD4 001D1934 2C 1F 00 00 */ cmpwi r31, 0 /* 801D5CD8 001D1938 40 80 00 14 */ bge lbl_801D5CEC /* 801D5CDC 001D193C 48 00 00 40 */ b lbl_801D5D1C lbl_801D5CE0: /* 801D5CE0 001D1940 2C 1F 00 12 */ cmpwi r31, 0x12 /* 801D5CE4 001D1944 40 80 00 38 */ bge lbl_801D5D1C /* 801D5CE8 001D1948 48 00 00 1C */ b lbl_801D5D04 lbl_801D5CEC: /* 801D5CEC 001D194C 20 1F 00 10 */ subfic r0, r31, 0x10 /* 801D5CF0 001D1950 7F C3 F3 78 */ mr r3, r30 /* 801D5CF4 001D1954 7C 00 00 34 */ cntlzw r0, r0 /* 801D5CF8 001D1958 54 04 D9 7E */ srwi r4, r0, 5 /* 801D5CFC 001D195C 48 00 1B C5 */ bl TRKTargetSingleStep /* 801D5D00 001D1960 48 00 00 1C */ b lbl_801D5D1C lbl_801D5D04: /* 801D5D04 001D1964 20 1F 00 11 */ subfic r0, r31, 0x11 /* 801D5D08 001D1968 7F A3 EB 78 */ mr r3, r29 /* 801D5D0C 001D196C 7C 00 00 34 */ cntlzw r0, r0 /* 801D5D10 001D1970 7F 84 E3 78 */ mr r4, r28 /* 801D5D14 001D1974 54 05 D9 7E */ srwi r5, r0, 5 /* 801D5D18 001D1978 48 00 1B 2D */ bl TRKTargetStepOutOfRange lbl_801D5D1C: /* 801D5D1C 001D197C BB 61 01 4C */ lmw r27, 0x14c(r1) /* 801D5D20 001D1980 80 01 01 64 */ lwz r0, 0x164(r1) /* 801D5D24 001D1984 7C 08 03 A6 */ mtlr r0 /* 801D5D28 001D1988 38 21 01 60 */ addi r1, r1, 0x160 /* 801D5D2C 001D198C 4E 80 00 20 */ blr .global TRKDoContinue TRKDoContinue: /* 801D5D30 001D1990 94 21 FF 70 */ stwu r1, -0x90(r1) /* 801D5D34 001D1994 7C 08 02 A6 */ mflr r0 /* 801D5D38 001D1998 90 01 00 94 */ stw r0, 0x94(r1) /* 801D5D3C 001D199C 48 00 18 E9 */ bl TRKTargetStopped /* 801D5D40 001D19A0 2C 03 00 00 */ cmpwi r3, 0 /* 801D5D44 001D19A4 40 82 00 64 */ bne lbl_801D5DA8 /* 801D5D48 001D19A8 38 61 00 48 */ addi r3, r1, 0x48 /* 801D5D4C 001D19AC 38 80 00 00 */ li r4, 0 /* 801D5D50 001D19B0 38 A0 00 40 */ li r5, 0x40 /* 801D5D54 001D19B4 4B E2 E3 E1 */ bl TRK_memset /* 801D5D58 001D19B8 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D5D5C 001D19BC 38 00 00 80 */ li r0, 0x80 /* 801D5D60 001D19C0 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D5D64 001D19C4 38 C0 00 40 */ li r6, 0x40 /* 801D5D68 001D19C8 81 09 00 00 */ lwz r8, 0(r9) /* 801D5D6C 001D19CC 38 A0 00 16 */ li r5, 0x16 /* 801D5D70 001D19D0 98 01 00 4C */ stb r0, 0x4c(r1) /* 801D5D74 001D19D4 38 61 00 48 */ addi r3, r1, 0x48 /* 801D5D78 001D19D8 38 E8 00 01 */ addi r7, r8, 1 /* 801D5D7C 001D19DC 38 80 00 40 */ li r4, 0x40 /* 801D5D80 001D19E0 91 01 00 54 */ stw r8, 0x54(r1) /* 801D5D84 001D19E4 38 07 00 01 */ addi r0, r7, 1 /* 801D5D88 001D19E8 90 E9 00 00 */ stw r7, 0(r9) /* 801D5D8C 001D19EC 90 C1 00 48 */ stw r6, 0x48(r1) /* 801D5D90 001D19F0 98 A1 00 50 */ stb r5, 0x50(r1) /* 801D5D94 001D19F4 90 09 00 00 */ stw r0, 0(r9) /* 801D5D98 001D19F8 90 E1 00 54 */ stw r7, 0x54(r1) /* 801D5D9C 001D19FC 48 00 38 71 */ bl TRKWriteUARTN /* 801D5DA0 001D1A00 38 60 00 00 */ li r3, 0 /* 801D5DA4 001D1A04 48 00 00 60 */ b lbl_801D5E04 lbl_801D5DA8: /* 801D5DA8 001D1A08 38 61 00 08 */ addi r3, r1, 8 /* 801D5DAC 001D1A0C 38 80 00 00 */ li r4, 0 /* 801D5DB0 001D1A10 38 A0 00 40 */ li r5, 0x40 /* 801D5DB4 001D1A14 4B E2 E3 81 */ bl TRK_memset /* 801D5DB8 001D1A18 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D5DBC 001D1A1C 38 00 00 80 */ li r0, 0x80 /* 801D5DC0 001D1A20 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D5DC4 001D1A24 38 C0 00 40 */ li r6, 0x40 /* 801D5DC8 001D1A28 81 09 00 00 */ lwz r8, 0(r9) /* 801D5DCC 001D1A2C 38 A0 00 00 */ li r5, 0 /* 801D5DD0 001D1A30 98 01 00 0C */ stb r0, 0xc(r1) /* 801D5DD4 001D1A34 38 61 00 08 */ addi r3, r1, 8 /* 801D5DD8 001D1A38 38 E8 00 01 */ addi r7, r8, 1 /* 801D5DDC 001D1A3C 38 80 00 40 */ li r4, 0x40 /* 801D5DE0 001D1A40 91 01 00 14 */ stw r8, 0x14(r1) /* 801D5DE4 001D1A44 38 07 00 01 */ addi r0, r7, 1 /* 801D5DE8 001D1A48 90 E9 00 00 */ stw r7, 0(r9) /* 801D5DEC 001D1A4C 90 C1 00 08 */ stw r6, 8(r1) /* 801D5DF0 001D1A50 98 A1 00 10 */ stb r5, 0x10(r1) /* 801D5DF4 001D1A54 90 09 00 00 */ stw r0, 0(r9) /* 801D5DF8 001D1A58 90 E1 00 14 */ stw r7, 0x14(r1) /* 801D5DFC 001D1A5C 48 00 38 11 */ bl TRKWriteUARTN /* 801D5E00 001D1A60 48 00 3B 59 */ bl TRKTargetContinue lbl_801D5E04: /* 801D5E04 001D1A64 80 01 00 94 */ lwz r0, 0x94(r1) /* 801D5E08 001D1A68 7C 08 03 A6 */ mtlr r0 /* 801D5E0C 001D1A6C 38 21 00 90 */ addi r1, r1, 0x90 /* 801D5E10 001D1A70 4E 80 00 20 */ blr .global TRKDoWriteRegisters TRKDoWriteRegisters: /* 801D5E14 001D1A74 94 21 FF 20 */ stwu r1, -0xe0(r1) /* 801D5E18 001D1A78 7C 08 02 A6 */ mflr r0 /* 801D5E1C 001D1A7C 38 80 00 00 */ li r4, 0 /* 801D5E20 001D1A80 90 01 00 E4 */ stw r0, 0xe4(r1) /* 801D5E24 001D1A84 93 E1 00 DC */ stw r31, 0xdc(r1) /* 801D5E28 001D1A88 93 C1 00 D8 */ stw r30, 0xd8(r1) /* 801D5E2C 001D1A8C 93 A1 00 D4 */ stw r29, 0xd4(r1) /* 801D5E30 001D1A90 93 81 00 D0 */ stw r28, 0xd0(r1) /* 801D5E34 001D1A94 7C 7C 1B 78 */ mr r28, r3 /* 801D5E38 001D1A98 8B E3 00 18 */ lbz r31, 0x18(r3) /* 801D5E3C 001D1A9C A3 C3 00 1C */ lhz r30, 0x1c(r3) /* 801D5E40 001D1AA0 A3 A3 00 20 */ lhz r29, 0x20(r3) /* 801D5E44 001D1AA4 4B FF F4 C5 */ bl TRKSetBufferPosition /* 801D5E48 001D1AA8 7C 1E E8 40 */ cmplw r30, r29 /* 801D5E4C 001D1AAC 40 81 00 64 */ ble lbl_801D5EB0 /* 801D5E50 001D1AB0 38 61 00 4C */ addi r3, r1, 0x4c /* 801D5E54 001D1AB4 38 80 00 00 */ li r4, 0 /* 801D5E58 001D1AB8 38 A0 00 40 */ li r5, 0x40 /* 801D5E5C 001D1ABC 4B E2 E2 D9 */ bl TRK_memset /* 801D5E60 001D1AC0 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D5E64 001D1AC4 38 00 00 80 */ li r0, 0x80 /* 801D5E68 001D1AC8 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D5E6C 001D1ACC 38 C0 00 40 */ li r6, 0x40 /* 801D5E70 001D1AD0 81 09 00 00 */ lwz r8, 0(r9) /* 801D5E74 001D1AD4 38 A0 00 14 */ li r5, 0x14 /* 801D5E78 001D1AD8 98 01 00 50 */ stb r0, 0x50(r1) /* 801D5E7C 001D1ADC 38 61 00 4C */ addi r3, r1, 0x4c /* 801D5E80 001D1AE0 38 E8 00 01 */ addi r7, r8, 1 /* 801D5E84 001D1AE4 38 80 00 40 */ li r4, 0x40 /* 801D5E88 001D1AE8 91 01 00 58 */ stw r8, 0x58(r1) /* 801D5E8C 001D1AEC 38 07 00 01 */ addi r0, r7, 1 /* 801D5E90 001D1AF0 90 E9 00 00 */ stw r7, 0(r9) /* 801D5E94 001D1AF4 90 C1 00 4C */ stw r6, 0x4c(r1) /* 801D5E98 001D1AF8 98 A1 00 54 */ stb r5, 0x54(r1) /* 801D5E9C 001D1AFC 90 09 00 00 */ stw r0, 0(r9) /* 801D5EA0 001D1B00 90 E1 00 58 */ stw r7, 0x58(r1) /* 801D5EA4 001D1B04 48 00 37 69 */ bl TRKWriteUARTN /* 801D5EA8 001D1B08 38 60 00 00 */ li r3, 0 /* 801D5EAC 001D1B0C 48 00 02 04 */ b lbl_801D60B0 lbl_801D5EB0: /* 801D5EB0 001D1B10 7F 83 E3 78 */ mr r3, r28 /* 801D5EB4 001D1B14 38 80 00 40 */ li r4, 0x40 /* 801D5EB8 001D1B18 4B FF F4 51 */ bl TRKSetBufferPosition /* 801D5EBC 001D1B1C 2C 1F 00 02 */ cmpwi r31, 2 /* 801D5EC0 001D1B20 41 82 00 64 */ beq lbl_801D5F24 /* 801D5EC4 001D1B24 40 80 00 14 */ bge lbl_801D5ED8 /* 801D5EC8 001D1B28 2C 1F 00 00 */ cmpwi r31, 0 /* 801D5ECC 001D1B2C 41 82 00 18 */ beq lbl_801D5EE4 /* 801D5ED0 001D1B30 40 80 00 34 */ bge lbl_801D5F04 /* 801D5ED4 001D1B34 48 00 00 90 */ b lbl_801D5F64 lbl_801D5ED8: /* 801D5ED8 001D1B38 2C 1F 00 04 */ cmpwi r31, 4 /* 801D5EDC 001D1B3C 40 80 00 88 */ bge lbl_801D5F64 /* 801D5EE0 001D1B40 48 00 00 64 */ b lbl_801D5F44 lbl_801D5EE4: /* 801D5EE4 001D1B44 7F C3 F3 78 */ mr r3, r30 /* 801D5EE8 001D1B48 7F A4 EB 78 */ mr r4, r29 /* 801D5EEC 001D1B4C 7F 85 E3 78 */ mr r5, r28 /* 801D5EF0 001D1B50 38 C1 00 08 */ addi r6, r1, 8 /* 801D5EF4 001D1B54 38 E0 00 00 */ li r7, 0 /* 801D5EF8 001D1B58 48 00 28 01 */ bl TRKTargetAccessDefault /* 801D5EFC 001D1B5C 7C 7F 1B 78 */ mr r31, r3 /* 801D5F00 001D1B60 48 00 00 68 */ b lbl_801D5F68 lbl_801D5F04: /* 801D5F04 001D1B64 7F C3 F3 78 */ mr r3, r30 /* 801D5F08 001D1B68 7F A4 EB 78 */ mr r4, r29 /* 801D5F0C 001D1B6C 7F 85 E3 78 */ mr r5, r28 /* 801D5F10 001D1B70 38 C1 00 08 */ addi r6, r1, 8 /* 801D5F14 001D1B74 38 E0 00 00 */ li r7, 0 /* 801D5F18 001D1B78 48 00 22 D5 */ bl TRKTargetAccessFP /* 801D5F1C 001D1B7C 7C 7F 1B 78 */ mr r31, r3 /* 801D5F20 001D1B80 48 00 00 48 */ b lbl_801D5F68 lbl_801D5F24: /* 801D5F24 001D1B84 7F C3 F3 78 */ mr r3, r30 /* 801D5F28 001D1B88 7F A4 EB 78 */ mr r4, r29 /* 801D5F2C 001D1B8C 7F 85 E3 78 */ mr r5, r28 /* 801D5F30 001D1B90 38 C1 00 08 */ addi r6, r1, 8 /* 801D5F34 001D1B94 38 E0 00 00 */ li r7, 0 /* 801D5F38 001D1B98 48 00 21 45 */ bl TRKTargetAccessExtended1 /* 801D5F3C 001D1B9C 7C 7F 1B 78 */ mr r31, r3 /* 801D5F40 001D1BA0 48 00 00 28 */ b lbl_801D5F68 lbl_801D5F44: /* 801D5F44 001D1BA4 7F C3 F3 78 */ mr r3, r30 /* 801D5F48 001D1BA8 7F A4 EB 78 */ mr r4, r29 /* 801D5F4C 001D1BAC 7F 85 E3 78 */ mr r5, r28 /* 801D5F50 001D1BB0 38 C1 00 08 */ addi r6, r1, 8 /* 801D5F54 001D1BB4 38 E0 00 00 */ li r7, 0 /* 801D5F58 001D1BB8 48 00 1C ED */ bl TRKTargetAccessExtended2 /* 801D5F5C 001D1BBC 7C 7F 1B 78 */ mr r31, r3 /* 801D5F60 001D1BC0 48 00 00 08 */ b lbl_801D5F68 lbl_801D5F64: /* 801D5F64 001D1BC4 3B E0 07 03 */ li r31, 0x703 lbl_801D5F68: /* 801D5F68 001D1BC8 7F 83 E3 78 */ mr r3, r28 /* 801D5F6C 001D1BCC 38 80 00 00 */ li r4, 0 /* 801D5F70 001D1BD0 4B FF F3 C9 */ bl TRKResetBuffer /* 801D5F74 001D1BD4 2C 1F 00 00 */ cmpwi r31, 0 /* 801D5F78 001D1BD8 40 82 00 54 */ bne lbl_801D5FCC /* 801D5F7C 001D1BDC 38 61 00 8C */ addi r3, r1, 0x8c /* 801D5F80 001D1BE0 38 80 00 00 */ li r4, 0 /* 801D5F84 001D1BE4 38 A0 00 40 */ li r5, 0x40 /* 801D5F88 001D1BE8 4B E2 E1 AD */ bl TRK_memset /* 801D5F8C 001D1BEC 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D5F90 001D1BF0 38 00 00 40 */ li r0, 0x40 /* 801D5F94 001D1BF4 38 E3 07 E8 */ addi r7, r3, lbl_804907E8@l /* 801D5F98 001D1BF8 38 A0 00 80 */ li r5, 0x80 /* 801D5F9C 001D1BFC 80 C7 00 00 */ lwz r6, 0(r7) /* 801D5FA0 001D1C00 7F 83 E3 78 */ mr r3, r28 /* 801D5FA4 001D1C04 90 01 00 8C */ stw r0, 0x8c(r1) /* 801D5FA8 001D1C08 38 81 00 8C */ addi r4, r1, 0x8c /* 801D5FAC 001D1C0C 38 06 00 01 */ addi r0, r6, 1 /* 801D5FB0 001D1C10 98 A1 00 90 */ stb r5, 0x90(r1) /* 801D5FB4 001D1C14 38 A0 00 40 */ li r5, 0x40 /* 801D5FB8 001D1C18 9B E1 00 94 */ stb r31, 0x94(r1) /* 801D5FBC 001D1C1C 90 07 00 00 */ stw r0, 0(r7) /* 801D5FC0 001D1C20 90 C1 00 98 */ stw r6, 0x98(r1) /* 801D5FC4 001D1C24 4B FF F2 A1 */ bl TRKAppendBuffer /* 801D5FC8 001D1C28 7C 7F 1B 78 */ mr r31, r3 lbl_801D5FCC: /* 801D5FCC 001D1C2C 2C 1F 00 00 */ cmpwi r31, 0 /* 801D5FD0 001D1C30 41 82 00 D8 */ beq lbl_801D60A8 /* 801D5FD4 001D1C34 2C 1F 07 03 */ cmpwi r31, 0x703 /* 801D5FD8 001D1C38 41 82 00 38 */ beq lbl_801D6010 /* 801D5FDC 001D1C3C 40 80 00 1C */ bge lbl_801D5FF8 /* 801D5FE0 001D1C40 2C 1F 07 01 */ cmpwi r31, 0x701 /* 801D5FE4 001D1C44 41 82 00 34 */ beq lbl_801D6018 /* 801D5FE8 001D1C48 40 80 00 40 */ bge lbl_801D6028 /* 801D5FEC 001D1C4C 2C 1F 03 02 */ cmpwi r31, 0x302 /* 801D5FF0 001D1C50 41 82 00 30 */ beq lbl_801D6020 /* 801D5FF4 001D1C54 48 00 00 54 */ b lbl_801D6048 lbl_801D5FF8: /* 801D5FF8 001D1C58 2C 1F 07 06 */ cmpwi r31, 0x706 /* 801D5FFC 001D1C5C 41 82 00 44 */ beq lbl_801D6040 /* 801D6000 001D1C60 40 80 00 48 */ bge lbl_801D6048 /* 801D6004 001D1C64 2C 1F 07 05 */ cmpwi r31, 0x705 /* 801D6008 001D1C68 40 80 00 30 */ bge lbl_801D6038 /* 801D600C 001D1C6C 48 00 00 24 */ b lbl_801D6030 lbl_801D6010: /* 801D6010 001D1C70 3B E0 00 12 */ li r31, 0x12 /* 801D6014 001D1C74 48 00 00 38 */ b lbl_801D604C lbl_801D6018: /* 801D6018 001D1C78 3B E0 00 14 */ li r31, 0x14 /* 801D601C 001D1C7C 48 00 00 30 */ b lbl_801D604C lbl_801D6020: /* 801D6020 001D1C80 3B E0 00 02 */ li r31, 2 /* 801D6024 001D1C84 48 00 00 28 */ b lbl_801D604C lbl_801D6028: /* 801D6028 001D1C88 3B E0 00 15 */ li r31, 0x15 /* 801D602C 001D1C8C 48 00 00 20 */ b lbl_801D604C lbl_801D6030: /* 801D6030 001D1C90 3B E0 00 21 */ li r31, 0x21 /* 801D6034 001D1C94 48 00 00 18 */ b lbl_801D604C lbl_801D6038: /* 801D6038 001D1C98 3B E0 00 22 */ li r31, 0x22 /* 801D603C 001D1C9C 48 00 00 10 */ b lbl_801D604C lbl_801D6040: /* 801D6040 001D1CA0 3B E0 00 20 */ li r31, 0x20 /* 801D6044 001D1CA4 48 00 00 08 */ b lbl_801D604C lbl_801D6048: /* 801D6048 001D1CA8 3B E0 00 03 */ li r31, 3 lbl_801D604C: /* 801D604C 001D1CAC 38 61 00 0C */ addi r3, r1, 0xc /* 801D6050 001D1CB0 38 80 00 00 */ li r4, 0 /* 801D6054 001D1CB4 38 A0 00 40 */ li r5, 0x40 /* 801D6058 001D1CB8 4B E2 E0 DD */ bl TRK_memset /* 801D605C 001D1CBC 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D6060 001D1CC0 38 00 00 80 */ li r0, 0x80 /* 801D6064 001D1CC4 39 03 07 E8 */ addi r8, r3, lbl_804907E8@l /* 801D6068 001D1CC8 38 A0 00 40 */ li r5, 0x40 /* 801D606C 001D1CCC 80 E8 00 00 */ lwz r7, 0(r8) /* 801D6070 001D1CD0 38 61 00 0C */ addi r3, r1, 0xc /* 801D6074 001D1CD4 98 01 00 10 */ stb r0, 0x10(r1) /* 801D6078 001D1CD8 38 80 00 40 */ li r4, 0x40 /* 801D607C 001D1CDC 38 C7 00 01 */ addi r6, r7, 1 /* 801D6080 001D1CE0 90 E1 00 18 */ stw r7, 0x18(r1) /* 801D6084 001D1CE4 38 06 00 01 */ addi r0, r6, 1 /* 801D6088 001D1CE8 90 C8 00 00 */ stw r6, 0(r8) /* 801D608C 001D1CEC 90 A1 00 0C */ stw r5, 0xc(r1) /* 801D6090 001D1CF0 9B E1 00 14 */ stb r31, 0x14(r1) /* 801D6094 001D1CF4 90 08 00 00 */ stw r0, 0(r8) /* 801D6098 001D1CF8 90 C1 00 18 */ stw r6, 0x18(r1) /* 801D609C 001D1CFC 48 00 35 71 */ bl TRKWriteUARTN /* 801D60A0 001D1D00 38 60 00 00 */ li r3, 0 /* 801D60A4 001D1D04 48 00 00 0C */ b lbl_801D60B0 lbl_801D60A8: /* 801D60A8 001D1D08 7F 83 E3 78 */ mr r3, r28 /* 801D60AC 001D1D0C 4B FF EC 31 */ bl TRKMessageSend lbl_801D60B0: /* 801D60B0 001D1D10 80 01 00 E4 */ lwz r0, 0xe4(r1) /* 801D60B4 001D1D14 83 E1 00 DC */ lwz r31, 0xdc(r1) /* 801D60B8 001D1D18 83 C1 00 D8 */ lwz r30, 0xd8(r1) /* 801D60BC 001D1D1C 83 A1 00 D4 */ lwz r29, 0xd4(r1) /* 801D60C0 001D1D20 83 81 00 D0 */ lwz r28, 0xd0(r1) /* 801D60C4 001D1D24 7C 08 03 A6 */ mtlr r0 /* 801D60C8 001D1D28 38 21 00 E0 */ addi r1, r1, 0xe0 /* 801D60CC 001D1D2C 4E 80 00 20 */ blr .global TRKDoReadRegisters TRKDoReadRegisters: /* 801D60D0 001D1D30 94 21 FF 20 */ stwu r1, -0xe0(r1) /* 801D60D4 001D1D34 7C 08 02 A6 */ mflr r0 /* 801D60D8 001D1D38 90 01 00 E4 */ stw r0, 0xe4(r1) /* 801D60DC 001D1D3C 93 E1 00 DC */ stw r31, 0xdc(r1) /* 801D60E0 001D1D40 7C 7F 1B 78 */ mr r31, r3 /* 801D60E4 001D1D44 A0 83 00 1C */ lhz r4, 0x1c(r3) /* 801D60E8 001D1D48 A0 03 00 20 */ lhz r0, 0x20(r3) /* 801D60EC 001D1D4C 7C 04 00 40 */ cmplw r4, r0 /* 801D60F0 001D1D50 40 81 00 64 */ ble lbl_801D6154 /* 801D60F4 001D1D54 38 61 00 4C */ addi r3, r1, 0x4c /* 801D60F8 001D1D58 38 80 00 00 */ li r4, 0 /* 801D60FC 001D1D5C 38 A0 00 40 */ li r5, 0x40 /* 801D6100 001D1D60 4B E2 E0 35 */ bl TRK_memset /* 801D6104 001D1D64 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D6108 001D1D68 38 00 00 80 */ li r0, 0x80 /* 801D610C 001D1D6C 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D6110 001D1D70 38 C0 00 40 */ li r6, 0x40 /* 801D6114 001D1D74 81 09 00 00 */ lwz r8, 0(r9) /* 801D6118 001D1D78 38 A0 00 14 */ li r5, 0x14 /* 801D611C 001D1D7C 98 01 00 50 */ stb r0, 0x50(r1) /* 801D6120 001D1D80 38 61 00 4C */ addi r3, r1, 0x4c /* 801D6124 001D1D84 38 E8 00 01 */ addi r7, r8, 1 /* 801D6128 001D1D88 38 80 00 40 */ li r4, 0x40 /* 801D612C 001D1D8C 91 01 00 58 */ stw r8, 0x58(r1) /* 801D6130 001D1D90 38 07 00 01 */ addi r0, r7, 1 /* 801D6134 001D1D94 90 E9 00 00 */ stw r7, 0(r9) /* 801D6138 001D1D98 90 C1 00 4C */ stw r6, 0x4c(r1) /* 801D613C 001D1D9C 98 A1 00 54 */ stb r5, 0x54(r1) /* 801D6140 001D1DA0 90 09 00 00 */ stw r0, 0(r9) /* 801D6144 001D1DA4 90 E1 00 58 */ stw r7, 0x58(r1) /* 801D6148 001D1DA8 48 00 34 C5 */ bl TRKWriteUARTN /* 801D614C 001D1DAC 38 60 00 00 */ li r3, 0 /* 801D6150 001D1DB0 48 00 01 90 */ b lbl_801D62E0 lbl_801D6154: /* 801D6154 001D1DB4 3C 80 80 49 */ lis r4, lbl_804907E8@ha /* 801D6158 001D1DB8 38 00 00 80 */ li r0, 0x80 /* 801D615C 001D1DBC 38 C4 07 E8 */ addi r6, r4, lbl_804907E8@l /* 801D6160 001D1DC0 38 E0 04 68 */ li r7, 0x468 /* 801D6164 001D1DC4 80 A6 00 00 */ lwz r5, 0(r6) /* 801D6168 001D1DC8 38 80 00 00 */ li r4, 0 /* 801D616C 001D1DCC 98 01 00 90 */ stb r0, 0x90(r1) /* 801D6170 001D1DD0 38 05 00 01 */ addi r0, r5, 1 /* 801D6174 001D1DD4 90 E1 00 8C */ stw r7, 0x8c(r1) /* 801D6178 001D1DD8 90 06 00 00 */ stw r0, 0(r6) /* 801D617C 001D1DDC 90 A1 00 98 */ stw r5, 0x98(r1) /* 801D6180 001D1DE0 4B FF F1 B9 */ bl TRKResetBuffer /* 801D6184 001D1DE4 7F E3 FB 78 */ mr r3, r31 /* 801D6188 001D1DE8 38 81 00 8C */ addi r4, r1, 0x8c /* 801D618C 001D1DEC 38 A0 00 40 */ li r5, 0x40 /* 801D6190 001D1DF0 4B FF EE E5 */ bl TRKAppendBuffer_ui8 /* 801D6194 001D1DF4 7F E5 FB 78 */ mr r5, r31 /* 801D6198 001D1DF8 38 C1 00 08 */ addi r6, r1, 8 /* 801D619C 001D1DFC 38 60 00 00 */ li r3, 0 /* 801D61A0 001D1E00 38 80 00 24 */ li r4, 0x24 /* 801D61A4 001D1E04 38 E0 00 01 */ li r7, 1 /* 801D61A8 001D1E08 48 00 25 51 */ bl TRKTargetAccessDefault /* 801D61AC 001D1E0C 2C 03 00 00 */ cmpwi r3, 0 /* 801D61B0 001D1E10 40 82 00 1C */ bne lbl_801D61CC /* 801D61B4 001D1E14 7F E5 FB 78 */ mr r5, r31 /* 801D61B8 001D1E18 38 C1 00 08 */ addi r6, r1, 8 /* 801D61BC 001D1E1C 38 60 00 00 */ li r3, 0 /* 801D61C0 001D1E20 38 80 00 21 */ li r4, 0x21 /* 801D61C4 001D1E24 38 E0 00 01 */ li r7, 1 /* 801D61C8 001D1E28 48 00 20 25 */ bl TRKTargetAccessFP lbl_801D61CC: /* 801D61CC 001D1E2C 2C 03 00 00 */ cmpwi r3, 0 /* 801D61D0 001D1E30 40 82 00 1C */ bne lbl_801D61EC /* 801D61D4 001D1E34 7F E5 FB 78 */ mr r5, r31 /* 801D61D8 001D1E38 38 C1 00 08 */ addi r6, r1, 8 /* 801D61DC 001D1E3C 38 60 00 00 */ li r3, 0 /* 801D61E0 001D1E40 38 80 00 60 */ li r4, 0x60 /* 801D61E4 001D1E44 38 E0 00 01 */ li r7, 1 /* 801D61E8 001D1E48 48 00 1E 95 */ bl TRKTargetAccessExtended1 lbl_801D61EC: /* 801D61EC 001D1E4C 2C 03 00 00 */ cmpwi r3, 0 /* 801D61F0 001D1E50 40 82 00 1C */ bne lbl_801D620C /* 801D61F4 001D1E54 7F E5 FB 78 */ mr r5, r31 /* 801D61F8 001D1E58 38 C1 00 08 */ addi r6, r1, 8 /* 801D61FC 001D1E5C 38 60 00 00 */ li r3, 0 /* 801D6200 001D1E60 38 80 00 1F */ li r4, 0x1f /* 801D6204 001D1E64 38 E0 00 01 */ li r7, 1 /* 801D6208 001D1E68 48 00 1A 3D */ bl TRKTargetAccessExtended2 lbl_801D620C: /* 801D620C 001D1E6C 2C 03 00 00 */ cmpwi r3, 0 /* 801D6210 001D1E70 41 82 00 C8 */ beq lbl_801D62D8 /* 801D6214 001D1E74 2C 03 07 04 */ cmpwi r3, 0x704 /* 801D6218 001D1E78 41 82 00 48 */ beq lbl_801D6260 /* 801D621C 001D1E7C 40 80 00 1C */ bge lbl_801D6238 /* 801D6220 001D1E80 2C 03 07 02 */ cmpwi r3, 0x702 /* 801D6224 001D1E84 41 82 00 34 */ beq lbl_801D6258 /* 801D6228 001D1E88 40 80 00 20 */ bge lbl_801D6248 /* 801D622C 001D1E8C 2C 03 07 01 */ cmpwi r3, 0x701 /* 801D6230 001D1E90 40 80 00 20 */ bge lbl_801D6250 /* 801D6234 001D1E94 48 00 00 44 */ b lbl_801D6278 lbl_801D6238: /* 801D6238 001D1E98 2C 03 07 06 */ cmpwi r3, 0x706 /* 801D623C 001D1E9C 41 82 00 34 */ beq lbl_801D6270 /* 801D6240 001D1EA0 40 80 00 38 */ bge lbl_801D6278 /* 801D6244 001D1EA4 48 00 00 24 */ b lbl_801D6268 lbl_801D6248: /* 801D6248 001D1EA8 3B E0 00 12 */ li r31, 0x12 /* 801D624C 001D1EAC 48 00 00 30 */ b lbl_801D627C lbl_801D6250: /* 801D6250 001D1EB0 3B E0 00 14 */ li r31, 0x14 /* 801D6254 001D1EB4 48 00 00 28 */ b lbl_801D627C lbl_801D6258: /* 801D6258 001D1EB8 3B E0 00 15 */ li r31, 0x15 /* 801D625C 001D1EBC 48 00 00 20 */ b lbl_801D627C lbl_801D6260: /* 801D6260 001D1EC0 3B E0 00 21 */ li r31, 0x21 /* 801D6264 001D1EC4 48 00 00 18 */ b lbl_801D627C lbl_801D6268: /* 801D6268 001D1EC8 3B E0 00 22 */ li r31, 0x22 /* 801D626C 001D1ECC 48 00 00 10 */ b lbl_801D627C lbl_801D6270: /* 801D6270 001D1ED0 3B E0 00 20 */ li r31, 0x20 /* 801D6274 001D1ED4 48 00 00 08 */ b lbl_801D627C lbl_801D6278: /* 801D6278 001D1ED8 3B E0 00 03 */ li r31, 3 lbl_801D627C: /* 801D627C 001D1EDC 38 61 00 0C */ addi r3, r1, 0xc /* 801D6280 001D1EE0 38 80 00 00 */ li r4, 0 /* 801D6284 001D1EE4 38 A0 00 40 */ li r5, 0x40 /* 801D6288 001D1EE8 4B E2 DE AD */ bl TRK_memset /* 801D628C 001D1EEC 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D6290 001D1EF0 38 00 00 80 */ li r0, 0x80 /* 801D6294 001D1EF4 39 03 07 E8 */ addi r8, r3, lbl_804907E8@l /* 801D6298 001D1EF8 38 A0 00 40 */ li r5, 0x40 /* 801D629C 001D1EFC 80 E8 00 00 */ lwz r7, 0(r8) /* 801D62A0 001D1F00 38 61 00 0C */ addi r3, r1, 0xc /* 801D62A4 001D1F04 98 01 00 10 */ stb r0, 0x10(r1) /* 801D62A8 001D1F08 38 80 00 40 */ li r4, 0x40 /* 801D62AC 001D1F0C 38 C7 00 01 */ addi r6, r7, 1 /* 801D62B0 001D1F10 90 E1 00 18 */ stw r7, 0x18(r1) /* 801D62B4 001D1F14 38 06 00 01 */ addi r0, r6, 1 /* 801D62B8 001D1F18 90 C8 00 00 */ stw r6, 0(r8) /* 801D62BC 001D1F1C 90 A1 00 0C */ stw r5, 0xc(r1) /* 801D62C0 001D1F20 9B E1 00 14 */ stb r31, 0x14(r1) /* 801D62C4 001D1F24 90 08 00 00 */ stw r0, 0(r8) /* 801D62C8 001D1F28 90 C1 00 18 */ stw r6, 0x18(r1) /* 801D62CC 001D1F2C 48 00 33 41 */ bl TRKWriteUARTN /* 801D62D0 001D1F30 38 60 00 00 */ li r3, 0 /* 801D62D4 001D1F34 48 00 00 0C */ b lbl_801D62E0 lbl_801D62D8: /* 801D62D8 001D1F38 7F E3 FB 78 */ mr r3, r31 /* 801D62DC 001D1F3C 4B FF EA 01 */ bl TRKMessageSend lbl_801D62E0: /* 801D62E0 001D1F40 80 01 00 E4 */ lwz r0, 0xe4(r1) /* 801D62E4 001D1F44 83 E1 00 DC */ lwz r31, 0xdc(r1) /* 801D62E8 001D1F48 7C 08 03 A6 */ mtlr r0 /* 801D62EC 001D1F4C 38 21 00 E0 */ addi r1, r1, 0xe0 /* 801D62F0 001D1F50 4E 80 00 20 */ blr .global TRKDoWriteMemory TRKDoWriteMemory: /* 801D62F4 001D1F54 54 2B 06 FE */ clrlwi r11, r1, 0x1b /* 801D62F8 001D1F58 7C 2C 0B 78 */ mr r12, r1 /* 801D62FC 001D1F5C 21 6B F6 C0 */ subfic r11, r11, -2368 /* 801D6300 001D1F60 7C 21 59 6E */ stwux r1, r1, r11 /* 801D6304 001D1F64 7C 08 02 A6 */ mflr r0 /* 801D6308 001D1F68 90 0C 00 04 */ stw r0, 4(r12) /* 801D630C 001D1F6C 93 EC FF FC */ stw r31, -4(r12) /* 801D6310 001D1F70 93 CC FF F8 */ stw r30, -8(r12) /* 801D6314 001D1F74 93 AC FF F4 */ stw r29, -0xc(r12) /* 801D6318 001D1F78 7C 7D 1B 78 */ mr r29, r3 /* 801D631C 001D1F7C 8B E3 00 18 */ lbz r31, 0x18(r3) /* 801D6320 001D1F80 83 C3 00 20 */ lwz r30, 0x20(r3) /* 801D6324 001D1F84 57 E0 07 BD */ rlwinm. r0, r31, 0, 0x1e, 0x1e /* 801D6328 001D1F88 A0 83 00 1C */ lhz r4, 0x1c(r3) /* 801D632C 001D1F8C 41 82 00 64 */ beq lbl_801D6390 /* 801D6330 001D1F90 38 61 00 64 */ addi r3, r1, 0x64 /* 801D6334 001D1F94 38 80 00 00 */ li r4, 0 /* 801D6338 001D1F98 38 A0 00 40 */ li r5, 0x40 /* 801D633C 001D1F9C 4B E2 DD F9 */ bl TRK_memset /* 801D6340 001D1FA0 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D6344 001D1FA4 38 00 00 80 */ li r0, 0x80 /* 801D6348 001D1FA8 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D634C 001D1FAC 38 C0 00 40 */ li r6, 0x40 /* 801D6350 001D1FB0 81 09 00 00 */ lwz r8, 0(r9) /* 801D6354 001D1FB4 38 A0 00 12 */ li r5, 0x12 /* 801D6358 001D1FB8 98 01 00 68 */ stb r0, 0x68(r1) /* 801D635C 001D1FBC 38 61 00 64 */ addi r3, r1, 0x64 /* 801D6360 001D1FC0 38 E8 00 01 */ addi r7, r8, 1 /* 801D6364 001D1FC4 38 80 00 40 */ li r4, 0x40 /* 801D6368 001D1FC8 91 01 00 70 */ stw r8, 0x70(r1) /* 801D636C 001D1FCC 38 07 00 01 */ addi r0, r7, 1 /* 801D6370 001D1FD0 90 E9 00 00 */ stw r7, 0(r9) /* 801D6374 001D1FD4 90 C1 00 64 */ stw r6, 0x64(r1) /* 801D6378 001D1FD8 98 A1 00 6C */ stb r5, 0x6c(r1) /* 801D637C 001D1FDC 90 09 00 00 */ stw r0, 0(r9) /* 801D6380 001D1FE0 90 E1 00 70 */ stw r7, 0x70(r1) /* 801D6384 001D1FE4 48 00 32 89 */ bl TRKWriteUARTN /* 801D6388 001D1FE8 38 60 00 00 */ li r3, 0 /* 801D638C 001D1FEC 48 00 01 64 */ b lbl_801D64F0 lbl_801D6390: /* 801D6390 001D1FF0 90 81 00 20 */ stw r4, 0x20(r1) /* 801D6394 001D1FF4 38 80 00 40 */ li r4, 0x40 /* 801D6398 001D1FF8 4B FF EF 71 */ bl TRKSetBufferPosition /* 801D639C 001D1FFC 80 A1 00 20 */ lwz r5, 0x20(r1) /* 801D63A0 001D2000 7F A3 EB 78 */ mr r3, r29 /* 801D63A4 001D2004 38 81 01 00 */ addi r4, r1, 0x100 /* 801D63A8 001D2008 4B FF EE 31 */ bl TRKReadBuffer /* 801D63AC 001D200C 57 E0 EF FE */ rlwinm r0, r31, 0x1d, 0x1f, 0x1f /* 801D63B0 001D2010 7F C4 F3 78 */ mr r4, r30 /* 801D63B4 001D2014 38 61 01 00 */ addi r3, r1, 0x100 /* 801D63B8 001D2018 38 A1 00 20 */ addi r5, r1, 0x20 /* 801D63BC 001D201C 68 06 00 01 */ xori r6, r0, 1 /* 801D63C0 001D2020 38 E0 00 00 */ li r7, 0 /* 801D63C4 001D2024 48 00 24 75 */ bl TRKTargetAccessMemory /* 801D63C8 001D2028 7C 60 1B 78 */ mr r0, r3 /* 801D63CC 001D202C 7F A3 EB 78 */ mr r3, r29 /* 801D63D0 001D2030 7C 1F 03 78 */ mr r31, r0 /* 801D63D4 001D2034 38 80 00 00 */ li r4, 0 /* 801D63D8 001D2038 4B FF EF 61 */ bl TRKResetBuffer /* 801D63DC 001D203C 2C 1F 00 00 */ cmpwi r31, 0 /* 801D63E0 001D2040 40 82 00 54 */ bne lbl_801D6434 /* 801D63E4 001D2044 38 61 00 A4 */ addi r3, r1, 0xa4 /* 801D63E8 001D2048 38 80 00 00 */ li r4, 0 /* 801D63EC 001D204C 38 A0 00 40 */ li r5, 0x40 /* 801D63F0 001D2050 4B E2 DD 45 */ bl TRK_memset /* 801D63F4 001D2054 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D63F8 001D2058 38 00 00 40 */ li r0, 0x40 /* 801D63FC 001D205C 38 E3 07 E8 */ addi r7, r3, lbl_804907E8@l /* 801D6400 001D2060 38 A0 00 80 */ li r5, 0x80 /* 801D6404 001D2064 80 C7 00 00 */ lwz r6, 0(r7) /* 801D6408 001D2068 7F A3 EB 78 */ mr r3, r29 /* 801D640C 001D206C 90 01 00 A4 */ stw r0, 0xa4(r1) /* 801D6410 001D2070 38 81 00 A4 */ addi r4, r1, 0xa4 /* 801D6414 001D2074 38 06 00 01 */ addi r0, r6, 1 /* 801D6418 001D2078 98 A1 00 A8 */ stb r5, 0xa8(r1) /* 801D641C 001D207C 38 A0 00 40 */ li r5, 0x40 /* 801D6420 001D2080 9B E1 00 AC */ stb r31, 0xac(r1) /* 801D6424 001D2084 90 07 00 00 */ stw r0, 0(r7) /* 801D6428 001D2088 90 C1 00 B0 */ stw r6, 0xb0(r1) /* 801D642C 001D208C 4B FF EE 39 */ bl TRKAppendBuffer /* 801D6430 001D2090 7C 7F 1B 78 */ mr r31, r3 lbl_801D6434: /* 801D6434 001D2094 2C 1F 00 00 */ cmpwi r31, 0 /* 801D6438 001D2098 41 82 00 B0 */ beq lbl_801D64E8 /* 801D643C 001D209C 38 1F F9 00 */ addi r0, r31, -1792 /* 801D6440 001D20A0 28 00 00 06 */ cmplwi r0, 6 /* 801D6444 001D20A4 41 81 00 44 */ bgt lbl_801D6488 /* 801D6448 001D20A8 3C 60 80 42 */ lis r3, lbl_804231F8@ha /* 801D644C 001D20AC 54 00 10 3A */ slwi r0, r0, 2 /* 801D6450 001D20B0 38 63 31 F8 */ addi r3, r3, lbl_804231F8@l /* 801D6454 001D20B4 7C 03 00 2E */ lwzx r0, r3, r0 /* 801D6458 001D20B8 7C 09 03 A6 */ mtctr r0 /* 801D645C 001D20BC 4E 80 04 20 */ bctr /* 801D6460 001D20C0 3B E0 00 15 */ li r31, 0x15 /* 801D6464 001D20C4 48 00 00 28 */ b lbl_801D648C /* 801D6468 001D20C8 3B E0 00 13 */ li r31, 0x13 /* 801D646C 001D20CC 48 00 00 20 */ b lbl_801D648C /* 801D6470 001D20D0 3B E0 00 21 */ li r31, 0x21 /* 801D6474 001D20D4 48 00 00 18 */ b lbl_801D648C /* 801D6478 001D20D8 3B E0 00 22 */ li r31, 0x22 /* 801D647C 001D20DC 48 00 00 10 */ b lbl_801D648C /* 801D6480 001D20E0 3B E0 00 20 */ li r31, 0x20 /* 801D6484 001D20E4 48 00 00 08 */ b lbl_801D648C lbl_801D6488: /* 801D6488 001D20E8 3B E0 00 03 */ li r31, 3 lbl_801D648C: /* 801D648C 001D20EC 38 61 00 24 */ addi r3, r1, 0x24 /* 801D6490 001D20F0 38 80 00 00 */ li r4, 0 /* 801D6494 001D20F4 38 A0 00 40 */ li r5, 0x40 /* 801D6498 001D20F8 4B E2 DC 9D */ bl TRK_memset /* 801D649C 001D20FC 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D64A0 001D2100 38 00 00 80 */ li r0, 0x80 /* 801D64A4 001D2104 39 03 07 E8 */ addi r8, r3, lbl_804907E8@l /* 801D64A8 001D2108 38 A0 00 40 */ li r5, 0x40 /* 801D64AC 001D210C 80 E8 00 00 */ lwz r7, 0(r8) /* 801D64B0 001D2110 38 61 00 24 */ addi r3, r1, 0x24 /* 801D64B4 001D2114 98 01 00 28 */ stb r0, 0x28(r1) /* 801D64B8 001D2118 38 80 00 40 */ li r4, 0x40 /* 801D64BC 001D211C 38 C7 00 01 */ addi r6, r7, 1 /* 801D64C0 001D2120 90 E1 00 30 */ stw r7, 0x30(r1) /* 801D64C4 001D2124 38 06 00 01 */ addi r0, r6, 1 /* 801D64C8 001D2128 90 C8 00 00 */ stw r6, 0(r8) /* 801D64CC 001D212C 90 A1 00 24 */ stw r5, 0x24(r1) /* 801D64D0 001D2130 9B E1 00 2C */ stb r31, 0x2c(r1) /* 801D64D4 001D2134 90 08 00 00 */ stw r0, 0(r8) /* 801D64D8 001D2138 90 C1 00 30 */ stw r6, 0x30(r1) /* 801D64DC 001D213C 48 00 31 31 */ bl TRKWriteUARTN /* 801D64E0 001D2140 38 60 00 00 */ li r3, 0 /* 801D64E4 001D2144 48 00 00 0C */ b lbl_801D64F0 lbl_801D64E8: /* 801D64E8 001D2148 7F A3 EB 78 */ mr r3, r29 /* 801D64EC 001D214C 4B FF E7 F1 */ bl TRKMessageSend lbl_801D64F0: /* 801D64F0 001D2150 81 41 00 00 */ lwz r10, 0(r1) /* 801D64F4 001D2154 80 0A 00 04 */ lwz r0, 4(r10) /* 801D64F8 001D2158 83 EA FF FC */ lwz r31, -4(r10) /* 801D64FC 001D215C 83 CA FF F8 */ lwz r30, -8(r10) /* 801D6500 001D2160 83 AA FF F4 */ lwz r29, -0xc(r10) /* 801D6504 001D2164 7C 08 03 A6 */ mtlr r0 /* 801D6508 001D2168 7D 41 53 78 */ mr r1, r10 /* 801D650C 001D216C 4E 80 00 20 */ blr .global TRKDoReadMemory TRKDoReadMemory: /* 801D6510 001D2170 54 2B 06 FE */ clrlwi r11, r1, 0x1b /* 801D6514 001D2174 7C 2C 0B 78 */ mr r12, r1 /* 801D6518 001D2178 21 6B F6 C0 */ subfic r11, r11, -2368 /* 801D651C 001D217C 7C 21 59 6E */ stwux r1, r1, r11 /* 801D6520 001D2180 7C 08 02 A6 */ mflr r0 /* 801D6524 001D2184 90 0C 00 04 */ stw r0, 4(r12) /* 801D6528 001D2188 93 EC FF FC */ stw r31, -4(r12) /* 801D652C 001D218C 7C 7F 1B 78 */ mr r31, r3 /* 801D6530 001D2190 93 CC FF F8 */ stw r30, -8(r12) /* 801D6534 001D2194 93 AC FF F4 */ stw r29, -0xc(r12) /* 801D6538 001D2198 93 8C FF F0 */ stw r28, -0x10(r12) /* 801D653C 001D219C 8B C3 00 18 */ lbz r30, 0x18(r3) /* 801D6540 001D21A0 83 83 00 20 */ lwz r28, 0x20(r3) /* 801D6544 001D21A4 57 C0 07 BD */ rlwinm. r0, r30, 0, 0x1e, 0x1e /* 801D6548 001D21A8 A0 63 00 1C */ lhz r3, 0x1c(r3) /* 801D654C 001D21AC 41 82 00 64 */ beq lbl_801D65B0 /* 801D6550 001D21B0 38 61 00 64 */ addi r3, r1, 0x64 /* 801D6554 001D21B4 38 80 00 00 */ li r4, 0 /* 801D6558 001D21B8 38 A0 00 40 */ li r5, 0x40 /* 801D655C 001D21BC 4B E2 DB D9 */ bl TRK_memset /* 801D6560 001D21C0 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D6564 001D21C4 38 00 00 80 */ li r0, 0x80 /* 801D6568 001D21C8 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D656C 001D21CC 38 C0 00 40 */ li r6, 0x40 /* 801D6570 001D21D0 81 09 00 00 */ lwz r8, 0(r9) /* 801D6574 001D21D4 38 A0 00 12 */ li r5, 0x12 /* 801D6578 001D21D8 98 01 00 68 */ stb r0, 0x68(r1) /* 801D657C 001D21DC 38 61 00 64 */ addi r3, r1, 0x64 /* 801D6580 001D21E0 38 E8 00 01 */ addi r7, r8, 1 /* 801D6584 001D21E4 38 80 00 40 */ li r4, 0x40 /* 801D6588 001D21E8 91 01 00 70 */ stw r8, 0x70(r1) /* 801D658C 001D21EC 38 07 00 01 */ addi r0, r7, 1 /* 801D6590 001D21F0 90 E9 00 00 */ stw r7, 0(r9) /* 801D6594 001D21F4 90 C1 00 64 */ stw r6, 0x64(r1) /* 801D6598 001D21F8 98 A1 00 6C */ stb r5, 0x6c(r1) /* 801D659C 001D21FC 90 09 00 00 */ stw r0, 0(r9) /* 801D65A0 001D2200 90 E1 00 70 */ stw r7, 0x70(r1) /* 801D65A4 001D2204 48 00 30 69 */ bl TRKWriteUARTN /* 801D65A8 001D2208 38 60 00 00 */ li r3, 0 /* 801D65AC 001D220C 48 00 01 88 */ b lbl_801D6734 lbl_801D65B0: /* 801D65B0 001D2210 57 C0 EF FE */ rlwinm r0, r30, 0x1d, 0x1f, 0x1f /* 801D65B4 001D2214 90 61 00 20 */ stw r3, 0x20(r1) /* 801D65B8 001D2218 7F 84 E3 78 */ mr r4, r28 /* 801D65BC 001D221C 38 61 01 00 */ addi r3, r1, 0x100 /* 801D65C0 001D2220 38 A1 00 20 */ addi r5, r1, 0x20 /* 801D65C4 001D2224 68 06 00 01 */ xori r6, r0, 1 /* 801D65C8 001D2228 38 E0 00 01 */ li r7, 1 /* 801D65CC 001D222C 48 00 22 6D */ bl TRKTargetAccessMemory /* 801D65D0 001D2230 7C 60 1B 78 */ mr r0, r3 /* 801D65D4 001D2234 7F E3 FB 78 */ mr r3, r31 /* 801D65D8 001D2238 7C 1D 03 78 */ mr r29, r0 /* 801D65DC 001D223C 38 80 00 00 */ li r4, 0 /* 801D65E0 001D2240 4B FF ED 59 */ bl TRKResetBuffer /* 801D65E4 001D2244 2C 1D 00 00 */ cmpwi r29, 0 /* 801D65E8 001D2248 40 82 00 90 */ bne lbl_801D6678 /* 801D65EC 001D224C 38 61 00 A4 */ addi r3, r1, 0xa4 /* 801D65F0 001D2250 38 80 00 00 */ li r4, 0 /* 801D65F4 001D2254 38 A0 00 40 */ li r5, 0x40 /* 801D65F8 001D2258 4B E2 DB 3D */ bl TRK_memset /* 801D65FC 001D225C 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D6600 001D2260 80 81 00 20 */ lwz r4, 0x20(r1) /* 801D6604 001D2264 38 E3 07 E8 */ addi r7, r3, lbl_804907E8@l /* 801D6608 001D2268 39 00 00 80 */ li r8, 0x80 /* 801D660C 001D226C 80 C7 00 00 */ lwz r6, 0(r7) /* 801D6610 001D2270 38 04 00 40 */ addi r0, r4, 0x40 /* 801D6614 001D2274 90 01 00 A4 */ stw r0, 0xa4(r1) /* 801D6618 001D2278 7F E3 FB 78 */ mr r3, r31 /* 801D661C 001D227C 38 06 00 01 */ addi r0, r6, 1 /* 801D6620 001D2280 38 81 00 A4 */ addi r4, r1, 0xa4 /* 801D6624 001D2284 9B A1 00 AC */ stb r29, 0xac(r1) /* 801D6628 001D2288 38 A0 00 40 */ li r5, 0x40 /* 801D662C 001D228C 99 01 00 A8 */ stb r8, 0xa8(r1) /* 801D6630 001D2290 90 07 00 00 */ stw r0, 0(r7) /* 801D6634 001D2294 90 C1 00 B0 */ stw r6, 0xb0(r1) /* 801D6638 001D2298 4B FF EC 2D */ bl TRKAppendBuffer /* 801D663C 001D229C 57 C0 06 73 */ rlwinm. r0, r30, 0, 0x19, 0x19 /* 801D6640 001D22A0 41 82 00 24 */ beq lbl_801D6664 /* 801D6644 001D22A4 57 80 06 FE */ clrlwi r0, r28, 0x1b /* 801D6648 001D22A8 38 81 01 00 */ addi r4, r1, 0x100 /* 801D664C 001D22AC 80 A1 00 20 */ lwz r5, 0x20(r1) /* 801D6650 001D22B0 7F E3 FB 78 */ mr r3, r31 /* 801D6654 001D22B4 7C 84 02 14 */ add r4, r4, r0 /* 801D6658 001D22B8 4B FF EC 0D */ bl TRKAppendBuffer /* 801D665C 001D22BC 7C 7D 1B 78 */ mr r29, r3 /* 801D6660 001D22C0 48 00 00 18 */ b lbl_801D6678 lbl_801D6664: /* 801D6664 001D22C4 80 A1 00 20 */ lwz r5, 0x20(r1) /* 801D6668 001D22C8 7F E3 FB 78 */ mr r3, r31 /* 801D666C 001D22CC 38 81 01 00 */ addi r4, r1, 0x100 /* 801D6670 001D22D0 4B FF EB F5 */ bl TRKAppendBuffer /* 801D6674 001D22D4 7C 7D 1B 78 */ mr r29, r3 lbl_801D6678: /* 801D6678 001D22D8 2C 1D 00 00 */ cmpwi r29, 0 /* 801D667C 001D22DC 41 82 00 B0 */ beq lbl_801D672C /* 801D6680 001D22E0 38 1D F9 00 */ addi r0, r29, -1792 /* 801D6684 001D22E4 28 00 00 06 */ cmplwi r0, 6 /* 801D6688 001D22E8 41 81 00 44 */ bgt lbl_801D66CC /* 801D668C 001D22EC 3C 60 80 42 */ lis r3, lbl_80423214@ha /* 801D6690 001D22F0 54 00 10 3A */ slwi r0, r0, 2 /* 801D6694 001D22F4 38 63 32 14 */ addi r3, r3, lbl_80423214@l /* 801D6698 001D22F8 7C 03 00 2E */ lwzx r0, r3, r0 /* 801D669C 001D22FC 7C 09 03 A6 */ mtctr r0 /* 801D66A0 001D2300 4E 80 04 20 */ bctr /* 801D66A4 001D2304 3B A0 00 15 */ li r29, 0x15 /* 801D66A8 001D2308 48 00 00 28 */ b lbl_801D66D0 /* 801D66AC 001D230C 3B A0 00 13 */ li r29, 0x13 /* 801D66B0 001D2310 48 00 00 20 */ b lbl_801D66D0 /* 801D66B4 001D2314 3B A0 00 21 */ li r29, 0x21 /* 801D66B8 001D2318 48 00 00 18 */ b lbl_801D66D0 /* 801D66BC 001D231C 3B A0 00 22 */ li r29, 0x22 /* 801D66C0 001D2320 48 00 00 10 */ b lbl_801D66D0 /* 801D66C4 001D2324 3B A0 00 20 */ li r29, 0x20 /* 801D66C8 001D2328 48 00 00 08 */ b lbl_801D66D0 lbl_801D66CC: /* 801D66CC 001D232C 3B A0 00 03 */ li r29, 3 lbl_801D66D0: /* 801D66D0 001D2330 38 61 00 24 */ addi r3, r1, 0x24 /* 801D66D4 001D2334 38 80 00 00 */ li r4, 0 /* 801D66D8 001D2338 38 A0 00 40 */ li r5, 0x40 /* 801D66DC 001D233C 4B E2 DA 59 */ bl TRK_memset /* 801D66E0 001D2340 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D66E4 001D2344 38 00 00 80 */ li r0, 0x80 /* 801D66E8 001D2348 39 03 07 E8 */ addi r8, r3, lbl_804907E8@l /* 801D66EC 001D234C 38 A0 00 40 */ li r5, 0x40 /* 801D66F0 001D2350 80 E8 00 00 */ lwz r7, 0(r8) /* 801D66F4 001D2354 38 61 00 24 */ addi r3, r1, 0x24 /* 801D66F8 001D2358 98 01 00 28 */ stb r0, 0x28(r1) /* 801D66FC 001D235C 38 80 00 40 */ li r4, 0x40 /* 801D6700 001D2360 38 C7 00 01 */ addi r6, r7, 1 /* 801D6704 001D2364 90 E1 00 30 */ stw r7, 0x30(r1) /* 801D6708 001D2368 38 06 00 01 */ addi r0, r6, 1 /* 801D670C 001D236C 90 C8 00 00 */ stw r6, 0(r8) /* 801D6710 001D2370 90 A1 00 24 */ stw r5, 0x24(r1) /* 801D6714 001D2374 9B A1 00 2C */ stb r29, 0x2c(r1) /* 801D6718 001D2378 90 08 00 00 */ stw r0, 0(r8) /* 801D671C 001D237C 90 C1 00 30 */ stw r6, 0x30(r1) /* 801D6720 001D2380 48 00 2E ED */ bl TRKWriteUARTN /* 801D6724 001D2384 38 60 00 00 */ li r3, 0 /* 801D6728 001D2388 48 00 00 0C */ b lbl_801D6734 lbl_801D672C: /* 801D672C 001D238C 7F E3 FB 78 */ mr r3, r31 /* 801D6730 001D2390 4B FF E5 AD */ bl TRKMessageSend lbl_801D6734: /* 801D6734 001D2394 81 41 00 00 */ lwz r10, 0(r1) /* 801D6738 001D2398 80 0A 00 04 */ lwz r0, 4(r10) /* 801D673C 001D239C 83 EA FF FC */ lwz r31, -4(r10) /* 801D6740 001D23A0 83 CA FF F8 */ lwz r30, -8(r10) /* 801D6744 001D23A4 83 AA FF F4 */ lwz r29, -0xc(r10) /* 801D6748 001D23A8 83 8A FF F0 */ lwz r28, -0x10(r10) /* 801D674C 001D23AC 7C 08 03 A6 */ mtlr r0 /* 801D6750 001D23B0 7D 41 53 78 */ mr r1, r10 /* 801D6754 001D23B4 4E 80 00 20 */ blr .global TRKDoSupportMask TRKDoSupportMask: /* 801D6758 001D23B8 38 60 00 00 */ li r3, 0 /* 801D675C 001D23BC 4E 80 00 20 */ blr .global TRKDoVersions TRKDoVersions: /* 801D6760 001D23C0 38 60 00 00 */ li r3, 0 /* 801D6764 001D23C4 4E 80 00 20 */ blr .global TRKDoOverride TRKDoOverride: /* 801D6768 001D23C8 94 21 FF B0 */ stwu r1, -0x50(r1) /* 801D676C 001D23CC 7C 08 02 A6 */ mflr r0 /* 801D6770 001D23D0 38 80 00 00 */ li r4, 0 /* 801D6774 001D23D4 38 A0 00 40 */ li r5, 0x40 /* 801D6778 001D23D8 90 01 00 54 */ stw r0, 0x54(r1) /* 801D677C 001D23DC 38 61 00 08 */ addi r3, r1, 8 /* 801D6780 001D23E0 4B E2 D9 B5 */ bl TRK_memset /* 801D6784 001D23E4 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D6788 001D23E8 38 00 00 80 */ li r0, 0x80 /* 801D678C 001D23EC 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D6790 001D23F0 38 C0 00 40 */ li r6, 0x40 /* 801D6794 001D23F4 81 09 00 00 */ lwz r8, 0(r9) /* 801D6798 001D23F8 38 A0 00 00 */ li r5, 0 /* 801D679C 001D23FC 98 01 00 0C */ stb r0, 0xc(r1) /* 801D67A0 001D2400 38 61 00 08 */ addi r3, r1, 8 /* 801D67A4 001D2404 38 E8 00 01 */ addi r7, r8, 1 /* 801D67A8 001D2408 38 80 00 40 */ li r4, 0x40 /* 801D67AC 001D240C 91 01 00 14 */ stw r8, 0x14(r1) /* 801D67B0 001D2410 38 07 00 01 */ addi r0, r7, 1 /* 801D67B4 001D2414 90 E9 00 00 */ stw r7, 0(r9) /* 801D67B8 001D2418 90 C1 00 08 */ stw r6, 8(r1) /* 801D67BC 001D241C 98 A1 00 10 */ stb r5, 0x10(r1) /* 801D67C0 001D2420 90 09 00 00 */ stw r0, 0(r9) /* 801D67C4 001D2424 90 E1 00 14 */ stw r7, 0x14(r1) /* 801D67C8 001D2428 48 00 2E 45 */ bl TRKWriteUARTN /* 801D67CC 001D242C 48 00 2A E5 */ bl __TRK_copy_vectors /* 801D67D0 001D2430 80 01 00 54 */ lwz r0, 0x54(r1) /* 801D67D4 001D2434 38 60 00 00 */ li r3, 0 /* 801D67D8 001D2438 7C 08 03 A6 */ mtlr r0 /* 801D67DC 001D243C 38 21 00 50 */ addi r1, r1, 0x50 /* 801D67E0 001D2440 4E 80 00 20 */ blr .global TRKDoReset TRKDoReset: /* 801D67E4 001D2444 94 21 FF B0 */ stwu r1, -0x50(r1) /* 801D67E8 001D2448 7C 08 02 A6 */ mflr r0 /* 801D67EC 001D244C 38 80 00 00 */ li r4, 0 /* 801D67F0 001D2450 38 A0 00 40 */ li r5, 0x40 /* 801D67F4 001D2454 90 01 00 54 */ stw r0, 0x54(r1) /* 801D67F8 001D2458 38 61 00 08 */ addi r3, r1, 8 /* 801D67FC 001D245C 4B E2 D9 39 */ bl TRK_memset /* 801D6800 001D2460 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D6804 001D2464 38 00 00 80 */ li r0, 0x80 /* 801D6808 001D2468 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D680C 001D246C 38 C0 00 40 */ li r6, 0x40 /* 801D6810 001D2470 81 09 00 00 */ lwz r8, 0(r9) /* 801D6814 001D2474 38 A0 00 00 */ li r5, 0 /* 801D6818 001D2478 98 01 00 0C */ stb r0, 0xc(r1) /* 801D681C 001D247C 38 61 00 08 */ addi r3, r1, 8 /* 801D6820 001D2480 38 E8 00 01 */ addi r7, r8, 1 /* 801D6824 001D2484 38 80 00 40 */ li r4, 0x40 /* 801D6828 001D2488 91 01 00 14 */ stw r8, 0x14(r1) /* 801D682C 001D248C 38 07 00 01 */ addi r0, r7, 1 /* 801D6830 001D2490 90 E9 00 00 */ stw r7, 0(r9) /* 801D6834 001D2494 90 C1 00 08 */ stw r6, 8(r1) /* 801D6838 001D2498 98 A1 00 10 */ stb r5, 0x10(r1) /* 801D683C 001D249C 90 09 00 00 */ stw r0, 0(r9) /* 801D6840 001D24A0 90 E1 00 14 */ stw r7, 0x14(r1) /* 801D6844 001D24A4 48 00 2D C9 */ bl TRKWriteUARTN /* 801D6848 001D24A8 4B E2 F8 75 */ bl __TRK_reset /* 801D684C 001D24AC 80 01 00 54 */ lwz r0, 0x54(r1) /* 801D6850 001D24B0 38 60 00 00 */ li r3, 0 /* 801D6854 001D24B4 7C 08 03 A6 */ mtlr r0 /* 801D6858 001D24B8 38 21 00 50 */ addi r1, r1, 0x50 /* 801D685C 001D24BC 4E 80 00 20 */ blr .global TRKDoDisconnect TRKDoDisconnect: /* 801D6860 001D24C0 94 21 FF A0 */ stwu r1, -0x60(r1) /* 801D6864 001D24C4 7C 08 02 A6 */ mflr r0 /* 801D6868 001D24C8 3C 60 80 49 */ lis r3, lbl_804907EC@ha /* 801D686C 001D24CC 38 A0 00 40 */ li r5, 0x40 /* 801D6870 001D24D0 90 01 00 64 */ stw r0, 0x64(r1) /* 801D6874 001D24D4 38 83 07 EC */ addi r4, r3, lbl_804907EC@l /* 801D6878 001D24D8 38 00 00 00 */ li r0, 0 /* 801D687C 001D24DC 38 61 00 14 */ addi r3, r1, 0x14 /* 801D6880 001D24E0 90 04 00 00 */ stw r0, 0(r4) /* 801D6884 001D24E4 38 80 00 00 */ li r4, 0 /* 801D6888 001D24E8 4B E2 D8 AD */ bl TRK_memset /* 801D688C 001D24EC 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D6890 001D24F0 38 00 00 80 */ li r0, 0x80 /* 801D6894 001D24F4 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D6898 001D24F8 38 C0 00 40 */ li r6, 0x40 /* 801D689C 001D24FC 81 09 00 00 */ lwz r8, 0(r9) /* 801D68A0 001D2500 38 A0 00 00 */ li r5, 0 /* 801D68A4 001D2504 98 01 00 18 */ stb r0, 0x18(r1) /* 801D68A8 001D2508 38 61 00 14 */ addi r3, r1, 0x14 /* 801D68AC 001D250C 38 E8 00 01 */ addi r7, r8, 1 /* 801D68B0 001D2510 38 80 00 40 */ li r4, 0x40 /* 801D68B4 001D2514 91 01 00 20 */ stw r8, 0x20(r1) /* 801D68B8 001D2518 38 07 00 01 */ addi r0, r7, 1 /* 801D68BC 001D251C 90 E9 00 00 */ stw r7, 0(r9) /* 801D68C0 001D2520 90 C1 00 14 */ stw r6, 0x14(r1) /* 801D68C4 001D2524 98 A1 00 1C */ stb r5, 0x1c(r1) /* 801D68C8 001D2528 90 09 00 00 */ stw r0, 0(r9) /* 801D68CC 001D252C 90 E1 00 20 */ stw r7, 0x20(r1) /* 801D68D0 001D2530 48 00 2D 3D */ bl TRKWriteUARTN /* 801D68D4 001D2534 38 61 00 08 */ addi r3, r1, 8 /* 801D68D8 001D2538 38 80 00 01 */ li r4, 1 /* 801D68DC 001D253C 4B FF E0 79 */ bl TRKConstructEvent /* 801D68E0 001D2540 38 61 00 08 */ addi r3, r1, 8 /* 801D68E4 001D2544 4B FF E0 89 */ bl TRKPostEvent /* 801D68E8 001D2548 80 01 00 64 */ lwz r0, 0x64(r1) /* 801D68EC 001D254C 38 60 00 00 */ li r3, 0 /* 801D68F0 001D2550 7C 08 03 A6 */ mtlr r0 /* 801D68F4 001D2554 38 21 00 60 */ addi r1, r1, 0x60 /* 801D68F8 001D2558 4E 80 00 20 */ blr .global TRKDoConnect TRKDoConnect: /* 801D68FC 001D255C 94 21 FF B0 */ stwu r1, -0x50(r1) /* 801D6900 001D2560 7C 08 02 A6 */ mflr r0 /* 801D6904 001D2564 3C 60 80 49 */ lis r3, lbl_804907EC@ha /* 801D6908 001D2568 38 A0 00 40 */ li r5, 0x40 /* 801D690C 001D256C 90 01 00 54 */ stw r0, 0x54(r1) /* 801D6910 001D2570 38 83 07 EC */ addi r4, r3, lbl_804907EC@l /* 801D6914 001D2574 38 00 00 01 */ li r0, 1 /* 801D6918 001D2578 38 61 00 08 */ addi r3, r1, 8 /* 801D691C 001D257C 90 04 00 00 */ stw r0, 0(r4) /* 801D6920 001D2580 38 80 00 00 */ li r4, 0 /* 801D6924 001D2584 4B E2 D8 11 */ bl TRK_memset /* 801D6928 001D2588 3C 60 80 49 */ lis r3, lbl_804907E8@ha /* 801D692C 001D258C 38 00 00 80 */ li r0, 0x80 /* 801D6930 001D2590 39 23 07 E8 */ addi r9, r3, lbl_804907E8@l /* 801D6934 001D2594 38 C0 00 40 */ li r6, 0x40 /* 801D6938 001D2598 81 09 00 00 */ lwz r8, 0(r9) /* 801D693C 001D259C 38 A0 00 00 */ li r5, 0 /* 801D6940 001D25A0 98 01 00 0C */ stb r0, 0xc(r1) /* 801D6944 001D25A4 38 61 00 08 */ addi r3, r1, 8 /* 801D6948 001D25A8 38 E8 00 01 */ addi r7, r8, 1 /* 801D694C 001D25AC 38 80 00 40 */ li r4, 0x40 /* 801D6950 001D25B0 91 01 00 14 */ stw r8, 0x14(r1) /* 801D6954 001D25B4 38 07 00 01 */ addi r0, r7, 1 /* 801D6958 001D25B8 90 E9 00 00 */ stw r7, 0(r9) /* 801D695C 001D25BC 90 C1 00 08 */ stw r6, 8(r1) /* 801D6960 001D25C0 98 A1 00 10 */ stb r5, 0x10(r1) /* 801D6964 001D25C4 90 09 00 00 */ stw r0, 0(r9) /* 801D6968 001D25C8 90 E1 00 14 */ stw r7, 0x14(r1) /* 801D696C 001D25CC 48 00 2C A1 */ bl TRKWriteUARTN /* 801D6970 001D25D0 80 01 00 54 */ lwz r0, 0x54(r1) /* 801D6974 001D25D4 38 60 00 00 */ li r3, 0 /* 801D6978 001D25D8 7C 08 03 A6 */ mtlr r0 /* 801D697C 001D25DC 38 21 00 50 */ addi r1, r1, 0x50 /* 801D6980 001D25E0 4E 80 00 20 */ blr .global SetTRKConnected SetTRKConnected: /* 801D6984 001D25E4 3C 80 80 49 */ lis r4, lbl_804907EC@ha /* 801D6988 001D25E8 90 64 07 EC */ stw r3, lbl_804907EC@l(r4) /* 801D698C 001D25EC 4E 80 00 20 */ blr .global GetTRKConnected GetTRKConnected: /* 801D6990 001D25F0 3C 60 80 49 */ lis r3, lbl_804907EC@ha /* 801D6994 001D25F4 38 63 07 EC */ addi r3, r3, lbl_804907EC@l /* 801D6998 001D25F8 80 63 00 00 */ lwz r3, 0(r3) /* 801D699C 001D25FC 4E 80 00 20 */ blr