summaryrefslogtreecommitdiff
path: root/asm/MetroTRK/mpc_7xx_603e.s
blob: a93c6befada7e1690a783c32bbe1058adb550b54 (plain)
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
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global TRKSaveExtended1Block
TRKSaveExtended1Block:
/* 801D8C50 001D48B0  3C 40 80 49 */	lis r2, lbl_80490898@h
/* 801D8C54 001D48B4  60 42 08 98 */	ori r2, r2, lbl_80490898@l
/* 801D8C58 001D48B8  7E 00 04 A6 */	mfsr r16, 0
/* 801D8C5C 001D48BC  7E 21 04 A6 */	mfsr r17, 1
/* 801D8C60 001D48C0  7E 42 04 A6 */	mfsr r18, 2
/* 801D8C64 001D48C4  7E 63 04 A6 */	mfsr r19, 3
/* 801D8C68 001D48C8  7E 84 04 A6 */	mfsr r20, 4
/* 801D8C6C 001D48CC  7E A5 04 A6 */	mfsr r21, 5
/* 801D8C70 001D48D0  7E C6 04 A6 */	mfsr r22, 6
/* 801D8C74 001D48D4  7E E7 04 A6 */	mfsr r23, 7
/* 801D8C78 001D48D8  7F 08 04 A6 */	mfsr r24, 8
/* 801D8C7C 001D48DC  7F 29 04 A6 */	mfsr r25, 9
/* 801D8C80 001D48E0  7F 4A 04 A6 */	mfsr r26, 0xa
/* 801D8C84 001D48E4  7F 6B 04 A6 */	mfsr r27, 0xb
/* 801D8C88 001D48E8  7F 8C 04 A6 */	mfsr r28, 0xc
/* 801D8C8C 001D48EC  7F AD 04 A6 */	mfsr r29, 0xd
/* 801D8C90 001D48F0  7F CE 04 A6 */	mfsr r30, 0xe
/* 801D8C94 001D48F4  7F EF 04 A6 */	mfsr r31, 0xf
/* 801D8C98 001D48F8  BE 02 01 A8 */	stmw r16, 0x1a8(r2)
/* 801D8C9C 001D48FC  7D 4C 42 E6 */	mftb r10, 0x10c
/* 801D8CA0 001D4900  7D 6D 42 E6 */	mftbu r11
/* 801D8CA4 001D4904  7D 90 FA A6 */	mfspr r12, 0x3f0
/* 801D8CA8 001D4908  7D B1 FA A6 */	mfspr r13, 0x3f1
/* 801D8CAC 001D490C  7D DB 02 A6 */	mfspr r14, 0x1b
/* 801D8CB0 001D4910  7D FF 42 A6 */	mfpvr r15
/* 801D8CB4 001D4914  7E 10 82 A6 */	mfibatu r16, 0
/* 801D8CB8 001D4918  7E 31 82 A6 */	mfibatl r17, 0
/* 801D8CBC 001D491C  7E 52 82 A6 */	mfibatu r18, 1
/* 801D8CC0 001D4920  7E 73 82 A6 */	mfibatl r19, 1
/* 801D8CC4 001D4924  7E 94 82 A6 */	mfibatu r20, 2
/* 801D8CC8 001D4928  7E B5 82 A6 */	mfibatl r21, 2
/* 801D8CCC 001D492C  7E D6 82 A6 */	mfibatu r22, 3
/* 801D8CD0 001D4930  7E F7 82 A6 */	mfibatl r23, 3
/* 801D8CD4 001D4934  7F 18 82 A6 */	mfdbatu r24, 0
/* 801D8CD8 001D4938  7F 39 82 A6 */	mfdbatl r25, 0
/* 801D8CDC 001D493C  7F 5A 82 A6 */	mfdbatu r26, 1
/* 801D8CE0 001D4940  7F 7B 82 A6 */	mfdbatl r27, 1
/* 801D8CE4 001D4944  7F 9C 82 A6 */	mfdbatu r28, 2
/* 801D8CE8 001D4948  7F BD 82 A6 */	mfdbatl r29, 2
/* 801D8CEC 001D494C  7F DE 82 A6 */	mfdbatu r30, 3
/* 801D8CF0 001D4950  7F FF 82 A6 */	mfdbatl r31, 3
/* 801D8CF4 001D4954  BD 42 01 E8 */	stmw r10, 0x1e8(r2)
/* 801D8CF8 001D4958  7E D9 02 A6 */	mfspr r22, 0x19
/* 801D8CFC 001D495C  7E F3 02 A6 */	mfdar r23
/* 801D8D00 001D4960  7F 12 02 A6 */	mfdsisr r24
/* 801D8D04 001D4964  7F 30 42 A6 */	mfspr r25, 0x110
/* 801D8D08 001D4968  7F 51 42 A6 */	mfspr r26, 0x111
/* 801D8D0C 001D496C  7F 72 42 A6 */	mfspr r27, 0x112
/* 801D8D10 001D4970  7F 93 42 A6 */	mfspr r28, 0x113
/* 801D8D14 001D4974  3B A0 00 00 */	li r29, 0
/* 801D8D18 001D4978  7F D2 FA A6 */	mfspr r30, 0x3f2
/* 801D8D1C 001D497C  7F FA 42 A6 */	mfspr r31, 0x11a
/* 801D8D20 001D4980  BE C2 02 5C */	stmw r22, 0x25c(r2)
/* 801D8D24 001D4984  7E 90 E2 A6 */	mfspr r20, 0x390
/* 801D8D28 001D4988  7E B1 E2 A6 */	mfspr r21, 0x391
/* 801D8D2C 001D498C  7E D2 E2 A6 */	mfspr r22, 0x392
/* 801D8D30 001D4990  7E F3 E2 A6 */	mfspr r23, 0x393
/* 801D8D34 001D4994  7F 14 E2 A6 */	mfspr r24, 0x394
/* 801D8D38 001D4998  7F 35 E2 A6 */	mfspr r25, 0x395
/* 801D8D3C 001D499C  7F 56 E2 A6 */	mfspr r26, 0x396
/* 801D8D40 001D49A0  7F 77 E2 A6 */	mfspr r27, 0x397
/* 801D8D44 001D49A4  7F 98 E2 A6 */	mfspr r28, 0x398
/* 801D8D48 001D49A8  7F B9 E2 A6 */	mfspr r29, 0x399
/* 801D8D4C 001D49AC  7F DA E2 A6 */	mfspr r30, 0x39a
/* 801D8D50 001D49B0  7F FB E2 A6 */	mfspr r31, 0x39b
/* 801D8D54 001D49B4  BE 82 02 FC */	stmw r20, 0x2fc(r2)
/* 801D8D58 001D49B8  48 00 00 48 */	b lbl_801D8DA0
/* 801D8D5C 001D49BC  7E 00 EA A6 */	mfspr r16, 0x3a0
/* 801D8D60 001D49C0  7E 27 EA A6 */	mfspr r17, 0x3a7
/* 801D8D64 001D49C4  7E 48 EA A6 */	mfspr r18, 0x3a8
/* 801D8D68 001D49C8  7E 69 EA A6 */	mfspr r19, 0x3a9
/* 801D8D6C 001D49CC  7E 8A EA A6 */	mfspr r20, 0x3aa
/* 801D8D70 001D49D0  7E AB EA A6 */	mfspr r21, 0x3ab
/* 801D8D74 001D49D4  7E CC EA A6 */	mfspr r22, 0x3ac
/* 801D8D78 001D49D8  7E ED EA A6 */	mfspr r23, 0x3ad
/* 801D8D7C 001D49DC  7F 0E EA A6 */	mfspr r24, 0x3ae
/* 801D8D80 001D49E0  7F 2F EA A6 */	mfspr r25, 0x3af
/* 801D8D84 001D49E4  7F 50 EA A6 */	mfspr r26, 0x3b0
/* 801D8D88 001D49E8  7F 77 EA A6 */	mfspr r27, 0x3b7
/* 801D8D8C 001D49EC  7F 9F EA A6 */	mfspr r28, 0x3bf
/* 801D8D90 001D49F0  7F B6 FA A6 */	mfspr r29, 0x3f6
/* 801D8D94 001D49F4  7F D7 FA A6 */	mfspr r30, 0x3f7
/* 801D8D98 001D49F8  7F FF FA A6 */	mfspr r31, 0x3ff
/* 801D8D9C 001D49FC  BE 02 02 B8 */	stmw r16, 0x2b8(r2)
lbl_801D8DA0:
/* 801D8DA0 001D4A00  7E 75 FA A6 */	mfspr r19, 0x3f5
/* 801D8DA4 001D4A04  7E 99 EA A6 */	mfspr r20, 0x3b9
/* 801D8DA8 001D4A08  7E BA EA A6 */	mfspr r21, 0x3ba
/* 801D8DAC 001D4A0C  7E DD EA A6 */	mfspr r22, 0x3bd
/* 801D8DB0 001D4A10  7E FE EA A6 */	mfspr r23, 0x3be
/* 801D8DB4 001D4A14  7F 1B EA A6 */	mfspr r24, 0x3bb
/* 801D8DB8 001D4A18  7F 38 EA A6 */	mfspr r25, 0x3b8
/* 801D8DBC 001D4A1C  7F 5C EA A6 */	mfspr r26, 0x3bc
/* 801D8DC0 001D4A20  7F 7C FA A6 */	mfspr r27, 0x3fc
/* 801D8DC4 001D4A24  7F 9D FA A6 */	mfspr r28, 0x3fd
/* 801D8DC8 001D4A28  7F BE FA A6 */	mfspr r29, 0x3fe
/* 801D8DCC 001D4A2C  7F DB FA A6 */	mfspr r30, 0x3FB
/* 801D8DD0 001D4A30  7F F9 FA A6 */	mfspr r31, 0x3f9
/* 801D8DD4 001D4A34  BE 62 02 84 */	stmw r19, 0x284(r2)
/* 801D8DD8 001D4A38  4E 80 00 20 */	blr
/* 801D8DDC 001D4A3C  7F 30 F2 A6 */	mfspr r25, 0x3d0
/* 801D8DE0 001D4A40  7F 51 F2 A6 */	mfspr r26, 0x3d1
/* 801D8DE4 001D4A44  7F 72 F2 A6 */	mfspr r27, 0x3d2
/* 801D8DE8 001D4A48  7F 93 F2 A6 */	mfspr r28, 0x3d3
/* 801D8DEC 001D4A4C  7F B4 F2 A6 */	mfspr r29, 0x3D4
/* 801D8DF0 001D4A50  7F D5 F2 A6 */	mfspr r30, 0x3D5
/* 801D8DF4 001D4A54  7F F6 F2 A6 */	mfspr r31, 0x3d6
/* 801D8DF8 001D4A58  BF 22 02 40 */	stmw r25, 0x240(r2)
/* 801D8DFC 001D4A5C  7F F6 02 A6 */	mfspr r31, 0x16
/* 801D8E00 001D4A60  93 E2 02 78 */	stw r31, 0x278(r2)
/* 801D8E04 001D4A64  4E 80 00 20 */	blr

