1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global __DVDClearWaitingQueue
__DVDClearWaitingQueue:
/* 8028C98C 002885EC 3C C0 80 52 */ lis r6, lbl_8051B550@ha
/* 8028C990 002885F0 38 C6 B5 50 */ addi r6, r6, lbl_8051B550@l
/* 8028C994 002885F4 38 A6 00 08 */ addi r5, r6, 8
/* 8028C998 002885F8 90 C6 00 00 */ stw r6, 0(r6)
/* 8028C99C 002885FC 38 86 00 10 */ addi r4, r6, 0x10
/* 8028C9A0 00288600 38 66 00 18 */ addi r3, r6, 0x18
/* 8028C9A4 00288604 90 C6 00 04 */ stw r6, 4(r6)
/* 8028C9A8 00288608 90 A6 00 08 */ stw r5, 8(r6)
/* 8028C9AC 0028860C 90 A6 00 0C */ stw r5, 0xc(r6)
/* 8028C9B0 00288610 90 86 00 10 */ stw r4, 0x10(r6)
/* 8028C9B4 00288614 90 86 00 14 */ stw r4, 0x14(r6)
/* 8028C9B8 00288618 90 66 00 18 */ stw r3, 0x18(r6)
/* 8028C9BC 0028861C 90 66 00 1C */ stw r3, 0x1c(r6)
/* 8028C9C0 00288620 4E 80 00 20 */ blr
.global __DVDPushWaitingQueue
__DVDPushWaitingQueue:
/* 8028C9C4 00288624 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8028C9C8 00288628 7C 08 02 A6 */ mflr r0
/* 8028C9CC 0028862C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028C9D0 00288630 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8028C9D4 00288634 7C 9F 23 78 */ mr r31, r4
/* 8028C9D8 00288638 93 C1 00 08 */ stw r30, 8(r1)
/* 8028C9DC 0028863C 7C 7E 1B 78 */ mr r30, r3
/* 8028C9E0 00288640 4B FE 1D 7D */ bl OSDisableInterrupts
/* 8028C9E4 00288644 3C 80 80 52 */ lis r4, lbl_8051B550@ha
/* 8028C9E8 00288648 57 C0 18 38 */ slwi r0, r30, 3
/* 8028C9EC 0028864C 38 84 B5 50 */ addi r4, r4, lbl_8051B550@l
/* 8028C9F0 00288650 7C A4 02 14 */ add r5, r4, r0
/* 8028C9F4 00288654 80 85 00 04 */ lwz r4, 4(r5)
/* 8028C9F8 00288658 93 E4 00 00 */ stw r31, 0(r4)
/* 8028C9FC 0028865C 80 05 00 04 */ lwz r0, 4(r5)
/* 8028CA00 00288660 90 1F 00 04 */ stw r0, 4(r31)
/* 8028CA04 00288664 90 BF 00 00 */ stw r5, 0(r31)
/* 8028CA08 00288668 93 E5 00 04 */ stw r31, 4(r5)
/* 8028CA0C 0028866C 4B FE 1D 79 */ bl OSRestoreInterrupts
/* 8028CA10 00288670 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8028CA14 00288674 38 60 00 01 */ li r3, 1
/* 8028CA18 00288678 83 C1 00 08 */ lwz r30, 8(r1)
/* 8028CA1C 0028867C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8028CA20 00288680 7C 08 03 A6 */ mtlr r0
/* 8028CA24 00288684 38 21 00 10 */ addi r1, r1, 0x10
/* 8028CA28 00288688 4E 80 00 20 */ blr
.global __DVDPopWaitingQueue
__DVDPopWaitingQueue:
/* 8028CA2C 0028868C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8028CA30 00288690 7C 08 02 A6 */ mflr r0
/* 8028CA34 00288694 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028CA38 00288698 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8028CA3C 0028869C 4B FE 1D 21 */ bl OSDisableInterrupts
/* 8028CA40 002886A0 3C 80 80 52 */ lis r4, lbl_8051B550@ha
/* 8028CA44 002886A4 38 00 00 04 */ li r0, 4
/* 8028CA48 002886A8 3B E0 00 00 */ li r31, 0
/* 8028CA4C 002886AC 38 84 B5 50 */ addi r4, r4, lbl_8051B550@l
/* 8028CA50 002886B0 7C 09 03 A6 */ mtctr r0
lbl_8028CA54:
/* 8028CA54 002886B4 80 04 00 00 */ lwz r0, 0(r4)
/* 8028CA58 002886B8 7C 00 20 40 */ cmplw r0, r4
/* 8028CA5C 002886BC 41 82 00 48 */ beq lbl_8028CAA4
/* 8028CA60 002886C0 4B FE 1D 25 */ bl OSRestoreInterrupts
/* 8028CA64 002886C4 4B FE 1C F9 */ bl OSDisableInterrupts
/* 8028CA68 002886C8 3C 80 80 52 */ lis r4, lbl_8051B550@ha
/* 8028CA6C 002886CC 57 E0 18 38 */ slwi r0, r31, 3
/* 8028CA70 002886D0 38 84 B5 50 */ addi r4, r4, lbl_8051B550@l
/* 8028CA74 002886D4 7F E4 00 2E */ lwzx r31, r4, r0
/* 8028CA78 002886D8 7C A4 02 14 */ add r5, r4, r0
/* 8028CA7C 002886DC 80 1F 00 00 */ lwz r0, 0(r31)
/* 8028CA80 002886E0 90 05 00 00 */ stw r0, 0(r5)
/* 8028CA84 002886E4 80 9F 00 00 */ lwz r4, 0(r31)
/* 8028CA88 002886E8 90 A4 00 04 */ stw r5, 4(r4)
/* 8028CA8C 002886EC 4B FE 1C F9 */ bl OSRestoreInterrupts
/* 8028CA90 002886F0 38 00 00 00 */ li r0, 0
/* 8028CA94 002886F4 7F E3 FB 78 */ mr r3, r31
/* 8028CA98 002886F8 90 1F 00 00 */ stw r0, 0(r31)
/* 8028CA9C 002886FC 90 1F 00 04 */ stw r0, 4(r31)
/* 8028CAA0 00288700 48 00 00 18 */ b lbl_8028CAB8
lbl_8028CAA4:
/* 8028CAA4 00288704 38 84 00 08 */ addi r4, r4, 8
/* 8028CAA8 00288708 3B FF 00 01 */ addi r31, r31, 1
/* 8028CAAC 0028870C 42 00 FF A8 */ bdnz lbl_8028CA54
/* 8028CAB0 00288710 4B FE 1C D5 */ bl OSRestoreInterrupts
/* 8028CAB4 00288714 38 60 00 00 */ li r3, 0
lbl_8028CAB8:
/* 8028CAB8 00288718 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8028CABC 0028871C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8028CAC0 00288720 7C 08 03 A6 */ mtlr r0
/* 8028CAC4 00288724 38 21 00 10 */ addi r1, r1, 0x10
/* 8028CAC8 00288728 4E 80 00 20 */ blr
.global __DVDCheckWaitingQueue
__DVDCheckWaitingQueue:
/* 8028CACC 0028872C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8028CAD0 00288730 7C 08 02 A6 */ mflr r0
/* 8028CAD4 00288734 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028CAD8 00288738 4B FE 1C 85 */ bl OSDisableInterrupts
/* 8028CADC 0028873C 3C 80 80 52 */ lis r4, lbl_8051B550@ha
/* 8028CAE0 00288740 38 00 00 04 */ li r0, 4
/* 8028CAE4 00288744 38 84 B5 50 */ addi r4, r4, lbl_8051B550@l
/* 8028CAE8 00288748 7C 09 03 A6 */ mtctr r0
lbl_8028CAEC:
/* 8028CAEC 0028874C 80 04 00 00 */ lwz r0, 0(r4)
/* 8028CAF0 00288750 7C 00 20 40 */ cmplw r0, r4
/* 8028CAF4 00288754 41 82 00 10 */ beq lbl_8028CB04
/* 8028CAF8 00288758 4B FE 1C 8D */ bl OSRestoreInterrupts
/* 8028CAFC 0028875C 38 60 00 01 */ li r3, 1
/* 8028CB00 00288760 48 00 00 14 */ b lbl_8028CB14
lbl_8028CB04:
/* 8028CB04 00288764 38 84 00 08 */ addi r4, r4, 8
/* 8028CB08 00288768 42 00 FF E4 */ bdnz lbl_8028CAEC
/* 8028CB0C 0028876C 4B FE 1C 79 */ bl OSRestoreInterrupts
/* 8028CB10 00288770 38 60 00 00 */ li r3, 0
lbl_8028CB14:
/* 8028CB14 00288774 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8028CB18 00288778 7C 08 03 A6 */ mtlr r0
/* 8028CB1C 0028877C 38 21 00 10 */ addi r1, r1, 0x10
/* 8028CB20 00288780 4E 80 00 20 */ blr
.global __DVDGetNextWaitingQueue
__DVDGetNextWaitingQueue:
/* 8028CB24 00288784 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8028CB28 00288788 7C 08 02 A6 */ mflr r0
/* 8028CB2C 0028878C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028CB30 00288790 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8028CB34 00288794 4B FE 1C 29 */ bl OSDisableInterrupts
/* 8028CB38 00288798 3C 80 80 52 */ lis r4, lbl_8051B550@ha
/* 8028CB3C 0028879C 38 00 00 04 */ li r0, 4
/* 8028CB40 002887A0 38 84 B5 50 */ addi r4, r4, lbl_8051B550@l
/* 8028CB44 002887A4 7C 09 03 A6 */ mtctr r0
lbl_8028CB48:
/* 8028CB48 002887A8 83 E4 00 00 */ lwz r31, 0(r4)
/* 8028CB4C 002887AC 7C 1F 20 40 */ cmplw r31, r4
/* 8028CB50 002887B0 41 82 00 10 */ beq lbl_8028CB60
/* 8028CB54 002887B4 4B FE 1C 31 */ bl OSRestoreInterrupts
/* 8028CB58 002887B8 7F E3 FB 78 */ mr r3, r31
/* 8028CB5C 002887BC 48 00 00 14 */ b lbl_8028CB70
lbl_8028CB60:
/* 8028CB60 002887C0 38 84 00 08 */ addi r4, r4, 8
/* 8028CB64 002887C4 42 00 FF E4 */ bdnz lbl_8028CB48
/* 8028CB68 002887C8 4B FE 1C 1D */ bl OSRestoreInterrupts
/* 8028CB6C 002887CC 38 60 00 00 */ li r3, 0
lbl_8028CB70:
/* 8028CB70 002887D0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8028CB74 002887D4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8028CB78 002887D8 7C 08 03 A6 */ mtlr r0
/* 8028CB7C 002887DC 38 21 00 10 */ addi r1, r1, 0x10
/* 8028CB80 002887E0 4E 80 00 20 */ blr
.global __DVDDequeueWaitingQueue
__DVDDequeueWaitingQueue:
/* 8028CB84 002887E4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8028CB88 002887E8 7C 08 02 A6 */ mflr r0
/* 8028CB8C 002887EC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8028CB90 002887F0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8028CB94 002887F4 7C 7F 1B 78 */ mr r31, r3
/* 8028CB98 002887F8 4B FE 1B C5 */ bl OSDisableInterrupts
/* 8028CB9C 002887FC 80 9F 00 04 */ lwz r4, 4(r31)
/* 8028CBA0 00288800 80 BF 00 00 */ lwz r5, 0(r31)
/* 8028CBA4 00288804 2C 04 00 00 */ cmpwi r4, 0
/* 8028CBA8 00288808 41 82 00 0C */ beq lbl_8028CBB4
/* 8028CBAC 0028880C 2C 05 00 00 */ cmpwi r5, 0
/* 8028CBB0 00288810 40 82 00 10 */ bne lbl_8028CBC0
lbl_8028CBB4:
/* 8028CBB4 00288814 4B FE 1B D1 */ bl OSRestoreInterrupts
/* 8028CBB8 00288818 38 60 00 00 */ li r3, 0
/* 8028CBBC 0028881C 48 00 00 14 */ b lbl_8028CBD0
lbl_8028CBC0:
/* 8028CBC0 00288820 90 A4 00 00 */ stw r5, 0(r4)
/* 8028CBC4 00288824 90 85 00 04 */ stw r4, 4(r5)
/* 8028CBC8 00288828 4B FE 1B BD */ bl OSRestoreInterrupts
/* 8028CBCC 0028882C 38 60 00 01 */ li r3, 1
lbl_8028CBD0:
/* 8028CBD0 00288830 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8028CBD4 00288834 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8028CBD8 00288838 7C 08 03 A6 */ mtlr r0
/* 8028CBDC 0028883C 38 21 00 10 */ addi r1, r1, 0x10
/* 8028CBE0 00288840 4E 80 00 20 */ blr
|