summaryrefslogtreecommitdiff
path: root/asm/SDK/OS/OSAlarm.s
blob: 4613ebb0cfb8bcdf490ac8213f6d41f474e14460 (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
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
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 OSRegisterShutdownFunction
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 _savegpr_25
/* 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 __OSGetSystemTime
/* 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 __OSGetSystemTime
/* 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 PPCMtdec
/* 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 PPCMtdec
/* 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 PPCMtdec
/* 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 __OSGetSystemTime
/* 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 PPCMtdec
/* 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 PPCMtdec
/* 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 PPCMtdec
lbl_8026996C:
/* 8026996C 002655CC  39 61 00 30 */	addi r11, r1, 0x30
/* 80269970 002655D0  4B F5 D7 FD */	bl _restgpr_25
/* 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 _savegpr_27
/* 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 __OSGetSystemTime
/* 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 _restgpr_27
/* 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 _savegpr_26
/* 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 __OSTimeToSystemTime
/* 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 _restgpr_26
/* 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 __OSGetSystemTime
/* 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 PPCMtdec
/* 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 PPCMtdec
/* 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 PPCMtdec
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 __OSGetSystemTime
/* 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 __OSGetSystemTime
/* 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 PPCMtdec
/* 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 PPCMtdec
/* 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 PPCMtdec
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 __OSGetSystemTime
/* 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 PPCMtdec
/* 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 PPCMtdec
/* 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 PPCMtdec
lbl_80269D54:
/* 80269D54 002659B4  48 00 75 F1 */	bl OSDisableScheduler
/* 80269D58 002659B8  38 61 00 08 */	addi r3, r1, 8
/* 80269D5C 002659BC  48 00 13 35 */	bl OSClearContext
/* 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 OSClearContext
/* 80269D84 002659E4  7F A3 EB 78 */	mr r3, r29
/* 80269D88 002659E8  48 00 10 E1 */	bl OSSetCurrentContext
/* 80269D8C 002659EC  48 00 75 F5 */	bl OSEnableScheduler
/* 80269D90 002659F0  48 00 7A FD */	bl __OSReschedule
/* 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 __DVDTestAlarm
/* 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