.global TRKRestoreExtended1Block
TRKRestoreExtended1Block:
/* 801D8E08 001D4A68  3C 40 80 49 */	lis r2, lbl_80490898@h
/* 801D8E0C 001D4A6C  60 42 08 98 */	ori r2, r2, lbl_80490898@l
/* 801D8E10 001D4A70  3C A0 80 42 */	lis r5, lbl_80423230@h
/* 801D8E14 001D4A74  60 A5 32 30 */	ori r5, r5, lbl_80423230@l
/* 801D8E18 001D4A78  88 65 00 00 */	lbz r3, 0(r5)
/* 801D8E1C 001D4A7C  88 C5 00 01 */	lbz r6, 1(r5)
/* 801D8E20 001D4A80  38 00 00 00 */	li r0, 0
/* 801D8E24 001D4A84  98 05 00 00 */	stb r0, 0(r5)
/* 801D8E28 001D4A88  98 05 00 01 */	stb r0, 1(r5)
/* 801D8E2C 001D4A8C  2C 03 00 00 */	cmpwi r3, 0
/* 801D8E30 001D4A90  41 82 00 14 */	beq lbl_801D8E44
/* 801D8E34 001D4A94  83 02 01 E8 */	lwz r24, 0x1e8(r2)
/* 801D8E38 001D4A98  83 22 01 EC */	lwz r25, 0x1ec(r2)
/* 801D8E3C 001D4A9C  7F 1C 43 A6 */	mttbl r24
/* 801D8E40 001D4AA0  7F 3D 43 A6 */	mttbu r25
lbl_801D8E44:
/* 801D8E44 001D4AA4  BA 82 02 FC */	lmw r20, 0x2fc(r2)
/* 801D8E48 001D4AA8  7E 90 E3 A6 */	mtspr 0x390, r20
/* 801D8E4C 001D4AAC  7E B1 E3 A6 */	mtspr 0x391, r21
/* 801D8E50 001D4AB0  7E D2 E3 A6 */	mtspr 0x392, r22
/* 801D8E54 001D4AB4  7E F3 E3 A6 */	mtspr 0x393, r23
/* 801D8E58 001D4AB8  7F 14 E3 A6 */	mtspr 0x394, r24
/* 801D8E5C 001D4ABC  7F 35 E3 A6 */	mtspr 0x395, r25
/* 801D8E60 001D4AC0  7F 56 E3 A6 */	mtspr 0x396, r26
/* 801D8E64 001D4AC4  7F 77 E3 A6 */	mtspr 0x397, r27
/* 801D8E68 001D4AC8  7F 98 E3 A6 */	mtspr 0x398, r28
/* 801D8E6C 001D4ACC  7F DA E3 A6 */	mtspr 0x39a, r30
/* 801D8E70 001D4AD0  7F FB E3 A6 */	mtspr 0x39b, r31
/* 801D8E74 001D4AD4  48 00 00 1C */	b lbl_801D8E90
/* 801D8E78 001D4AD8  BB 42 02 E0 */	lmw r26, 0x2e0(r2)
/* 801D8E7C 001D4ADC  7F 50 EB A6 */	mtspr 0x3b0, r26
/* 801D8E80 001D4AE0  7F 77 EB A6 */	mtspr 0x3b7, r27
/* 801D8E84 001D4AE4  7F B6 FB A6 */	mtspr 0x3f6, r29
/* 801D8E88 001D4AE8  7F D7 FB A6 */	mtspr 0x3f7, r30
/* 801D8E8C 001D4AEC  7F FF FB A6 */	mtspr 0x3ff, r31
lbl_801D8E90:
/* 801D8E90 001D4AF0  BA 62 02 84 */	lmw r19, 0x284(r2)
/* 801D8E94 001D4AF4  7E 75 FB A6 */	mtspr 0x3f5, r19
/* 801D8E98 001D4AF8  7E 99 EB A6 */	mtspr 0x3b9, r20
/* 801D8E9C 001D4AFC  7E BA EB A6 */	mtspr 0x3ba, r21
/* 801D8EA0 001D4B00  7E DD EB A6 */	mtspr 0x3bd, r22
/* 801D8EA4 001D4B04  7E FE EB A6 */	mtspr 0x3be, r23
/* 801D8EA8 001D4B08  7F 1B EB A6 */	mtspr 0x3bb, r24
/* 801D8EAC 001D4B0C  7F 38 EB A6 */	mtspr 0x3b8, r25
/* 801D8EB0 001D4B10  7F 5C EB A6 */	mtspr 0x3bc, r26
/* 801D8EB4 001D4B14  7F 7C FB A6 */	mtspr 0x3fc, r27
/* 801D8EB8 001D4B18  7F 9D FB A6 */	mtspr 0x3fd, r28
/* 801D8EBC 001D4B1C  7F BE FB A6 */	mtspr 0x3fe, r29
/* 801D8EC0 001D4B20  7F DB FB A6 */	mtictc r30
/* 801D8EC4 001D4B24  7F F9 FB A6 */	mtspr 0x3f9, r31
/* 801D8EC8 001D4B28  48 00 00 34 */	b lbl_801D8EFC
/* 801D8ECC 001D4B2C  2C 06 00 00 */	cmpwi r6, 0
/* 801D8ED0 001D4B30  41 82 00 0C */	beq lbl_801D8EDC
/* 801D8ED4 001D4B34  83 42 02 78 */	lwz r26, 0x278(r2)
/* 801D8ED8 001D4B38  7F 56 03 A6 */	mtspr 0x16, r26
lbl_801D8EDC:
/* 801D8EDC 001D4B3C  BB 22 02 40 */	lmw r25, 0x240(r2)
/* 801D8EE0 001D4B40  7F 30 F3 A6 */	mtspr 0x3d0, r25
/* 801D8EE4 001D4B44  7F 51 F3 A6 */	mtspr 0x3d1, r26
/* 801D8EE8 001D4B48  7F 72 F3 A6 */	mtspr 0x3d2, r27
/* 801D8EEC 001D4B4C  7F 93 F3 A6 */	mtspr 0x3d3, r28
/* 801D8EF0 001D4B50  7F B4 F3 A6 */	mtspr 0x3D4, r29
/* 801D8EF4 001D4B54  7F D5 F3 A6 */	mtspr 0x3D5, r30
/* 801D8EF8 001D4B58  7F F6 F3 A6 */	mtspr 0x3d6, r31
lbl_801D8EFC:
/* 801D8EFC 001D4B5C  BA 02 01 A8 */	lmw r16, 0x1a8(r2)
/* 801D8F00 001D4B60  7E 00 01 A4 */	mtsr 0, r16
/* 801D8F04 001D4B64  7E 21 01 A4 */	mtsr 1, r17
/* 801D8F08 001D4B68  7E 42 01 A4 */	mtsr 2, r18
/* 801D8F0C 001D4B6C  7E 63 01 A4 */	mtsr 3, r19
/* 801D8F10 001D4B70  7E 84 01 A4 */	mtsr 4, r20
/* 801D8F14 001D4B74  7E A5 01 A4 */	mtsr 5, r21
/* 801D8F18 001D4B78  7E C6 01 A4 */	mtsr 6, r22
/* 801D8F1C 001D4B7C  7E E7 01 A4 */	mtsr 7, r23
/* 801D8F20 001D4B80  7F 08 01 A4 */	mtsr 8, r24
/* 801D8F24 001D4B84  7F 29 01 A4 */	mtsr 9, r25
/* 801D8F28 001D4B88  7F 4A 01 A4 */	mtsr 0xa, r26
/* 801D8F2C 001D4B8C  7F 6B 01 A4 */	mtsr 0xb, r27
/* 801D8F30 001D4B90  7F 8C 01 A4 */	mtsr 0xc, r28
/* 801D8F34 001D4B94  7F AD 01 A4 */	mtsr 0xd, r29
/* 801D8F38 001D4B98  7F CE 01 A4 */	mtsr 0xe, r30
/* 801D8F3C 001D4B9C  7F EF 01 A4 */	mtsr 0xf, r31
/* 801D8F40 001D4BA0  B9 82 01 F0 */	lmw r12, 0x1f0(r2)
/* 801D8F44 001D4BA4  7D 90 FB A6 */	mtspr 0x3f0, r12
/* 801D8F48 001D4BA8  7D B1 FB A6 */	mtspr 0x3f1, r13
/* 801D8F4C 001D4BAC  7D DB 03 A6 */	mtspr 0x1b, r14
/* 801D8F50 001D4BB0  7D FF 43 A6 */	mtspr 0x11f, r15
/* 801D8F54 001D4BB4  7E 10 83 A6 */	mtibatu 0, r16
/* 801D8F58 001D4BB8  7E 31 83 A6 */	mtibatl 0, r17
/* 801D8F5C 001D4BBC  7E 52 83 A6 */	mtibatu 1, r18
/* 801D8F60 001D4BC0  7E 73 83 A6 */	mtibatl 1, r19
/* 801D8F64 001D4BC4  7E 94 83 A6 */	mtibatu 2, r20
/* 801D8F68 001D4BC8  7E B5 83 A6 */	mtibatl 2, r21
/* 801D8F6C 001D4BCC  7E D6 83 A6 */	mtibatu 3, r22
/* 801D8F70 001D4BD0  7E F7 83 A6 */	mtibatl 3, r23
/* 801D8F74 001D4BD4  7F 18 83 A6 */	mtdbatu 0, r24
/* 801D8F78 001D4BD8  7F 39 83 A6 */	mtdbatl 0, r25
/* 801D8F7C 001D4BDC  7F 5A 83 A6 */	mtdbatu 1, r26
/* 801D8F80 001D4BE0  7F 7B 83 A6 */	mtdbatl 1, r27
/* 801D8F84 001D4BE4  7F 9C 83 A6 */	mtdbatu 2, r28
/* 801D8F88 001D4BE8  7F BD 83 A6 */	mtdbatl 2, r29
/* 801D8F8C 001D4BEC  7F DE 83 A6 */	mtdbatu 3, r30
/* 801D8F90 001D4BF0  7F FF 83 A6 */	mtdbatl 3, r31
/* 801D8F94 001D4BF4  BA C2 02 5C */	lmw r22, 0x25c(r2)
/* 801D8F98 001D4BF8  7E D9 03 A6 */	mtspr 0x19, r22
/* 801D8F9C 001D4BFC  7E F3 03 A6 */	mtdar r23
/* 801D8FA0 001D4C00  7F 12 03 A6 */	mtdsisr r24
/* 801D8FA4 001D4C04  7F 30 43 A6 */	mtspr 0x110, r25
/* 801D8FA8 001D4C08  7F 51 43 A6 */	mtspr 0x111, r26
/* 801D8FAC 001D4C0C  7F 72 43 A6 */	mtspr 0x112, r27
/* 801D8FB0 001D4C10  7F 93 43 A6 */	mtspr 0x113, r28
/* 801D8FB4 001D4C14  7F D2 FB A6 */	mtspr 0x3f2, r30
/* 801D8FB8 001D4C18  7F FA 43 A6 */	mtspr 0x11a, r31
/* 801D8FBC 001D4C1C  4E 80 00 20 */	blr