mirror of
https://github.com/zeldaret/tp
synced 2026-05-23 15:01:53 -04:00
Merge remote-tracking branch 'upstream/master' into d_a_do
This commit is contained in:
@@ -71,6 +71,8 @@ AS := $(DEVKITPPC)/bin/powerpc-eabi-as
|
||||
OBJCOPY := $(DEVKITPPC)/bin/powerpc-eabi-objcopy
|
||||
STRIP := $(DEVKITPPC)/bin/powerpc-eabi-strip
|
||||
CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc_patched.exe
|
||||
DOLPHIN_LIB_CC := $(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe
|
||||
FRANK_CC := $(WINE) tools/mwcc_compiler/1.2.5e/mwcceppc.exe
|
||||
LD := $(WINE_LD) tools/mwcc_compiler/$(MWCC_VERSION)/mwldeppc.exe
|
||||
ELF2DOL := $(BUILD_PATH)/elf2dol
|
||||
PYTHON := python3
|
||||
|
||||
+4
-4
@@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
|
||||
.init | 97.972973% | 9280 | 9472
|
||||
.extab | 100.000000% | 96 | 96
|
||||
.extabindex | 100.000000% | 96 | 96
|
||||
.text | 22.077750% | 794036 | 3596544
|
||||
.text | 22.734158% | 817644 | 3596544
|
||||
.ctors | 100.000000% | 448 | 448
|
||||
.dtors | 100.000000% | 32 | 32
|
||||
.rodata | 100.000000% | 193856 | 193856
|
||||
.data | 100.000000% | 197632 | 197632
|
||||
.sdata | 100.000000% | 1408 | 1408
|
||||
.sdata2 | 100.000000% | 20832 | 20832
|
||||
Total | 30.292747% | 1217972 | 4020672
|
||||
Total | 30.879913% | 1241580 | 4020672
|
||||
|
||||
## Total
|
||||
|
||||
Section | Percentage | Decompiled (bytes) | Total (bytes)
|
||||
---|---|---|---
|
||||
main.dol | 30.292747% | 1217972 | 4020672
|
||||
main.dol | 30.879913% | 1241580 | 4020672
|
||||
RELs | 33.041295% | 3799856 | 11500324
|
||||
Total | 32.329291% | 5017828 | 15520996
|
||||
Total | 32.481395% | 5041436 | 15520996
|
||||
|
||||
## RELs
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ git clone https://github.com/zeldaret/tp
|
||||
mkdir -p tools/mwcc_compiler/
|
||||
```
|
||||
|
||||
3. Download `GC_COMPILERS.zip` from the [Discord](https://discord.gg/Nshw5pHS4h) server. See the pins in the `#tp-decomp` channel under the Twilight Princess group.
|
||||
3. Download [GC_WII_COMPILERS.zip](https://cdn.discordapp.com/attachments/727918646525165659/917185027656286218/GC_WII_COMPILERS.zip).
|
||||
|
||||
4. Extract `GC_COMPILERS.zip` into the previously created `mwcc_compiler` directory
|
||||
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
lbl_803506C4:
|
||||
/* 803506C4 7C 08 02 A6 */ mflr r0
|
||||
/* 803506C8 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 803506CC 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 803506D0 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 803506D4 93 C1 00 10 */ stw r30, 0x10(r1)
|
||||
/* 803506D8 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 803506DC 4B FE D0 19 */ bl OSDisableInterrupts
|
||||
/* 803506E0 83 ED 93 48 */ lwz r31, __AR_StackPointer(r13)
|
||||
/* 803506E4 80 8D 93 50 */ lwz r4, __AR_BlockLength(r13)
|
||||
/* 803506E8 7C 1F F2 14 */ add r0, r31, r30
|
||||
/* 803506EC 90 0D 93 48 */ stw r0, __AR_StackPointer(r13)
|
||||
/* 803506F0 93 C4 00 00 */ stw r30, 0(r4)
|
||||
/* 803506F4 80 AD 93 50 */ lwz r5, __AR_BlockLength(r13)
|
||||
/* 803506F8 80 8D 93 4C */ lwz r4, __AR_FreeBlocks(r13)
|
||||
/* 803506FC 38 A5 00 04 */ addi r5, r5, 4
|
||||
/* 80350700 38 04 FF FF */ addi r0, r4, -1
|
||||
/* 80350704 90 AD 93 50 */ stw r5, __AR_BlockLength(r13)
|
||||
/* 80350708 90 0D 93 4C */ stw r0, __AR_FreeBlocks(r13)
|
||||
/* 8035070C 4B FE D0 11 */ bl OSRestoreInterrupts
|
||||
/* 80350710 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80350714 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 80350718 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 8035071C 83 C1 00 10 */ lwz r30, 0x10(r1)
|
||||
/* 80350720 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 80350724 7C 08 03 A6 */ mtlr r0
|
||||
/* 80350728 4E 80 00 20 */ blr
|
||||
@@ -1,16 +0,0 @@
|
||||
lbl_80350598:
|
||||
/* 80350598 7C 08 02 A6 */ mflr r0
|
||||
/* 8035059C 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 803505A0 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 803505A4 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 803505A8 4B FE D1 4D */ bl OSDisableInterrupts
|
||||
/* 803505AC 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC00500A@ha */
|
||||
/* 803505B0 A0 04 50 0A */ lhz r0, 0x500A(r4) /* 0xCC00500A@l */
|
||||
/* 803505B4 54 1F 05 AC */ rlwinm r31, r0, 0, 0x16, 0x16
|
||||
/* 803505B8 4B FE D1 65 */ bl OSRestoreInterrupts
|
||||
/* 803505BC 7F E3 FB 78 */ mr r3, r31
|
||||
/* 803505C0 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 803505C4 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 803505C8 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 803505CC 7C 08 03 A6 */ mtlr r0
|
||||
/* 803505D0 4E 80 00 20 */ blr
|
||||
@@ -1,52 +0,0 @@
|
||||
lbl_8035072C:
|
||||
/* 8035072C 7C 08 02 A6 */ mflr r0
|
||||
/* 80350730 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80350734 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80350738 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 8035073C 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 80350740 3B C4 00 00 */ addi r30, r4, 0
|
||||
/* 80350744 93 A1 00 14 */ stw r29, 0x14(r1)
|
||||
/* 80350748 3B A3 00 00 */ addi r29, r3, 0
|
||||
/* 8035074C 80 0D 93 54 */ lwz r0, __AR_init_flag(r13)
|
||||
/* 80350750 2C 00 00 01 */ cmpwi r0, 1
|
||||
/* 80350754 40 82 00 0C */ bne lbl_80350760
|
||||
/* 80350758 38 60 40 00 */ li r3, 0x4000
|
||||
/* 8035075C 48 00 00 78 */ b lbl_803507D4
|
||||
lbl_80350760:
|
||||
/* 80350760 80 6D 84 C8 */ lwz r3, __ARVersion(r13)
|
||||
/* 80350764 4B FE A1 11 */ bl OSRegisterVersion
|
||||
/* 80350768 4B FE CF 8D */ bl OSDisableInterrupts
|
||||
/* 8035076C 38 00 00 00 */ li r0, 0
|
||||
/* 80350770 3C 80 80 35 */ lis r4, __ARHandler@ha /* 0x803507F8@ha */
|
||||
/* 80350774 90 0D 93 38 */ stw r0, __AR_Callback(r13)
|
||||
/* 80350778 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 8035077C 38 84 07 F8 */ addi r4, r4, __ARHandler@l /* 0x803507F8@l */
|
||||
/* 80350780 38 60 00 06 */ li r3, 6
|
||||
/* 80350784 4B FE CF BD */ bl __OSSetInterruptHandler
|
||||
/* 80350788 3C 60 02 00 */ lis r3, 0x200
|
||||
/* 8035078C 4B FE D3 B9 */ bl __OSUnmaskInterrupts
|
||||
/* 80350790 38 00 40 00 */ li r0, 0x4000
|
||||
/* 80350794 93 CD 93 4C */ stw r30, __AR_FreeBlocks(r13)
|
||||
/* 80350798 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC005000@ha */
|
||||
/* 8035079C 90 0D 93 48 */ stw r0, __AR_StackPointer(r13)
|
||||
/* 803507A0 38 83 50 00 */ addi r4, r3, 0x5000 /* 0xCC005000@l */
|
||||
/* 803507A4 93 AD 93 50 */ stw r29, __AR_BlockLength(r13)
|
||||
/* 803507A8 A0 04 00 1A */ lhz r0, 0x1a(r4)
|
||||
/* 803507AC A0 63 50 1A */ lhz r3, 0x501a(r3)
|
||||
/* 803507B0 54 00 00 2E */ rlwinm r0, r0, 0, 0, 0x17
|
||||
/* 803507B4 50 60 06 3E */ rlwimi r0, r3, 0, 0x18, 0x1f
|
||||
/* 803507B8 B0 04 00 1A */ sth r0, 0x1a(r4)
|
||||
/* 803507BC 48 00 00 E5 */ bl __ARChecksize
|
||||
/* 803507C0 38 00 00 01 */ li r0, 1
|
||||
/* 803507C4 90 0D 93 54 */ stw r0, __AR_init_flag(r13)
|
||||
/* 803507C8 7F E3 FB 78 */ mr r3, r31
|
||||
/* 803507CC 4B FE CF 51 */ bl OSRestoreInterrupts
|
||||
/* 803507D0 80 6D 93 48 */ lwz r3, __AR_StackPointer(r13)
|
||||
lbl_803507D4:
|
||||
/* 803507D4 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 803507D8 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 803507DC 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 803507E0 83 A1 00 14 */ lwz r29, 0x14(r1)
|
||||
/* 803507E4 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 803507E8 7C 08 03 A6 */ mtlr r0
|
||||
/* 803507EC 4E 80 00 20 */ blr
|
||||
@@ -1,18 +0,0 @@
|
||||
lbl_80350554:
|
||||
/* 80350554 7C 08 02 A6 */ mflr r0
|
||||
/* 80350558 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8035055C 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 80350560 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 80350564 93 C1 00 10 */ stw r30, 0x10(r1)
|
||||
/* 80350568 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8035056C 83 ED 93 38 */ lwz r31, __AR_Callback(r13)
|
||||
/* 80350570 4B FE D1 85 */ bl OSDisableInterrupts
|
||||
/* 80350574 93 CD 93 38 */ stw r30, __AR_Callback(r13)
|
||||
/* 80350578 4B FE D1 A5 */ bl OSRestoreInterrupts
|
||||
/* 8035057C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80350580 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 80350584 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 80350588 83 C1 00 10 */ lwz r30, 0x10(r1)
|
||||
/* 8035058C 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 80350590 7C 08 03 A6 */ mtlr r0
|
||||
/* 80350594 4E 80 00 20 */ blr
|
||||
@@ -1,9 +0,0 @@
|
||||
lbl_80350870:
|
||||
/* 80350870 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC005000@ha */
|
||||
/* 80350874 38 63 50 00 */ addi r3, r3, 0x5000 /* 0xCC005000@l */
|
||||
/* 80350878 A0 83 00 0A */ lhz r4, 0xa(r3)
|
||||
/* 8035087C 38 00 FF 77 */ li r0, -137
|
||||
/* 80350880 7C 80 00 38 */ and r0, r4, r0
|
||||
/* 80350884 60 00 00 20 */ ori r0, r0, 0x20
|
||||
/* 80350888 B0 03 00 0A */ sth r0, 0xa(r3)
|
||||
/* 8035088C 4E 80 00 20 */ blr
|
||||
@@ -1,5 +0,0 @@
|
||||
lbl_80350890:
|
||||
/* 80350890 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC00500A@ha */
|
||||
/* 80350894 A0 03 50 0A */ lhz r0, 0x500A(r3) /* 0xCC00500A@l */
|
||||
/* 80350898 54 03 06 B4 */ rlwinm r3, r0, 0, 0x1a, 0x1a
|
||||
/* 8035089C 4E 80 00 20 */ blr
|
||||
@@ -1,30 +0,0 @@
|
||||
lbl_80352264:
|
||||
/* 80352264 7C 08 02 A6 */ mflr r0
|
||||
/* 80352268 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8035226C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80352270 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80352274 80 0D 93 7C */ lwz r0, __ARQ_init_flag(r13)
|
||||
/* 80352278 2C 00 00 01 */ cmpwi r0, 1
|
||||
/* 8035227C 41 82 00 44 */ beq lbl_803522C0
|
||||
/* 80352280 80 6D 84 D0 */ lwz r3, __ARQVersion(r13)
|
||||
/* 80352284 4B FE 85 F1 */ bl OSRegisterVersion
|
||||
/* 80352288 3B E0 00 00 */ li r31, 0
|
||||
/* 8035228C 38 00 10 00 */ li r0, 0x1000
|
||||
/* 80352290 93 ED 93 60 */ stw r31, __ARQRequestQueueLo(r13)
|
||||
/* 80352294 3C 60 80 35 */ lis r3, __ARQInterruptServiceRoutine@ha /* 0x80352198@ha */
|
||||
/* 80352298 93 ED 93 58 */ stw r31, __ARQRequestQueueHi(r13)
|
||||
/* 8035229C 38 63 21 98 */ addi r3, r3, __ARQInterruptServiceRoutine@l /* 0x80352198@l */
|
||||
/* 803522A0 90 0D 93 78 */ stw r0, __ARQChunkSize(r13)
|
||||
/* 803522A4 4B FF E2 B1 */ bl ARRegisterDMACallback
|
||||
/* 803522A8 38 00 00 01 */ li r0, 1
|
||||
/* 803522AC 93 ED 93 68 */ stw r31, __ARQRequestPendingHi(r13)
|
||||
/* 803522B0 93 ED 93 6C */ stw r31, __ARQRequestPendingLo(r13)
|
||||
/* 803522B4 93 ED 93 70 */ stw r31, __ARQCallbackHi(r13)
|
||||
/* 803522B8 93 ED 93 74 */ stw r31, __ARQCallbackLo(r13)
|
||||
/* 803522BC 90 0D 93 7C */ stw r0, __ARQ_init_flag(r13)
|
||||
lbl_803522C0:
|
||||
/* 803522C0 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 803522C4 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 803522C8 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 803522CC 7C 08 03 A6 */ mtlr r0
|
||||
/* 803522D0 4E 80 00 20 */ blr
|
||||
@@ -1,101 +0,0 @@
|
||||
lbl_803522D4:
|
||||
/* 803522D4 7C 08 02 A6 */ mflr r0
|
||||
/* 803522D8 28 0A 00 00 */ cmplwi r10, 0
|
||||
/* 803522DC 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 803522E0 38 00 00 00 */ li r0, 0
|
||||
/* 803522E4 94 21 FF C8 */ stwu r1, -0x38(r1)
|
||||
/* 803522E8 93 E1 00 34 */ stw r31, 0x34(r1)
|
||||
/* 803522EC 93 C1 00 30 */ stw r30, 0x30(r1)
|
||||
/* 803522F0 3B C6 00 00 */ addi r30, r6, 0
|
||||
/* 803522F4 93 A1 00 2C */ stw r29, 0x2c(r1)
|
||||
/* 803522F8 3B A3 00 00 */ addi r29, r3, 0
|
||||
/* 803522FC 90 03 00 00 */ stw r0, 0(r3)
|
||||
/* 80352300 90 83 00 04 */ stw r4, 4(r3)
|
||||
/* 80352304 90 A3 00 08 */ stw r5, 8(r3)
|
||||
/* 80352308 90 E3 00 10 */ stw r7, 0x10(r3)
|
||||
/* 8035230C 91 03 00 14 */ stw r8, 0x14(r3)
|
||||
/* 80352310 91 23 00 18 */ stw r9, 0x18(r3)
|
||||
/* 80352314 41 82 00 0C */ beq lbl_80352320
|
||||
/* 80352318 91 5D 00 1C */ stw r10, 0x1c(r29)
|
||||
/* 8035231C 48 00 00 10 */ b lbl_8035232C
|
||||
lbl_80352320:
|
||||
/* 80352320 3C 60 80 35 */ lis r3, __ARQCallbackHack@ha /* 0x80352194@ha */
|
||||
/* 80352324 38 03 21 94 */ addi r0, r3, __ARQCallbackHack@l /* 0x80352194@l */
|
||||
/* 80352328 90 1D 00 1C */ stw r0, 0x1c(r29)
|
||||
lbl_8035232C:
|
||||
/* 8035232C 4B FE B3 C9 */ bl OSDisableInterrupts
|
||||
/* 80352330 2C 1E 00 01 */ cmpwi r30, 1
|
||||
/* 80352334 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 80352338 41 82 00 38 */ beq lbl_80352370
|
||||
/* 8035233C 40 80 00 54 */ bge lbl_80352390
|
||||
/* 80352340 2C 1E 00 00 */ cmpwi r30, 0
|
||||
/* 80352344 40 80 00 08 */ bge lbl_8035234C
|
||||
/* 80352348 48 00 00 48 */ b lbl_80352390
|
||||
lbl_8035234C:
|
||||
/* 8035234C 80 0D 93 60 */ lwz r0, __ARQRequestQueueLo(r13)
|
||||
/* 80352350 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80352354 41 82 00 10 */ beq lbl_80352364
|
||||
/* 80352358 80 6D 93 64 */ lwz r3, __ARQRequestTailLo(r13)
|
||||
/* 8035235C 93 A3 00 00 */ stw r29, 0(r3)
|
||||
/* 80352360 48 00 00 08 */ b lbl_80352368
|
||||
lbl_80352364:
|
||||
/* 80352364 93 AD 93 60 */ stw r29, __ARQRequestQueueLo(r13)
|
||||
lbl_80352368:
|
||||
/* 80352368 93 AD 93 64 */ stw r29, __ARQRequestTailLo(r13)
|
||||
/* 8035236C 48 00 00 24 */ b lbl_80352390
|
||||
lbl_80352370:
|
||||
/* 80352370 80 0D 93 58 */ lwz r0, __ARQRequestQueueHi(r13)
|
||||
/* 80352374 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80352378 41 82 00 10 */ beq lbl_80352388
|
||||
/* 8035237C 80 6D 93 5C */ lwz r3, __ARQRequestTailHi(r13)
|
||||
/* 80352380 93 A3 00 00 */ stw r29, 0(r3)
|
||||
/* 80352384 48 00 00 08 */ b lbl_8035238C
|
||||
lbl_80352388:
|
||||
/* 80352388 93 AD 93 58 */ stw r29, __ARQRequestQueueHi(r13)
|
||||
lbl_8035238C:
|
||||
/* 8035238C 93 AD 93 5C */ stw r29, __ARQRequestTailHi(r13)
|
||||
lbl_80352390:
|
||||
/* 80352390 80 0D 93 68 */ lwz r0, __ARQRequestPendingHi(r13)
|
||||
/* 80352394 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80352398 40 82 00 74 */ bne lbl_8035240C
|
||||
/* 8035239C 80 0D 93 6C */ lwz r0, __ARQRequestPendingLo(r13)
|
||||
/* 803523A0 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 803523A4 40 82 00 68 */ bne lbl_8035240C
|
||||
/* 803523A8 80 CD 93 58 */ lwz r6, __ARQRequestQueueHi(r13)
|
||||
/* 803523AC 28 06 00 00 */ cmplwi r6, 0
|
||||
/* 803523B0 41 82 00 4C */ beq lbl_803523FC
|
||||
/* 803523B4 80 66 00 08 */ lwz r3, 8(r6)
|
||||
/* 803523B8 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 803523BC 40 82 00 18 */ bne lbl_803523D4
|
||||
/* 803523C0 80 86 00 10 */ lwz r4, 0x10(r6)
|
||||
/* 803523C4 80 A6 00 14 */ lwz r5, 0x14(r6)
|
||||
/* 803523C8 80 C6 00 18 */ lwz r6, 0x18(r6)
|
||||
/* 803523CC 4B FF E2 09 */ bl ARStartDMA
|
||||
/* 803523D0 48 00 00 14 */ b lbl_803523E4
|
||||
lbl_803523D4:
|
||||
/* 803523D4 80 86 00 14 */ lwz r4, 0x14(r6)
|
||||
/* 803523D8 80 A6 00 10 */ lwz r5, 0x10(r6)
|
||||
/* 803523DC 80 C6 00 18 */ lwz r6, 0x18(r6)
|
||||
/* 803523E0 4B FF E1 F5 */ bl ARStartDMA
|
||||
lbl_803523E4:
|
||||
/* 803523E4 80 6D 93 58 */ lwz r3, __ARQRequestQueueHi(r13)
|
||||
/* 803523E8 80 03 00 1C */ lwz r0, 0x1c(r3)
|
||||
/* 803523EC 90 0D 93 70 */ stw r0, __ARQCallbackHi(r13)
|
||||
/* 803523F0 90 6D 93 68 */ stw r3, __ARQRequestPendingHi(r13)
|
||||
/* 803523F4 80 03 00 00 */ lwz r0, 0(r3)
|
||||
/* 803523F8 90 0D 93 58 */ stw r0, __ARQRequestQueueHi(r13)
|
||||
lbl_803523FC:
|
||||
/* 803523FC 80 0D 93 68 */ lwz r0, __ARQRequestPendingHi(r13)
|
||||
/* 80352400 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80352404 40 82 00 08 */ bne lbl_8035240C
|
||||
/* 80352408 4B FF FC 8D */ bl __ARQServiceQueueLo
|
||||
lbl_8035240C:
|
||||
/* 8035240C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80352410 4B FE B3 0D */ bl OSRestoreInterrupts
|
||||
/* 80352414 80 01 00 3C */ lwz r0, 0x3c(r1)
|
||||
/* 80352418 83 E1 00 34 */ lwz r31, 0x34(r1)
|
||||
/* 8035241C 83 C1 00 30 */ lwz r30, 0x30(r1)
|
||||
/* 80352420 83 A1 00 2C */ lwz r29, 0x2c(r1)
|
||||
/* 80352424 38 21 00 38 */ addi r1, r1, 0x38
|
||||
/* 80352428 7C 08 03 A6 */ mtlr r0
|
||||
/* 8035242C 4E 80 00 20 */ blr
|
||||
@@ -1,58 +0,0 @@
|
||||
lbl_80352198:
|
||||
/* 80352198 7C 08 02 A6 */ mflr r0
|
||||
/* 8035219C 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 803521A0 94 21 FF F8 */ stwu r1, -8(r1)
|
||||
/* 803521A4 81 8D 93 70 */ lwz r12, __ARQCallbackHi(r13)
|
||||
/* 803521A8 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 803521AC 41 82 00 20 */ beq lbl_803521CC
|
||||
/* 803521B0 80 6D 93 68 */ lwz r3, __ARQRequestPendingHi(r13)
|
||||
/* 803521B4 7D 88 03 A6 */ mtlr r12
|
||||
/* 803521B8 4E 80 00 21 */ blrl
|
||||
/* 803521BC 38 00 00 00 */ li r0, 0
|
||||
/* 803521C0 90 0D 93 68 */ stw r0, __ARQRequestPendingHi(r13)
|
||||
/* 803521C4 90 0D 93 70 */ stw r0, __ARQCallbackHi(r13)
|
||||
/* 803521C8 48 00 00 28 */ b lbl_803521F0
|
||||
lbl_803521CC:
|
||||
/* 803521CC 81 8D 93 74 */ lwz r12, __ARQCallbackLo(r13)
|
||||
/* 803521D0 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 803521D4 41 82 00 1C */ beq lbl_803521F0
|
||||
/* 803521D8 80 6D 93 6C */ lwz r3, __ARQRequestPendingLo(r13)
|
||||
/* 803521DC 7D 88 03 A6 */ mtlr r12
|
||||
/* 803521E0 4E 80 00 21 */ blrl
|
||||
/* 803521E4 38 00 00 00 */ li r0, 0
|
||||
/* 803521E8 90 0D 93 6C */ stw r0, __ARQRequestPendingLo(r13)
|
||||
/* 803521EC 90 0D 93 74 */ stw r0, __ARQCallbackLo(r13)
|
||||
lbl_803521F0:
|
||||
/* 803521F0 80 CD 93 58 */ lwz r6, __ARQRequestQueueHi(r13)
|
||||
/* 803521F4 28 06 00 00 */ cmplwi r6, 0
|
||||
/* 803521F8 41 82 00 4C */ beq lbl_80352244
|
||||
/* 803521FC 80 66 00 08 */ lwz r3, 8(r6)
|
||||
/* 80352200 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 80352204 40 82 00 18 */ bne lbl_8035221C
|
||||
/* 80352208 80 86 00 10 */ lwz r4, 0x10(r6)
|
||||
/* 8035220C 80 A6 00 14 */ lwz r5, 0x14(r6)
|
||||
/* 80352210 80 C6 00 18 */ lwz r6, 0x18(r6)
|
||||
/* 80352214 4B FF E3 C1 */ bl ARStartDMA
|
||||
/* 80352218 48 00 00 14 */ b lbl_8035222C
|
||||
lbl_8035221C:
|
||||
/* 8035221C 80 86 00 14 */ lwz r4, 0x14(r6)
|
||||
/* 80352220 80 A6 00 10 */ lwz r5, 0x10(r6)
|
||||
/* 80352224 80 C6 00 18 */ lwz r6, 0x18(r6)
|
||||
/* 80352228 4B FF E3 AD */ bl ARStartDMA
|
||||
lbl_8035222C:
|
||||
/* 8035222C 80 6D 93 58 */ lwz r3, __ARQRequestQueueHi(r13)
|
||||
/* 80352230 80 03 00 1C */ lwz r0, 0x1c(r3)
|
||||
/* 80352234 90 0D 93 70 */ stw r0, __ARQCallbackHi(r13)
|
||||
/* 80352238 90 6D 93 68 */ stw r3, __ARQRequestPendingHi(r13)
|
||||
/* 8035223C 80 03 00 00 */ lwz r0, 0(r3)
|
||||
/* 80352240 90 0D 93 58 */ stw r0, __ARQRequestQueueHi(r13)
|
||||
lbl_80352244:
|
||||
/* 80352244 80 0D 93 68 */ lwz r0, __ARQRequestPendingHi(r13)
|
||||
/* 80352248 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8035224C 40 82 00 08 */ bne lbl_80352254
|
||||
/* 80352250 4B FF FE 45 */ bl __ARQServiceQueueLo
|
||||
lbl_80352254:
|
||||
/* 80352254 80 01 00 0C */ lwz r0, 0xc(r1)
|
||||
/* 80352258 38 21 00 08 */ addi r1, r1, 8
|
||||
/* 8035225C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80352260 4E 80 00 20 */ blr
|
||||
@@ -1,72 +0,0 @@
|
||||
lbl_80352094:
|
||||
/* 80352094 7C 08 02 A6 */ mflr r0
|
||||
/* 80352098 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8035209C 94 21 FF F8 */ stwu r1, -8(r1)
|
||||
/* 803520A0 80 0D 93 6C */ lwz r0, __ARQRequestPendingLo(r13)
|
||||
/* 803520A4 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 803520A8 40 82 00 1C */ bne lbl_803520C4
|
||||
/* 803520AC 80 6D 93 60 */ lwz r3, __ARQRequestQueueLo(r13)
|
||||
/* 803520B0 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 803520B4 41 82 00 10 */ beq lbl_803520C4
|
||||
/* 803520B8 90 6D 93 6C */ stw r3, __ARQRequestPendingLo(r13)
|
||||
/* 803520BC 80 03 00 00 */ lwz r0, 0(r3)
|
||||
/* 803520C0 90 0D 93 60 */ stw r0, __ARQRequestQueueLo(r13)
|
||||
lbl_803520C4:
|
||||
/* 803520C4 80 AD 93 6C */ lwz r5, __ARQRequestPendingLo(r13)
|
||||
/* 803520C8 28 05 00 00 */ cmplwi r5, 0
|
||||
/* 803520CC 41 82 00 B8 */ beq lbl_80352184
|
||||
/* 803520D0 80 C5 00 18 */ lwz r6, 0x18(r5)
|
||||
/* 803520D4 80 0D 93 78 */ lwz r0, __ARQChunkSize(r13)
|
||||
/* 803520D8 7C 06 00 40 */ cmplw r6, r0
|
||||
/* 803520DC 41 81 00 3C */ bgt lbl_80352118
|
||||
/* 803520E0 80 65 00 08 */ lwz r3, 8(r5)
|
||||
/* 803520E4 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 803520E8 40 82 00 14 */ bne lbl_803520FC
|
||||
/* 803520EC 80 85 00 10 */ lwz r4, 0x10(r5)
|
||||
/* 803520F0 80 A5 00 14 */ lwz r5, 0x14(r5)
|
||||
/* 803520F4 4B FF E4 E1 */ bl ARStartDMA
|
||||
/* 803520F8 48 00 00 10 */ b lbl_80352108
|
||||
lbl_803520FC:
|
||||
/* 803520FC 80 85 00 14 */ lwz r4, 0x14(r5)
|
||||
/* 80352100 80 A5 00 10 */ lwz r5, 0x10(r5)
|
||||
/* 80352104 4B FF E4 D1 */ bl ARStartDMA
|
||||
lbl_80352108:
|
||||
/* 80352108 80 6D 93 6C */ lwz r3, __ARQRequestPendingLo(r13)
|
||||
/* 8035210C 80 03 00 1C */ lwz r0, 0x1c(r3)
|
||||
/* 80352110 90 0D 93 74 */ stw r0, __ARQCallbackLo(r13)
|
||||
/* 80352114 48 00 00 34 */ b lbl_80352148
|
||||
lbl_80352118:
|
||||
/* 80352118 80 65 00 08 */ lwz r3, 8(r5)
|
||||
/* 8035211C 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 80352120 40 82 00 18 */ bne lbl_80352138
|
||||
/* 80352124 80 85 00 10 */ lwz r4, 0x10(r5)
|
||||
/* 80352128 7C 06 03 78 */ mr r6, r0
|
||||
/* 8035212C 80 A5 00 14 */ lwz r5, 0x14(r5)
|
||||
/* 80352130 4B FF E4 A5 */ bl ARStartDMA
|
||||
/* 80352134 48 00 00 14 */ b lbl_80352148
|
||||
lbl_80352138:
|
||||
/* 80352138 80 85 00 14 */ lwz r4, 0x14(r5)
|
||||
/* 8035213C 7C 06 03 78 */ mr r6, r0
|
||||
/* 80352140 80 A5 00 10 */ lwz r5, 0x10(r5)
|
||||
/* 80352144 4B FF E4 91 */ bl ARStartDMA
|
||||
lbl_80352148:
|
||||
/* 80352148 80 6D 93 6C */ lwz r3, __ARQRequestPendingLo(r13)
|
||||
/* 8035214C 80 8D 93 78 */ lwz r4, __ARQChunkSize(r13)
|
||||
/* 80352150 80 03 00 18 */ lwz r0, 0x18(r3)
|
||||
/* 80352154 7C 04 00 50 */ subf r0, r4, r0
|
||||
/* 80352158 90 03 00 18 */ stw r0, 0x18(r3)
|
||||
/* 8035215C 80 8D 93 6C */ lwz r4, __ARQRequestPendingLo(r13)
|
||||
/* 80352160 80 0D 93 78 */ lwz r0, __ARQChunkSize(r13)
|
||||
/* 80352164 80 64 00 10 */ lwz r3, 0x10(r4)
|
||||
/* 80352168 7C 03 02 14 */ add r0, r3, r0
|
||||
/* 8035216C 90 04 00 10 */ stw r0, 0x10(r4)
|
||||
/* 80352170 80 8D 93 6C */ lwz r4, __ARQRequestPendingLo(r13)
|
||||
/* 80352174 80 0D 93 78 */ lwz r0, __ARQChunkSize(r13)
|
||||
/* 80352178 80 64 00 14 */ lwz r3, 0x14(r4)
|
||||
/* 8035217C 7C 03 02 14 */ add r0, r3, r0
|
||||
/* 80352180 90 04 00 14 */ stw r0, 0x14(r4)
|
||||
lbl_80352184:
|
||||
/* 80352184 80 01 00 0C */ lwz r0, 0xc(r1)
|
||||
/* 80352188 38 21 00 08 */ addi r1, r1, 8
|
||||
/* 8035218C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80352190 4E 80 00 20 */ blr
|
||||
@@ -1,98 +0,0 @@
|
||||
lbl_80353CD0:
|
||||
/* 80353CD0 7C 08 02 A6 */ mflr r0
|
||||
/* 80353CD4 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80353CD8 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 80353CDC 93 E1 00 2C */ stw r31, 0x2c(r1)
|
||||
/* 80353CE0 3B E5 00 00 */ addi r31, r5, 0
|
||||
/* 80353CE4 93 C1 00 28 */ stw r30, 0x28(r1)
|
||||
/* 80353CE8 93 A1 00 24 */ stw r29, 0x24(r1)
|
||||
/* 80353CEC 3B A4 00 00 */ addi r29, r4, 0
|
||||
/* 80353CF0 38 81 00 18 */ addi r4, r1, 0x18
|
||||
/* 80353CF4 4B FF FE C1 */ bl __CARDGetControlBlock
|
||||
/* 80353CF8 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80353CFC 40 80 00 08 */ bge lbl_80353D04
|
||||
/* 80353D00 48 00 01 04 */ b lbl_80353E04
|
||||
lbl_80353D04:
|
||||
/* 80353D04 80 61 00 18 */ lwz r3, 0x18(r1)
|
||||
/* 80353D08 48 00 17 0D */ bl __CARDGetFatBlock
|
||||
/* 80353D0C 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 80353D10 80 61 00 18 */ lwz r3, 0x18(r1)
|
||||
/* 80353D14 48 00 1A 69 */ bl __CARDGetDirBlock
|
||||
/* 80353D18 28 1E 00 00 */ cmplwi r30, 0
|
||||
/* 80353D1C 41 82 00 0C */ beq lbl_80353D28
|
||||
/* 80353D20 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 80353D24 40 82 00 44 */ bne lbl_80353D68
|
||||
lbl_80353D28:
|
||||
/* 80353D28 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 80353D2C 4B FE 99 C9 */ bl OSDisableInterrupts
|
||||
/* 80353D30 80 1E 00 00 */ lwz r0, 0(r30)
|
||||
/* 80353D34 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 80353D38 41 82 00 10 */ beq lbl_80353D48
|
||||
/* 80353D3C 38 00 FF FA */ li r0, -6
|
||||
/* 80353D40 90 1E 00 04 */ stw r0, 4(r30)
|
||||
/* 80353D44 48 00 00 18 */ b lbl_80353D5C
|
||||
lbl_80353D48:
|
||||
/* 80353D48 80 1E 00 04 */ lwz r0, 4(r30)
|
||||
/* 80353D4C 2C 00 FF FF */ cmpwi r0, -1
|
||||
/* 80353D50 40 82 00 0C */ bne lbl_80353D5C
|
||||
/* 80353D54 38 00 FF FA */ li r0, -6
|
||||
/* 80353D58 90 1E 00 04 */ stw r0, 4(r30)
|
||||
lbl_80353D5C:
|
||||
/* 80353D5C 4B FE 99 C1 */ bl OSRestoreInterrupts
|
||||
/* 80353D60 38 60 FF FA */ li r3, -6
|
||||
/* 80353D64 48 00 00 A0 */ b lbl_80353E04
|
||||
lbl_80353D68:
|
||||
/* 80353D68 28 1D 00 00 */ cmplwi r29, 0
|
||||
/* 80353D6C 41 82 00 18 */ beq lbl_80353D84
|
||||
/* 80353D70 80 81 00 18 */ lwz r4, 0x18(r1)
|
||||
/* 80353D74 A0 1E 00 06 */ lhz r0, 6(r30)
|
||||
/* 80353D78 80 84 00 0C */ lwz r4, 0xc(r4)
|
||||
/* 80353D7C 7C 04 01 D6 */ mullw r0, r4, r0
|
||||
/* 80353D80 90 1D 00 00 */ stw r0, 0(r29)
|
||||
lbl_80353D84:
|
||||
/* 80353D84 28 1F 00 00 */ cmplwi r31, 0
|
||||
/* 80353D88 41 82 00 40 */ beq lbl_80353DC8
|
||||
/* 80353D8C 38 00 00 00 */ li r0, 0
|
||||
/* 80353D90 90 1F 00 00 */ stw r0, 0(r31)
|
||||
/* 80353D94 38 A0 00 00 */ li r5, 0
|
||||
/* 80353D98 48 00 00 24 */ b lbl_80353DBC
|
||||
lbl_80353D9C:
|
||||
/* 80353D9C 88 03 00 08 */ lbz r0, 8(r3)
|
||||
/* 80353DA0 28 00 00 FF */ cmplwi r0, 0xff
|
||||
/* 80353DA4 40 82 00 10 */ bne lbl_80353DB4
|
||||
/* 80353DA8 80 9F 00 00 */ lwz r4, 0(r31)
|
||||
/* 80353DAC 38 04 00 01 */ addi r0, r4, 1
|
||||
/* 80353DB0 90 1F 00 00 */ stw r0, 0(r31)
|
||||
lbl_80353DB4:
|
||||
/* 80353DB4 38 63 00 40 */ addi r3, r3, 0x40
|
||||
/* 80353DB8 38 A5 00 01 */ addi r5, r5, 1
|
||||
lbl_80353DBC:
|
||||
/* 80353DBC 54 A0 04 3E */ clrlwi r0, r5, 0x10
|
||||
/* 80353DC0 28 00 00 7F */ cmplwi r0, 0x7f
|
||||
/* 80353DC4 41 80 FF D8 */ blt lbl_80353D9C
|
||||
lbl_80353DC8:
|
||||
/* 80353DC8 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 80353DCC 4B FE 99 29 */ bl OSDisableInterrupts
|
||||
/* 80353DD0 80 1E 00 00 */ lwz r0, 0(r30)
|
||||
/* 80353DD4 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 80353DD8 41 82 00 10 */ beq lbl_80353DE8
|
||||
/* 80353DDC 38 00 00 00 */ li r0, 0
|
||||
/* 80353DE0 90 1E 00 04 */ stw r0, 4(r30)
|
||||
/* 80353DE4 48 00 00 18 */ b lbl_80353DFC
|
||||
lbl_80353DE8:
|
||||
/* 80353DE8 80 1E 00 04 */ lwz r0, 4(r30)
|
||||
/* 80353DEC 2C 00 FF FF */ cmpwi r0, -1
|
||||
/* 80353DF0 40 82 00 0C */ bne lbl_80353DFC
|
||||
/* 80353DF4 38 00 00 00 */ li r0, 0
|
||||
/* 80353DF8 90 1E 00 04 */ stw r0, 4(r30)
|
||||
lbl_80353DFC:
|
||||
/* 80353DFC 4B FE 99 21 */ bl OSRestoreInterrupts
|
||||
/* 80353E00 38 60 00 00 */ li r3, 0
|
||||
lbl_80353E04:
|
||||
/* 80353E04 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 80353E08 83 E1 00 2C */ lwz r31, 0x2c(r1)
|
||||
/* 80353E0C 83 C1 00 28 */ lwz r30, 0x28(r1)
|
||||
/* 80353E10 83 A1 00 24 */ lwz r29, 0x24(r1)
|
||||
/* 80353E14 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 80353E18 7C 08 03 A6 */ mtlr r0
|
||||
/* 80353E1C 4E 80 00 20 */ blr
|
||||
@@ -1,182 +0,0 @@
|
||||
lbl_80353174:
|
||||
/* 80353174 7C 08 02 A6 */ mflr r0
|
||||
/* 80353178 38 A0 00 04 */ li r5, 4
|
||||
/* 8035317C 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80353180 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 80353184 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 80353188 93 C1 00 10 */ stw r30, 0x10(r1)
|
||||
/* 8035318C 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 80353190 1C 9E 01 10 */ mulli r4, r30, 0x110
|
||||
/* 80353194 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 80353198 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 8035319C 7F E0 22 14 */ add r31, r0, r4
|
||||
/* 803531A0 38 7E 00 00 */ addi r3, r30, 0
|
||||
/* 803531A4 38 80 00 00 */ li r4, 0
|
||||
/* 803531A8 4B FF 06 C1 */ bl EXISelect
|
||||
/* 803531AC 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 803531B0 40 82 00 14 */ bne lbl_803531C4
|
||||
/* 803531B4 7F C3 F3 78 */ mr r3, r30
|
||||
/* 803531B8 4B FF 0F 65 */ bl EXIUnlock
|
||||
/* 803531BC 38 60 FF FD */ li r3, -3
|
||||
/* 803531C0 48 00 02 3C */ b lbl_803533FC
|
||||
lbl_803531C4:
|
||||
/* 803531C4 38 7F 00 E0 */ addi r3, r31, 0xe0
|
||||
/* 803531C8 4B FE 7A 75 */ bl OSCancelAlarm
|
||||
/* 803531CC 88 1F 00 94 */ lbz r0, 0x94(r31)
|
||||
/* 803531D0 2C 00 00 F3 */ cmpwi r0, 0xf3
|
||||
/* 803531D4 41 82 01 34 */ beq lbl_80353308
|
||||
/* 803531D8 40 80 00 14 */ bge lbl_803531EC
|
||||
/* 803531DC 2C 00 00 F1 */ cmpwi r0, 0xf1
|
||||
/* 803531E0 41 82 00 C4 */ beq lbl_803532A4
|
||||
/* 803531E4 40 80 00 14 */ bge lbl_803531F8
|
||||
/* 803531E8 48 00 01 20 */ b lbl_80353308
|
||||
lbl_803531EC:
|
||||
/* 803531EC 2C 00 00 F5 */ cmpwi r0, 0xf5
|
||||
/* 803531F0 40 80 01 18 */ bge lbl_80353308
|
||||
/* 803531F4 48 00 00 3C */ b lbl_80353230
|
||||
lbl_803531F8:
|
||||
/* 803531F8 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
|
||||
/* 803531FC 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
|
||||
/* 80353200 3C 80 10 62 */ lis r4, 0x1062 /* 0x10624DD3@ha */
|
||||
/* 80353204 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */
|
||||
/* 80353208 54 00 F0 BE */ srwi r0, r0, 2
|
||||
/* 8035320C 38 84 4D D3 */ addi r4, r4, 0x4DD3 /* 0x10624DD3@l */
|
||||
/* 80353210 7C 04 00 16 */ mulhwu r0, r4, r0
|
||||
/* 80353214 54 00 D1 BE */ srwi r0, r0, 6
|
||||
/* 80353218 1C C0 00 64 */ mulli r6, r0, 0x64
|
||||
/* 8035321C 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */
|
||||
/* 80353220 38 7F 00 E0 */ addi r3, r31, 0xe0
|
||||
/* 80353224 38 A0 00 00 */ li r5, 0
|
||||
/* 80353228 4B FE 79 31 */ bl OSSetAlarm
|
||||
/* 8035322C 48 00 00 DC */ b lbl_80353308
|
||||
lbl_80353230:
|
||||
/* 80353230 A0 1F 00 0A */ lhz r0, 0xa(r31)
|
||||
/* 80353234 28 00 00 80 */ cmplwi r0, 0x80
|
||||
/* 80353238 40 81 00 6C */ ble lbl_803532A4
|
||||
/* 8035323C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
|
||||
/* 80353240 A0 9F 00 10 */ lhz r4, 0x10(r31)
|
||||
/* 80353244 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
|
||||
/* 80353248 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */
|
||||
/* 8035324C 7C 89 36 70 */ srawi r9, r4, 6
|
||||
/* 80353250 54 07 F0 BE */ srwi r7, r0, 2
|
||||
/* 80353254 38 00 00 02 */ li r0, 2
|
||||
/* 80353258 38 80 00 00 */ li r4, 0
|
||||
/* 8035325C 7D 04 01 D6 */ mullw r8, r4, r0
|
||||
/* 80353260 7C C7 00 16 */ mulhwu r6, r7, r0
|
||||
/* 80353264 7D 08 32 14 */ add r8, r8, r6
|
||||
/* 80353268 7C A7 01 D6 */ mullw r5, r7, r0
|
||||
/* 8035326C 7D 29 01 94 */ addze r9, r9
|
||||
/* 80353270 7C C7 21 D6 */ mullw r6, r7, r4
|
||||
/* 80353274 7D 20 FE 70 */ srawi r0, r9, 0x1f
|
||||
/* 80353278 7C 80 29 D6 */ mullw r4, r0, r5
|
||||
/* 8035327C 7C 09 28 16 */ mulhwu r0, r9, r5
|
||||
/* 80353280 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */
|
||||
/* 80353284 7C 68 32 14 */ add r3, r8, r6
|
||||
/* 80353288 7C 84 02 14 */ add r4, r4, r0
|
||||
/* 8035328C 7C 09 19 D6 */ mullw r0, r9, r3
|
||||
/* 80353290 7C C9 29 D6 */ mullw r6, r9, r5
|
||||
/* 80353294 38 7F 00 E0 */ addi r3, r31, 0xe0
|
||||
/* 80353298 7C A4 02 14 */ add r5, r4, r0
|
||||
/* 8035329C 4B FE 78 BD */ bl OSSetAlarm
|
||||
/* 803532A0 48 00 00 68 */ b lbl_80353308
|
||||
lbl_803532A4:
|
||||
/* 803532A4 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
|
||||
/* 803532A8 80 9F 00 0C */ lwz r4, 0xc(r31)
|
||||
/* 803532AC 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
|
||||
/* 803532B0 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */
|
||||
/* 803532B4 7C 89 6E 70 */ srawi r9, r4, 0xd
|
||||
/* 803532B8 54 07 F0 BE */ srwi r7, r0, 2
|
||||
/* 803532BC 38 00 00 02 */ li r0, 2
|
||||
/* 803532C0 38 80 00 00 */ li r4, 0
|
||||
/* 803532C4 7D 04 01 D6 */ mullw r8, r4, r0
|
||||
/* 803532C8 7C C7 00 16 */ mulhwu r6, r7, r0
|
||||
/* 803532CC 7D 08 32 14 */ add r8, r8, r6
|
||||
/* 803532D0 7C A7 01 D6 */ mullw r5, r7, r0
|
||||
/* 803532D4 7D 29 01 94 */ addze r9, r9
|
||||
/* 803532D8 7C C7 21 D6 */ mullw r6, r7, r4
|
||||
/* 803532DC 7D 20 FE 70 */ srawi r0, r9, 0x1f
|
||||
/* 803532E0 7C 80 29 D6 */ mullw r4, r0, r5
|
||||
/* 803532E4 7C 09 28 16 */ mulhwu r0, r9, r5
|
||||
/* 803532E8 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */
|
||||
/* 803532EC 7C 68 32 14 */ add r3, r8, r6
|
||||
/* 803532F0 7C 84 02 14 */ add r4, r4, r0
|
||||
/* 803532F4 7C 09 19 D6 */ mullw r0, r9, r3
|
||||
/* 803532F8 7C C9 29 D6 */ mullw r6, r9, r5
|
||||
/* 803532FC 38 7F 00 E0 */ addi r3, r31, 0xe0
|
||||
/* 80353300 7C A4 02 14 */ add r5, r4, r0
|
||||
/* 80353304 4B FE 78 55 */ bl OSSetAlarm
|
||||
lbl_80353308:
|
||||
/* 80353308 80 BF 00 A0 */ lwz r5, 0xa0(r31)
|
||||
/* 8035330C 38 7E 00 00 */ addi r3, r30, 0
|
||||
/* 80353310 38 9F 00 94 */ addi r4, r31, 0x94
|
||||
/* 80353314 38 C0 00 01 */ li r6, 1
|
||||
/* 80353318 4B FE FC 45 */ bl EXIImmEx
|
||||
/* 8035331C 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80353320 40 82 00 1C */ bne lbl_8035333C
|
||||
/* 80353324 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80353328 4B FF 06 6D */ bl EXIDeselect
|
||||
/* 8035332C 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80353330 4B FF 0D ED */ bl EXIUnlock
|
||||
/* 80353334 38 60 FF FD */ li r3, -3
|
||||
/* 80353338 48 00 00 C4 */ b lbl_803533FC
|
||||
lbl_8035333C:
|
||||
/* 8035333C 88 1F 00 94 */ lbz r0, 0x94(r31)
|
||||
/* 80353340 28 00 00 52 */ cmplwi r0, 0x52
|
||||
/* 80353344 40 82 00 3C */ bne lbl_80353380
|
||||
/* 80353348 80 9F 00 80 */ lwz r4, 0x80(r31)
|
||||
/* 8035334C 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80353350 80 BF 00 14 */ lwz r5, 0x14(r31)
|
||||
/* 80353354 38 C0 00 01 */ li r6, 1
|
||||
/* 80353358 38 84 02 00 */ addi r4, r4, 0x200
|
||||
/* 8035335C 4B FE FC 01 */ bl EXIImmEx
|
||||
/* 80353360 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80353364 40 82 00 1C */ bne lbl_80353380
|
||||
/* 80353368 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8035336C 4B FF 06 29 */ bl EXIDeselect
|
||||
/* 80353370 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80353374 4B FF 0D A9 */ bl EXIUnlock
|
||||
/* 80353378 38 60 FF FD */ li r3, -3
|
||||
/* 8035337C 48 00 00 80 */ b lbl_803533FC
|
||||
lbl_80353380:
|
||||
/* 80353380 80 7F 00 A4 */ lwz r3, 0xa4(r31)
|
||||
/* 80353384 3C 03 00 01 */ addis r0, r3, 1
|
||||
/* 80353388 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 8035338C 40 82 00 1C */ bne lbl_803533A8
|
||||
/* 80353390 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80353394 4B FF 06 01 */ bl EXIDeselect
|
||||
/* 80353398 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8035339C 4B FF 0D 81 */ bl EXIUnlock
|
||||
/* 803533A0 38 60 00 00 */ li r3, 0
|
||||
/* 803533A4 48 00 00 58 */ b lbl_803533FC
|
||||
lbl_803533A8:
|
||||
/* 803533A8 88 1F 00 94 */ lbz r0, 0x94(r31)
|
||||
/* 803533AC 28 00 00 52 */ cmplwi r0, 0x52
|
||||
/* 803533B0 40 82 00 0C */ bne lbl_803533BC
|
||||
/* 803533B4 38 A0 02 00 */ li r5, 0x200
|
||||
/* 803533B8 48 00 00 08 */ b lbl_803533C0
|
||||
lbl_803533BC:
|
||||
/* 803533BC A0 BF 00 0A */ lhz r5, 0xa(r31)
|
||||
lbl_803533C0:
|
||||
/* 803533C0 3C 60 80 35 */ lis r3, __CARDTxHandler@ha /* 0x80352C58@ha */
|
||||
/* 803533C4 80 9F 00 B4 */ lwz r4, 0xb4(r31)
|
||||
/* 803533C8 38 E3 2C 58 */ addi r7, r3, __CARDTxHandler@l /* 0x80352C58@l */
|
||||
/* 803533CC 80 DF 00 A4 */ lwz r6, 0xa4(r31)
|
||||
/* 803533D0 7F C3 F3 78 */ mr r3, r30
|
||||
/* 803533D4 4B FE FC 29 */ bl EXIDma
|
||||
/* 803533D8 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 803533DC 40 82 00 1C */ bne lbl_803533F8
|
||||
/* 803533E0 7F C3 F3 78 */ mr r3, r30
|
||||
/* 803533E4 4B FF 05 B1 */ bl EXIDeselect
|
||||
/* 803533E8 7F C3 F3 78 */ mr r3, r30
|
||||
/* 803533EC 4B FF 0D 31 */ bl EXIUnlock
|
||||
/* 803533F0 38 60 FF FD */ li r3, -3
|
||||
/* 803533F4 48 00 00 08 */ b lbl_803533FC
|
||||
lbl_803533F8:
|
||||
/* 803533F8 38 60 00 00 */ li r3, 0
|
||||
lbl_803533FC:
|
||||
/* 803533FC 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 80353400 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 80353404 83 C1 00 10 */ lwz r30, 0x10(r1)
|
||||
/* 80353408 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 8035340C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80353410 4E 80 00 20 */ blr
|
||||
@@ -1,28 +0,0 @@
|
||||
lbl_80353C6C:
|
||||
/* 80353C6C 7C 08 02 A6 */ mflr r0
|
||||
/* 80353C70 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80353C74 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 80353C78 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 80353C7C 3B E4 00 00 */ addi r31, r4, 0
|
||||
/* 80353C80 93 C1 00 10 */ stw r30, 0x10(r1)
|
||||
/* 80353C84 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 80353C88 4B FE 9A 6D */ bl OSDisableInterrupts
|
||||
/* 80353C8C 80 1E 00 00 */ lwz r0, 0(r30)
|
||||
/* 80353C90 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 80353C94 41 82 00 0C */ beq lbl_80353CA0
|
||||
/* 80353C98 93 FE 00 04 */ stw r31, 4(r30)
|
||||
/* 80353C9C 48 00 00 14 */ b lbl_80353CB0
|
||||
lbl_80353CA0:
|
||||
/* 80353CA0 80 1E 00 04 */ lwz r0, 4(r30)
|
||||
/* 80353CA4 2C 00 FF FF */ cmpwi r0, -1
|
||||
/* 80353CA8 40 82 00 08 */ bne lbl_80353CB0
|
||||
/* 80353CAC 93 FE 00 04 */ stw r31, 4(r30)
|
||||
lbl_80353CB0:
|
||||
/* 80353CB0 4B FE 9A 6D */ bl OSRestoreInterrupts
|
||||
/* 80353CB4 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80353CB8 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 80353CBC 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 80353CC0 83 C1 00 10 */ lwz r30, 0x10(r1)
|
||||
/* 80353CC4 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 80353CC8 7C 08 03 A6 */ mtlr r0
|
||||
/* 80353CCC 4E 80 00 20 */ blr
|
||||
@@ -1,64 +0,0 @@
|
||||
lbl_80352F34:
|
||||
/* 80352F34 7C 08 02 A6 */ mflr r0
|
||||
/* 80352F38 38 A0 00 04 */ li r5, 4
|
||||
/* 80352F3C 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80352F40 94 21 FF D8 */ stwu r1, -0x28(r1)
|
||||
/* 80352F44 93 E1 00 24 */ stw r31, 0x24(r1)
|
||||
/* 80352F48 93 C1 00 20 */ stw r30, 0x20(r1)
|
||||
/* 80352F4C 3B C4 00 00 */ addi r30, r4, 0
|
||||
/* 80352F50 38 80 00 00 */ li r4, 0
|
||||
/* 80352F54 93 A1 00 1C */ stw r29, 0x1c(r1)
|
||||
/* 80352F58 3B A3 00 00 */ addi r29, r3, 0
|
||||
/* 80352F5C 4B FF 09 0D */ bl EXISelect
|
||||
/* 80352F60 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80352F64 40 82 00 0C */ bne lbl_80352F70
|
||||
/* 80352F68 38 60 FF FD */ li r3, -3
|
||||
/* 80352F6C 48 00 00 9C */ b lbl_80353008
|
||||
lbl_80352F70:
|
||||
/* 80352F70 3C 00 85 00 */ lis r0, 0x8500
|
||||
/* 80352F74 90 01 00 10 */ stw r0, 0x10(r1)
|
||||
/* 80352F78 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80352F7C 38 81 00 10 */ addi r4, r1, 0x10
|
||||
/* 80352F80 38 A0 00 02 */ li r5, 2
|
||||
/* 80352F84 38 C0 00 01 */ li r6, 1
|
||||
/* 80352F88 38 E0 00 00 */ li r7, 0
|
||||
/* 80352F8C 4B FE FD 75 */ bl EXIImm
|
||||
/* 80352F90 7C 60 00 34 */ cntlzw r0, r3
|
||||
/* 80352F94 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80352F98 54 1F D9 7E */ srwi r31, r0, 5
|
||||
/* 80352F9C 4B FF 01 4D */ bl EXISync
|
||||
/* 80352FA0 7C 60 00 34 */ cntlzw r0, r3
|
||||
/* 80352FA4 54 00 D9 7E */ srwi r0, r0, 5
|
||||
/* 80352FA8 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80352FAC 38 9E 00 00 */ addi r4, r30, 0
|
||||
/* 80352FB0 7F FF 03 78 */ or r31, r31, r0
|
||||
/* 80352FB4 38 A0 00 02 */ li r5, 2
|
||||
/* 80352FB8 38 C0 00 00 */ li r6, 0
|
||||
/* 80352FBC 38 E0 00 00 */ li r7, 0
|
||||
/* 80352FC0 4B FE FD 41 */ bl EXIImm
|
||||
/* 80352FC4 7C 60 00 34 */ cntlzw r0, r3
|
||||
/* 80352FC8 54 00 D9 7E */ srwi r0, r0, 5
|
||||
/* 80352FCC 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80352FD0 7F FF 03 78 */ or r31, r31, r0
|
||||
/* 80352FD4 4B FF 01 15 */ bl EXISync
|
||||
/* 80352FD8 7C 60 00 34 */ cntlzw r0, r3
|
||||
/* 80352FDC 54 00 D9 7E */ srwi r0, r0, 5
|
||||
/* 80352FE0 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80352FE4 7F FF 03 78 */ or r31, r31, r0
|
||||
/* 80352FE8 4B FF 09 AD */ bl EXIDeselect
|
||||
/* 80352FEC 7C 60 00 34 */ cntlzw r0, r3
|
||||
/* 80352FF0 54 00 D9 7E */ srwi r0, r0, 5
|
||||
/* 80352FF4 7F FF 03 79 */ or. r31, r31, r0
|
||||
/* 80352FF8 41 82 00 0C */ beq lbl_80353004
|
||||
/* 80352FFC 38 60 FF FD */ li r3, -3
|
||||
/* 80353000 48 00 00 08 */ b lbl_80353008
|
||||
lbl_80353004:
|
||||
/* 80353004 38 60 00 00 */ li r3, 0
|
||||
lbl_80353008:
|
||||
/* 80353008 80 01 00 2C */ lwz r0, 0x2c(r1)
|
||||
/* 8035300C 83 E1 00 24 */ lwz r31, 0x24(r1)
|
||||
/* 80353010 83 C1 00 20 */ lwz r30, 0x20(r1)
|
||||
/* 80353014 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
||||
/* 80353018 38 21 00 28 */ addi r1, r1, 0x28
|
||||
/* 8035301C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80353020 4E 80 00 20 */ blr
|
||||
@@ -1,149 +0,0 @@
|
||||
lbl_80353524:
|
||||
/* 80353524 7C 08 02 A6 */ mflr r0
|
||||
/* 80353528 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8035352C 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 80353530 BF 61 00 1C */ stmw r27, 0x1c(r1)
|
||||
/* 80353534 3B 63 00 00 */ addi r27, r3, 0
|
||||
/* 80353538 3B 84 00 00 */ addi r28, r4, 0
|
||||
/* 8035353C 3B A5 00 00 */ addi r29, r5, 0
|
||||
/* 80353540 4B FE A1 B5 */ bl OSDisableInterrupts
|
||||
/* 80353544 1C BB 01 10 */ mulli r5, r27, 0x110
|
||||
/* 80353548 3C 80 80 45 */ lis r4, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 8035354C 38 04 CB C0 */ addi r0, r4, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 80353550 7F E0 2A 14 */ add r31, r0, r5
|
||||
/* 80353554 80 1F 00 00 */ lwz r0, 0(r31)
|
||||
/* 80353558 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 8035355C 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 80353560 40 82 00 0C */ bne lbl_8035356C
|
||||
/* 80353564 3B A0 FF FD */ li r29, -3
|
||||
/* 80353568 48 00 01 C0 */ b lbl_80353728
|
||||
lbl_8035356C:
|
||||
/* 8035356C 28 1C 00 00 */ cmplwi r28, 0
|
||||
/* 80353570 41 82 00 08 */ beq lbl_80353578
|
||||
/* 80353574 93 9F 00 C8 */ stw r28, 0xc8(r31)
|
||||
lbl_80353578:
|
||||
/* 80353578 28 1D 00 00 */ cmplwi r29, 0
|
||||
/* 8035357C 41 82 00 08 */ beq lbl_80353584
|
||||
/* 80353580 93 BF 00 CC */ stw r29, 0xcc(r31)
|
||||
lbl_80353584:
|
||||
/* 80353584 3C 60 80 35 */ lis r3, UnlockedCallback@ha /* 0x80353414@ha */
|
||||
/* 80353588 38 03 34 14 */ addi r0, r3, UnlockedCallback@l /* 0x80353414@l */
|
||||
/* 8035358C 3C 60 80 35 */ lis r3, __CARDUnlockedHandler@ha /* 0x80352D00@ha */
|
||||
/* 80353590 90 1F 00 DC */ stw r0, 0xdc(r31)
|
||||
/* 80353594 38 A3 2D 00 */ addi r5, r3, __CARDUnlockedHandler@l /* 0x80352D00@l */
|
||||
/* 80353598 38 7B 00 00 */ addi r3, r27, 0
|
||||
/* 8035359C 38 80 00 00 */ li r4, 0
|
||||
/* 803535A0 4B FF 0A 89 */ bl EXILock
|
||||
/* 803535A4 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 803535A8 40 82 00 0C */ bne lbl_803535B4
|
||||
/* 803535AC 3B A0 FF FF */ li r29, -1
|
||||
/* 803535B0 48 00 01 78 */ b lbl_80353728
|
||||
lbl_803535B4:
|
||||
/* 803535B4 3B A0 00 00 */ li r29, 0
|
||||
/* 803535B8 93 BF 00 DC */ stw r29, 0xdc(r31)
|
||||
/* 803535BC 38 7B 00 00 */ addi r3, r27, 0
|
||||
/* 803535C0 38 80 00 00 */ li r4, 0
|
||||
/* 803535C4 38 A0 00 04 */ li r5, 4
|
||||
/* 803535C8 4B FF 02 A1 */ bl EXISelect
|
||||
/* 803535CC 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 803535D0 40 82 00 14 */ bne lbl_803535E4
|
||||
/* 803535D4 7F 63 DB 78 */ mr r3, r27
|
||||
/* 803535D8 4B FF 0B 45 */ bl EXIUnlock
|
||||
/* 803535DC 3B A0 FF FD */ li r29, -3
|
||||
/* 803535E0 48 00 01 48 */ b lbl_80353728
|
||||
lbl_803535E4:
|
||||
/* 803535E4 38 7F 00 E0 */ addi r3, r31, 0xe0
|
||||
/* 803535E8 4B FE 76 55 */ bl OSCancelAlarm
|
||||
/* 803535EC 88 1F 00 94 */ lbz r0, 0x94(r31)
|
||||
/* 803535F0 2C 00 00 F3 */ cmpwi r0, 0xf3
|
||||
/* 803535F4 41 82 01 30 */ beq lbl_80353724
|
||||
/* 803535F8 40 80 00 14 */ bge lbl_8035360C
|
||||
/* 803535FC 2C 00 00 F1 */ cmpwi r0, 0xf1
|
||||
/* 80353600 41 82 00 C0 */ beq lbl_803536C0
|
||||
/* 80353604 40 80 00 14 */ bge lbl_80353618
|
||||
/* 80353608 48 00 01 1C */ b lbl_80353724
|
||||
lbl_8035360C:
|
||||
/* 8035360C 2C 00 00 F5 */ cmpwi r0, 0xf5
|
||||
/* 80353610 40 80 01 14 */ bge lbl_80353724
|
||||
/* 80353614 48 00 00 3C */ b lbl_80353650
|
||||
lbl_80353618:
|
||||
/* 80353618 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
|
||||
/* 8035361C 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
|
||||
/* 80353620 3C 80 10 62 */ lis r4, 0x1062 /* 0x10624DD3@ha */
|
||||
/* 80353624 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */
|
||||
/* 80353628 54 00 F0 BE */ srwi r0, r0, 2
|
||||
/* 8035362C 38 84 4D D3 */ addi r4, r4, 0x4DD3 /* 0x10624DD3@l */
|
||||
/* 80353630 7C 04 00 16 */ mulhwu r0, r4, r0
|
||||
/* 80353634 54 00 D1 BE */ srwi r0, r0, 6
|
||||
/* 80353638 1C C0 00 64 */ mulli r6, r0, 0x64
|
||||
/* 8035363C 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */
|
||||
/* 80353640 38 7F 00 E0 */ addi r3, r31, 0xe0
|
||||
/* 80353644 38 A0 00 00 */ li r5, 0
|
||||
/* 80353648 4B FE 75 11 */ bl OSSetAlarm
|
||||
/* 8035364C 48 00 00 D8 */ b lbl_80353724
|
||||
lbl_80353650:
|
||||
/* 80353650 A0 1F 00 0A */ lhz r0, 0xa(r31)
|
||||
/* 80353654 28 00 00 80 */ cmplwi r0, 0x80
|
||||
/* 80353658 40 81 00 68 */ ble lbl_803536C0
|
||||
/* 8035365C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
|
||||
/* 80353660 A0 9F 00 10 */ lhz r4, 0x10(r31)
|
||||
/* 80353664 80 63 00 F8 */ lwz r3, 0x00F8(r3) /* 0x800000F8@l */
|
||||
/* 80353668 38 00 00 02 */ li r0, 2
|
||||
/* 8035366C 7C 89 36 70 */ srawi r9, r4, 6
|
||||
/* 80353670 54 63 F0 BE */ srwi r3, r3, 2
|
||||
/* 80353674 7D 1D 01 D6 */ mullw r8, r29, r0
|
||||
/* 80353678 7C C3 00 16 */ mulhwu r6, r3, r0
|
||||
/* 8035367C 7D 08 32 14 */ add r8, r8, r6
|
||||
/* 80353680 7C A3 01 D6 */ mullw r5, r3, r0
|
||||
/* 80353684 7D 29 01 94 */ addze r9, r9
|
||||
/* 80353688 7D 20 FE 70 */ srawi r0, r9, 0x1f
|
||||
/* 8035368C 7C C3 E9 D6 */ mullw r6, r3, r29
|
||||
/* 80353690 7C 80 29 D6 */ mullw r4, r0, r5
|
||||
/* 80353694 7C 09 28 16 */ mulhwu r0, r9, r5
|
||||
/* 80353698 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */
|
||||
/* 8035369C 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */
|
||||
/* 803536A0 7C 68 32 14 */ add r3, r8, r6
|
||||
/* 803536A4 7C 84 02 14 */ add r4, r4, r0
|
||||
/* 803536A8 7C 09 19 D6 */ mullw r0, r9, r3
|
||||
/* 803536AC 7C C9 29 D6 */ mullw r6, r9, r5
|
||||
/* 803536B0 38 7F 00 E0 */ addi r3, r31, 0xe0
|
||||
/* 803536B4 7C A4 02 14 */ add r5, r4, r0
|
||||
/* 803536B8 4B FE 74 A1 */ bl OSSetAlarm
|
||||
/* 803536BC 48 00 00 68 */ b lbl_80353724
|
||||
lbl_803536C0:
|
||||
/* 803536C0 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
|
||||
/* 803536C4 80 9F 00 0C */ lwz r4, 0xc(r31)
|
||||
/* 803536C8 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
|
||||
/* 803536CC 3C 60 80 35 */ lis r3, TimeoutHandler@ha /* 0x803530D0@ha */
|
||||
/* 803536D0 7C 89 6E 70 */ srawi r9, r4, 0xd
|
||||
/* 803536D4 54 07 F0 BE */ srwi r7, r0, 2
|
||||
/* 803536D8 38 00 00 02 */ li r0, 2
|
||||
/* 803536DC 38 80 00 00 */ li r4, 0
|
||||
/* 803536E0 7D 04 01 D6 */ mullw r8, r4, r0
|
||||
/* 803536E4 7C C7 00 16 */ mulhwu r6, r7, r0
|
||||
/* 803536E8 7D 08 32 14 */ add r8, r8, r6
|
||||
/* 803536EC 7C A7 01 D6 */ mullw r5, r7, r0
|
||||
/* 803536F0 7D 29 01 94 */ addze r9, r9
|
||||
/* 803536F4 7C C7 21 D6 */ mullw r6, r7, r4
|
||||
/* 803536F8 7D 20 FE 70 */ srawi r0, r9, 0x1f
|
||||
/* 803536FC 7C 80 29 D6 */ mullw r4, r0, r5
|
||||
/* 80353700 7C 09 28 16 */ mulhwu r0, r9, r5
|
||||
/* 80353704 38 E3 30 D0 */ addi r7, r3, TimeoutHandler@l /* 0x803530D0@l */
|
||||
/* 80353708 7C 68 32 14 */ add r3, r8, r6
|
||||
/* 8035370C 7C 84 02 14 */ add r4, r4, r0
|
||||
/* 80353710 7C 09 19 D6 */ mullw r0, r9, r3
|
||||
/* 80353714 7C C9 29 D6 */ mullw r6, r9, r5
|
||||
/* 80353718 38 7F 00 E0 */ addi r3, r31, 0xe0
|
||||
/* 8035371C 7C A4 02 14 */ add r5, r4, r0
|
||||
/* 80353720 4B FE 74 39 */ bl OSSetAlarm
|
||||
lbl_80353724:
|
||||
/* 80353724 3B A0 00 00 */ li r29, 0
|
||||
lbl_80353728:
|
||||
/* 80353728 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8035372C 4B FE 9F F1 */ bl OSRestoreInterrupts
|
||||
/* 80353730 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80353734 BB 61 00 1C */ lmw r27, 0x1c(r1)
|
||||
/* 80353738 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 8035373C 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 80353740 7C 08 03 A6 */ mtlr r0
|
||||
/* 80353744 4E 80 00 20 */ blr
|
||||
@@ -1,86 +0,0 @@
|
||||
lbl_8035387C:
|
||||
/* 8035387C 7C 08 02 A6 */ mflr r0
|
||||
/* 80353880 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80353884 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 80353888 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 8035388C 93 C1 00 10 */ stw r30, 0x10(r1)
|
||||
/* 80353890 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 80353894 1C BE 01 10 */ mulli r5, r30, 0x110
|
||||
/* 80353898 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 8035389C 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 803538A0 7F E0 2A 14 */ add r31, r0, r5
|
||||
/* 803538A4 38 00 00 F2 */ li r0, 0xf2
|
||||
/* 803538A8 98 1F 00 94 */ stb r0, 0x94(r31)
|
||||
/* 803538AC A0 1F 00 0A */ lhz r0, 0xa(r31)
|
||||
/* 803538B0 28 00 00 80 */ cmplwi r0, 0x80
|
||||
/* 803538B4 40 81 00 18 */ ble lbl_803538CC
|
||||
/* 803538B8 80 1F 00 B0 */ lwz r0, 0xb0(r31)
|
||||
/* 803538BC 54 00 7E 7E */ rlwinm r0, r0, 0xf, 0x19, 0x1f
|
||||
/* 803538C0 60 00 00 80 */ ori r0, r0, 0x80
|
||||
/* 803538C4 98 1F 00 95 */ stb r0, 0x95(r31)
|
||||
/* 803538C8 48 00 00 10 */ b lbl_803538D8
|
||||
lbl_803538CC:
|
||||
/* 803538CC 80 1F 00 B0 */ lwz r0, 0xb0(r31)
|
||||
/* 803538D0 54 00 7E 7E */ rlwinm r0, r0, 0xf, 0x19, 0x1f
|
||||
/* 803538D4 98 1F 00 95 */ stb r0, 0x95(r31)
|
||||
lbl_803538D8:
|
||||
/* 803538D8 80 1F 00 B0 */ lwz r0, 0xb0(r31)
|
||||
/* 803538DC 38 E0 00 05 */ li r7, 5
|
||||
/* 803538E0 38 C0 00 01 */ li r6, 1
|
||||
/* 803538E4 54 00 BE 3E */ rlwinm r0, r0, 0x17, 0x18, 0x1f
|
||||
/* 803538E8 98 1F 00 96 */ stb r0, 0x96(r31)
|
||||
/* 803538EC 38 00 00 03 */ li r0, 3
|
||||
/* 803538F0 38 7E 00 00 */ addi r3, r30, 0
|
||||
/* 803538F4 81 1F 00 B0 */ lwz r8, 0xb0(r31)
|
||||
/* 803538F8 38 A4 00 00 */ addi r5, r4, 0
|
||||
/* 803538FC 38 80 00 00 */ li r4, 0
|
||||
/* 80353900 55 08 CF BE */ rlwinm r8, r8, 0x19, 0x1e, 0x1f
|
||||
/* 80353904 99 1F 00 97 */ stb r8, 0x97(r31)
|
||||
/* 80353908 81 1F 00 B0 */ lwz r8, 0xb0(r31)
|
||||
/* 8035390C 55 08 06 7E */ clrlwi r8, r8, 0x19
|
||||
/* 80353910 99 1F 00 98 */ stb r8, 0x98(r31)
|
||||
/* 80353914 90 FF 00 A0 */ stw r7, 0xa0(r31)
|
||||
/* 80353918 90 DF 00 A4 */ stw r6, 0xa4(r31)
|
||||
/* 8035391C 90 1F 00 A8 */ stw r0, 0xa8(r31)
|
||||
/* 80353920 4B FF FC 05 */ bl __CARDStart
|
||||
/* 80353924 2C 03 FF FF */ cmpwi r3, -1
|
||||
/* 80353928 40 82 00 0C */ bne lbl_80353934
|
||||
/* 8035392C 38 60 00 00 */ li r3, 0
|
||||
/* 80353930 48 00 00 70 */ b lbl_803539A0
|
||||
lbl_80353934:
|
||||
/* 80353934 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80353938 41 80 00 68 */ blt lbl_803539A0
|
||||
/* 8035393C 80 BF 00 A0 */ lwz r5, 0xa0(r31)
|
||||
/* 80353940 38 7E 00 00 */ addi r3, r30, 0
|
||||
/* 80353944 38 9F 00 94 */ addi r4, r31, 0x94
|
||||
/* 80353948 38 C0 00 01 */ li r6, 1
|
||||
/* 8035394C 4B FE F6 11 */ bl EXIImmEx
|
||||
/* 80353950 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80353954 41 82 00 28 */ beq lbl_8035397C
|
||||
/* 80353958 3C 60 80 35 */ lis r3, __CARDTxHandler@ha /* 0x80352C58@ha */
|
||||
/* 8035395C 80 9F 00 B4 */ lwz r4, 0xb4(r31)
|
||||
/* 80353960 38 E3 2C 58 */ addi r7, r3, __CARDTxHandler@l /* 0x80352C58@l */
|
||||
/* 80353964 A0 BF 00 0A */ lhz r5, 0xa(r31)
|
||||
/* 80353968 80 DF 00 A4 */ lwz r6, 0xa4(r31)
|
||||
/* 8035396C 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80353970 4B FE F6 8D */ bl EXIDma
|
||||
/* 80353974 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80353978 40 82 00 24 */ bne lbl_8035399C
|
||||
lbl_8035397C:
|
||||
/* 8035397C 38 00 00 00 */ li r0, 0
|
||||
/* 80353980 90 1F 00 CC */ stw r0, 0xcc(r31)
|
||||
/* 80353984 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80353988 4B FF 00 0D */ bl EXIDeselect
|
||||
/* 8035398C 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80353990 4B FF 07 8D */ bl EXIUnlock
|
||||
/* 80353994 38 60 FF FD */ li r3, -3
|
||||
/* 80353998 48 00 00 08 */ b lbl_803539A0
|
||||
lbl_8035399C:
|
||||
/* 8035399C 38 60 00 00 */ li r3, 0
|
||||
lbl_803539A0:
|
||||
/* 803539A0 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 803539A4 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 803539A8 83 C1 00 10 */ lwz r30, 0x10(r1)
|
||||
/* 803539AC 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 803539B0 7C 08 03 A6 */ mtlr r0
|
||||
/* 803539B4 4E 80 00 20 */ blr
|
||||
@@ -1,54 +0,0 @@
|
||||
lbl_803554F0:
|
||||
/* 803554F0 7C 08 02 A6 */ mflr r0
|
||||
/* 803554F4 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 803554F8 94 21 FF D8 */ stwu r1, -0x28(r1)
|
||||
/* 803554FC 93 E1 00 24 */ stw r31, 0x24(r1)
|
||||
/* 80355500 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 80355504 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 80355508 93 C1 00 20 */ stw r30, 0x20(r1)
|
||||
/* 8035550C 1C BF 01 10 */ mulli r5, r31, 0x110
|
||||
/* 80355510 93 A1 00 1C */ stw r29, 0x1c(r1)
|
||||
/* 80355514 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 80355518 7C 9D 23 79 */ or. r29, r4, r4
|
||||
/* 8035551C 7F C0 2A 14 */ add r30, r0, r5
|
||||
/* 80355520 41 80 00 3C */ blt lbl_8035555C
|
||||
/* 80355524 80 BE 00 88 */ lwz r5, 0x88(r30)
|
||||
/* 80355528 3C 60 80 35 */ lis r3, WriteCallback@ha /* 0x8035541C@ha */
|
||||
/* 8035552C 80 1E 00 80 */ lwz r0, 0x80(r30)
|
||||
/* 80355530 38 E3 54 1C */ addi r7, r3, WriteCallback@l /* 0x8035541C@l */
|
||||
/* 80355534 80 7E 00 0C */ lwz r3, 0xc(r30)
|
||||
/* 80355538 7C 00 28 50 */ subf r0, r0, r5
|
||||
/* 8035553C 54 00 9B 7E */ srwi r0, r0, 0xd
|
||||
/* 80355540 7C 83 01 D6 */ mullw r4, r3, r0
|
||||
/* 80355544 38 C5 00 00 */ addi r6, r5, 0
|
||||
/* 80355548 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 8035554C 38 A0 20 00 */ li r5, 0x2000
|
||||
/* 80355550 4B FF FE 5D */ bl __CARDWrite
|
||||
/* 80355554 7C 7D 1B 79 */ or. r29, r3, r3
|
||||
/* 80355558 40 80 00 44 */ bge lbl_8035559C
|
||||
lbl_8035555C:
|
||||
/* 8035555C 80 1E 00 D0 */ lwz r0, 0xd0(r30)
|
||||
/* 80355560 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80355564 40 82 00 10 */ bne lbl_80355574
|
||||
/* 80355568 38 7E 00 00 */ addi r3, r30, 0
|
||||
/* 8035556C 38 9D 00 00 */ addi r4, r29, 0
|
||||
/* 80355570 4B FF E6 FD */ bl __CARDPutControlBlock
|
||||
lbl_80355574:
|
||||
/* 80355574 80 1E 00 D8 */ lwz r0, 0xd8(r30)
|
||||
/* 80355578 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8035557C 7C 0C 03 78 */ mr r12, r0
|
||||
/* 80355580 41 82 00 1C */ beq lbl_8035559C
|
||||
/* 80355584 38 00 00 00 */ li r0, 0
|
||||
/* 80355588 7D 88 03 A6 */ mtlr r12
|
||||
/* 8035558C 90 1E 00 D8 */ stw r0, 0xd8(r30)
|
||||
/* 80355590 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 80355594 38 9D 00 00 */ addi r4, r29, 0
|
||||
/* 80355598 4E 80 00 21 */ blrl
|
||||
lbl_8035559C:
|
||||
/* 8035559C 80 01 00 2C */ lwz r0, 0x2c(r1)
|
||||
/* 803555A0 83 E1 00 24 */ lwz r31, 0x24(r1)
|
||||
/* 803555A4 83 C1 00 20 */ lwz r30, 0x20(r1)
|
||||
/* 803555A8 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
||||
/* 803555AC 38 21 00 28 */ addi r1, r1, 0x28
|
||||
/* 803555B0 7C 08 03 A6 */ mtlr r0
|
||||
/* 803555B4 4E 80 00 20 */ blr
|
||||
@@ -1,81 +0,0 @@
|
||||
lbl_803555B8:
|
||||
/* 803555B8 7C 08 02 A6 */ mflr r0
|
||||
/* 803555BC 1C E3 01 10 */ mulli r7, r3, 0x110
|
||||
/* 803555C0 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 803555C4 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 803555C8 3C C0 80 45 */ lis r6, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 803555CC 38 06 CB C0 */ addi r0, r6, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 803555D0 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 803555D4 7D 20 3A 14 */ add r9, r0, r7
|
||||
/* 803555D8 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 803555DC 80 09 00 00 */ lwz r0, 0(r9)
|
||||
/* 803555E0 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 803555E4 40 82 00 0C */ bne lbl_803555F0
|
||||
/* 803555E8 38 60 FF FD */ li r3, -3
|
||||
/* 803555EC 48 00 00 CC */ b lbl_803556B8
|
||||
lbl_803555F0:
|
||||
/* 803555F0 81 09 00 88 */ lwz r8, 0x88(r9)
|
||||
/* 803555F4 A0 08 00 06 */ lhz r0, 6(r8)
|
||||
/* 803555F8 7C 00 20 40 */ cmplw r0, r4
|
||||
/* 803555FC 40 80 00 0C */ bge lbl_80355608
|
||||
/* 80355600 38 60 FF F7 */ li r3, -9
|
||||
/* 80355604 48 00 00 B4 */ b lbl_803556B8
|
||||
lbl_80355608:
|
||||
/* 80355608 7C 04 00 50 */ subf r0, r4, r0
|
||||
/* 8035560C B0 08 00 06 */ sth r0, 6(r8)
|
||||
/* 80355610 3C C0 00 01 */ lis r6, 0x0001 /* 0x0000FFFF@ha */
|
||||
/* 80355614 39 86 FF FF */ addi r12, r6, 0xFFFF /* 0x0000FFFF@l */
|
||||
/* 80355618 A1 68 00 08 */ lhz r11, 8(r8)
|
||||
/* 8035561C 38 0C 00 00 */ addi r0, r12, 0
|
||||
/* 80355620 3B C0 00 00 */ li r30, 0
|
||||
/* 80355624 48 00 00 7C */ b lbl_803556A0
|
||||
lbl_80355628:
|
||||
/* 80355628 A1 49 00 10 */ lhz r10, 0x10(r9)
|
||||
/* 8035562C 3B DE 00 01 */ addi r30, r30, 1
|
||||
/* 80355630 57 C6 04 3E */ clrlwi r6, r30, 0x10
|
||||
/* 80355634 38 EA FF FB */ addi r7, r10, -5
|
||||
/* 80355638 7C 07 30 00 */ cmpw r7, r6
|
||||
/* 8035563C 40 80 00 0C */ bge lbl_80355648
|
||||
/* 80355640 38 60 FF FA */ li r3, -6
|
||||
/* 80355644 48 00 00 74 */ b lbl_803556B8
|
||||
lbl_80355648:
|
||||
/* 80355648 39 6B 00 01 */ addi r11, r11, 1
|
||||
/* 8035564C 55 66 04 3E */ clrlwi r6, r11, 0x10
|
||||
/* 80355650 28 06 00 05 */ cmplwi r6, 5
|
||||
/* 80355654 41 80 00 0C */ blt lbl_80355660
|
||||
/* 80355658 7C 06 50 40 */ cmplw r6, r10
|
||||
/* 8035565C 41 80 00 08 */ blt lbl_80355664
|
||||
lbl_80355660:
|
||||
/* 80355660 39 60 00 05 */ li r11, 5
|
||||
lbl_80355664:
|
||||
/* 80355664 55 66 0B FC */ rlwinm r6, r11, 1, 0xf, 0x1e
|
||||
/* 80355668 7C E8 32 14 */ add r7, r8, r6
|
||||
/* 8035566C A0 C7 00 00 */ lhz r6, 0(r7)
|
||||
/* 80355670 28 06 00 00 */ cmplwi r6, 0
|
||||
/* 80355674 40 82 00 2C */ bne lbl_803556A0
|
||||
/* 80355678 55 86 04 3E */ clrlwi r6, r12, 0x10
|
||||
/* 8035567C 28 06 FF FF */ cmplwi r6, 0xffff
|
||||
/* 80355680 40 82 00 0C */ bne lbl_8035568C
|
||||
/* 80355684 7D 6C 5B 78 */ mr r12, r11
|
||||
/* 80355688 48 00 00 0C */ b lbl_80355694
|
||||
lbl_8035568C:
|
||||
/* 8035568C 57 E6 0B FC */ rlwinm r6, r31, 1, 0xf, 0x1e
|
||||
/* 80355690 7D 68 33 2E */ sthx r11, r8, r6
|
||||
lbl_80355694:
|
||||
/* 80355694 B0 07 00 00 */ sth r0, 0(r7)
|
||||
/* 80355698 3B EB 00 00 */ addi r31, r11, 0
|
||||
/* 8035569C 38 84 FF FF */ addi r4, r4, -1
|
||||
lbl_803556A0:
|
||||
/* 803556A0 28 04 00 00 */ cmplwi r4, 0
|
||||
/* 803556A4 40 82 FF 84 */ bne lbl_80355628
|
||||
/* 803556A8 B1 68 00 08 */ sth r11, 8(r8)
|
||||
/* 803556AC 7D 04 43 78 */ mr r4, r8
|
||||
/* 803556B0 B1 89 00 BE */ sth r12, 0xbe(r9)
|
||||
/* 803556B4 48 00 00 1D */ bl __CARDUpdateFatBlock
|
||||
lbl_803556B8:
|
||||
/* 803556B8 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 803556BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 803556C0 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 803556C4 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 803556C8 7C 08 03 A6 */ mtlr r0
|
||||
/* 803556CC 4E 80 00 20 */ blr
|
||||
@@ -1,44 +0,0 @@
|
||||
lbl_803556D0:
|
||||
/* 803556D0 7C 08 02 A6 */ mflr r0
|
||||
/* 803556D4 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 803556D8 94 21 FF D8 */ stwu r1, -0x28(r1)
|
||||
/* 803556DC 93 E1 00 24 */ stw r31, 0x24(r1)
|
||||
/* 803556E0 93 C1 00 20 */ stw r30, 0x20(r1)
|
||||
/* 803556E4 3B C5 00 00 */ addi r30, r5, 0
|
||||
/* 803556E8 93 A1 00 1C */ stw r29, 0x1c(r1)
|
||||
/* 803556EC 3B A4 00 00 */ addi r29, r4, 0
|
||||
/* 803556F0 38 BD 00 00 */ addi r5, r29, 0
|
||||
/* 803556F4 93 81 00 18 */ stw r28, 0x18(r1)
|
||||
/* 803556F8 3B 83 00 00 */ addi r28, r3, 0
|
||||
/* 803556FC 38 DD 00 02 */ addi r6, r29, 2
|
||||
/* 80355700 A0 64 00 04 */ lhz r3, 4(r4)
|
||||
/* 80355704 1C 9C 01 10 */ mulli r4, r28, 0x110
|
||||
/* 80355708 38 03 00 01 */ addi r0, r3, 1
|
||||
/* 8035570C 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 80355710 B0 1D 00 04 */ sth r0, 4(r29)
|
||||
/* 80355714 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 80355718 7F E0 22 14 */ add r31, r0, r4
|
||||
/* 8035571C 38 7D 00 04 */ addi r3, r29, 4
|
||||
/* 80355720 38 80 1F FC */ li r4, 0x1ffc
|
||||
/* 80355724 48 00 02 BD */ bl __CARDCheckSum
|
||||
/* 80355728 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 8035572C 38 80 20 00 */ li r4, 0x2000
|
||||
/* 80355730 4B FE 5E AD */ bl DCStoreRange
|
||||
/* 80355734 93 DF 00 D8 */ stw r30, 0xd8(r31)
|
||||
/* 80355738 3C 60 80 35 */ lis r3, EraseCallback@ha /* 0x803554F0@ha */
|
||||
/* 8035573C 38 A3 54 F0 */ addi r5, r3, EraseCallback@l /* 0x803554F0@l */
|
||||
/* 80355740 80 1F 00 80 */ lwz r0, 0x80(r31)
|
||||
/* 80355744 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80355748 80 9F 00 0C */ lwz r4, 0xc(r31)
|
||||
/* 8035574C 7C 00 E8 50 */ subf r0, r0, r29
|
||||
/* 80355750 54 00 9B 7E */ srwi r0, r0, 0xd
|
||||
/* 80355754 7C 84 01 D6 */ mullw r4, r4, r0
|
||||
/* 80355758 4B FF E2 61 */ bl __CARDEraseSector
|
||||
/* 8035575C 80 01 00 2C */ lwz r0, 0x2c(r1)
|
||||
/* 80355760 83 E1 00 24 */ lwz r31, 0x24(r1)
|
||||
/* 80355764 83 C1 00 20 */ lwz r30, 0x20(r1)
|
||||
/* 80355768 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
||||
/* 8035576C 83 81 00 18 */ lwz r28, 0x18(r1)
|
||||
/* 80355770 38 21 00 28 */ addi r1, r1, 0x28
|
||||
/* 80355774 7C 08 03 A6 */ mtlr r0
|
||||
/* 80355778 4E 80 00 20 */ blr
|
||||
@@ -1,391 +0,0 @@
|
||||
lbl_80356364:
|
||||
/* 80356364 7C 08 02 A6 */ mflr r0
|
||||
/* 80356368 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8035636C 94 21 FF A8 */ stwu r1, -0x58(r1)
|
||||
/* 80356370 BF 21 00 3C */ stmw r25, 0x3c(r1)
|
||||
/* 80356374 7C 9A 23 79 */ or. r26, r4, r4
|
||||
/* 80356378 3B 23 00 00 */ addi r25, r3, 0
|
||||
/* 8035637C 3B 65 00 00 */ addi r27, r5, 0
|
||||
/* 80356380 3B C0 00 00 */ li r30, 0
|
||||
/* 80356384 3B A0 00 00 */ li r29, 0
|
||||
/* 80356388 3B 80 00 00 */ li r28, 0
|
||||
/* 8035638C 41 82 00 0C */ beq lbl_80356398
|
||||
/* 80356390 38 00 00 00 */ li r0, 0
|
||||
/* 80356394 90 1A 00 00 */ stw r0, 0(r26)
|
||||
lbl_80356398:
|
||||
/* 80356398 38 79 00 00 */ addi r3, r25, 0
|
||||
/* 8035639C 38 81 00 30 */ addi r4, r1, 0x30
|
||||
/* 803563A0 4B FF D8 15 */ bl __CARDGetControlBlock
|
||||
/* 803563A4 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 803563A8 40 80 00 08 */ bge lbl_803563B0
|
||||
/* 803563AC 48 00 05 34 */ b lbl_803568E0
|
||||
lbl_803563B0:
|
||||
/* 803563B0 80 61 00 30 */ lwz r3, 0x30(r1)
|
||||
/* 803563B4 4B FF F7 DD */ bl VerifyID
|
||||
/* 803563B8 7C 64 1B 79 */ or. r4, r3, r3
|
||||
/* 803563BC 40 80 00 10 */ bge lbl_803563CC
|
||||
/* 803563C0 80 61 00 30 */ lwz r3, 0x30(r1)
|
||||
/* 803563C4 4B FF D8 A9 */ bl __CARDPutControlBlock
|
||||
/* 803563C8 48 00 05 18 */ b lbl_803568E0
|
||||
lbl_803563CC:
|
||||
/* 803563CC 80 61 00 30 */ lwz r3, 0x30(r1)
|
||||
/* 803563D0 38 81 00 18 */ addi r4, r1, 0x18
|
||||
/* 803563D4 4B FF FA 41 */ bl VerifyDir
|
||||
/* 803563D8 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 803563DC 80 61 00 30 */ lwz r3, 0x30(r1)
|
||||
/* 803563E0 38 81 00 1C */ addi r4, r1, 0x1c
|
||||
/* 803563E4 4B FF FC 71 */ bl VerifyFAT
|
||||
/* 803563E8 7C BF 1A 14 */ add r5, r31, r3
|
||||
/* 803563EC 2C 05 00 01 */ cmpwi r5, 1
|
||||
/* 803563F0 40 81 00 14 */ ble lbl_80356404
|
||||
/* 803563F4 80 61 00 30 */ lwz r3, 0x30(r1)
|
||||
/* 803563F8 38 80 FF FA */ li r4, -6
|
||||
/* 803563FC 4B FF D8 71 */ bl __CARDPutControlBlock
|
||||
/* 80356400 48 00 04 E0 */ b lbl_803568E0
|
||||
lbl_80356404:
|
||||
/* 80356404 80 C1 00 30 */ lwz r6, 0x30(r1)
|
||||
/* 80356408 80 86 00 80 */ lwz r4, 0x80(r6)
|
||||
/* 8035640C 38 64 20 00 */ addi r3, r4, 0x2000
|
||||
/* 80356410 38 04 60 00 */ addi r0, r4, 0x6000
|
||||
/* 80356414 90 61 00 28 */ stw r3, 0x28(r1)
|
||||
/* 80356418 3C 64 00 01 */ addis r3, r4, 1
|
||||
/* 8035641C 38 84 40 00 */ addi r4, r4, 0x4000
|
||||
/* 80356420 90 01 00 20 */ stw r0, 0x20(r1)
|
||||
/* 80356424 38 03 80 00 */ addi r0, r3, -32768
|
||||
/* 80356428 90 81 00 2C */ stw r4, 0x2c(r1)
|
||||
/* 8035642C 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 80356430 41 82 00 0C */ beq lbl_8035643C
|
||||
/* 80356434 40 80 00 8C */ bge lbl_803564C0
|
||||
/* 80356438 48 00 00 88 */ b lbl_803564C0
|
||||
lbl_8035643C:
|
||||
/* 8035643C 38 66 00 84 */ addi r3, r6, 0x84
|
||||
/* 80356440 80 06 00 84 */ lwz r0, 0x84(r6)
|
||||
/* 80356444 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80356448 40 82 00 40 */ bne lbl_80356488
|
||||
/* 8035644C 80 01 00 18 */ lwz r0, 0x18(r1)
|
||||
/* 80356450 38 81 00 28 */ addi r4, r1, 0x28
|
||||
/* 80356454 38 A0 20 00 */ li r5, 0x2000
|
||||
/* 80356458 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 8035645C 7C 04 00 2E */ lwzx r0, r4, r0
|
||||
/* 80356460 90 03 00 00 */ stw r0, 0(r3)
|
||||
/* 80356464 80 61 00 18 */ lwz r3, 0x18(r1)
|
||||
/* 80356468 68 60 00 01 */ xori r0, r3, 1
|
||||
/* 8035646C 54 63 10 3A */ slwi r3, r3, 2
|
||||
/* 80356470 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 80356474 7C 64 18 2E */ lwzx r3, r4, r3
|
||||
/* 80356478 7C 84 00 2E */ lwzx r4, r4, r0
|
||||
/* 8035647C 4B CA D0 C5 */ bl memcpy
|
||||
/* 80356480 3B A0 00 01 */ li r29, 1
|
||||
/* 80356484 48 00 00 3C */ b lbl_803564C0
|
||||
lbl_80356488:
|
||||
/* 80356488 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 8035648C 38 81 00 20 */ addi r4, r1, 0x20
|
||||
/* 80356490 38 A0 20 00 */ li r5, 0x2000
|
||||
/* 80356494 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 80356498 7C 04 00 2E */ lwzx r0, r4, r0
|
||||
/* 8035649C 90 06 00 88 */ stw r0, 0x88(r6)
|
||||
/* 803564A0 80 61 00 1C */ lwz r3, 0x1c(r1)
|
||||
/* 803564A4 68 60 00 01 */ xori r0, r3, 1
|
||||
/* 803564A8 54 63 10 3A */ slwi r3, r3, 2
|
||||
/* 803564AC 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 803564B0 7C 64 18 2E */ lwzx r3, r4, r3
|
||||
/* 803564B4 7C 84 00 2E */ lwzx r4, r4, r0
|
||||
/* 803564B8 4B CA D0 89 */ bl memcpy
|
||||
/* 803564BC 3B C0 00 01 */ li r30, 1
|
||||
lbl_803564C0:
|
||||
/* 803564C0 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 803564C4 38 61 00 20 */ addi r3, r1, 0x20
|
||||
/* 803564C8 38 80 00 00 */ li r4, 0
|
||||
/* 803564CC 68 00 00 01 */ xori r0, r0, 1
|
||||
/* 803564D0 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 803564D4 7F E3 00 2E */ lwzx r31, r3, r0
|
||||
/* 803564D8 38 A0 20 00 */ li r5, 0x2000
|
||||
/* 803564DC 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 803564E0 4B CA CF 79 */ bl memset
|
||||
/* 803564E4 38 00 00 7F */ li r0, 0x7f
|
||||
/* 803564E8 80 A1 00 30 */ lwz r5, 0x30(r1)
|
||||
/* 803564EC 7C 09 03 A6 */ mtctr r0
|
||||
/* 803564F0 38 C0 00 00 */ li r6, 0
|
||||
lbl_803564F4:
|
||||
/* 803564F4 80 05 00 84 */ lwz r0, 0x84(r5)
|
||||
/* 803564F8 7C E0 32 14 */ add r7, r0, r6
|
||||
/* 803564FC 88 07 00 00 */ lbz r0, 0(r7)
|
||||
/* 80356500 28 00 00 FF */ cmplwi r0, 0xff
|
||||
/* 80356504 41 82 00 A8 */ beq lbl_803565AC
|
||||
/* 80356508 A0 87 00 36 */ lhz r4, 0x36(r7)
|
||||
/* 8035650C 39 00 00 00 */ li r8, 0
|
||||
/* 80356510 48 00 00 54 */ b lbl_80356564
|
||||
lbl_80356514:
|
||||
/* 80356514 54 83 04 3E */ clrlwi r3, r4, 0x10
|
||||
/* 80356518 28 03 00 05 */ cmplwi r3, 5
|
||||
/* 8035651C 41 80 00 2C */ blt lbl_80356548
|
||||
/* 80356520 A0 05 00 10 */ lhz r0, 0x10(r5)
|
||||
/* 80356524 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 80356528 40 80 00 20 */ bge lbl_80356548
|
||||
/* 8035652C 54 64 08 3C */ slwi r4, r3, 1
|
||||
/* 80356530 7C 7F 22 2E */ lhzx r3, r31, r4
|
||||
/* 80356534 38 63 00 01 */ addi r3, r3, 1
|
||||
/* 80356538 54 60 04 3E */ clrlwi r0, r3, 0x10
|
||||
/* 8035653C 7C 7F 23 2E */ sthx r3, r31, r4
|
||||
/* 80356540 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 80356544 40 81 00 14 */ ble lbl_80356558
|
||||
lbl_80356548:
|
||||
/* 80356548 80 61 00 30 */ lwz r3, 0x30(r1)
|
||||
/* 8035654C 38 80 FF FA */ li r4, -6
|
||||
/* 80356550 4B FF D7 1D */ bl __CARDPutControlBlock
|
||||
/* 80356554 48 00 03 8C */ b lbl_803568E0
|
||||
lbl_80356558:
|
||||
/* 80356558 80 65 00 88 */ lwz r3, 0x88(r5)
|
||||
/* 8035655C 39 08 00 01 */ addi r8, r8, 1
|
||||
/* 80356560 7C 83 22 2E */ lhzx r4, r3, r4
|
||||
lbl_80356564:
|
||||
/* 80356564 54 80 04 3E */ clrlwi r0, r4, 0x10
|
||||
/* 80356568 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 8035656C 41 82 00 14 */ beq lbl_80356580
|
||||
/* 80356570 A0 07 00 38 */ lhz r0, 0x38(r7)
|
||||
/* 80356574 55 03 04 3E */ clrlwi r3, r8, 0x10
|
||||
/* 80356578 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 8035657C 41 80 FF 98 */ blt lbl_80356514
|
||||
lbl_80356580:
|
||||
/* 80356580 A0 07 00 38 */ lhz r0, 0x38(r7)
|
||||
/* 80356584 55 03 04 3E */ clrlwi r3, r8, 0x10
|
||||
/* 80356588 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 8035658C 40 82 00 10 */ bne lbl_8035659C
|
||||
/* 80356590 54 80 04 3E */ clrlwi r0, r4, 0x10
|
||||
/* 80356594 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 80356598 41 82 00 14 */ beq lbl_803565AC
|
||||
lbl_8035659C:
|
||||
/* 8035659C 80 61 00 30 */ lwz r3, 0x30(r1)
|
||||
/* 803565A0 38 80 FF FA */ li r4, -6
|
||||
/* 803565A4 4B FF D6 C9 */ bl __CARDPutControlBlock
|
||||
/* 803565A8 48 00 03 38 */ b lbl_803568E0
|
||||
lbl_803565AC:
|
||||
/* 803565AC 38 C6 00 40 */ addi r6, r6, 0x40
|
||||
/* 803565B0 42 00 FF 44 */ bdnz lbl_803564F4
|
||||
/* 803565B4 80 61 00 30 */ lwz r3, 0x30(r1)
|
||||
/* 803565B8 38 DF 00 0A */ addi r6, r31, 0xa
|
||||
/* 803565BC 39 20 00 00 */ li r9, 0
|
||||
/* 803565C0 39 00 00 05 */ li r8, 5
|
||||
/* 803565C4 38 A0 00 0A */ li r5, 0xa
|
||||
/* 803565C8 48 00 00 68 */ b lbl_80356630
|
||||
lbl_803565CC:
|
||||
/* 803565CC 80 83 00 88 */ lwz r4, 0x88(r3)
|
||||
/* 803565D0 A0 06 00 00 */ lhz r0, 0(r6)
|
||||
/* 803565D4 7C 84 2A 14 */ add r4, r4, r5
|
||||
/* 803565D8 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 803565DC A0 04 00 00 */ lhz r0, 0(r4)
|
||||
/* 803565E0 40 82 00 20 */ bne lbl_80356600
|
||||
/* 803565E4 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 803565E8 41 82 00 10 */ beq lbl_803565F8
|
||||
/* 803565EC 38 00 00 00 */ li r0, 0
|
||||
/* 803565F0 B0 04 00 00 */ sth r0, 0(r4)
|
||||
/* 803565F4 3B 80 00 01 */ li r28, 1
|
||||
lbl_803565F8:
|
||||
/* 803565F8 39 29 00 01 */ addi r9, r9, 1
|
||||
/* 803565FC 48 00 00 28 */ b lbl_80356624
|
||||
lbl_80356600:
|
||||
/* 80356600 28 00 00 05 */ cmplwi r0, 5
|
||||
/* 80356604 41 80 00 0C */ blt lbl_80356610
|
||||
/* 80356608 7C 00 38 40 */ cmplw r0, r7
|
||||
/* 8035660C 41 80 00 18 */ blt lbl_80356624
|
||||
lbl_80356610:
|
||||
/* 80356610 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 80356614 41 82 00 10 */ beq lbl_80356624
|
||||
/* 80356618 38 80 FF FA */ li r4, -6
|
||||
/* 8035661C 4B FF D6 51 */ bl __CARDPutControlBlock
|
||||
/* 80356620 48 00 02 C0 */ b lbl_803568E0
|
||||
lbl_80356624:
|
||||
/* 80356624 38 A5 00 02 */ addi r5, r5, 2
|
||||
/* 80356628 38 C6 00 02 */ addi r6, r6, 2
|
||||
/* 8035662C 39 08 00 01 */ addi r8, r8, 1
|
||||
lbl_80356630:
|
||||
/* 80356630 A0 E3 00 10 */ lhz r7, 0x10(r3)
|
||||
/* 80356634 55 00 04 3E */ clrlwi r0, r8, 0x10
|
||||
/* 80356638 7C 00 38 40 */ cmplw r0, r7
|
||||
/* 8035663C 41 80 FF 90 */ blt lbl_803565CC
|
||||
/* 80356640 80 63 00 88 */ lwz r3, 0x88(r3)
|
||||
/* 80356644 55 24 04 3E */ clrlwi r4, r9, 0x10
|
||||
/* 80356648 A4 03 00 06 */ lhzu r0, 6(r3)
|
||||
/* 8035664C 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 80356650 41 82 00 0C */ beq lbl_8035665C
|
||||
/* 80356654 B1 23 00 00 */ sth r9, 0(r3)
|
||||
/* 80356658 3B 80 00 01 */ li r28, 1
|
||||
lbl_8035665C:
|
||||
/* 8035665C 2C 1C 00 00 */ cmpwi r28, 0
|
||||
/* 80356660 41 82 01 C8 */ beq lbl_80356828
|
||||
/* 80356664 80 61 00 30 */ lwz r3, 0x30(r1)
|
||||
/* 80356668 38 80 1F FC */ li r4, 0x1ffc
|
||||
/* 8035666C 7C 84 0E 70 */ srawi r4, r4, 1
|
||||
/* 80356670 80 C3 00 88 */ lwz r6, 0x88(r3)
|
||||
/* 80356674 38 00 00 00 */ li r0, 0
|
||||
/* 80356678 7C 84 01 95 */ addze. r4, r4
|
||||
/* 8035667C B0 06 00 02 */ sth r0, 2(r6)
|
||||
/* 80356680 38 E6 00 02 */ addi r7, r6, 2
|
||||
/* 80356684 38 A6 00 04 */ addi r5, r6, 4
|
||||
/* 80356688 B0 06 00 00 */ sth r0, 0(r6)
|
||||
/* 8035668C 38 64 00 00 */ addi r3, r4, 0
|
||||
/* 80356690 40 81 01 70 */ ble lbl_80356800
|
||||
/* 80356694 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
|
||||
/* 80356698 7C 09 03 A6 */ mtctr r0
|
||||
/* 8035669C 41 82 01 34 */ beq lbl_803567D0
|
||||
lbl_803566A0:
|
||||
/* 803566A0 A0 86 00 00 */ lhz r4, 0(r6)
|
||||
/* 803566A4 A0 05 00 00 */ lhz r0, 0(r5)
|
||||
/* 803566A8 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 803566AC B0 06 00 00 */ sth r0, 0(r6)
|
||||
/* 803566B0 A0 05 00 00 */ lhz r0, 0(r5)
|
||||
/* 803566B4 A0 87 00 00 */ lhz r4, 0(r7)
|
||||
/* 803566B8 7C 00 00 F8 */ nor r0, r0, r0
|
||||
/* 803566BC 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 803566C0 B0 07 00 00 */ sth r0, 0(r7)
|
||||
/* 803566C4 A0 86 00 00 */ lhz r4, 0(r6)
|
||||
/* 803566C8 A0 05 00 02 */ lhz r0, 2(r5)
|
||||
/* 803566CC 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 803566D0 B0 06 00 00 */ sth r0, 0(r6)
|
||||
/* 803566D4 A0 05 00 02 */ lhz r0, 2(r5)
|
||||
/* 803566D8 A0 87 00 00 */ lhz r4, 0(r7)
|
||||
/* 803566DC 7C 00 00 F8 */ nor r0, r0, r0
|
||||
/* 803566E0 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 803566E4 B0 07 00 00 */ sth r0, 0(r7)
|
||||
/* 803566E8 A0 86 00 00 */ lhz r4, 0(r6)
|
||||
/* 803566EC A0 05 00 04 */ lhz r0, 4(r5)
|
||||
/* 803566F0 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 803566F4 B0 06 00 00 */ sth r0, 0(r6)
|
||||
/* 803566F8 A0 05 00 04 */ lhz r0, 4(r5)
|
||||
/* 803566FC A0 87 00 00 */ lhz r4, 0(r7)
|
||||
/* 80356700 7C 00 00 F8 */ nor r0, r0, r0
|
||||
/* 80356704 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 80356708 B0 07 00 00 */ sth r0, 0(r7)
|
||||
/* 8035670C A0 86 00 00 */ lhz r4, 0(r6)
|
||||
/* 80356710 A0 05 00 06 */ lhz r0, 6(r5)
|
||||
/* 80356714 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 80356718 B0 06 00 00 */ sth r0, 0(r6)
|
||||
/* 8035671C A0 05 00 06 */ lhz r0, 6(r5)
|
||||
/* 80356720 A0 87 00 00 */ lhz r4, 0(r7)
|
||||
/* 80356724 7C 00 00 F8 */ nor r0, r0, r0
|
||||
/* 80356728 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 8035672C B0 07 00 00 */ sth r0, 0(r7)
|
||||
/* 80356730 A0 86 00 00 */ lhz r4, 0(r6)
|
||||
/* 80356734 A0 05 00 08 */ lhz r0, 8(r5)
|
||||
/* 80356738 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 8035673C B0 06 00 00 */ sth r0, 0(r6)
|
||||
/* 80356740 A0 05 00 08 */ lhz r0, 8(r5)
|
||||
/* 80356744 A0 87 00 00 */ lhz r4, 0(r7)
|
||||
/* 80356748 7C 00 00 F8 */ nor r0, r0, r0
|
||||
/* 8035674C 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 80356750 B0 07 00 00 */ sth r0, 0(r7)
|
||||
/* 80356754 A0 86 00 00 */ lhz r4, 0(r6)
|
||||
/* 80356758 A0 05 00 0A */ lhz r0, 0xa(r5)
|
||||
/* 8035675C 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 80356760 B0 06 00 00 */ sth r0, 0(r6)
|
||||
/* 80356764 A0 05 00 0A */ lhz r0, 0xa(r5)
|
||||
/* 80356768 A0 87 00 00 */ lhz r4, 0(r7)
|
||||
/* 8035676C 7C 00 00 F8 */ nor r0, r0, r0
|
||||
/* 80356770 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 80356774 B0 07 00 00 */ sth r0, 0(r7)
|
||||
/* 80356778 A0 86 00 00 */ lhz r4, 0(r6)
|
||||
/* 8035677C A0 05 00 0C */ lhz r0, 0xc(r5)
|
||||
/* 80356780 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 80356784 B0 06 00 00 */ sth r0, 0(r6)
|
||||
/* 80356788 A0 05 00 0C */ lhz r0, 0xc(r5)
|
||||
/* 8035678C A0 87 00 00 */ lhz r4, 0(r7)
|
||||
/* 80356790 7C 00 00 F8 */ nor r0, r0, r0
|
||||
/* 80356794 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 80356798 B0 07 00 00 */ sth r0, 0(r7)
|
||||
/* 8035679C A0 86 00 00 */ lhz r4, 0(r6)
|
||||
/* 803567A0 A0 05 00 0E */ lhz r0, 0xe(r5)
|
||||
/* 803567A4 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 803567A8 B0 06 00 00 */ sth r0, 0(r6)
|
||||
/* 803567AC A0 05 00 0E */ lhz r0, 0xe(r5)
|
||||
/* 803567B0 38 A5 00 10 */ addi r5, r5, 0x10
|
||||
/* 803567B4 A0 87 00 00 */ lhz r4, 0(r7)
|
||||
/* 803567B8 7C 00 00 F8 */ nor r0, r0, r0
|
||||
/* 803567BC 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 803567C0 B0 07 00 00 */ sth r0, 0(r7)
|
||||
/* 803567C4 42 00 FE DC */ bdnz lbl_803566A0
|
||||
/* 803567C8 70 63 00 07 */ andi. r3, r3, 7
|
||||
/* 803567CC 41 82 00 34 */ beq lbl_80356800
|
||||
lbl_803567D0:
|
||||
/* 803567D0 7C 69 03 A6 */ mtctr r3
|
||||
lbl_803567D4:
|
||||
/* 803567D4 A0 86 00 00 */ lhz r4, 0(r6)
|
||||
/* 803567D8 A0 05 00 00 */ lhz r0, 0(r5)
|
||||
/* 803567DC 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 803567E0 B0 06 00 00 */ sth r0, 0(r6)
|
||||
/* 803567E4 A0 05 00 00 */ lhz r0, 0(r5)
|
||||
/* 803567E8 38 A5 00 02 */ addi r5, r5, 2
|
||||
/* 803567EC A0 87 00 00 */ lhz r4, 0(r7)
|
||||
/* 803567F0 7C 00 00 F8 */ nor r0, r0, r0
|
||||
/* 803567F4 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 803567F8 B0 07 00 00 */ sth r0, 0(r7)
|
||||
/* 803567FC 42 00 FF D8 */ bdnz lbl_803567D4
|
||||
lbl_80356800:
|
||||
/* 80356800 A0 06 00 00 */ lhz r0, 0(r6)
|
||||
/* 80356804 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 80356808 40 82 00 0C */ bne lbl_80356814
|
||||
/* 8035680C 38 00 00 00 */ li r0, 0
|
||||
/* 80356810 B0 06 00 00 */ sth r0, 0(r6)
|
||||
lbl_80356814:
|
||||
/* 80356814 A0 07 00 00 */ lhz r0, 0(r7)
|
||||
/* 80356818 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 8035681C 40 82 00 0C */ bne lbl_80356828
|
||||
/* 80356820 38 00 00 00 */ li r0, 0
|
||||
/* 80356824 B0 07 00 00 */ sth r0, 0(r7)
|
||||
lbl_80356828:
|
||||
/* 80356828 80 C1 00 1C */ lwz r6, 0x1c(r1)
|
||||
/* 8035682C 38 81 00 20 */ addi r4, r1, 0x20
|
||||
/* 80356830 38 A0 20 00 */ li r5, 0x2000
|
||||
/* 80356834 68 C0 00 01 */ xori r0, r6, 1
|
||||
/* 80356838 54 03 10 3A */ slwi r3, r0, 2
|
||||
/* 8035683C 54 C0 10 3A */ slwi r0, r6, 2
|
||||
/* 80356840 7C 64 18 2E */ lwzx r3, r4, r3
|
||||
/* 80356844 7C 84 00 2E */ lwzx r4, r4, r0
|
||||
/* 80356848 4B CA CC F9 */ bl memcpy
|
||||
/* 8035684C 2C 1D 00 00 */ cmpwi r29, 0
|
||||
/* 80356850 41 82 00 24 */ beq lbl_80356874
|
||||
/* 80356854 28 1A 00 00 */ cmplwi r26, 0
|
||||
/* 80356858 41 82 00 0C */ beq lbl_80356864
|
||||
/* 8035685C 38 00 20 00 */ li r0, 0x2000
|
||||
/* 80356860 90 1A 00 00 */ stw r0, 0(r26)
|
||||
lbl_80356864:
|
||||
/* 80356864 38 79 00 00 */ addi r3, r25, 0
|
||||
/* 80356868 38 9B 00 00 */ addi r4, r27, 0
|
||||
/* 8035686C 4B FF F0 B1 */ bl __CARDUpdateDir
|
||||
/* 80356870 48 00 00 70 */ b lbl_803568E0
|
||||
lbl_80356874:
|
||||
/* 80356874 7F C0 E3 79 */ or. r0, r30, r28
|
||||
/* 80356878 41 82 00 2C */ beq lbl_803568A4
|
||||
/* 8035687C 28 1A 00 00 */ cmplwi r26, 0
|
||||
/* 80356880 41 82 00 0C */ beq lbl_8035688C
|
||||
/* 80356884 38 00 20 00 */ li r0, 0x2000
|
||||
/* 80356888 90 1A 00 00 */ stw r0, 0(r26)
|
||||
lbl_8035688C:
|
||||
/* 8035688C 80 81 00 30 */ lwz r4, 0x30(r1)
|
||||
/* 80356890 38 79 00 00 */ addi r3, r25, 0
|
||||
/* 80356894 38 BB 00 00 */ addi r5, r27, 0
|
||||
/* 80356898 80 84 00 88 */ lwz r4, 0x88(r4)
|
||||
/* 8035689C 4B FF EE 35 */ bl __CARDUpdateFatBlock
|
||||
/* 803568A0 48 00 00 40 */ b lbl_803568E0
|
||||
lbl_803568A4:
|
||||
/* 803568A4 80 61 00 30 */ lwz r3, 0x30(r1)
|
||||
/* 803568A8 38 80 00 00 */ li r4, 0
|
||||
/* 803568AC 4B FF D3 C1 */ bl __CARDPutControlBlock
|
||||
/* 803568B0 28 1B 00 00 */ cmplwi r27, 0
|
||||
/* 803568B4 41 82 00 28 */ beq lbl_803568DC
|
||||
/* 803568B8 4B FE 6E 3D */ bl OSDisableInterrupts
|
||||
/* 803568BC 39 9B 00 00 */ addi r12, r27, 0
|
||||
/* 803568C0 7D 88 03 A6 */ mtlr r12
|
||||
/* 803568C4 3B 43 00 00 */ addi r26, r3, 0
|
||||
/* 803568C8 38 79 00 00 */ addi r3, r25, 0
|
||||
/* 803568CC 38 80 00 00 */ li r4, 0
|
||||
/* 803568D0 4E 80 00 21 */ blrl
|
||||
/* 803568D4 7F 43 D3 78 */ mr r3, r26
|
||||
/* 803568D8 4B FE 6E 45 */ bl OSRestoreInterrupts
|
||||
lbl_803568DC:
|
||||
/* 803568DC 38 60 00 00 */ li r3, 0
|
||||
lbl_803568E0:
|
||||
/* 803568E0 BB 21 00 3C */ lmw r25, 0x3c(r1)
|
||||
/* 803568E4 80 01 00 5C */ lwz r0, 0x5c(r1)
|
||||
/* 803568E8 38 21 00 58 */ addi r1, r1, 0x58
|
||||
/* 803568EC 7C 08 03 A6 */ mtlr r0
|
||||
/* 803568F0 4E 80 00 20 */ blr
|
||||
@@ -1,161 +0,0 @@
|
||||
lbl_80355E14:
|
||||
/* 80355E14 7C 08 02 A6 */ mflr r0
|
||||
/* 80355E18 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80355E1C 94 21 FF C8 */ stwu r1, -0x38(r1)
|
||||
/* 80355E20 93 E1 00 34 */ stw r31, 0x34(r1)
|
||||
/* 80355E24 38 E1 00 1C */ addi r7, r1, 0x1c
|
||||
/* 80355E28 39 01 00 14 */ addi r8, r1, 0x14
|
||||
/* 80355E2C 93 C1 00 30 */ stw r30, 0x30(r1)
|
||||
/* 80355E30 3B E0 00 00 */ li r31, 0
|
||||
/* 80355E34 3B C0 00 00 */ li r30, 0
|
||||
/* 80355E38 93 A1 00 2C */ stw r29, 0x2c(r1)
|
||||
/* 80355E3C 3B A4 00 00 */ addi r29, r4, 0
|
||||
/* 80355E40 38 80 00 00 */ li r4, 0
|
||||
lbl_80355E44:
|
||||
/* 80355E44 38 04 00 01 */ addi r0, r4, 1
|
||||
/* 80355E48 80 A3 00 80 */ lwz r5, 0x80(r3)
|
||||
/* 80355E4C 54 00 68 24 */ slwi r0, r0, 0xd
|
||||
/* 80355E50 7C 05 02 14 */ add r0, r5, r0
|
||||
/* 80355E54 90 07 00 00 */ stw r0, 0(r7)
|
||||
/* 80355E58 38 C0 1F FC */ li r6, 0x1ffc
|
||||
/* 80355E5C 7C C6 0E 70 */ srawi r6, r6, 1
|
||||
/* 80355E60 80 A7 00 00 */ lwz r5, 0(r7)
|
||||
/* 80355E64 7C C6 01 95 */ addze. r6, r6
|
||||
/* 80355E68 39 60 00 00 */ li r11, 0
|
||||
/* 80355E6C 38 05 1F C0 */ addi r0, r5, 0x1fc0
|
||||
/* 80355E70 90 08 00 00 */ stw r0, 0(r8)
|
||||
/* 80355E74 39 40 00 00 */ li r10, 0
|
||||
/* 80355E78 80 A7 00 00 */ lwz r5, 0(r7)
|
||||
/* 80355E7C 40 81 00 BC */ ble lbl_80355F38
|
||||
/* 80355E80 54 C0 E8 FF */ rlwinm. r0, r6, 0x1d, 3, 0x1f
|
||||
/* 80355E84 7C 09 03 A6 */ mtctr r0
|
||||
/* 80355E88 41 82 00 94 */ beq lbl_80355F1C
|
||||
lbl_80355E8C:
|
||||
/* 80355E8C A1 25 00 00 */ lhz r9, 0(r5)
|
||||
/* 80355E90 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 80355E94 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 80355E98 A1 25 00 02 */ lhz r9, 2(r5)
|
||||
/* 80355E9C 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 80355EA0 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 80355EA4 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 80355EA8 A1 25 00 04 */ lhz r9, 4(r5)
|
||||
/* 80355EAC 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 80355EB0 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 80355EB4 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 80355EB8 A1 25 00 06 */ lhz r9, 6(r5)
|
||||
/* 80355EBC 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 80355EC0 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 80355EC4 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 80355EC8 A1 25 00 08 */ lhz r9, 8(r5)
|
||||
/* 80355ECC 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 80355ED0 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 80355ED4 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 80355ED8 A1 25 00 0A */ lhz r9, 0xa(r5)
|
||||
/* 80355EDC 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 80355EE0 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 80355EE4 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 80355EE8 A1 25 00 0C */ lhz r9, 0xc(r5)
|
||||
/* 80355EEC 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 80355EF0 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 80355EF4 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 80355EF8 A1 25 00 0E */ lhz r9, 0xe(r5)
|
||||
/* 80355EFC 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 80355F00 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 80355F04 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 80355F08 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 80355F0C 38 A5 00 10 */ addi r5, r5, 0x10
|
||||
/* 80355F10 42 00 FF 7C */ bdnz lbl_80355E8C
|
||||
/* 80355F14 70 C6 00 07 */ andi. r6, r6, 7
|
||||
/* 80355F18 41 82 00 20 */ beq lbl_80355F38
|
||||
lbl_80355F1C:
|
||||
/* 80355F1C 7C C9 03 A6 */ mtctr r6
|
||||
lbl_80355F20:
|
||||
/* 80355F20 A1 25 00 00 */ lhz r9, 0(r5)
|
||||
/* 80355F24 38 A5 00 02 */ addi r5, r5, 2
|
||||
/* 80355F28 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 80355F2C 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 80355F30 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 80355F34 42 00 FF EC */ bdnz lbl_80355F20
|
||||
lbl_80355F38:
|
||||
/* 80355F38 55 40 04 3E */ clrlwi r0, r10, 0x10
|
||||
/* 80355F3C 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 80355F40 40 82 00 08 */ bne lbl_80355F48
|
||||
/* 80355F44 39 40 00 00 */ li r10, 0
|
||||
lbl_80355F48:
|
||||
/* 80355F48 55 60 04 3E */ clrlwi r0, r11, 0x10
|
||||
/* 80355F4C 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 80355F50 40 82 00 08 */ bne lbl_80355F58
|
||||
/* 80355F54 39 60 00 00 */ li r11, 0
|
||||
lbl_80355F58:
|
||||
/* 80355F58 80 C8 00 00 */ lwz r6, 0(r8)
|
||||
/* 80355F5C 55 45 04 3E */ clrlwi r5, r10, 0x10
|
||||
/* 80355F60 A0 06 00 3C */ lhz r0, 0x3c(r6)
|
||||
/* 80355F64 7C 05 00 40 */ cmplw r5, r0
|
||||
/* 80355F68 40 82 00 14 */ bne lbl_80355F7C
|
||||
/* 80355F6C A0 06 00 3E */ lhz r0, 0x3e(r6)
|
||||
/* 80355F70 55 65 04 3E */ clrlwi r5, r11, 0x10
|
||||
/* 80355F74 7C 05 00 40 */ cmplw r5, r0
|
||||
/* 80355F78 41 82 00 14 */ beq lbl_80355F8C
|
||||
lbl_80355F7C:
|
||||
/* 80355F7C 38 00 00 00 */ li r0, 0
|
||||
/* 80355F80 90 03 00 84 */ stw r0, 0x84(r3)
|
||||
/* 80355F84 3B C4 00 00 */ addi r30, r4, 0
|
||||
/* 80355F88 3B FF 00 01 */ addi r31, r31, 1
|
||||
lbl_80355F8C:
|
||||
/* 80355F8C 38 84 00 01 */ addi r4, r4, 1
|
||||
/* 80355F90 2C 04 00 02 */ cmpwi r4, 2
|
||||
/* 80355F94 38 E7 00 04 */ addi r7, r7, 4
|
||||
/* 80355F98 39 08 00 04 */ addi r8, r8, 4
|
||||
/* 80355F9C 41 80 FE A8 */ blt lbl_80355E44
|
||||
/* 80355FA0 2C 1F 00 00 */ cmpwi r31, 0
|
||||
/* 80355FA4 40 82 00 84 */ bne lbl_80356028
|
||||
/* 80355FA8 80 83 00 84 */ lwz r4, 0x84(r3)
|
||||
/* 80355FAC 28 04 00 00 */ cmplwi r4, 0
|
||||
/* 80355FB0 40 82 00 5C */ bne lbl_8035600C
|
||||
/* 80355FB4 80 A1 00 18 */ lwz r5, 0x18(r1)
|
||||
/* 80355FB8 80 81 00 14 */ lwz r4, 0x14(r1)
|
||||
/* 80355FBC A8 A5 00 3A */ lha r5, 0x3a(r5)
|
||||
/* 80355FC0 A8 04 00 3A */ lha r0, 0x3a(r4)
|
||||
/* 80355FC4 7C 05 00 51 */ subf. r0, r5, r0
|
||||
/* 80355FC8 40 80 00 0C */ bge lbl_80355FD4
|
||||
/* 80355FCC 3B C0 00 00 */ li r30, 0
|
||||
/* 80355FD0 48 00 00 08 */ b lbl_80355FD8
|
||||
lbl_80355FD4:
|
||||
/* 80355FD4 3B C0 00 01 */ li r30, 1
|
||||
lbl_80355FD8:
|
||||
/* 80355FD8 57 C0 10 3A */ slwi r0, r30, 2
|
||||
/* 80355FDC 38 C1 00 1C */ addi r6, r1, 0x1c
|
||||
/* 80355FE0 7C C6 02 14 */ add r6, r6, r0
|
||||
/* 80355FE4 80 86 00 00 */ lwz r4, 0(r6)
|
||||
/* 80355FE8 6B C0 00 01 */ xori r0, r30, 1
|
||||
/* 80355FEC 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 80355FF0 90 83 00 84 */ stw r4, 0x84(r3)
|
||||
/* 80355FF4 38 81 00 1C */ addi r4, r1, 0x1c
|
||||
/* 80355FF8 38 A0 20 00 */ li r5, 0x2000
|
||||
/* 80355FFC 80 66 00 00 */ lwz r3, 0(r6)
|
||||
/* 80356000 7C 84 00 2E */ lwzx r4, r4, r0
|
||||
/* 80356004 4B CA D5 3D */ bl memcpy
|
||||
/* 80356008 48 00 00 20 */ b lbl_80356028
|
||||
lbl_8035600C:
|
||||
/* 8035600C 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 80356010 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 80356014 40 82 00 0C */ bne lbl_80356020
|
||||
/* 80356018 38 00 00 00 */ li r0, 0
|
||||
/* 8035601C 48 00 00 08 */ b lbl_80356024
|
||||
lbl_80356020:
|
||||
/* 80356020 38 00 00 01 */ li r0, 1
|
||||
lbl_80356024:
|
||||
/* 80356024 7C 1E 03 78 */ mr r30, r0
|
||||
lbl_80356028:
|
||||
/* 80356028 28 1D 00 00 */ cmplwi r29, 0
|
||||
/* 8035602C 41 82 00 08 */ beq lbl_80356034
|
||||
/* 80356030 93 DD 00 00 */ stw r30, 0(r29)
|
||||
lbl_80356034:
|
||||
/* 80356034 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80356038 80 01 00 3C */ lwz r0, 0x3c(r1)
|
||||
/* 8035603C 83 E1 00 34 */ lwz r31, 0x34(r1)
|
||||
/* 80356040 83 C1 00 30 */ lwz r30, 0x30(r1)
|
||||
/* 80356044 83 A1 00 2C */ lwz r29, 0x2c(r1)
|
||||
/* 80356048 38 21 00 38 */ addi r1, r1, 0x38
|
||||
/* 8035604C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80356050 4E 80 00 20 */ blr
|
||||
@@ -1,182 +0,0 @@
|
||||
lbl_80356054:
|
||||
/* 80356054 7C 08 02 A6 */ mflr r0
|
||||
/* 80356058 38 A0 00 00 */ li r5, 0
|
||||
/* 8035605C 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80356060 94 21 FF D8 */ stwu r1, -0x28(r1)
|
||||
/* 80356064 93 E1 00 24 */ stw r31, 0x24(r1)
|
||||
/* 80356068 3B E0 00 00 */ li r31, 0
|
||||
/* 8035606C 93 C1 00 20 */ stw r30, 0x20(r1)
|
||||
/* 80356070 3B C0 00 00 */ li r30, 0
|
||||
/* 80356074 93 A1 00 1C */ stw r29, 0x1c(r1)
|
||||
/* 80356078 3B A4 00 00 */ addi r29, r4, 0
|
||||
/* 8035607C 38 81 00 10 */ addi r4, r1, 0x10
|
||||
lbl_80356080:
|
||||
/* 80356080 39 00 1F FC */ li r8, 0x1ffc
|
||||
/* 80356084 80 C3 00 80 */ lwz r6, 0x80(r3)
|
||||
/* 80356088 38 05 00 03 */ addi r0, r5, 3
|
||||
/* 8035608C 7D 08 0E 70 */ srawi r8, r8, 1
|
||||
/* 80356090 54 00 68 24 */ slwi r0, r0, 0xd
|
||||
/* 80356094 7C E6 02 14 */ add r7, r6, r0
|
||||
/* 80356098 7D 08 01 95 */ addze. r8, r8
|
||||
/* 8035609C 90 E4 00 00 */ stw r7, 0(r4)
|
||||
/* 803560A0 38 C7 00 04 */ addi r6, r7, 4
|
||||
/* 803560A4 39 60 00 00 */ li r11, 0
|
||||
/* 803560A8 39 40 00 00 */ li r10, 0
|
||||
/* 803560AC 40 81 00 BC */ ble lbl_80356168
|
||||
/* 803560B0 55 00 E8 FF */ rlwinm. r0, r8, 0x1d, 3, 0x1f
|
||||
/* 803560B4 7C 09 03 A6 */ mtctr r0
|
||||
/* 803560B8 41 82 00 94 */ beq lbl_8035614C
|
||||
lbl_803560BC:
|
||||
/* 803560BC A1 26 00 00 */ lhz r9, 0(r6)
|
||||
/* 803560C0 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 803560C4 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 803560C8 A1 26 00 02 */ lhz r9, 2(r6)
|
||||
/* 803560CC 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 803560D0 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 803560D4 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 803560D8 A1 26 00 04 */ lhz r9, 4(r6)
|
||||
/* 803560DC 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 803560E0 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 803560E4 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 803560E8 A1 26 00 06 */ lhz r9, 6(r6)
|
||||
/* 803560EC 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 803560F0 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 803560F4 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 803560F8 A1 26 00 08 */ lhz r9, 8(r6)
|
||||
/* 803560FC 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 80356100 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 80356104 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 80356108 A1 26 00 0A */ lhz r9, 0xa(r6)
|
||||
/* 8035610C 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 80356110 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 80356114 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 80356118 A1 26 00 0C */ lhz r9, 0xc(r6)
|
||||
/* 8035611C 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 80356120 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 80356124 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 80356128 A1 26 00 0E */ lhz r9, 0xe(r6)
|
||||
/* 8035612C 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 80356130 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 80356134 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 80356138 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 8035613C 38 C6 00 10 */ addi r6, r6, 0x10
|
||||
/* 80356140 42 00 FF 7C */ bdnz lbl_803560BC
|
||||
/* 80356144 71 08 00 07 */ andi. r8, r8, 7
|
||||
/* 80356148 41 82 00 20 */ beq lbl_80356168
|
||||
lbl_8035614C:
|
||||
/* 8035614C 7D 09 03 A6 */ mtctr r8
|
||||
lbl_80356150:
|
||||
/* 80356150 A1 26 00 00 */ lhz r9, 0(r6)
|
||||
/* 80356154 38 C6 00 02 */ addi r6, r6, 2
|
||||
/* 80356158 7D 20 48 F8 */ nor r0, r9, r9
|
||||
/* 8035615C 7D 4A 4A 14 */ add r10, r10, r9
|
||||
/* 80356160 7D 6B 02 14 */ add r11, r11, r0
|
||||
/* 80356164 42 00 FF EC */ bdnz lbl_80356150
|
||||
lbl_80356168:
|
||||
/* 80356168 55 40 04 3E */ clrlwi r0, r10, 0x10
|
||||
/* 8035616C 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 80356170 40 82 00 08 */ bne lbl_80356178
|
||||
/* 80356174 39 40 00 00 */ li r10, 0
|
||||
lbl_80356178:
|
||||
/* 80356178 55 60 04 3E */ clrlwi r0, r11, 0x10
|
||||
/* 8035617C 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 80356180 40 82 00 08 */ bne lbl_80356188
|
||||
/* 80356184 39 60 00 00 */ li r11, 0
|
||||
lbl_80356188:
|
||||
/* 80356188 A0 C7 00 00 */ lhz r6, 0(r7)
|
||||
/* 8035618C 55 40 04 3E */ clrlwi r0, r10, 0x10
|
||||
/* 80356190 7C 06 00 40 */ cmplw r6, r0
|
||||
/* 80356194 40 82 00 14 */ bne lbl_803561A8
|
||||
/* 80356198 A0 C7 00 02 */ lhz r6, 2(r7)
|
||||
/* 8035619C 55 60 04 3E */ clrlwi r0, r11, 0x10
|
||||
/* 803561A0 7C 06 00 40 */ cmplw r6, r0
|
||||
/* 803561A4 41 82 00 18 */ beq lbl_803561BC
|
||||
lbl_803561A8:
|
||||
/* 803561A8 38 00 00 00 */ li r0, 0
|
||||
/* 803561AC 90 03 00 88 */ stw r0, 0x88(r3)
|
||||
/* 803561B0 3B C5 00 00 */ addi r30, r5, 0
|
||||
/* 803561B4 3B FF 00 01 */ addi r31, r31, 1
|
||||
/* 803561B8 48 00 00 5C */ b lbl_80356214
|
||||
lbl_803561BC:
|
||||
/* 803561BC A1 03 00 10 */ lhz r8, 0x10(r3)
|
||||
/* 803561C0 38 C7 00 0A */ addi r6, r7, 0xa
|
||||
/* 803561C4 39 40 00 00 */ li r10, 0
|
||||
/* 803561C8 39 20 00 05 */ li r9, 5
|
||||
/* 803561CC 48 00 00 1C */ b lbl_803561E8
|
||||
lbl_803561D0:
|
||||
/* 803561D0 A0 06 00 00 */ lhz r0, 0(r6)
|
||||
/* 803561D4 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 803561D8 40 82 00 08 */ bne lbl_803561E0
|
||||
/* 803561DC 39 4A 00 01 */ addi r10, r10, 1
|
||||
lbl_803561E0:
|
||||
/* 803561E0 38 C6 00 02 */ addi r6, r6, 2
|
||||
/* 803561E4 39 29 00 01 */ addi r9, r9, 1
|
||||
lbl_803561E8:
|
||||
/* 803561E8 55 20 04 3E */ clrlwi r0, r9, 0x10
|
||||
/* 803561EC 7C 00 40 40 */ cmplw r0, r8
|
||||
/* 803561F0 41 80 FF E0 */ blt lbl_803561D0
|
||||
/* 803561F4 A0 07 00 06 */ lhz r0, 6(r7)
|
||||
/* 803561F8 55 46 04 3E */ clrlwi r6, r10, 0x10
|
||||
/* 803561FC 7C 06 00 40 */ cmplw r6, r0
|
||||
/* 80356200 41 82 00 14 */ beq lbl_80356214
|
||||
/* 80356204 38 00 00 00 */ li r0, 0
|
||||
/* 80356208 90 03 00 88 */ stw r0, 0x88(r3)
|
||||
/* 8035620C 3B C5 00 00 */ addi r30, r5, 0
|
||||
/* 80356210 3B FF 00 01 */ addi r31, r31, 1
|
||||
lbl_80356214:
|
||||
/* 80356214 38 A5 00 01 */ addi r5, r5, 1
|
||||
/* 80356218 2C 05 00 02 */ cmpwi r5, 2
|
||||
/* 8035621C 38 84 00 04 */ addi r4, r4, 4
|
||||
/* 80356220 41 80 FE 60 */ blt lbl_80356080
|
||||
/* 80356224 2C 1F 00 00 */ cmpwi r31, 0
|
||||
/* 80356228 40 82 00 84 */ bne lbl_803562AC
|
||||
/* 8035622C 80 83 00 88 */ lwz r4, 0x88(r3)
|
||||
/* 80356230 28 04 00 00 */ cmplwi r4, 0
|
||||
/* 80356234 40 82 00 5C */ bne lbl_80356290
|
||||
/* 80356238 80 A1 00 14 */ lwz r5, 0x14(r1)
|
||||
/* 8035623C 80 81 00 10 */ lwz r4, 0x10(r1)
|
||||
/* 80356240 A8 A5 00 04 */ lha r5, 4(r5)
|
||||
/* 80356244 A8 04 00 04 */ lha r0, 4(r4)
|
||||
/* 80356248 7C 05 00 51 */ subf. r0, r5, r0
|
||||
/* 8035624C 40 80 00 0C */ bge lbl_80356258
|
||||
/* 80356250 3B C0 00 00 */ li r30, 0
|
||||
/* 80356254 48 00 00 08 */ b lbl_8035625C
|
||||
lbl_80356258:
|
||||
/* 80356258 3B C0 00 01 */ li r30, 1
|
||||
lbl_8035625C:
|
||||
/* 8035625C 57 C0 10 3A */ slwi r0, r30, 2
|
||||
/* 80356260 38 C1 00 10 */ addi r6, r1, 0x10
|
||||
/* 80356264 7C C6 02 14 */ add r6, r6, r0
|
||||
/* 80356268 80 86 00 00 */ lwz r4, 0(r6)
|
||||
/* 8035626C 6B C0 00 01 */ xori r0, r30, 1
|
||||
/* 80356270 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 80356274 90 83 00 88 */ stw r4, 0x88(r3)
|
||||
/* 80356278 38 81 00 10 */ addi r4, r1, 0x10
|
||||
/* 8035627C 38 A0 20 00 */ li r5, 0x2000
|
||||
/* 80356280 80 66 00 00 */ lwz r3, 0(r6)
|
||||
/* 80356284 7C 84 00 2E */ lwzx r4, r4, r0
|
||||
/* 80356288 4B CA D2 B9 */ bl memcpy
|
||||
/* 8035628C 48 00 00 20 */ b lbl_803562AC
|
||||
lbl_80356290:
|
||||
/* 80356290 80 01 00 10 */ lwz r0, 0x10(r1)
|
||||
/* 80356294 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 80356298 40 82 00 0C */ bne lbl_803562A4
|
||||
/* 8035629C 38 00 00 00 */ li r0, 0
|
||||
/* 803562A0 48 00 00 08 */ b lbl_803562A8
|
||||
lbl_803562A4:
|
||||
/* 803562A4 38 00 00 01 */ li r0, 1
|
||||
lbl_803562A8:
|
||||
/* 803562A8 7C 1E 03 78 */ mr r30, r0
|
||||
lbl_803562AC:
|
||||
/* 803562AC 28 1D 00 00 */ cmplwi r29, 0
|
||||
/* 803562B0 41 82 00 08 */ beq lbl_803562B8
|
||||
/* 803562B4 93 DD 00 00 */ stw r30, 0(r29)
|
||||
lbl_803562B8:
|
||||
/* 803562B8 7F E3 FB 78 */ mr r3, r31
|
||||
/* 803562BC 80 01 00 2C */ lwz r0, 0x2c(r1)
|
||||
/* 803562C0 83 E1 00 24 */ lwz r31, 0x24(r1)
|
||||
/* 803562C4 83 C1 00 20 */ lwz r30, 0x20(r1)
|
||||
/* 803562C8 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
||||
/* 803562CC 38 21 00 28 */ addi r1, r1, 0x28
|
||||
/* 803562D0 7C 08 03 A6 */ mtlr r0
|
||||
/* 803562D4 4E 80 00 20 */ blr
|
||||
@@ -1,176 +0,0 @@
|
||||
lbl_80355B90:
|
||||
/* 80355B90 7C 08 02 A6 */ mflr r0
|
||||
/* 80355B94 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80355B98 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 80355B9C BF 21 00 14 */ stmw r25, 0x14(r1)
|
||||
/* 80355BA0 7C 7A 1B 78 */ mr r26, r3
|
||||
/* 80355BA4 80 63 00 80 */ lwz r3, 0x80(r3)
|
||||
/* 80355BA8 A0 03 00 20 */ lhz r0, 0x20(r3)
|
||||
/* 80355BAC 3B 63 00 00 */ addi r27, r3, 0
|
||||
/* 80355BB0 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80355BB4 40 82 00 14 */ bne lbl_80355BC8
|
||||
/* 80355BB8 A0 7B 00 22 */ lhz r3, 0x22(r27)
|
||||
/* 80355BBC A0 1A 00 08 */ lhz r0, 8(r26)
|
||||
/* 80355BC0 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 80355BC4 41 82 00 0C */ beq lbl_80355BD0
|
||||
lbl_80355BC8:
|
||||
/* 80355BC8 38 60 FF FA */ li r3, -6
|
||||
/* 80355BCC 48 00 02 34 */ b lbl_80355E00
|
||||
lbl_80355BD0:
|
||||
/* 80355BD0 38 00 01 FC */ li r0, 0x1fc
|
||||
/* 80355BD4 7C 00 0E 70 */ srawi r0, r0, 1
|
||||
/* 80355BD8 7C 00 01 95 */ addze. r0, r0
|
||||
/* 80355BDC 38 9B 00 00 */ addi r4, r27, 0
|
||||
/* 80355BE0 38 E0 00 00 */ li r7, 0
|
||||
/* 80355BE4 7C 03 03 78 */ mr r3, r0
|
||||
/* 80355BE8 38 C0 00 00 */ li r6, 0
|
||||
/* 80355BEC 40 81 00 BC */ ble lbl_80355CA8
|
||||
/* 80355BF0 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
|
||||
/* 80355BF4 7C 09 03 A6 */ mtctr r0
|
||||
/* 80355BF8 41 82 00 94 */ beq lbl_80355C8C
|
||||
lbl_80355BFC:
|
||||
/* 80355BFC A0 A4 00 00 */ lhz r5, 0(r4)
|
||||
/* 80355C00 7C A0 28 F8 */ nor r0, r5, r5
|
||||
/* 80355C04 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 80355C08 A0 A4 00 02 */ lhz r5, 2(r4)
|
||||
/* 80355C0C 7C E7 02 14 */ add r7, r7, r0
|
||||
/* 80355C10 7C A0 28 F8 */ nor r0, r5, r5
|
||||
/* 80355C14 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 80355C18 A0 A4 00 04 */ lhz r5, 4(r4)
|
||||
/* 80355C1C 7C E7 02 14 */ add r7, r7, r0
|
||||
/* 80355C20 7C A0 28 F8 */ nor r0, r5, r5
|
||||
/* 80355C24 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 80355C28 A0 A4 00 06 */ lhz r5, 6(r4)
|
||||
/* 80355C2C 7C E7 02 14 */ add r7, r7, r0
|
||||
/* 80355C30 7C A0 28 F8 */ nor r0, r5, r5
|
||||
/* 80355C34 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 80355C38 A0 A4 00 08 */ lhz r5, 8(r4)
|
||||
/* 80355C3C 7C E7 02 14 */ add r7, r7, r0
|
||||
/* 80355C40 7C A0 28 F8 */ nor r0, r5, r5
|
||||
/* 80355C44 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 80355C48 A0 A4 00 0A */ lhz r5, 0xa(r4)
|
||||
/* 80355C4C 7C E7 02 14 */ add r7, r7, r0
|
||||
/* 80355C50 7C A0 28 F8 */ nor r0, r5, r5
|
||||
/* 80355C54 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 80355C58 A0 A4 00 0C */ lhz r5, 0xc(r4)
|
||||
/* 80355C5C 7C E7 02 14 */ add r7, r7, r0
|
||||
/* 80355C60 7C A0 28 F8 */ nor r0, r5, r5
|
||||
/* 80355C64 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 80355C68 A0 A4 00 0E */ lhz r5, 0xe(r4)
|
||||
/* 80355C6C 7C E7 02 14 */ add r7, r7, r0
|
||||
/* 80355C70 7C A0 28 F8 */ nor r0, r5, r5
|
||||
/* 80355C74 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 80355C78 7C E7 02 14 */ add r7, r7, r0
|
||||
/* 80355C7C 38 84 00 10 */ addi r4, r4, 0x10
|
||||
/* 80355C80 42 00 FF 7C */ bdnz lbl_80355BFC
|
||||
/* 80355C84 70 63 00 07 */ andi. r3, r3, 7
|
||||
/* 80355C88 41 82 00 20 */ beq lbl_80355CA8
|
||||
lbl_80355C8C:
|
||||
/* 80355C8C 7C 69 03 A6 */ mtctr r3
|
||||
lbl_80355C90:
|
||||
/* 80355C90 A0 A4 00 00 */ lhz r5, 0(r4)
|
||||
/* 80355C94 38 84 00 02 */ addi r4, r4, 2
|
||||
/* 80355C98 7C A0 28 F8 */ nor r0, r5, r5
|
||||
/* 80355C9C 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 80355CA0 7C E7 02 14 */ add r7, r7, r0
|
||||
/* 80355CA4 42 00 FF EC */ bdnz lbl_80355C90
|
||||
lbl_80355CA8:
|
||||
/* 80355CA8 54 C0 04 3E */ clrlwi r0, r6, 0x10
|
||||
/* 80355CAC 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 80355CB0 40 82 00 08 */ bne lbl_80355CB8
|
||||
/* 80355CB4 38 C0 00 00 */ li r6, 0
|
||||
lbl_80355CB8:
|
||||
/* 80355CB8 54 E0 04 3E */ clrlwi r0, r7, 0x10
|
||||
/* 80355CBC 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 80355CC0 40 82 00 08 */ bne lbl_80355CC8
|
||||
/* 80355CC4 38 E0 00 00 */ li r7, 0
|
||||
lbl_80355CC8:
|
||||
/* 80355CC8 A0 7B 01 FC */ lhz r3, 0x1fc(r27)
|
||||
/* 80355CCC 54 C0 04 3E */ clrlwi r0, r6, 0x10
|
||||
/* 80355CD0 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 80355CD4 40 82 00 14 */ bne lbl_80355CE8
|
||||
/* 80355CD8 A0 7B 01 FE */ lhz r3, 0x1fe(r27)
|
||||
/* 80355CDC 54 E0 04 3E */ clrlwi r0, r7, 0x10
|
||||
/* 80355CE0 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 80355CE4 41 82 00 0C */ beq lbl_80355CF0
|
||||
lbl_80355CE8:
|
||||
/* 80355CE8 38 60 FF FA */ li r3, -6
|
||||
/* 80355CEC 48 00 01 14 */ b lbl_80355E00
|
||||
lbl_80355CF0:
|
||||
/* 80355CF0 83 FB 00 0C */ lwz r31, 0xc(r27)
|
||||
/* 80355CF4 83 9B 00 10 */ lwz r28, 0x10(r27)
|
||||
/* 80355CF8 4B FE A4 A9 */ bl __OSLockSramEx
|
||||
/* 80355CFC 3C 80 80 45 */ lis r4, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 80355D00 38 04 CB C0 */ addi r0, r4, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 80355D04 3C 80 78 78 */ lis r4, 0x7878 /* 0x78787879@ha */
|
||||
/* 80355D08 7C 00 D0 50 */ subf r0, r0, r26
|
||||
/* 80355D0C 38 84 78 79 */ addi r4, r4, 0x7879 /* 0x78787879@l */
|
||||
/* 80355D10 7C 04 00 96 */ mulhw r0, r4, r0
|
||||
/* 80355D14 7C 00 3E 70 */ srawi r0, r0, 7
|
||||
/* 80355D18 54 04 0F FE */ srwi r4, r0, 0x1f
|
||||
/* 80355D1C 7C 00 22 14 */ add r0, r0, r4
|
||||
/* 80355D20 1C 00 00 0C */ mulli r0, r0, 0xc
|
||||
/* 80355D24 3C 80 41 C6 */ lis r4, 0x41C6 /* 0x41C64E6D@ha */
|
||||
/* 80355D28 3B 3B 00 00 */ addi r25, r27, 0
|
||||
/* 80355D2C 7F A3 02 14 */ add r29, r3, r0
|
||||
/* 80355D30 3B C4 4E 6D */ addi r30, r4, 0x4E6D /* 0x41C64E6D@l */
|
||||
/* 80355D34 3B 40 00 00 */ li r26, 0
|
||||
lbl_80355D38:
|
||||
/* 80355D38 7C BF F1 D6 */ mullw r5, r31, r30
|
||||
/* 80355D3C 7C 7C F0 16 */ mulhwu r3, r28, r30
|
||||
/* 80355D40 3B E0 00 00 */ li r31, 0
|
||||
/* 80355D44 7C A5 1A 14 */ add r5, r5, r3
|
||||
/* 80355D48 7C 7C F9 D6 */ mullw r3, r28, r31
|
||||
/* 80355D4C 7C 1C F1 D6 */ mullw r0, r28, r30
|
||||
/* 80355D50 3B 80 30 39 */ li r28, 0x3039
|
||||
/* 80355D54 7C 80 E0 14 */ addc r4, r0, r28
|
||||
/* 80355D58 7C 05 1A 14 */ add r0, r5, r3
|
||||
/* 80355D5C 7C 60 F9 14 */ adde r3, r0, r31
|
||||
/* 80355D60 38 A0 00 10 */ li r5, 0x10
|
||||
/* 80355D64 48 00 C9 31 */ bl __shr2i
|
||||
/* 80355D68 88 1D 00 00 */ lbz r0, 0(r29)
|
||||
/* 80355D6C 88 D9 00 00 */ lbz r6, 0(r25)
|
||||
/* 80355D70 7C 04 00 14 */ addc r0, r4, r0
|
||||
/* 80355D74 54 00 06 3E */ clrlwi r0, r0, 0x18
|
||||
/* 80355D78 7C 06 00 40 */ cmplw r6, r0
|
||||
/* 80355D7C 41 82 00 14 */ beq lbl_80355D90
|
||||
/* 80355D80 38 60 00 00 */ li r3, 0
|
||||
/* 80355D84 4B FE A7 D9 */ bl __OSUnlockSramEx
|
||||
/* 80355D88 38 60 FF FA */ li r3, -6
|
||||
/* 80355D8C 48 00 00 74 */ b lbl_80355E00
|
||||
lbl_80355D90:
|
||||
/* 80355D90 7C A3 F1 D6 */ mullw r5, r3, r30
|
||||
/* 80355D94 7C 64 F0 16 */ mulhwu r3, r4, r30
|
||||
/* 80355D98 7C A5 1A 14 */ add r5, r5, r3
|
||||
/* 80355D9C 7C 64 F9 D6 */ mullw r3, r4, r31
|
||||
/* 80355DA0 7C 04 F1 D6 */ mullw r0, r4, r30
|
||||
/* 80355DA4 7C 80 E0 14 */ addc r4, r0, r28
|
||||
/* 80355DA8 7C 05 1A 14 */ add r0, r5, r3
|
||||
/* 80355DAC 7C 60 F9 14 */ adde r3, r0, r31
|
||||
/* 80355DB0 38 A0 00 10 */ li r5, 0x10
|
||||
/* 80355DB4 48 00 C8 E1 */ bl __shr2i
|
||||
/* 80355DB8 3B 5A 00 01 */ addi r26, r26, 1
|
||||
/* 80355DBC 2C 1A 00 0C */ cmpwi r26, 0xc
|
||||
/* 80355DC0 38 00 7F FF */ li r0, 0x7fff
|
||||
/* 80355DC4 7C 9C 00 38 */ and r28, r4, r0
|
||||
/* 80355DC8 7C 7F F8 38 */ and r31, r3, r31
|
||||
/* 80355DCC 3B BD 00 01 */ addi r29, r29, 1
|
||||
/* 80355DD0 3B 39 00 01 */ addi r25, r25, 1
|
||||
/* 80355DD4 41 80 FF 64 */ blt lbl_80355D38
|
||||
/* 80355DD8 38 60 00 00 */ li r3, 0
|
||||
/* 80355DDC 4B FE A7 81 */ bl __OSUnlockSramEx
|
||||
/* 80355DE0 4B FF DD 95 */ bl __CARDGetFontEncode
|
||||
/* 80355DE4 A0 1B 00 24 */ lhz r0, 0x24(r27)
|
||||
/* 80355DE8 54 63 04 3E */ clrlwi r3, r3, 0x10
|
||||
/* 80355DEC 7C 00 18 40 */ cmplw r0, r3
|
||||
/* 80355DF0 41 82 00 0C */ beq lbl_80355DFC
|
||||
/* 80355DF4 38 60 FF F3 */ li r3, -13
|
||||
/* 80355DF8 48 00 00 08 */ b lbl_80355E00
|
||||
lbl_80355DFC:
|
||||
/* 80355DFC 38 60 00 00 */ li r3, 0
|
||||
lbl_80355E00:
|
||||
/* 80355E00 BB 21 00 14 */ lmw r25, 0x14(r1)
|
||||
/* 80355E04 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 80355E08 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 80355E0C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80355E10 4E 80 00 20 */ blr
|
||||
@@ -1,54 +0,0 @@
|
||||
lbl_80355854:
|
||||
/* 80355854 7C 08 02 A6 */ mflr r0
|
||||
/* 80355858 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8035585C 94 21 FF D8 */ stwu r1, -0x28(r1)
|
||||
/* 80355860 93 E1 00 24 */ stw r31, 0x24(r1)
|
||||
/* 80355864 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 80355868 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 8035586C 93 C1 00 20 */ stw r30, 0x20(r1)
|
||||
/* 80355870 1C BF 01 10 */ mulli r5, r31, 0x110
|
||||
/* 80355874 93 A1 00 1C */ stw r29, 0x1c(r1)
|
||||
/* 80355878 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 8035587C 7C 9D 23 79 */ or. r29, r4, r4
|
||||
/* 80355880 7F C0 2A 14 */ add r30, r0, r5
|
||||
/* 80355884 41 80 00 3C */ blt lbl_803558C0
|
||||
/* 80355888 80 BE 00 84 */ lwz r5, 0x84(r30)
|
||||
/* 8035588C 3C 60 80 35 */ lis r3, WriteCallback@ha /* 0x80355784@ha */
|
||||
/* 80355890 80 1E 00 80 */ lwz r0, 0x80(r30)
|
||||
/* 80355894 38 E3 57 84 */ addi r7, r3, WriteCallback@l /* 0x80355784@l */
|
||||
/* 80355898 80 7E 00 0C */ lwz r3, 0xc(r30)
|
||||
/* 8035589C 7C 00 28 50 */ subf r0, r0, r5
|
||||
/* 803558A0 54 00 9B 7E */ srwi r0, r0, 0xd
|
||||
/* 803558A4 7C 83 01 D6 */ mullw r4, r3, r0
|
||||
/* 803558A8 38 C5 00 00 */ addi r6, r5, 0
|
||||
/* 803558AC 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 803558B0 38 A0 20 00 */ li r5, 0x2000
|
||||
/* 803558B4 4B FF FA F9 */ bl __CARDWrite
|
||||
/* 803558B8 7C 7D 1B 79 */ or. r29, r3, r3
|
||||
/* 803558BC 40 80 00 44 */ bge lbl_80355900
|
||||
lbl_803558C0:
|
||||
/* 803558C0 80 1E 00 D0 */ lwz r0, 0xd0(r30)
|
||||
/* 803558C4 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 803558C8 40 82 00 10 */ bne lbl_803558D8
|
||||
/* 803558CC 38 7E 00 00 */ addi r3, r30, 0
|
||||
/* 803558D0 38 9D 00 00 */ addi r4, r29, 0
|
||||
/* 803558D4 4B FF E3 99 */ bl __CARDPutControlBlock
|
||||
lbl_803558D8:
|
||||
/* 803558D8 80 1E 00 D8 */ lwz r0, 0xd8(r30)
|
||||
/* 803558DC 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 803558E0 7C 0C 03 78 */ mr r12, r0
|
||||
/* 803558E4 41 82 00 1C */ beq lbl_80355900
|
||||
/* 803558E8 38 00 00 00 */ li r0, 0
|
||||
/* 803558EC 7D 88 03 A6 */ mtlr r12
|
||||
/* 803558F0 90 1E 00 D8 */ stw r0, 0xd8(r30)
|
||||
/* 803558F4 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 803558F8 38 9D 00 00 */ addi r4, r29, 0
|
||||
/* 803558FC 4E 80 00 21 */ blrl
|
||||
lbl_80355900:
|
||||
/* 80355900 80 01 00 2C */ lwz r0, 0x2c(r1)
|
||||
/* 80355904 83 E1 00 24 */ lwz r31, 0x24(r1)
|
||||
/* 80355908 83 C1 00 20 */ lwz r30, 0x20(r1)
|
||||
/* 8035590C 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
||||
/* 80355910 38 21 00 28 */ addi r1, r1, 0x28
|
||||
/* 80355914 7C 08 03 A6 */ mtlr r0
|
||||
/* 80355918 4E 80 00 20 */ blr
|
||||
@@ -1,52 +0,0 @@
|
||||
lbl_8035591C:
|
||||
/* 8035591C 7C 08 02 A6 */ mflr r0
|
||||
/* 80355920 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80355924 94 21 FF D8 */ stwu r1, -0x28(r1)
|
||||
/* 80355928 93 E1 00 24 */ stw r31, 0x24(r1)
|
||||
/* 8035592C 93 C1 00 20 */ stw r30, 0x20(r1)
|
||||
/* 80355930 93 A1 00 1C */ stw r29, 0x1c(r1)
|
||||
/* 80355934 3B A4 00 00 */ addi r29, r4, 0
|
||||
/* 80355938 93 81 00 18 */ stw r28, 0x18(r1)
|
||||
/* 8035593C 3B 83 00 00 */ addi r28, r3, 0
|
||||
/* 80355940 1C BC 01 10 */ mulli r5, r28, 0x110
|
||||
/* 80355944 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 80355948 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 8035594C 7F C0 2A 14 */ add r30, r0, r5
|
||||
/* 80355950 80 1E 00 00 */ lwz r0, 0(r30)
|
||||
/* 80355954 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 80355958 40 82 00 0C */ bne lbl_80355964
|
||||
/* 8035595C 38 60 FF FD */ li r3, -3
|
||||
/* 80355960 48 00 00 60 */ b lbl_803559C0
|
||||
lbl_80355964:
|
||||
/* 80355964 83 FE 00 84 */ lwz r31, 0x84(r30)
|
||||
/* 80355968 38 80 1F FC */ li r4, 0x1ffc
|
||||
/* 8035596C A8 BF 1F FA */ lha r5, 0x1ffa(r31)
|
||||
/* 80355970 38 DF 1F C0 */ addi r6, r31, 0x1fc0
|
||||
/* 80355974 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 80355978 38 05 00 01 */ addi r0, r5, 1
|
||||
/* 8035597C B0 1F 1F FA */ sth r0, 0x1ffa(r31)
|
||||
/* 80355980 38 A6 00 3C */ addi r5, r6, 0x3c
|
||||
/* 80355984 38 C6 00 3E */ addi r6, r6, 0x3e
|
||||
/* 80355988 48 00 00 59 */ bl __CARDCheckSum
|
||||
/* 8035598C 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 80355990 38 80 20 00 */ li r4, 0x2000
|
||||
/* 80355994 4B FE 5C 49 */ bl DCStoreRange
|
||||
/* 80355998 93 BE 00 D8 */ stw r29, 0xd8(r30)
|
||||
/* 8035599C 3C 60 80 35 */ lis r3, EraseCallback@ha /* 0x80355854@ha */
|
||||
/* 803559A0 38 A3 58 54 */ addi r5, r3, EraseCallback@l /* 0x80355854@l */
|
||||
/* 803559A4 80 1E 00 80 */ lwz r0, 0x80(r30)
|
||||
/* 803559A8 7F 83 E3 78 */ mr r3, r28
|
||||
/* 803559AC 80 9E 00 0C */ lwz r4, 0xc(r30)
|
||||
/* 803559B0 7C 00 F8 50 */ subf r0, r0, r31
|
||||
/* 803559B4 54 00 9B 7E */ srwi r0, r0, 0xd
|
||||
/* 803559B8 7C 84 01 D6 */ mullw r4, r4, r0
|
||||
/* 803559BC 4B FF DF FD */ bl __CARDEraseSector
|
||||
lbl_803559C0:
|
||||
/* 803559C0 80 01 00 2C */ lwz r0, 0x2c(r1)
|
||||
/* 803559C4 83 E1 00 24 */ lwz r31, 0x24(r1)
|
||||
/* 803559C8 83 C1 00 20 */ lwz r30, 0x20(r1)
|
||||
/* 803559CC 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
||||
/* 803559D0 83 81 00 18 */ lwz r28, 0x18(r1)
|
||||
/* 803559D4 38 21 00 28 */ addi r1, r1, 0x28
|
||||
/* 803559D8 7C 08 03 A6 */ mtlr r0
|
||||
/* 803559DC 4E 80 00 20 */ blr
|
||||
@@ -1,422 +0,0 @@
|
||||
lbl_803575C8:
|
||||
/* 803575C8 7C 08 02 A6 */ mflr r0
|
||||
/* 803575CC 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 803575D0 94 21 FF A8 */ stwu r1, -0x58(r1)
|
||||
/* 803575D4 BE 41 00 20 */ stmw r18, 0x20(r1)
|
||||
/* 803575D8 3A 84 00 00 */ addi r20, r4, 0
|
||||
/* 803575DC 3A C3 00 00 */ addi r22, r3, 0
|
||||
/* 803575E0 3A 65 00 00 */ addi r19, r5, 0
|
||||
/* 803575E4 38 81 00 18 */ addi r4, r1, 0x18
|
||||
/* 803575E8 4B FF C5 CD */ bl __CARDGetControlBlock
|
||||
/* 803575EC 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 803575F0 40 80 00 08 */ bge lbl_803575F8
|
||||
/* 803575F4 48 00 06 18 */ b lbl_80357C0C
|
||||
lbl_803575F8:
|
||||
/* 803575F8 80 61 00 18 */ lwz r3, 0x18(r1)
|
||||
/* 803575FC 38 80 00 FF */ li r4, 0xff
|
||||
/* 80357600 38 A0 20 00 */ li r5, 0x2000
|
||||
/* 80357604 83 63 00 80 */ lwz r27, 0x80(r3)
|
||||
/* 80357608 7F 63 DB 78 */ mr r3, r27
|
||||
/* 8035760C 4B CA BE 4D */ bl memset
|
||||
/* 80357610 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC00206E@ha */
|
||||
/* 80357614 A2 43 20 6E */ lhz r18, 0x206E(r3) /* 0xCC00206E@l */
|
||||
/* 80357618 B2 9B 00 24 */ sth r20, 0x24(r27)
|
||||
/* 8035761C 4B FE 8B 29 */ bl __OSLockSram
|
||||
/* 80357620 80 03 00 0C */ lwz r0, 0xc(r3)
|
||||
/* 80357624 90 1B 00 14 */ stw r0, 0x14(r27)
|
||||
/* 80357628 88 03 00 12 */ lbz r0, 0x12(r3)
|
||||
/* 8035762C 38 60 00 00 */ li r3, 0
|
||||
/* 80357630 90 1B 00 18 */ stw r0, 0x18(r27)
|
||||
/* 80357634 4B FE 8F 05 */ bl __OSUnlockSram
|
||||
/* 80357638 4B FE B0 C5 */ bl OSGetTime
|
||||
/* 8035763C 3A A4 00 00 */ addi r21, r4, 0
|
||||
/* 80357640 3A 83 00 00 */ addi r20, r3, 0
|
||||
/* 80357644 3B 55 00 00 */ addi r26, r21, 0
|
||||
/* 80357648 3B D4 00 00 */ addi r30, r20, 0
|
||||
/* 8035764C 4B FE 8B 55 */ bl __OSLockSramEx
|
||||
/* 80357650 1C 16 00 0C */ mulli r0, r22, 0xc
|
||||
/* 80357654 7F 23 02 14 */ add r25, r3, r0
|
||||
/* 80357658 3C 60 41 C6 */ lis r3, 0x41C6 /* 0x41C64E6D@ha */
|
||||
/* 8035765C 3B 19 00 00 */ addi r24, r25, 0
|
||||
/* 80357660 3B E3 4E 6D */ addi r31, r3, 0x4E6D /* 0x41C64E6D@l */
|
||||
/* 80357664 3B 80 00 00 */ li r28, 0
|
||||
/* 80357668 3A E0 00 04 */ li r23, 4
|
||||
/* 8035766C 48 00 03 74 */ b lbl_803579E0
|
||||
lbl_80357670:
|
||||
/* 80357670 7C BE F9 D6 */ mullw r5, r30, r31
|
||||
/* 80357674 7C 7A F8 16 */ mulhwu r3, r26, r31
|
||||
/* 80357678 3B C0 00 00 */ li r30, 0
|
||||
/* 8035767C 7C A5 1A 14 */ add r5, r5, r3
|
||||
/* 80357680 7C 7A F1 D6 */ mullw r3, r26, r30
|
||||
/* 80357684 7C 1A F9 D6 */ mullw r0, r26, r31
|
||||
/* 80357688 3B A0 30 39 */ li r29, 0x3039
|
||||
/* 8035768C 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 80357690 7C 05 1A 14 */ add r0, r5, r3
|
||||
/* 80357694 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 80357698 38 A0 00 10 */ li r5, 0x10
|
||||
/* 8035769C 48 00 AF F9 */ bl __shr2i
|
||||
/* 803576A0 7C C3 F9 D6 */ mullw r6, r3, r31
|
||||
/* 803576A4 88 18 00 00 */ lbz r0, 0(r24)
|
||||
/* 803576A8 7C A4 F8 16 */ mulhwu r5, r4, r31
|
||||
/* 803576AC 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 803576B0 7D 04 00 14 */ addc r8, r4, r0
|
||||
/* 803576B4 7F 87 07 34 */ extsh r7, r28
|
||||
/* 803576B8 7C A4 F1 D6 */ mullw r5, r4, r30
|
||||
/* 803576BC 7D 1B 39 AE */ stbx r8, r27, r7
|
||||
/* 803576C0 7C 04 F9 D6 */ mullw r0, r4, r31
|
||||
/* 803576C4 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 803576C8 7C 06 2A 14 */ add r0, r6, r5
|
||||
/* 803576CC 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 803576D0 38 A0 00 10 */ li r5, 0x10
|
||||
/* 803576D4 48 00 AF C1 */ bl __shr2i
|
||||
/* 803576D8 3B 40 7F FF */ li r26, 0x7fff
|
||||
/* 803576DC 7C 60 F0 38 */ and r0, r3, r30
|
||||
/* 803576E0 7C 84 D0 38 */ and r4, r4, r26
|
||||
/* 803576E4 7C A0 F9 D6 */ mullw r5, r0, r31
|
||||
/* 803576E8 7C 64 F8 16 */ mulhwu r3, r4, r31
|
||||
/* 803576EC 7C A5 1A 14 */ add r5, r5, r3
|
||||
/* 803576F0 7C 64 F1 D6 */ mullw r3, r4, r30
|
||||
/* 803576F4 7C 04 F9 D6 */ mullw r0, r4, r31
|
||||
/* 803576F8 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 803576FC 7C 05 1A 14 */ add r0, r5, r3
|
||||
/* 80357700 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 80357704 38 A0 00 10 */ li r5, 0x10
|
||||
/* 80357708 48 00 AF 8D */ bl __shr2i
|
||||
/* 8035770C 7C C3 F9 D6 */ mullw r6, r3, r31
|
||||
/* 80357710 7C A4 F8 16 */ mulhwu r5, r4, r31
|
||||
/* 80357714 39 3C 00 01 */ addi r9, r28, 1
|
||||
/* 80357718 7D 29 07 34 */ extsh r9, r9
|
||||
/* 8035771C 7C 19 48 AE */ lbzx r0, r25, r9
|
||||
/* 80357720 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 80357724 7C A4 F1 D6 */ mullw r5, r4, r30
|
||||
/* 80357728 7C E4 00 14 */ addc r7, r4, r0
|
||||
/* 8035772C 7C 04 F9 D6 */ mullw r0, r4, r31
|
||||
/* 80357730 7C FB 49 AE */ stbx r7, r27, r9
|
||||
/* 80357734 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 80357738 7C 06 2A 14 */ add r0, r6, r5
|
||||
/* 8035773C 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 80357740 38 A0 00 10 */ li r5, 0x10
|
||||
/* 80357744 48 00 AF 51 */ bl __shr2i
|
||||
/* 80357748 7C 60 F0 38 */ and r0, r3, r30
|
||||
/* 8035774C 7C 84 D0 38 */ and r4, r4, r26
|
||||
/* 80357750 7C A0 F9 D6 */ mullw r5, r0, r31
|
||||
/* 80357754 7C 64 F8 16 */ mulhwu r3, r4, r31
|
||||
/* 80357758 7C A5 1A 14 */ add r5, r5, r3
|
||||
/* 8035775C 7C 64 F1 D6 */ mullw r3, r4, r30
|
||||
/* 80357760 7C 04 F9 D6 */ mullw r0, r4, r31
|
||||
/* 80357764 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 80357768 7C 05 1A 14 */ add r0, r5, r3
|
||||
/* 8035776C 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 80357770 38 A0 00 10 */ li r5, 0x10
|
||||
/* 80357774 48 00 AF 21 */ bl __shr2i
|
||||
/* 80357778 7C C3 F9 D6 */ mullw r6, r3, r31
|
||||
/* 8035777C 7C A4 F8 16 */ mulhwu r5, r4, r31
|
||||
/* 80357780 39 3C 00 02 */ addi r9, r28, 2
|
||||
/* 80357784 7D 29 07 34 */ extsh r9, r9
|
||||
/* 80357788 7C 19 48 AE */ lbzx r0, r25, r9
|
||||
/* 8035778C 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 80357790 7C A4 F1 D6 */ mullw r5, r4, r30
|
||||
/* 80357794 7C E4 00 14 */ addc r7, r4, r0
|
||||
/* 80357798 7C 04 F9 D6 */ mullw r0, r4, r31
|
||||
/* 8035779C 7C FB 49 AE */ stbx r7, r27, r9
|
||||
/* 803577A0 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 803577A4 7C 06 2A 14 */ add r0, r6, r5
|
||||
/* 803577A8 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 803577AC 38 A0 00 10 */ li r5, 0x10
|
||||
/* 803577B0 48 00 AE E5 */ bl __shr2i
|
||||
/* 803577B4 7C 60 F0 38 */ and r0, r3, r30
|
||||
/* 803577B8 7C 84 D0 38 */ and r4, r4, r26
|
||||
/* 803577BC 7C A0 F9 D6 */ mullw r5, r0, r31
|
||||
/* 803577C0 7C 64 F8 16 */ mulhwu r3, r4, r31
|
||||
/* 803577C4 7C A5 1A 14 */ add r5, r5, r3
|
||||
/* 803577C8 7C 64 F1 D6 */ mullw r3, r4, r30
|
||||
/* 803577CC 7C 04 F9 D6 */ mullw r0, r4, r31
|
||||
/* 803577D0 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 803577D4 7C 05 1A 14 */ add r0, r5, r3
|
||||
/* 803577D8 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 803577DC 38 A0 00 10 */ li r5, 0x10
|
||||
/* 803577E0 48 00 AE B5 */ bl __shr2i
|
||||
/* 803577E4 7C C3 F9 D6 */ mullw r6, r3, r31
|
||||
/* 803577E8 7C A4 F8 16 */ mulhwu r5, r4, r31
|
||||
/* 803577EC 39 3C 00 03 */ addi r9, r28, 3
|
||||
/* 803577F0 7D 29 07 34 */ extsh r9, r9
|
||||
/* 803577F4 7C 19 48 AE */ lbzx r0, r25, r9
|
||||
/* 803577F8 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 803577FC 7C A4 F1 D6 */ mullw r5, r4, r30
|
||||
/* 80357800 7C E4 00 14 */ addc r7, r4, r0
|
||||
/* 80357804 7C 04 F9 D6 */ mullw r0, r4, r31
|
||||
/* 80357808 7C FB 49 AE */ stbx r7, r27, r9
|
||||
/* 8035780C 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 80357810 7C 06 2A 14 */ add r0, r6, r5
|
||||
/* 80357814 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 80357818 38 A0 00 10 */ li r5, 0x10
|
||||
/* 8035781C 48 00 AE 79 */ bl __shr2i
|
||||
/* 80357820 7C 60 F0 38 */ and r0, r3, r30
|
||||
/* 80357824 7C 84 D0 38 */ and r4, r4, r26
|
||||
/* 80357828 7C A0 F9 D6 */ mullw r5, r0, r31
|
||||
/* 8035782C 7C 64 F8 16 */ mulhwu r3, r4, r31
|
||||
/* 80357830 7C A5 1A 14 */ add r5, r5, r3
|
||||
/* 80357834 7C 64 F1 D6 */ mullw r3, r4, r30
|
||||
/* 80357838 7C 04 F9 D6 */ mullw r0, r4, r31
|
||||
/* 8035783C 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 80357840 7C 05 1A 14 */ add r0, r5, r3
|
||||
/* 80357844 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 80357848 38 A0 00 10 */ li r5, 0x10
|
||||
/* 8035784C 48 00 AE 49 */ bl __shr2i
|
||||
/* 80357850 7C C3 F9 D6 */ mullw r6, r3, r31
|
||||
/* 80357854 7C A4 F8 16 */ mulhwu r5, r4, r31
|
||||
/* 80357858 39 3C 00 04 */ addi r9, r28, 4
|
||||
/* 8035785C 7D 29 07 34 */ extsh r9, r9
|
||||
/* 80357860 7C 19 48 AE */ lbzx r0, r25, r9
|
||||
/* 80357864 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 80357868 7C A4 F1 D6 */ mullw r5, r4, r30
|
||||
/* 8035786C 7C E4 00 14 */ addc r7, r4, r0
|
||||
/* 80357870 7C 04 F9 D6 */ mullw r0, r4, r31
|
||||
/* 80357874 7C FB 49 AE */ stbx r7, r27, r9
|
||||
/* 80357878 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 8035787C 7C 06 2A 14 */ add r0, r6, r5
|
||||
/* 80357880 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 80357884 38 A0 00 10 */ li r5, 0x10
|
||||
/* 80357888 48 00 AE 0D */ bl __shr2i
|
||||
/* 8035788C 7C 60 F0 38 */ and r0, r3, r30
|
||||
/* 80357890 7C 84 D0 38 */ and r4, r4, r26
|
||||
/* 80357894 7C A0 F9 D6 */ mullw r5, r0, r31
|
||||
/* 80357898 7C 64 F8 16 */ mulhwu r3, r4, r31
|
||||
/* 8035789C 7C A5 1A 14 */ add r5, r5, r3
|
||||
/* 803578A0 7C 64 F1 D6 */ mullw r3, r4, r30
|
||||
/* 803578A4 7C 04 F9 D6 */ mullw r0, r4, r31
|
||||
/* 803578A8 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 803578AC 7C 05 1A 14 */ add r0, r5, r3
|
||||
/* 803578B0 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 803578B4 38 A0 00 10 */ li r5, 0x10
|
||||
/* 803578B8 48 00 AD DD */ bl __shr2i
|
||||
/* 803578BC 7C C3 F9 D6 */ mullw r6, r3, r31
|
||||
/* 803578C0 7C A4 F8 16 */ mulhwu r5, r4, r31
|
||||
/* 803578C4 39 3C 00 05 */ addi r9, r28, 5
|
||||
/* 803578C8 7D 29 07 34 */ extsh r9, r9
|
||||
/* 803578CC 7C 19 48 AE */ lbzx r0, r25, r9
|
||||
/* 803578D0 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 803578D4 7C A4 F1 D6 */ mullw r5, r4, r30
|
||||
/* 803578D8 7C E4 00 14 */ addc r7, r4, r0
|
||||
/* 803578DC 7C 04 F9 D6 */ mullw r0, r4, r31
|
||||
/* 803578E0 7C FB 49 AE */ stbx r7, r27, r9
|
||||
/* 803578E4 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 803578E8 7C 06 2A 14 */ add r0, r6, r5
|
||||
/* 803578EC 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 803578F0 38 A0 00 10 */ li r5, 0x10
|
||||
/* 803578F4 48 00 AD A1 */ bl __shr2i
|
||||
/* 803578F8 7C 60 F0 38 */ and r0, r3, r30
|
||||
/* 803578FC 7C 84 D0 38 */ and r4, r4, r26
|
||||
/* 80357900 7C A0 F9 D6 */ mullw r5, r0, r31
|
||||
/* 80357904 7C 64 F8 16 */ mulhwu r3, r4, r31
|
||||
/* 80357908 7C A5 1A 14 */ add r5, r5, r3
|
||||
/* 8035790C 7C 64 F1 D6 */ mullw r3, r4, r30
|
||||
/* 80357910 7C 04 F9 D6 */ mullw r0, r4, r31
|
||||
/* 80357914 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 80357918 7C 05 1A 14 */ add r0, r5, r3
|
||||
/* 8035791C 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 80357920 38 A0 00 10 */ li r5, 0x10
|
||||
/* 80357924 48 00 AD 71 */ bl __shr2i
|
||||
/* 80357928 7C C3 F9 D6 */ mullw r6, r3, r31
|
||||
/* 8035792C 7C A4 F8 16 */ mulhwu r5, r4, r31
|
||||
/* 80357930 39 3C 00 06 */ addi r9, r28, 6
|
||||
/* 80357934 7D 29 07 34 */ extsh r9, r9
|
||||
/* 80357938 7C 19 48 AE */ lbzx r0, r25, r9
|
||||
/* 8035793C 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 80357940 7C A4 F1 D6 */ mullw r5, r4, r30
|
||||
/* 80357944 7C E4 00 14 */ addc r7, r4, r0
|
||||
/* 80357948 7C 04 F9 D6 */ mullw r0, r4, r31
|
||||
/* 8035794C 7C FB 49 AE */ stbx r7, r27, r9
|
||||
/* 80357950 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 80357954 7C 06 2A 14 */ add r0, r6, r5
|
||||
/* 80357958 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 8035795C 38 A0 00 10 */ li r5, 0x10
|
||||
/* 80357960 48 00 AD 35 */ bl __shr2i
|
||||
/* 80357964 7C 60 F0 38 */ and r0, r3, r30
|
||||
/* 80357968 7C 84 D0 38 */ and r4, r4, r26
|
||||
/* 8035796C 7C A0 F9 D6 */ mullw r5, r0, r31
|
||||
/* 80357970 7C 64 F8 16 */ mulhwu r3, r4, r31
|
||||
/* 80357974 7C A5 1A 14 */ add r5, r5, r3
|
||||
/* 80357978 7C 64 F1 D6 */ mullw r3, r4, r30
|
||||
/* 8035797C 7C 04 F9 D6 */ mullw r0, r4, r31
|
||||
/* 80357980 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 80357984 7C 05 1A 14 */ add r0, r5, r3
|
||||
/* 80357988 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 8035798C 38 A0 00 10 */ li r5, 0x10
|
||||
/* 80357990 48 00 AD 05 */ bl __shr2i
|
||||
/* 80357994 7C C3 F9 D6 */ mullw r6, r3, r31
|
||||
/* 80357998 7C A4 F8 16 */ mulhwu r5, r4, r31
|
||||
/* 8035799C 39 3C 00 07 */ addi r9, r28, 7
|
||||
/* 803579A0 7D 29 07 34 */ extsh r9, r9
|
||||
/* 803579A4 7C 19 48 AE */ lbzx r0, r25, r9
|
||||
/* 803579A8 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 803579AC 7C A4 F1 D6 */ mullw r5, r4, r30
|
||||
/* 803579B0 7C E4 00 14 */ addc r7, r4, r0
|
||||
/* 803579B4 7C 04 F9 D6 */ mullw r0, r4, r31
|
||||
/* 803579B8 7C FB 49 AE */ stbx r7, r27, r9
|
||||
/* 803579BC 7C 80 E8 14 */ addc r4, r0, r29
|
||||
/* 803579C0 7C 06 2A 14 */ add r0, r6, r5
|
||||
/* 803579C4 7C 60 F1 14 */ adde r3, r0, r30
|
||||
/* 803579C8 38 A0 00 10 */ li r5, 0x10
|
||||
/* 803579CC 48 00 AC C9 */ bl __shr2i
|
||||
/* 803579D0 7C 9A D0 38 */ and r26, r4, r26
|
||||
/* 803579D4 7C 7E F0 38 */ and r30, r3, r30
|
||||
/* 803579D8 3B 18 00 08 */ addi r24, r24, 8
|
||||
/* 803579DC 3B 9C 00 08 */ addi r28, r28, 8
|
||||
lbl_803579E0:
|
||||
/* 803579E0 7F 80 07 34 */ extsh r0, r28
|
||||
/* 803579E4 7C 00 B8 00 */ cmpw r0, r23
|
||||
/* 803579E8 41 80 FC 88 */ blt lbl_80357670
|
||||
/* 803579EC 48 00 02 18 */ b lbl_80357C04
|
||||
lbl_803579F0:
|
||||
/* 803579F0 3C 60 41 C6 */ lis r3, 0x41C6 /* 0x41C64E6D@ha */
|
||||
/* 803579F4 3B 23 4E 6D */ addi r25, r3, 0x4E6D /* 0x41C64E6D@l */
|
||||
/* 803579F8 48 00 00 80 */ b lbl_80357A78
|
||||
lbl_803579FC:
|
||||
/* 803579FC 7C BE C9 D6 */ mullw r5, r30, r25
|
||||
/* 80357A00 7C 7A C8 16 */ mulhwu r3, r26, r25
|
||||
/* 80357A04 3B 00 00 00 */ li r24, 0
|
||||
/* 80357A08 7C A5 1A 14 */ add r5, r5, r3
|
||||
/* 80357A0C 7C 7A C1 D6 */ mullw r3, r26, r24
|
||||
/* 80357A10 7C 1A C9 D6 */ mullw r0, r26, r25
|
||||
/* 80357A14 3A E0 30 39 */ li r23, 0x3039
|
||||
/* 80357A18 7C 80 B8 14 */ addc r4, r0, r23
|
||||
/* 80357A1C 7C 05 1A 14 */ add r0, r5, r3
|
||||
/* 80357A20 7C 60 C1 14 */ adde r3, r0, r24
|
||||
/* 80357A24 38 A0 00 10 */ li r5, 0x10
|
||||
/* 80357A28 48 00 AC 6D */ bl __shr2i
|
||||
/* 80357A2C 7C C3 C9 D6 */ mullw r6, r3, r25
|
||||
/* 80357A30 88 1D 00 00 */ lbz r0, 0(r29)
|
||||
/* 80357A34 7C A4 C8 16 */ mulhwu r5, r4, r25
|
||||
/* 80357A38 7C C6 2A 14 */ add r6, r6, r5
|
||||
/* 80357A3C 7D 04 00 14 */ addc r8, r4, r0
|
||||
/* 80357A40 7F 87 07 34 */ extsh r7, r28
|
||||
/* 80357A44 7C A4 C1 D6 */ mullw r5, r4, r24
|
||||
/* 80357A48 7D 1B 39 AE */ stbx r8, r27, r7
|
||||
/* 80357A4C 7C 04 C9 D6 */ mullw r0, r4, r25
|
||||
/* 80357A50 7C 80 B8 14 */ addc r4, r0, r23
|
||||
/* 80357A54 7C 06 2A 14 */ add r0, r6, r5
|
||||
/* 80357A58 7C 60 C1 14 */ adde r3, r0, r24
|
||||
/* 80357A5C 38 A0 00 10 */ li r5, 0x10
|
||||
/* 80357A60 48 00 AC 35 */ bl __shr2i
|
||||
/* 80357A64 38 00 7F FF */ li r0, 0x7fff
|
||||
/* 80357A68 7C 9A 00 38 */ and r26, r4, r0
|
||||
/* 80357A6C 7C 7E C0 38 */ and r30, r3, r24
|
||||
/* 80357A70 3B BD 00 01 */ addi r29, r29, 1
|
||||
/* 80357A74 3B 9C 00 01 */ addi r28, r28, 1
|
||||
lbl_80357A78:
|
||||
/* 80357A78 7F 80 07 34 */ extsh r0, r28
|
||||
/* 80357A7C 2C 00 00 0C */ cmpwi r0, 0xc
|
||||
/* 80357A80 41 80 FF 7C */ blt lbl_803579FC
|
||||
/* 80357A84 38 60 00 00 */ li r3, 0
|
||||
/* 80357A88 4B FE 8A D5 */ bl __OSUnlockSramEx
|
||||
/* 80357A8C 92 5B 00 1C */ stw r18, 0x1c(r27)
|
||||
/* 80357A90 3A 40 00 00 */ li r18, 0
|
||||
/* 80357A94 38 7B 00 00 */ addi r3, r27, 0
|
||||
/* 80357A98 92 BB 00 10 */ stw r21, 0x10(r27)
|
||||
/* 80357A9C 38 BB 01 FC */ addi r5, r27, 0x1fc
|
||||
/* 80357AA0 38 DB 01 FE */ addi r6, r27, 0x1fe
|
||||
/* 80357AA4 92 9B 00 0C */ stw r20, 0xc(r27)
|
||||
/* 80357AA8 38 80 01 FC */ li r4, 0x1fc
|
||||
/* 80357AAC B2 5B 00 20 */ sth r18, 0x20(r27)
|
||||
/* 80357AB0 80 E1 00 18 */ lwz r7, 0x18(r1)
|
||||
/* 80357AB4 A0 07 00 08 */ lhz r0, 8(r7)
|
||||
/* 80357AB8 B0 1B 00 22 */ sth r0, 0x22(r27)
|
||||
/* 80357ABC 4B FF DF 25 */ bl __CARDCheckSum
|
||||
/* 80357AC0 48 00 00 4C */ b lbl_80357B0C
|
||||
lbl_80357AC4:
|
||||
/* 80357AC4 80 81 00 18 */ lwz r4, 0x18(r1)
|
||||
/* 80357AC8 7E 43 07 34 */ extsh r3, r18
|
||||
/* 80357ACC 38 03 00 01 */ addi r0, r3, 1
|
||||
/* 80357AD0 80 64 00 80 */ lwz r3, 0x80(r4)
|
||||
/* 80357AD4 54 00 68 24 */ slwi r0, r0, 0xd
|
||||
/* 80357AD8 38 80 00 FF */ li r4, 0xff
|
||||
/* 80357ADC 7E 83 02 14 */ add r20, r3, r0
|
||||
/* 80357AE0 38 74 00 00 */ addi r3, r20, 0
|
||||
/* 80357AE4 38 A0 20 00 */ li r5, 0x2000
|
||||
/* 80357AE8 4B CA B9 71 */ bl memset
|
||||
/* 80357AEC 38 94 1F C0 */ addi r4, r20, 0x1fc0
|
||||
/* 80357AF0 B2 54 1F FA */ sth r18, 0x1ffa(r20)
|
||||
/* 80357AF4 38 74 00 00 */ addi r3, r20, 0
|
||||
/* 80357AF8 38 A4 00 3C */ addi r5, r4, 0x3c
|
||||
/* 80357AFC 38 C4 00 3E */ addi r6, r4, 0x3e
|
||||
/* 80357B00 38 80 1F FC */ li r4, 0x1ffc
|
||||
/* 80357B04 4B FF DE DD */ bl __CARDCheckSum
|
||||
/* 80357B08 3A 52 00 01 */ addi r18, r18, 1
|
||||
lbl_80357B0C:
|
||||
/* 80357B0C 7E 40 07 34 */ extsh r0, r18
|
||||
/* 80357B10 2C 00 00 02 */ cmpwi r0, 2
|
||||
/* 80357B14 41 80 FF B0 */ blt lbl_80357AC4
|
||||
/* 80357B18 3A 40 00 00 */ li r18, 0
|
||||
/* 80357B1C 48 00 00 60 */ b lbl_80357B7C
|
||||
lbl_80357B20:
|
||||
/* 80357B20 80 81 00 18 */ lwz r4, 0x18(r1)
|
||||
/* 80357B24 7E 43 07 34 */ extsh r3, r18
|
||||
/* 80357B28 38 03 00 03 */ addi r0, r3, 3
|
||||
/* 80357B2C 80 64 00 80 */ lwz r3, 0x80(r4)
|
||||
/* 80357B30 54 00 68 24 */ slwi r0, r0, 0xd
|
||||
/* 80357B34 38 80 00 00 */ li r4, 0
|
||||
/* 80357B38 7E 83 02 14 */ add r20, r3, r0
|
||||
/* 80357B3C 38 74 00 00 */ addi r3, r20, 0
|
||||
/* 80357B40 38 A0 20 00 */ li r5, 0x2000
|
||||
/* 80357B44 4B CA B9 15 */ bl memset
|
||||
/* 80357B48 B2 54 00 04 */ sth r18, 4(r20)
|
||||
/* 80357B4C 38 00 00 04 */ li r0, 4
|
||||
/* 80357B50 38 B4 00 00 */ addi r5, r20, 0
|
||||
/* 80357B54 80 81 00 18 */ lwz r4, 0x18(r1)
|
||||
/* 80357B58 38 74 00 04 */ addi r3, r20, 4
|
||||
/* 80357B5C 38 D4 00 02 */ addi r6, r20, 2
|
||||
/* 80357B60 A0 E4 00 10 */ lhz r7, 0x10(r4)
|
||||
/* 80357B64 38 80 1F FC */ li r4, 0x1ffc
|
||||
/* 80357B68 38 E7 FF FB */ addi r7, r7, -5
|
||||
/* 80357B6C B0 F4 00 06 */ sth r7, 6(r20)
|
||||
/* 80357B70 B0 14 00 08 */ sth r0, 8(r20)
|
||||
/* 80357B74 4B FF DE 6D */ bl __CARDCheckSum
|
||||
/* 80357B78 3A 52 00 01 */ addi r18, r18, 1
|
||||
lbl_80357B7C:
|
||||
/* 80357B7C 7E 40 07 34 */ extsh r0, r18
|
||||
/* 80357B80 2C 00 00 02 */ cmpwi r0, 2
|
||||
/* 80357B84 41 80 FF 9C */ blt lbl_80357B20
|
||||
/* 80357B88 28 13 00 00 */ cmplwi r19, 0
|
||||
/* 80357B8C 41 82 00 0C */ beq lbl_80357B98
|
||||
/* 80357B90 7E 60 9B 78 */ mr r0, r19
|
||||
/* 80357B94 48 00 00 0C */ b lbl_80357BA0
|
||||
lbl_80357B98:
|
||||
/* 80357B98 3C 60 80 35 */ lis r3, __CARDDefaultApiCallback@ha /* 0x80352A30@ha */
|
||||
/* 80357B9C 38 03 2A 30 */ addi r0, r3, __CARDDefaultApiCallback@l /* 0x80352A30@l */
|
||||
lbl_80357BA0:
|
||||
/* 80357BA0 80 A1 00 18 */ lwz r5, 0x18(r1)
|
||||
/* 80357BA4 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000A000@ha */
|
||||
/* 80357BA8 38 83 A0 00 */ addi r4, r3, 0xA000 /* 0x0000A000@l */
|
||||
/* 80357BAC 90 05 00 D0 */ stw r0, 0xd0(r5)
|
||||
/* 80357BB0 80 61 00 18 */ lwz r3, 0x18(r1)
|
||||
/* 80357BB4 80 63 00 80 */ lwz r3, 0x80(r3)
|
||||
/* 80357BB8 4B FE 3A 25 */ bl DCStoreRange
|
||||
/* 80357BBC 80 81 00 18 */ lwz r4, 0x18(r1)
|
||||
/* 80357BC0 38 00 00 00 */ li r0, 0
|
||||
/* 80357BC4 3C 60 80 35 */ lis r3, FormatCallback@ha /* 0x80357484@ha */
|
||||
/* 80357BC8 90 04 00 28 */ stw r0, 0x28(r4)
|
||||
/* 80357BCC 38 A3 74 84 */ addi r5, r3, FormatCallback@l /* 0x80357484@l */
|
||||
/* 80357BD0 38 76 00 00 */ addi r3, r22, 0
|
||||
/* 80357BD4 80 C1 00 18 */ lwz r6, 0x18(r1)
|
||||
/* 80357BD8 80 86 00 0C */ lwz r4, 0xc(r6)
|
||||
/* 80357BDC 80 06 00 28 */ lwz r0, 0x28(r6)
|
||||
/* 80357BE0 7C 84 01 D6 */ mullw r4, r4, r0
|
||||
/* 80357BE4 4B FF BD D5 */ bl __CARDEraseSector
|
||||
/* 80357BE8 7C 72 1B 79 */ or. r18, r3, r3
|
||||
/* 80357BEC 40 80 00 10 */ bge lbl_80357BFC
|
||||
/* 80357BF0 80 61 00 18 */ lwz r3, 0x18(r1)
|
||||
/* 80357BF4 7E 44 93 78 */ mr r4, r18
|
||||
/* 80357BF8 4B FF C0 75 */ bl __CARDPutControlBlock
|
||||
lbl_80357BFC:
|
||||
/* 80357BFC 7E 43 93 78 */ mr r3, r18
|
||||
/* 80357C00 48 00 00 0C */ b lbl_80357C0C
|
||||
lbl_80357C04:
|
||||
/* 80357C04 7F B9 02 14 */ add r29, r25, r0
|
||||
/* 80357C08 4B FF FD E8 */ b lbl_803579F0
|
||||
lbl_80357C0C:
|
||||
/* 80357C0C BA 41 00 20 */ lmw r18, 0x20(r1)
|
||||
/* 80357C10 80 01 00 5C */ lwz r0, 0x5c(r1)
|
||||
/* 80357C14 38 21 00 58 */ addi r1, r1, 0x58
|
||||
/* 80357C18 7C 08 03 A6 */ mtlr r0
|
||||
/* 80357C1C 4E 80 00 20 */ blr
|
||||
@@ -1,47 +0,0 @@
|
||||
lbl_803573D8:
|
||||
/* 803573D8 7C 08 02 A6 */ mflr r0
|
||||
/* 803573DC 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 803573E0 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 803573E4 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 803573E8 38 81 00 0C */ addi r4, r1, 0xc
|
||||
/* 803573EC 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 803573F0 93 A1 00 14 */ stw r29, 0x14(r1)
|
||||
/* 803573F4 3B A3 00 00 */ addi r29, r3, 0
|
||||
/* 803573F8 4B FF C7 BD */ bl __CARDGetControlBlock
|
||||
/* 803573FC 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80357400 40 80 00 08 */ bge lbl_80357408
|
||||
/* 80357404 48 00 00 64 */ b lbl_80357468
|
||||
lbl_80357408:
|
||||
/* 80357408 1C 9D 01 10 */ mulli r4, r29, 0x110
|
||||
/* 8035740C 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 80357410 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 80357414 7F C0 22 14 */ add r30, r0, r4
|
||||
/* 80357418 4B FE 62 DD */ bl OSDisableInterrupts
|
||||
/* 8035741C 80 1E 00 00 */ lwz r0, 0(r30)
|
||||
/* 80357420 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 80357424 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 80357428 41 82 00 34 */ beq lbl_8035745C
|
||||
/* 8035742C 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80357430 38 80 00 00 */ li r4, 0
|
||||
/* 80357434 4B FE BF 49 */ bl EXISetExiCallback
|
||||
/* 80357438 7F A3 EB 78 */ mr r3, r29
|
||||
/* 8035743C 4B FE C3 71 */ bl EXIDetach
|
||||
/* 80357440 38 7E 00 E0 */ addi r3, r30, 0xe0
|
||||
/* 80357444 4B FE 37 F9 */ bl OSCancelAlarm
|
||||
/* 80357448 38 60 00 00 */ li r3, 0
|
||||
/* 8035744C 90 7E 00 00 */ stw r3, 0(r30)
|
||||
/* 80357450 38 00 FF FD */ li r0, -3
|
||||
/* 80357454 90 1E 00 04 */ stw r0, 4(r30)
|
||||
/* 80357458 90 7E 00 24 */ stw r3, 0x24(r30)
|
||||
lbl_8035745C:
|
||||
/* 8035745C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80357460 4B FE 62 BD */ bl OSRestoreInterrupts
|
||||
/* 80357464 38 60 00 00 */ li r3, 0
|
||||
lbl_80357468:
|
||||
/* 80357468 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 8035746C 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 80357470 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 80357474 83 A1 00 14 */ lwz r29, 0x14(r1)
|
||||
/* 80357478 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 8035747C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80357480 4E 80 00 20 */ blr
|
||||
@@ -1,300 +0,0 @@
|
||||
lbl_80356BC8:
|
||||
/* 80356BC8 7C 08 02 A6 */ mflr r0
|
||||
/* 80356BCC 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80356BD0 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 80356BD4 93 E1 00 2C */ stw r31, 0x2c(r1)
|
||||
/* 80356BD8 93 C1 00 28 */ stw r30, 0x28(r1)
|
||||
/* 80356BDC 93 A1 00 24 */ stw r29, 0x24(r1)
|
||||
/* 80356BE0 3B A3 00 00 */ addi r29, r3, 0
|
||||
/* 80356BE4 1C 9D 01 10 */ mulli r4, r29, 0x110
|
||||
/* 80356BE8 93 81 00 20 */ stw r28, 0x20(r1)
|
||||
/* 80356BEC 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 80356BF0 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 80356BF4 7C 60 22 14 */ add r3, r0, r4
|
||||
/* 80356BF8 80 03 00 24 */ lwz r0, 0x24(r3)
|
||||
/* 80356BFC 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 80356C00 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 80356C04 40 82 02 F0 */ bne lbl_80356EF4
|
||||
/* 80356C08 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80356C0C 38 A1 00 18 */ addi r5, r1, 0x18
|
||||
/* 80356C10 38 80 00 00 */ li r4, 0
|
||||
/* 80356C14 4B FE D6 25 */ bl EXIGetID
|
||||
/* 80356C18 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80356C1C 40 82 00 0C */ bne lbl_80356C28
|
||||
/* 80356C20 3B C0 FF FD */ li r30, -3
|
||||
/* 80356C24 48 00 00 20 */ b lbl_80356C44
|
||||
lbl_80356C28:
|
||||
/* 80356C28 80 61 00 18 */ lwz r3, 0x18(r1)
|
||||
/* 80356C2C 4B FF FD 1D */ bl IsCard
|
||||
/* 80356C30 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80356C34 41 82 00 0C */ beq lbl_80356C40
|
||||
/* 80356C38 3B C0 00 00 */ li r30, 0
|
||||
/* 80356C3C 48 00 00 08 */ b lbl_80356C44
|
||||
lbl_80356C40:
|
||||
/* 80356C40 3B C0 FF FE */ li r30, -2
|
||||
lbl_80356C44:
|
||||
/* 80356C44 2C 1E 00 00 */ cmpwi r30, 0
|
||||
/* 80356C48 41 80 03 88 */ blt lbl_80356FD0
|
||||
/* 80356C4C 80 01 00 18 */ lwz r0, 0x18(r1)
|
||||
/* 80356C50 3C 80 80 3D */ lis r4, SectorSizeTable@ha /* 0x803D2000@ha */
|
||||
/* 80356C54 38 A4 20 00 */ addi r5, r4, SectorSizeTable@l /* 0x803D2000@l */
|
||||
/* 80356C58 90 1F 01 08 */ stw r0, 0x108(r31)
|
||||
/* 80356C5C 3C 60 80 3D */ lis r3, LatencyTable@ha /* 0x803D2020@ha */
|
||||
/* 80356C60 38 03 20 20 */ addi r0, r3, LatencyTable@l /* 0x803D2020@l */
|
||||
/* 80356C64 80 C1 00 18 */ lwz r6, 0x18(r1)
|
||||
/* 80356C68 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80356C6C 38 9F 00 12 */ addi r4, r31, 0x12
|
||||
/* 80356C70 54 C6 06 3A */ rlwinm r6, r6, 0, 0x18, 0x1d
|
||||
/* 80356C74 B0 DF 00 08 */ sth r6, 8(r31)
|
||||
/* 80356C78 80 C1 00 18 */ lwz r6, 0x18(r1)
|
||||
/* 80356C7C 54 C6 BE FA */ rlwinm r6, r6, 0x17, 0x1b, 0x1d
|
||||
/* 80356C80 7C A5 32 14 */ add r5, r5, r6
|
||||
/* 80356C84 80 A5 00 00 */ lwz r5, 0(r5)
|
||||
/* 80356C88 90 BF 00 0C */ stw r5, 0xc(r31)
|
||||
/* 80356C8C A0 DF 00 08 */ lhz r6, 8(r31)
|
||||
/* 80356C90 80 BF 00 0C */ lwz r5, 0xc(r31)
|
||||
/* 80356C94 54 C6 A0 16 */ slwi r6, r6, 0x14
|
||||
/* 80356C98 7C C6 1E 70 */ srawi r6, r6, 3
|
||||
/* 80356C9C 7C C6 01 94 */ addze r6, r6
|
||||
/* 80356CA0 7C A6 2B D6 */ divw r5, r6, r5
|
||||
/* 80356CA4 B0 BF 00 10 */ sth r5, 0x10(r31)
|
||||
/* 80356CA8 80 A1 00 18 */ lwz r5, 0x18(r1)
|
||||
/* 80356CAC 54 A5 D6 FA */ rlwinm r5, r5, 0x1a, 0x1b, 0x1d
|
||||
/* 80356CB0 7C A0 2A 14 */ add r5, r0, r5
|
||||
/* 80356CB4 80 05 00 00 */ lwz r0, 0(r5)
|
||||
/* 80356CB8 90 1F 00 14 */ stw r0, 0x14(r31)
|
||||
/* 80356CBC 4B FF C2 79 */ bl __CARDReadVendorID
|
||||
/* 80356CC0 7C 7E 1B 79 */ or. r30, r3, r3
|
||||
/* 80356CC4 41 80 03 0C */ blt lbl_80356FD0
|
||||
/* 80356CC8 4B FF D2 41 */ bl CARDGetFastMode
|
||||
/* 80356CCC 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80356CD0 41 82 00 20 */ beq lbl_80356CF0
|
||||
/* 80356CD4 A0 1F 00 12 */ lhz r0, 0x12(r31)
|
||||
/* 80356CD8 7C 00 46 70 */ srawi r0, r0, 8
|
||||
/* 80356CDC 2C 00 00 EC */ cmpwi r0, 0xec
|
||||
/* 80356CE0 40 82 00 10 */ bne lbl_80356CF0
|
||||
/* 80356CE4 38 00 02 00 */ li r0, 0x200
|
||||
/* 80356CE8 B0 1F 00 0A */ sth r0, 0xa(r31)
|
||||
/* 80356CEC 48 00 00 0C */ b lbl_80356CF8
|
||||
lbl_80356CF0:
|
||||
/* 80356CF0 38 00 00 80 */ li r0, 0x80
|
||||
/* 80356CF4 B0 1F 00 0A */ sth r0, 0xa(r31)
|
||||
lbl_80356CF8:
|
||||
/* 80356CF8 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80356CFC 4B FF C3 29 */ bl __CARDClearStatus
|
||||
/* 80356D00 7C 7E 1B 79 */ or. r30, r3, r3
|
||||
/* 80356D04 41 80 02 CC */ blt lbl_80356FD0
|
||||
/* 80356D08 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80356D0C 38 81 00 14 */ addi r4, r1, 0x14
|
||||
/* 80356D10 4B FF C1 35 */ bl __CARDReadStatus
|
||||
/* 80356D14 7C 7E 1B 79 */ or. r30, r3, r3
|
||||
/* 80356D18 41 80 02 B8 */ blt lbl_80356FD0
|
||||
/* 80356D1C 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80356D20 4B FE C8 4D */ bl EXIProbe
|
||||
/* 80356D24 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80356D28 40 82 00 0C */ bne lbl_80356D34
|
||||
/* 80356D2C 3B C0 FF FD */ li r30, -3
|
||||
/* 80356D30 48 00 02 A0 */ b lbl_80356FD0
|
||||
lbl_80356D34:
|
||||
/* 80356D34 88 01 00 14 */ lbz r0, 0x14(r1)
|
||||
/* 80356D38 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19
|
||||
/* 80356D3C 40 82 01 14 */ bne lbl_80356E50
|
||||
/* 80356D40 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80356D44 38 9F 00 18 */ addi r4, r31, 0x18
|
||||
/* 80356D48 4B FF D5 51 */ bl __CARDUnlock
|
||||
/* 80356D4C 7C 7E 1B 79 */ or. r30, r3, r3
|
||||
/* 80356D50 41 80 02 80 */ blt lbl_80356FD0
|
||||
/* 80356D54 4B FE 94 4D */ bl __OSLockSramEx
|
||||
/* 80356D58 1C 1D 00 0C */ mulli r0, r29, 0xc
|
||||
/* 80356D5C 7C 83 02 14 */ add r4, r3, r0
|
||||
/* 80356D60 88 1F 00 18 */ lbz r0, 0x18(r31)
|
||||
/* 80356D64 38 BF 00 18 */ addi r5, r31, 0x18
|
||||
/* 80356D68 98 04 00 00 */ stb r0, 0(r4)
|
||||
/* 80356D6C 39 05 00 02 */ addi r8, r5, 2
|
||||
/* 80356D70 39 25 00 03 */ addi r9, r5, 3
|
||||
/* 80356D74 88 FF 00 18 */ lbz r7, 0x18(r31)
|
||||
/* 80356D78 39 45 00 04 */ addi r10, r5, 4
|
||||
/* 80356D7C 88 1F 00 19 */ lbz r0, 0x19(r31)
|
||||
/* 80356D80 39 65 00 05 */ addi r11, r5, 5
|
||||
/* 80356D84 39 85 00 06 */ addi r12, r5, 6
|
||||
/* 80356D88 98 04 00 01 */ stb r0, 1(r4)
|
||||
/* 80356D8C 3B 85 00 07 */ addi r28, r5, 7
|
||||
/* 80356D90 38 A0 00 08 */ li r5, 8
|
||||
/* 80356D94 88 1F 00 19 */ lbz r0, 0x19(r31)
|
||||
/* 80356D98 88 C8 00 00 */ lbz r6, 0(r8)
|
||||
/* 80356D9C 7C 07 02 14 */ add r0, r7, r0
|
||||
/* 80356DA0 98 C4 00 02 */ stb r6, 2(r4)
|
||||
/* 80356DA4 88 E8 00 00 */ lbz r7, 0(r8)
|
||||
/* 80356DA8 88 C9 00 00 */ lbz r6, 0(r9)
|
||||
/* 80356DAC 7C 00 3A 14 */ add r0, r0, r7
|
||||
/* 80356DB0 98 C4 00 03 */ stb r6, 3(r4)
|
||||
/* 80356DB4 88 E9 00 00 */ lbz r7, 0(r9)
|
||||
/* 80356DB8 88 CA 00 00 */ lbz r6, 0(r10)
|
||||
/* 80356DBC 7C 00 3A 14 */ add r0, r0, r7
|
||||
/* 80356DC0 98 C4 00 04 */ stb r6, 4(r4)
|
||||
/* 80356DC4 88 EA 00 00 */ lbz r7, 0(r10)
|
||||
/* 80356DC8 88 CB 00 00 */ lbz r6, 0(r11)
|
||||
/* 80356DCC 7C 00 3A 14 */ add r0, r0, r7
|
||||
/* 80356DD0 98 C4 00 05 */ stb r6, 5(r4)
|
||||
/* 80356DD4 88 EB 00 00 */ lbz r7, 0(r11)
|
||||
/* 80356DD8 88 CC 00 00 */ lbz r6, 0(r12)
|
||||
/* 80356DDC 7C 00 3A 14 */ add r0, r0, r7
|
||||
/* 80356DE0 98 C4 00 06 */ stb r6, 6(r4)
|
||||
/* 80356DE4 88 EC 00 00 */ lbz r7, 0(r12)
|
||||
/* 80356DE8 88 DC 00 00 */ lbz r6, 0(r28)
|
||||
/* 80356DEC 7C 00 3A 14 */ add r0, r0, r7
|
||||
/* 80356DF0 98 C4 00 07 */ stb r6, 7(r4)
|
||||
/* 80356DF4 88 DC 00 00 */ lbz r6, 0(r28)
|
||||
/* 80356DF8 7C 00 32 14 */ add r0, r0, r6
|
||||
/* 80356DFC 48 00 01 F0 */ b lbl_80356FEC
|
||||
lbl_80356E00:
|
||||
/* 80356E00 20 85 00 0C */ subfic r4, r5, 0xc
|
||||
/* 80356E04 2C 05 00 0C */ cmpwi r5, 0xc
|
||||
/* 80356E08 7C 89 03 A6 */ mtctr r4
|
||||
/* 80356E0C 40 80 00 28 */ bge lbl_80356E34
|
||||
lbl_80356E10:
|
||||
/* 80356E10 38 E5 00 18 */ addi r7, r5, 0x18
|
||||
/* 80356E14 7C FF 3A 14 */ add r7, r31, r7
|
||||
/* 80356E18 88 87 00 00 */ lbz r4, 0(r7)
|
||||
/* 80356E1C 38 A5 00 01 */ addi r5, r5, 1
|
||||
/* 80356E20 98 86 00 00 */ stb r4, 0(r6)
|
||||
/* 80356E24 38 C6 00 01 */ addi r6, r6, 1
|
||||
/* 80356E28 88 87 00 00 */ lbz r4, 0(r7)
|
||||
/* 80356E2C 7C 00 22 14 */ add r0, r0, r4
|
||||
/* 80356E30 42 00 FF E0 */ bdnz lbl_80356E10
|
||||
lbl_80356E34:
|
||||
/* 80356E34 7C 63 EA 14 */ add r3, r3, r29
|
||||
/* 80356E38 7C 00 00 F8 */ nor r0, r0, r0
|
||||
/* 80356E3C 98 03 00 26 */ stb r0, 0x26(r3)
|
||||
/* 80356E40 38 60 00 01 */ li r3, 1
|
||||
/* 80356E44 4B FE 97 19 */ bl __OSUnlockSramEx
|
||||
/* 80356E48 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80356E4C 48 00 01 B0 */ b lbl_80356FFC
|
||||
lbl_80356E50:
|
||||
/* 80356E50 38 00 00 01 */ li r0, 1
|
||||
/* 80356E54 90 1F 00 24 */ stw r0, 0x24(r31)
|
||||
/* 80356E58 4B FE 93 49 */ bl __OSLockSramEx
|
||||
/* 80356E5C 1C 1D 00 0C */ mulli r0, r29, 0xc
|
||||
/* 80356E60 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 80356E64 7C BE 02 14 */ add r5, r30, r0
|
||||
/* 80356E68 88 85 00 00 */ lbz r4, 0(r5)
|
||||
/* 80356E6C 38 C0 00 08 */ li r6, 8
|
||||
/* 80356E70 88 05 00 01 */ lbz r0, 1(r5)
|
||||
/* 80356E74 88 65 00 02 */ lbz r3, 2(r5)
|
||||
/* 80356E78 7F 84 02 14 */ add r28, r4, r0
|
||||
/* 80356E7C 88 05 00 03 */ lbz r0, 3(r5)
|
||||
/* 80356E80 7F 9C 1A 14 */ add r28, r28, r3
|
||||
/* 80356E84 88 65 00 04 */ lbz r3, 4(r5)
|
||||
/* 80356E88 7F 9C 02 14 */ add r28, r28, r0
|
||||
/* 80356E8C 88 05 00 05 */ lbz r0, 5(r5)
|
||||
/* 80356E90 7F 9C 1A 14 */ add r28, r28, r3
|
||||
/* 80356E94 88 65 00 06 */ lbz r3, 6(r5)
|
||||
/* 80356E98 7F 9C 02 14 */ add r28, r28, r0
|
||||
/* 80356E9C 88 05 00 07 */ lbz r0, 7(r5)
|
||||
/* 80356EA0 7F 9C 1A 14 */ add r28, r28, r3
|
||||
/* 80356EA4 7F 9C 02 14 */ add r28, r28, r0
|
||||
/* 80356EA8 48 00 01 4C */ b lbl_80356FF4
|
||||
lbl_80356EAC:
|
||||
/* 80356EAC 20 06 00 0C */ subfic r0, r6, 0xc
|
||||
/* 80356EB0 2C 06 00 0C */ cmpwi r6, 0xc
|
||||
/* 80356EB4 7C 09 03 A6 */ mtctr r0
|
||||
/* 80356EB8 40 80 00 14 */ bge lbl_80356ECC
|
||||
lbl_80356EBC:
|
||||
/* 80356EBC 88 03 00 00 */ lbz r0, 0(r3)
|
||||
/* 80356EC0 38 63 00 01 */ addi r3, r3, 1
|
||||
/* 80356EC4 7F 9C 02 14 */ add r28, r28, r0
|
||||
/* 80356EC8 42 00 FF F4 */ bdnz lbl_80356EBC
|
||||
lbl_80356ECC:
|
||||
/* 80356ECC 38 60 00 00 */ li r3, 0
|
||||
/* 80356ED0 4B FE 96 8D */ bl __OSUnlockSramEx
|
||||
/* 80356ED4 7C 7E EA 14 */ add r3, r30, r29
|
||||
/* 80356ED8 7F 80 E0 F8 */ nor r0, r28, r28
|
||||
/* 80356EDC 88 63 00 26 */ lbz r3, 0x26(r3)
|
||||
/* 80356EE0 54 00 06 3E */ clrlwi r0, r0, 0x18
|
||||
/* 80356EE4 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 80356EE8 41 82 00 0C */ beq lbl_80356EF4
|
||||
/* 80356EEC 3B C0 FF FB */ li r30, -5
|
||||
/* 80356EF0 48 00 00 E0 */ b lbl_80356FD0
|
||||
lbl_80356EF4:
|
||||
/* 80356EF4 80 1F 00 24 */ lwz r0, 0x24(r31)
|
||||
/* 80356EF8 2C 00 00 01 */ cmpwi r0, 1
|
||||
/* 80356EFC 40 82 00 88 */ bne lbl_80356F84
|
||||
/* 80356F00 80 7F 01 08 */ lwz r3, 0x108(r31)
|
||||
/* 80356F04 3C 03 80 00 */ addis r0, r3, 0x8000
|
||||
/* 80356F08 28 00 00 04 */ cmplwi r0, 4
|
||||
/* 80356F0C 40 82 00 34 */ bne lbl_80356F40
|
||||
/* 80356F10 4B FE 92 91 */ bl __OSLockSramEx
|
||||
/* 80356F14 1C 1D 00 0C */ mulli r0, r29, 0xc
|
||||
/* 80356F18 7F 83 02 2E */ lhzx r28, r3, r0
|
||||
/* 80356F1C 38 60 00 00 */ li r3, 0
|
||||
/* 80356F20 4B FE 96 3D */ bl __OSUnlockSramEx
|
||||
/* 80356F24 A0 0D 84 F0 */ lhz r0, __CARDVendorID+0x0(r13)
|
||||
/* 80356F28 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 80356F2C 41 82 00 0C */ beq lbl_80356F38
|
||||
/* 80356F30 7C 1C 00 40 */ cmplw r28, r0
|
||||
/* 80356F34 41 82 00 0C */ beq lbl_80356F40
|
||||
lbl_80356F38:
|
||||
/* 80356F38 3B C0 FF FE */ li r30, -2
|
||||
/* 80356F3C 48 00 00 94 */ b lbl_80356FD0
|
||||
lbl_80356F40:
|
||||
/* 80356F40 38 00 00 02 */ li r0, 2
|
||||
/* 80356F44 90 1F 00 24 */ stw r0, 0x24(r31)
|
||||
/* 80356F48 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80356F4C 38 80 00 01 */ li r4, 1
|
||||
/* 80356F50 4B FF BE 35 */ bl __CARDEnableInterrupt
|
||||
/* 80356F54 7C 7E 1B 79 */ or. r30, r3, r3
|
||||
/* 80356F58 41 80 00 78 */ blt lbl_80356FD0
|
||||
/* 80356F5C 3C 60 80 35 */ lis r3, __CARDExiHandler@ha /* 0x80352B40@ha */
|
||||
/* 80356F60 38 83 2B 40 */ addi r4, r3, __CARDExiHandler@l /* 0x80352B40@l */
|
||||
/* 80356F64 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80356F68 4B FE C4 15 */ bl EXISetExiCallback
|
||||
/* 80356F6C 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80356F70 4B FE D1 AD */ bl EXIUnlock
|
||||
/* 80356F74 3C 80 00 01 */ lis r4, 0x0001 /* 0x0000A000@ha */
|
||||
/* 80356F78 80 7F 00 80 */ lwz r3, 0x80(r31)
|
||||
/* 80356F7C 38 84 A0 00 */ addi r4, r4, 0xA000 /* 0x0000A000@l */
|
||||
/* 80356F80 4B FE 46 01 */ bl DCInvalidateRange
|
||||
lbl_80356F84:
|
||||
/* 80356F84 80 9F 00 24 */ lwz r4, 0x24(r31)
|
||||
/* 80356F88 3C 60 80 35 */ lis r3, __CARDMountCallback@ha /* 0x8035701C@ha */
|
||||
/* 80356F8C 80 1F 00 0C */ lwz r0, 0xc(r31)
|
||||
/* 80356F90 38 E3 70 1C */ addi r7, r3, __CARDMountCallback@l /* 0x8035701C@l */
|
||||
/* 80356F94 38 64 FF FE */ addi r3, r4, -2
|
||||
/* 80356F98 7C 80 19 D6 */ mullw r4, r0, r3
|
||||
/* 80356F9C 80 BF 00 80 */ lwz r5, 0x80(r31)
|
||||
/* 80356FA0 54 60 68 24 */ slwi r0, r3, 0xd
|
||||
/* 80356FA4 7C C5 02 14 */ add r6, r5, r0
|
||||
/* 80356FA8 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80356FAC 38 A0 20 00 */ li r5, 0x2000
|
||||
/* 80356FB0 4B FF E2 B1 */ bl __CARDRead
|
||||
/* 80356FB4 7C 7C 1B 79 */ or. r28, r3, r3
|
||||
/* 80356FB8 40 80 00 10 */ bge lbl_80356FC8
|
||||
/* 80356FBC 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 80356FC0 38 9C 00 00 */ addi r4, r28, 0
|
||||
/* 80356FC4 4B FF CC A9 */ bl __CARDPutControlBlock
|
||||
lbl_80356FC8:
|
||||
/* 80356FC8 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80356FCC 48 00 00 30 */ b lbl_80356FFC
|
||||
lbl_80356FD0:
|
||||
/* 80356FD0 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80356FD4 4B FE D1 49 */ bl EXIUnlock
|
||||
/* 80356FD8 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80356FDC 38 9E 00 00 */ addi r4, r30, 0
|
||||
/* 80356FE0 48 00 03 5D */ bl DoUnmount
|
||||
/* 80356FE4 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80356FE8 48 00 00 14 */ b lbl_80356FFC
|
||||
lbl_80356FEC:
|
||||
/* 80356FEC 38 C4 00 08 */ addi r6, r4, 8
|
||||
/* 80356FF0 4B FF FE 10 */ b lbl_80356E00
|
||||
lbl_80356FF4:
|
||||
/* 80356FF4 38 65 00 08 */ addi r3, r5, 8
|
||||
/* 80356FF8 4B FF FE B4 */ b lbl_80356EAC
|
||||
lbl_80356FFC:
|
||||
/* 80356FFC 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 80357000 83 E1 00 2C */ lwz r31, 0x2c(r1)
|
||||
/* 80357004 83 C1 00 28 */ lwz r30, 0x28(r1)
|
||||
/* 80357008 83 A1 00 24 */ lwz r29, 0x24(r1)
|
||||
/* 8035700C 83 81 00 20 */ lwz r28, 0x20(r1)
|
||||
/* 80357010 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 80357014 7C 08 03 A6 */ mtlr r0
|
||||
/* 80357018 4E 80 00 20 */ blr
|
||||
@@ -1,81 +0,0 @@
|
||||
lbl_80357F98:
|
||||
/* 80357F98 7C 08 02 A6 */ mflr r0
|
||||
/* 80357F9C 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80357FA0 38 00 FF FF */ li r0, -1
|
||||
/* 80357FA4 94 21 FF C8 */ stwu r1, -0x38(r1)
|
||||
/* 80357FA8 BF 21 00 1C */ stmw r25, 0x1c(r1)
|
||||
/* 80357FAC 3B 24 00 00 */ addi r25, r4, 0
|
||||
/* 80357FB0 3B C5 00 00 */ addi r30, r5, 0
|
||||
/* 80357FB4 3B A3 00 00 */ addi r29, r3, 0
|
||||
/* 80357FB8 38 81 00 14 */ addi r4, r1, 0x14
|
||||
/* 80357FBC 90 05 00 00 */ stw r0, 0(r5)
|
||||
/* 80357FC0 4B FF BB F5 */ bl __CARDGetControlBlock
|
||||
/* 80357FC4 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80357FC8 40 80 00 08 */ bge lbl_80357FD0
|
||||
/* 80357FCC 48 00 00 D4 */ b lbl_803580A0
|
||||
lbl_80357FD0:
|
||||
/* 80357FD0 83 41 00 14 */ lwz r26, 0x14(r1)
|
||||
/* 80357FD4 80 1A 00 00 */ lwz r0, 0(r26)
|
||||
/* 80357FD8 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 80357FDC 40 82 00 0C */ bne lbl_80357FE8
|
||||
/* 80357FE0 3B 40 FF FD */ li r26, -3
|
||||
/* 80357FE4 48 00 00 5C */ b lbl_80358040
|
||||
lbl_80357FE8:
|
||||
/* 80357FE8 7F 43 D3 78 */ mr r3, r26
|
||||
/* 80357FEC 4B FF D7 91 */ bl __CARDGetDirBlock
|
||||
/* 80357FF0 3B 63 00 00 */ addi r27, r3, 0
|
||||
/* 80357FF4 3B 80 00 00 */ li r28, 0
|
||||
lbl_80357FF8:
|
||||
/* 80357FF8 38 7A 00 00 */ addi r3, r26, 0
|
||||
/* 80357FFC 38 9B 00 00 */ addi r4, r27, 0
|
||||
/* 80358000 4B FF FC DD */ bl __CARDAccess
|
||||
/* 80358004 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80358008 41 80 00 24 */ blt lbl_8035802C
|
||||
/* 8035800C 38 7B 00 00 */ addi r3, r27, 0
|
||||
/* 80358010 38 99 00 00 */ addi r4, r25, 0
|
||||
/* 80358014 4B FF FC 61 */ bl __CARDCompareFileName
|
||||
/* 80358018 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 8035801C 41 82 00 10 */ beq lbl_8035802C
|
||||
/* 80358020 3B FC 00 00 */ addi r31, r28, 0
|
||||
/* 80358024 3B 40 00 00 */ li r26, 0
|
||||
/* 80358028 48 00 00 18 */ b lbl_80358040
|
||||
lbl_8035802C:
|
||||
/* 8035802C 3B 9C 00 01 */ addi r28, r28, 1
|
||||
/* 80358030 2C 1C 00 7F */ cmpwi r28, 0x7f
|
||||
/* 80358034 3B 7B 00 40 */ addi r27, r27, 0x40
|
||||
/* 80358038 41 80 FF C0 */ blt lbl_80357FF8
|
||||
/* 8035803C 3B 40 FF FC */ li r26, -4
|
||||
lbl_80358040:
|
||||
/* 80358040 2C 1A 00 00 */ cmpwi r26, 0
|
||||
/* 80358044 41 80 00 50 */ blt lbl_80358094
|
||||
/* 80358048 80 61 00 14 */ lwz r3, 0x14(r1)
|
||||
/* 8035804C 4B FF D7 31 */ bl __CARDGetDirBlock
|
||||
/* 80358050 57 E0 30 32 */ slwi r0, r31, 6
|
||||
/* 80358054 7C A3 02 14 */ add r5, r3, r0
|
||||
/* 80358058 A0 85 00 36 */ lhz r4, 0x36(r5)
|
||||
/* 8035805C 28 04 00 05 */ cmplwi r4, 5
|
||||
/* 80358060 41 80 00 14 */ blt lbl_80358074
|
||||
/* 80358064 80 61 00 14 */ lwz r3, 0x14(r1)
|
||||
/* 80358068 A0 03 00 10 */ lhz r0, 0x10(r3)
|
||||
/* 8035806C 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 80358070 41 80 00 0C */ blt lbl_8035807C
|
||||
lbl_80358074:
|
||||
/* 80358074 3B 40 FF FA */ li r26, -6
|
||||
/* 80358078 48 00 00 1C */ b lbl_80358094
|
||||
lbl_8035807C:
|
||||
/* 8035807C 93 BE 00 00 */ stw r29, 0(r30)
|
||||
/* 80358080 38 00 00 00 */ li r0, 0
|
||||
/* 80358084 93 FE 00 04 */ stw r31, 4(r30)
|
||||
/* 80358088 90 1E 00 08 */ stw r0, 8(r30)
|
||||
/* 8035808C A0 05 00 36 */ lhz r0, 0x36(r5)
|
||||
/* 80358090 B0 1E 00 10 */ sth r0, 0x10(r30)
|
||||
lbl_80358094:
|
||||
/* 80358094 80 61 00 14 */ lwz r3, 0x14(r1)
|
||||
/* 80358098 7F 44 D3 78 */ mr r4, r26
|
||||
/* 8035809C 4B FF BB D1 */ bl __CARDPutControlBlock
|
||||
lbl_803580A0:
|
||||
/* 803580A0 BB 21 00 1C */ lmw r25, 0x1c(r1)
|
||||
/* 803580A4 80 01 00 3C */ lwz r0, 0x3c(r1)
|
||||
/* 803580A8 38 21 00 38 */ addi r1, r1, 0x38
|
||||
/* 803580AC 7C 08 03 A6 */ mtlr r0
|
||||
/* 803580B0 4E 80 00 20 */ blr
|
||||
@@ -1,42 +0,0 @@
|
||||
lbl_80357CDC:
|
||||
/* 80357CDC 7C 08 02 A6 */ mflr r0
|
||||
/* 80357CE0 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80357CE4 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 80357CE8 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 80357CEC 93 C1 00 10 */ stw r30, 0x10(r1)
|
||||
/* 80357CF0 7C 9E 23 78 */ mr r30, r4
|
||||
/* 80357CF4 88 04 00 00 */ lbz r0, 0(r4)
|
||||
/* 80357CF8 83 E3 01 0C */ lwz r31, 0x10c(r3)
|
||||
/* 80357CFC 28 00 00 FF */ cmplwi r0, 0xff
|
||||
/* 80357D00 40 82 00 0C */ bne lbl_80357D0C
|
||||
/* 80357D04 38 60 FF FC */ li r3, -4
|
||||
/* 80357D08 48 00 00 50 */ b lbl_80357D58
|
||||
lbl_80357D0C:
|
||||
/* 80357D0C 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */
|
||||
/* 80357D10 38 03 CD E0 */ addi r0, r3, __CARDDiskNone@l /* 0x8044CDE0@l */
|
||||
/* 80357D14 7C 1F 00 40 */ cmplw r31, r0
|
||||
/* 80357D18 41 82 00 34 */ beq lbl_80357D4C
|
||||
/* 80357D1C 38 7E 00 00 */ addi r3, r30, 0
|
||||
/* 80357D20 38 9F 00 00 */ addi r4, r31, 0
|
||||
/* 80357D24 38 A0 00 04 */ li r5, 4
|
||||
/* 80357D28 48 00 E3 65 */ bl memcmp
|
||||
/* 80357D2C 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80357D30 40 82 00 24 */ bne lbl_80357D54
|
||||
/* 80357D34 38 7E 00 04 */ addi r3, r30, 4
|
||||
/* 80357D38 38 9F 00 04 */ addi r4, r31, 4
|
||||
/* 80357D3C 38 A0 00 02 */ li r5, 2
|
||||
/* 80357D40 48 00 E3 4D */ bl memcmp
|
||||
/* 80357D44 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80357D48 40 82 00 0C */ bne lbl_80357D54
|
||||
lbl_80357D4C:
|
||||
/* 80357D4C 38 60 00 00 */ li r3, 0
|
||||
/* 80357D50 48 00 00 08 */ b lbl_80357D58
|
||||
lbl_80357D54:
|
||||
/* 80357D54 38 60 FF F6 */ li r3, -10
|
||||
lbl_80357D58:
|
||||
/* 80357D58 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 80357D5C 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 80357D60 83 C1 00 10 */ lwz r30, 0x10(r1)
|
||||
/* 80357D64 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 80357D68 7C 08 03 A6 */ mtlr r0
|
||||
/* 80357D6C 4E 80 00 20 */ blr
|
||||
@@ -1,66 +0,0 @@
|
||||
lbl_80357EA4:
|
||||
/* 80357EA4 7C 08 02 A6 */ mflr r0
|
||||
/* 80357EA8 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80357EAC 94 21 FF D8 */ stwu r1, -0x28(r1)
|
||||
/* 80357EB0 BF 61 00 14 */ stmw r27, 0x14(r1)
|
||||
/* 80357EB4 7C 9B 23 78 */ mr r27, r4
|
||||
/* 80357EB8 83 83 01 0C */ lwz r28, 0x10c(r3)
|
||||
/* 80357EBC 4B FF FE 21 */ bl __CARDAccess
|
||||
/* 80357EC0 3B A3 00 00 */ addi r29, r3, 0
|
||||
/* 80357EC4 2C 1D FF F6 */ cmpwi r29, -10
|
||||
/* 80357EC8 40 82 00 9C */ bne lbl_80357F64
|
||||
/* 80357ECC 88 7B 00 34 */ lbz r3, 0x34(r27)
|
||||
/* 80357ED0 88 0D 84 F2 */ lbz r0, data_80450A72(r13)
|
||||
/* 80357ED4 7C 60 00 38 */ and r0, r3, r0
|
||||
/* 80357ED8 54 1E 06 3E */ clrlwi r30, r0, 0x18
|
||||
/* 80357EDC 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
|
||||
/* 80357EE0 41 82 00 44 */ beq lbl_80357F24
|
||||
/* 80357EE4 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */
|
||||
/* 80357EE8 3B E3 CD E0 */ addi r31, r3, __CARDDiskNone@l /* 0x8044CDE0@l */
|
||||
/* 80357EEC 38 7B 00 00 */ addi r3, r27, 0
|
||||
/* 80357EF0 38 9F 00 00 */ addi r4, r31, 0
|
||||
/* 80357EF4 38 A0 00 04 */ li r5, 4
|
||||
/* 80357EF8 48 00 E1 95 */ bl memcmp
|
||||
/* 80357EFC 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80357F00 40 82 00 24 */ bne lbl_80357F24
|
||||
/* 80357F04 38 7B 00 04 */ addi r3, r27, 4
|
||||
/* 80357F08 38 9F 00 04 */ addi r4, r31, 4
|
||||
/* 80357F0C 38 A0 00 02 */ li r5, 2
|
||||
/* 80357F10 48 00 E1 7D */ bl memcmp
|
||||
/* 80357F14 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80357F18 40 82 00 0C */ bne lbl_80357F24
|
||||
/* 80357F1C 3B A0 00 00 */ li r29, 0
|
||||
/* 80357F20 48 00 00 44 */ b lbl_80357F64
|
||||
lbl_80357F24:
|
||||
/* 80357F24 57 C0 06 73 */ rlwinm. r0, r30, 0, 0x19, 0x19
|
||||
/* 80357F28 41 82 00 3C */ beq lbl_80357F64
|
||||
/* 80357F2C 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */
|
||||
/* 80357F30 38 83 CD E0 */ addi r4, r3, __CARDDiskNone@l /* 0x8044CDE0@l */
|
||||
/* 80357F34 38 7B 00 00 */ addi r3, r27, 0
|
||||
/* 80357F38 38 A0 00 04 */ li r5, 4
|
||||
/* 80357F3C 48 00 E1 51 */ bl memcmp
|
||||
/* 80357F40 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80357F44 40 82 00 20 */ bne lbl_80357F64
|
||||
/* 80357F48 38 7B 00 04 */ addi r3, r27, 4
|
||||
/* 80357F4C 38 9C 00 04 */ addi r4, r28, 4
|
||||
/* 80357F50 38 A0 00 02 */ li r5, 2
|
||||
/* 80357F54 48 00 E1 39 */ bl memcmp
|
||||
/* 80357F58 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80357F5C 40 82 00 08 */ bne lbl_80357F64
|
||||
/* 80357F60 3B A0 00 00 */ li r29, 0
|
||||
lbl_80357F64:
|
||||
/* 80357F64 2C 1D FF F6 */ cmpwi r29, -10
|
||||
/* 80357F68 40 82 00 18 */ bne lbl_80357F80
|
||||
/* 80357F6C 88 1B 00 34 */ lbz r0, 0x34(r27)
|
||||
/* 80357F70 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
|
||||
/* 80357F74 41 82 00 0C */ beq lbl_80357F80
|
||||
/* 80357F78 38 60 00 00 */ li r3, 0
|
||||
/* 80357F7C 48 00 00 08 */ b lbl_80357F84
|
||||
lbl_80357F80:
|
||||
/* 80357F80 7F A3 EB 78 */ mr r3, r29
|
||||
lbl_80357F84:
|
||||
/* 80357F84 BB 61 00 14 */ lmw r27, 0x14(r1)
|
||||
/* 80357F88 80 01 00 2C */ lwz r0, 0x2c(r1)
|
||||
/* 80357F8C 38 21 00 28 */ addi r1, r1, 0x28
|
||||
/* 80357F90 7C 08 03 A6 */ mtlr r0
|
||||
/* 80357F94 4E 80 00 20 */ blr
|
||||
@@ -1,85 +0,0 @@
|
||||
lbl_80357D70:
|
||||
/* 80357D70 7C 08 02 A6 */ mflr r0
|
||||
/* 80357D74 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80357D78 94 21 FF D8 */ stwu r1, -0x28(r1)
|
||||
/* 80357D7C BF 61 00 14 */ stmw r27, 0x14(r1)
|
||||
/* 80357D80 7C 9B 23 78 */ mr r27, r4
|
||||
/* 80357D84 88 04 00 00 */ lbz r0, 0(r4)
|
||||
/* 80357D88 83 A3 01 0C */ lwz r29, 0x10c(r3)
|
||||
/* 80357D8C 28 00 00 FF */ cmplwi r0, 0xff
|
||||
/* 80357D90 40 82 00 0C */ bne lbl_80357D9C
|
||||
/* 80357D94 3B C0 FF FC */ li r30, -4
|
||||
/* 80357D98 48 00 00 50 */ b lbl_80357DE8
|
||||
lbl_80357D9C:
|
||||
/* 80357D9C 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */
|
||||
/* 80357DA0 38 03 CD E0 */ addi r0, r3, __CARDDiskNone@l /* 0x8044CDE0@l */
|
||||
/* 80357DA4 7C 1D 00 40 */ cmplw r29, r0
|
||||
/* 80357DA8 41 82 00 34 */ beq lbl_80357DDC
|
||||
/* 80357DAC 38 7B 00 00 */ addi r3, r27, 0
|
||||
/* 80357DB0 38 9D 00 00 */ addi r4, r29, 0
|
||||
/* 80357DB4 38 A0 00 04 */ li r5, 4
|
||||
/* 80357DB8 48 00 E2 D5 */ bl memcmp
|
||||
/* 80357DBC 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80357DC0 40 82 00 24 */ bne lbl_80357DE4
|
||||
/* 80357DC4 38 7B 00 04 */ addi r3, r27, 4
|
||||
/* 80357DC8 38 9D 00 04 */ addi r4, r29, 4
|
||||
/* 80357DCC 38 A0 00 02 */ li r5, 2
|
||||
/* 80357DD0 48 00 E2 BD */ bl memcmp
|
||||
/* 80357DD4 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80357DD8 40 82 00 0C */ bne lbl_80357DE4
|
||||
lbl_80357DDC:
|
||||
/* 80357DDC 3B C0 00 00 */ li r30, 0
|
||||
/* 80357DE0 48 00 00 08 */ b lbl_80357DE8
|
||||
lbl_80357DE4:
|
||||
/* 80357DE4 3B C0 FF F6 */ li r30, -10
|
||||
lbl_80357DE8:
|
||||
/* 80357DE8 2C 1E FF F6 */ cmpwi r30, -10
|
||||
/* 80357DEC 40 82 00 A0 */ bne lbl_80357E8C
|
||||
/* 80357DF0 88 7B 00 34 */ lbz r3, 0x34(r27)
|
||||
/* 80357DF4 88 0D 84 F2 */ lbz r0, data_80450A72(r13)
|
||||
/* 80357DF8 7C 60 00 38 */ and r0, r3, r0
|
||||
/* 80357DFC 54 1C 06 3E */ clrlwi r28, r0, 0x18
|
||||
/* 80357E00 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
|
||||
/* 80357E04 41 82 00 44 */ beq lbl_80357E48
|
||||
/* 80357E08 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */
|
||||
/* 80357E0C 3B E3 CD E0 */ addi r31, r3, __CARDDiskNone@l /* 0x8044CDE0@l */
|
||||
/* 80357E10 38 7B 00 00 */ addi r3, r27, 0
|
||||
/* 80357E14 38 9F 00 00 */ addi r4, r31, 0
|
||||
/* 80357E18 38 A0 00 04 */ li r5, 4
|
||||
/* 80357E1C 48 00 E2 71 */ bl memcmp
|
||||
/* 80357E20 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80357E24 40 82 00 24 */ bne lbl_80357E48
|
||||
/* 80357E28 38 7B 00 04 */ addi r3, r27, 4
|
||||
/* 80357E2C 38 9F 00 04 */ addi r4, r31, 4
|
||||
/* 80357E30 38 A0 00 02 */ li r5, 2
|
||||
/* 80357E34 48 00 E2 59 */ bl memcmp
|
||||
/* 80357E38 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80357E3C 40 82 00 0C */ bne lbl_80357E48
|
||||
/* 80357E40 38 60 00 00 */ li r3, 0
|
||||
/* 80357E44 48 00 00 4C */ b lbl_80357E90
|
||||
lbl_80357E48:
|
||||
/* 80357E48 57 80 06 73 */ rlwinm. r0, r28, 0, 0x19, 0x19
|
||||
/* 80357E4C 41 82 00 40 */ beq lbl_80357E8C
|
||||
/* 80357E50 3C 60 80 45 */ lis r3, __CARDDiskNone@ha /* 0x8044CDE0@ha */
|
||||
/* 80357E54 38 83 CD E0 */ addi r4, r3, __CARDDiskNone@l /* 0x8044CDE0@l */
|
||||
/* 80357E58 38 7B 00 00 */ addi r3, r27, 0
|
||||
/* 80357E5C 38 A0 00 04 */ li r5, 4
|
||||
/* 80357E60 48 00 E2 2D */ bl memcmp
|
||||
/* 80357E64 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80357E68 40 82 00 24 */ bne lbl_80357E8C
|
||||
/* 80357E6C 38 7B 00 04 */ addi r3, r27, 4
|
||||
/* 80357E70 38 9D 00 04 */ addi r4, r29, 4
|
||||
/* 80357E74 38 A0 00 02 */ li r5, 2
|
||||
/* 80357E78 48 00 E2 15 */ bl memcmp
|
||||
/* 80357E7C 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80357E80 40 82 00 0C */ bne lbl_80357E8C
|
||||
/* 80357E84 38 60 00 00 */ li r3, 0
|
||||
/* 80357E88 48 00 00 08 */ b lbl_80357E90
|
||||
lbl_80357E8C:
|
||||
/* 80357E8C 7F C3 F3 78 */ mr r3, r30
|
||||
lbl_80357E90:
|
||||
/* 80357E90 BB 61 00 14 */ lmw r27, 0x14(r1)
|
||||
/* 80357E94 80 01 00 2C */ lwz r0, 0x2c(r1)
|
||||
/* 80357E98 38 21 00 28 */ addi r1, r1, 0x28
|
||||
/* 80357E9C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80357EA0 4E 80 00 20 */ blr
|
||||
@@ -1,62 +0,0 @@
|
||||
lbl_803552C4:
|
||||
/* 803552C4 7C 08 02 A6 */ mflr r0
|
||||
/* 803552C8 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 803552CC 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 803552D0 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 803552D4 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 803552D8 7C 9E 23 79 */ or. r30, r4, r4
|
||||
/* 803552DC 93 A1 00 14 */ stw r29, 0x14(r1)
|
||||
/* 803552E0 3B A3 00 00 */ addi r29, r3, 0
|
||||
/* 803552E4 1C BD 01 10 */ mulli r5, r29, 0x110
|
||||
/* 803552E8 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 803552EC 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 803552F0 7F E0 2A 14 */ add r31, r0, r5
|
||||
/* 803552F4 41 80 00 5C */ blt lbl_80355350
|
||||
/* 803552F8 80 7F 00 B8 */ lwz r3, 0xb8(r31)
|
||||
/* 803552FC A0 1F 00 0A */ lhz r0, 0xa(r31)
|
||||
/* 80355300 7C 03 02 14 */ add r0, r3, r0
|
||||
/* 80355304 90 1F 00 B8 */ stw r0, 0xb8(r31)
|
||||
/* 80355308 80 7F 00 B0 */ lwz r3, 0xb0(r31)
|
||||
/* 8035530C A0 1F 00 0A */ lhz r0, 0xa(r31)
|
||||
/* 80355310 7C 03 02 14 */ add r0, r3, r0
|
||||
/* 80355314 90 1F 00 B0 */ stw r0, 0xb0(r31)
|
||||
/* 80355318 80 7F 00 B4 */ lwz r3, 0xb4(r31)
|
||||
/* 8035531C A0 1F 00 0A */ lhz r0, 0xa(r31)
|
||||
/* 80355320 7C 03 02 14 */ add r0, r3, r0
|
||||
/* 80355324 90 1F 00 B4 */ stw r0, 0xb4(r31)
|
||||
/* 80355328 80 7F 00 AC */ lwz r3, 0xac(r31)
|
||||
/* 8035532C 34 03 FF FF */ addic. r0, r3, -1
|
||||
/* 80355330 90 1F 00 AC */ stw r0, 0xac(r31)
|
||||
/* 80355334 40 81 00 1C */ ble lbl_80355350
|
||||
/* 80355338 3C 60 80 35 */ lis r3, BlockWriteCallback@ha /* 0x803552C4@ha */
|
||||
/* 8035533C 38 83 52 C4 */ addi r4, r3, BlockWriteCallback@l /* 0x803552C4@l */
|
||||
/* 80355340 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80355344 4B FF E5 39 */ bl __CARDWritePage
|
||||
/* 80355348 7C 7E 1B 79 */ or. r30, r3, r3
|
||||
/* 8035534C 40 80 00 44 */ bge lbl_80355390
|
||||
lbl_80355350:
|
||||
/* 80355350 80 1F 00 D0 */ lwz r0, 0xd0(r31)
|
||||
/* 80355354 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80355358 40 82 00 10 */ bne lbl_80355368
|
||||
/* 8035535C 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 80355360 38 9E 00 00 */ addi r4, r30, 0
|
||||
/* 80355364 4B FF E9 09 */ bl __CARDPutControlBlock
|
||||
lbl_80355368:
|
||||
/* 80355368 80 1F 00 D4 */ lwz r0, 0xd4(r31)
|
||||
/* 8035536C 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80355370 7C 0C 03 78 */ mr r12, r0
|
||||
/* 80355374 41 82 00 1C */ beq lbl_80355390
|
||||
/* 80355378 38 00 00 00 */ li r0, 0
|
||||
/* 8035537C 7D 88 03 A6 */ mtlr r12
|
||||
/* 80355380 90 1F 00 D4 */ stw r0, 0xd4(r31)
|
||||
/* 80355384 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80355388 38 9E 00 00 */ addi r4, r30, 0
|
||||
/* 8035538C 4E 80 00 21 */ blrl
|
||||
lbl_80355390:
|
||||
/* 80355390 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80355394 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 80355398 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 8035539C 83 A1 00 14 */ lwz r29, 0x14(r1)
|
||||
/* 803553A0 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 803553A4 7C 08 03 A6 */ mtlr r0
|
||||
/* 803553A8 4E 80 00 20 */ blr
|
||||
@@ -1,91 +0,0 @@
|
||||
lbl_80358788:
|
||||
/* 80358788 7C 08 02 A6 */ mflr r0
|
||||
/* 8035878C 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80358790 54 C0 05 FF */ clrlwi. r0, r6, 0x17
|
||||
/* 80358794 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 80358798 93 E1 00 2C */ stw r31, 0x2c(r1)
|
||||
/* 8035879C 3B E5 00 00 */ addi r31, r5, 0
|
||||
/* 803587A0 93 C1 00 28 */ stw r30, 0x28(r1)
|
||||
/* 803587A4 3B C4 00 00 */ addi r30, r4, 0
|
||||
/* 803587A8 93 A1 00 24 */ stw r29, 0x24(r1)
|
||||
/* 803587AC 3B A3 00 00 */ addi r29, r3, 0
|
||||
/* 803587B0 93 81 00 20 */ stw r28, 0x20(r1)
|
||||
/* 803587B4 3B 87 00 00 */ addi r28, r7, 0
|
||||
/* 803587B8 40 82 00 0C */ bne lbl_803587C4
|
||||
/* 803587BC 57 E0 05 FF */ clrlwi. r0, r31, 0x17
|
||||
/* 803587C0 41 82 00 0C */ beq lbl_803587CC
|
||||
lbl_803587C4:
|
||||
/* 803587C4 38 60 FF 80 */ li r3, -128
|
||||
/* 803587C8 48 00 00 E4 */ b lbl_803588AC
|
||||
lbl_803587CC:
|
||||
/* 803587CC 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 803587D0 38 9F 00 00 */ addi r4, r31, 0
|
||||
/* 803587D4 38 A6 00 00 */ addi r5, r6, 0
|
||||
/* 803587D8 38 C1 00 1C */ addi r6, r1, 0x1c
|
||||
/* 803587DC 4B FF FC C5 */ bl __CARDSeek
|
||||
/* 803587E0 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 803587E4 40 80 00 08 */ bge lbl_803587EC
|
||||
/* 803587E8 48 00 00 C4 */ b lbl_803588AC
|
||||
lbl_803587EC:
|
||||
/* 803587EC 80 61 00 1C */ lwz r3, 0x1c(r1)
|
||||
/* 803587F0 4B FF CF 8D */ bl __CARDGetDirBlock
|
||||
/* 803587F4 80 1D 00 04 */ lwz r0, 4(r29)
|
||||
/* 803587F8 54 00 30 32 */ slwi r0, r0, 6
|
||||
/* 803587FC 7C 83 02 14 */ add r4, r3, r0
|
||||
/* 80358800 80 61 00 1C */ lwz r3, 0x1c(r1)
|
||||
/* 80358804 4B FF F6 A1 */ bl __CARDIsReadable
|
||||
/* 80358808 7C 64 1B 79 */ or. r4, r3, r3
|
||||
/* 8035880C 40 80 00 10 */ bge lbl_8035881C
|
||||
/* 80358810 80 61 00 1C */ lwz r3, 0x1c(r1)
|
||||
/* 80358814 4B FF B4 59 */ bl __CARDPutControlBlock
|
||||
/* 80358818 48 00 00 94 */ b lbl_803588AC
|
||||
lbl_8035881C:
|
||||
/* 8035881C 38 7E 00 00 */ addi r3, r30, 0
|
||||
/* 80358820 38 9F 00 00 */ addi r4, r31, 0
|
||||
/* 80358824 4B FE 2D 5D */ bl DCInvalidateRange
|
||||
/* 80358828 28 1C 00 00 */ cmplwi r28, 0
|
||||
/* 8035882C 41 82 00 0C */ beq lbl_80358838
|
||||
/* 80358830 7F 80 E3 78 */ mr r0, r28
|
||||
/* 80358834 48 00 00 0C */ b lbl_80358840
|
||||
lbl_80358838:
|
||||
/* 80358838 3C 60 80 35 */ lis r3, __CARDDefaultApiCallback@ha /* 0x80352A30@ha */
|
||||
/* 8035883C 38 03 2A 30 */ addi r0, r3, __CARDDefaultApiCallback@l /* 0x80352A30@l */
|
||||
lbl_80358840:
|
||||
/* 80358840 80 61 00 1C */ lwz r3, 0x1c(r1)
|
||||
/* 80358844 90 03 00 D0 */ stw r0, 0xd0(r3)
|
||||
/* 80358848 80 61 00 1C */ lwz r3, 0x1c(r1)
|
||||
/* 8035884C 80 9D 00 08 */ lwz r4, 8(r29)
|
||||
/* 80358850 80 A3 00 0C */ lwz r5, 0xc(r3)
|
||||
/* 80358854 38 05 FF FF */ addi r0, r5, -1
|
||||
/* 80358858 7C 88 00 38 */ and r8, r4, r0
|
||||
/* 8035885C 7C 68 28 50 */ subf r3, r8, r5
|
||||
/* 80358860 7C 1F 18 00 */ cmpw r31, r3
|
||||
/* 80358864 40 80 00 08 */ bge lbl_8035886C
|
||||
/* 80358868 7F E3 FB 78 */ mr r3, r31
|
||||
lbl_8035886C:
|
||||
/* 8035886C A0 1D 00 10 */ lhz r0, 0x10(r29)
|
||||
/* 80358870 3C 80 80 36 */ lis r4, ReadCallback@ha /* 0x80358658@ha */
|
||||
/* 80358874 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 80358878 80 7D 00 00 */ lwz r3, 0(r29)
|
||||
/* 8035887C 7C 05 01 D6 */ mullw r0, r5, r0
|
||||
/* 80358880 38 E4 86 58 */ addi r7, r4, ReadCallback@l /* 0x80358658@l */
|
||||
/* 80358884 38 BF 00 00 */ addi r5, r31, 0
|
||||
/* 80358888 38 DE 00 00 */ addi r6, r30, 0
|
||||
/* 8035888C 7C 88 02 14 */ add r4, r8, r0
|
||||
/* 80358890 4B FF C9 D1 */ bl __CARDRead
|
||||
/* 80358894 7C 7D 1B 79 */ or. r29, r3, r3
|
||||
/* 80358898 40 80 00 10 */ bge lbl_803588A8
|
||||
/* 8035889C 80 61 00 1C */ lwz r3, 0x1c(r1)
|
||||
/* 803588A0 7F A4 EB 78 */ mr r4, r29
|
||||
/* 803588A4 4B FF B3 C9 */ bl __CARDPutControlBlock
|
||||
lbl_803588A8:
|
||||
/* 803588A8 7F A3 EB 78 */ mr r3, r29
|
||||
lbl_803588AC:
|
||||
/* 803588AC 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 803588B0 83 E1 00 2C */ lwz r31, 0x2c(r1)
|
||||
/* 803588B4 83 C1 00 28 */ lwz r30, 0x28(r1)
|
||||
/* 803588B8 83 A1 00 24 */ lwz r29, 0x24(r1)
|
||||
/* 803588BC 83 81 00 20 */ lwz r28, 0x20(r1)
|
||||
/* 803588C0 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 803588C4 7C 08 03 A6 */ mtlr r0
|
||||
/* 803588C8 4E 80 00 20 */ blr
|
||||
@@ -1,75 +0,0 @@
|
||||
lbl_80358E88:
|
||||
/* 80358E88 7C 08 02 A6 */ mflr r0
|
||||
/* 80358E8C 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80358E90 94 21 FF D8 */ stwu r1, -0x28(r1)
|
||||
/* 80358E94 93 E1 00 24 */ stw r31, 0x24(r1)
|
||||
/* 80358E98 3B E5 00 00 */ addi r31, r5, 0
|
||||
/* 80358E9C 93 C1 00 20 */ stw r30, 0x20(r1)
|
||||
/* 80358EA0 93 A1 00 1C */ stw r29, 0x1c(r1)
|
||||
/* 80358EA4 7C 9D 23 79 */ or. r29, r4, r4
|
||||
/* 80358EA8 41 80 00 0C */ blt lbl_80358EB4
|
||||
/* 80358EAC 2C 1D 00 7F */ cmpwi r29, 0x7f
|
||||
/* 80358EB0 41 80 00 0C */ blt lbl_80358EBC
|
||||
lbl_80358EB4:
|
||||
/* 80358EB4 38 60 FF 80 */ li r3, -128
|
||||
/* 80358EB8 48 00 00 C8 */ b lbl_80358F80
|
||||
lbl_80358EBC:
|
||||
/* 80358EBC 38 81 00 14 */ addi r4, r1, 0x14
|
||||
/* 80358EC0 4B FF AC F5 */ bl __CARDGetControlBlock
|
||||
/* 80358EC4 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80358EC8 40 80 00 08 */ bge lbl_80358ED0
|
||||
/* 80358ECC 48 00 00 B4 */ b lbl_80358F80
|
||||
lbl_80358ED0:
|
||||
/* 80358ED0 80 61 00 14 */ lwz r3, 0x14(r1)
|
||||
/* 80358ED4 4B FF C8 A9 */ bl __CARDGetDirBlock
|
||||
/* 80358ED8 57 A0 30 32 */ slwi r0, r29, 6
|
||||
/* 80358EDC 7F A3 02 14 */ add r29, r3, r0
|
||||
/* 80358EE0 80 61 00 14 */ lwz r3, 0x14(r1)
|
||||
/* 80358EE4 7F A4 EB 78 */ mr r4, r29
|
||||
/* 80358EE8 4B FF EF BD */ bl __CARDIsReadable
|
||||
/* 80358EEC 7C 7E 1B 79 */ or. r30, r3, r3
|
||||
/* 80358EF0 41 80 00 84 */ blt lbl_80358F74
|
||||
/* 80358EF4 38 9D 00 00 */ addi r4, r29, 0
|
||||
/* 80358EF8 38 7F 00 28 */ addi r3, r31, 0x28
|
||||
/* 80358EFC 38 A0 00 04 */ li r5, 4
|
||||
/* 80358F00 4B CA A6 41 */ bl memcpy
|
||||
/* 80358F04 38 7F 00 2C */ addi r3, r31, 0x2c
|
||||
/* 80358F08 38 9D 00 04 */ addi r4, r29, 4
|
||||
/* 80358F0C 38 A0 00 02 */ li r5, 2
|
||||
/* 80358F10 4B CA A6 31 */ bl memcpy
|
||||
/* 80358F14 80 A1 00 14 */ lwz r5, 0x14(r1)
|
||||
/* 80358F18 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80358F1C A0 DD 00 38 */ lhz r6, 0x38(r29)
|
||||
/* 80358F20 38 9D 00 08 */ addi r4, r29, 8
|
||||
/* 80358F24 80 05 00 0C */ lwz r0, 0xc(r5)
|
||||
/* 80358F28 38 A0 00 20 */ li r5, 0x20
|
||||
/* 80358F2C 7C 06 01 D6 */ mullw r0, r6, r0
|
||||
/* 80358F30 90 1F 00 20 */ stw r0, 0x20(r31)
|
||||
/* 80358F34 4B CA A6 0D */ bl memcpy
|
||||
/* 80358F38 80 1D 00 28 */ lwz r0, 0x28(r29)
|
||||
/* 80358F3C 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80358F40 38 9F 00 00 */ addi r4, r31, 0
|
||||
/* 80358F44 90 1F 00 24 */ stw r0, 0x24(r31)
|
||||
/* 80358F48 88 1D 00 07 */ lbz r0, 7(r29)
|
||||
/* 80358F4C 98 1F 00 2E */ stb r0, 0x2e(r31)
|
||||
/* 80358F50 80 1D 00 2C */ lwz r0, 0x2c(r29)
|
||||
/* 80358F54 90 1F 00 30 */ stw r0, 0x30(r31)
|
||||
/* 80358F58 A0 1D 00 30 */ lhz r0, 0x30(r29)
|
||||
/* 80358F5C B0 1F 00 34 */ sth r0, 0x34(r31)
|
||||
/* 80358F60 A0 1D 00 32 */ lhz r0, 0x32(r29)
|
||||
/* 80358F64 B0 1F 00 36 */ sth r0, 0x36(r31)
|
||||
/* 80358F68 80 1D 00 3C */ lwz r0, 0x3c(r29)
|
||||
/* 80358F6C 90 1F 00 38 */ stw r0, 0x38(r31)
|
||||
/* 80358F70 4B FF FD 21 */ bl UpdateIconOffsets
|
||||
lbl_80358F74:
|
||||
/* 80358F74 80 61 00 14 */ lwz r3, 0x14(r1)
|
||||
/* 80358F78 7F C4 F3 78 */ mr r4, r30
|
||||
/* 80358F7C 4B FF AC F1 */ bl __CARDPutControlBlock
|
||||
lbl_80358F80:
|
||||
/* 80358F80 80 01 00 2C */ lwz r0, 0x2c(r1)
|
||||
/* 80358F84 83 E1 00 24 */ lwz r31, 0x24(r1)
|
||||
/* 80358F88 83 C1 00 20 */ lwz r30, 0x20(r1)
|
||||
/* 80358F8C 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
||||
/* 80358F90 38 21 00 28 */ addi r1, r1, 0x28
|
||||
/* 80358F94 7C 08 03 A6 */ mtlr r0
|
||||
/* 80358F98 4E 80 00 20 */ blr
|
||||
@@ -1,102 +0,0 @@
|
||||
lbl_80358F9C:
|
||||
/* 80358F9C 7C 08 02 A6 */ mflr r0
|
||||
/* 80358FA0 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80358FA4 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 80358FA8 93 E1 00 2C */ stw r31, 0x2c(r1)
|
||||
/* 80358FAC 7C 9F 23 79 */ or. r31, r4, r4
|
||||
/* 80358FB0 93 C1 00 28 */ stw r30, 0x28(r1)
|
||||
/* 80358FB4 3B C6 00 00 */ addi r30, r6, 0
|
||||
/* 80358FB8 93 A1 00 24 */ stw r29, 0x24(r1)
|
||||
/* 80358FBC 3B A5 00 00 */ addi r29, r5, 0
|
||||
/* 80358FC0 93 81 00 20 */ stw r28, 0x20(r1)
|
||||
/* 80358FC4 3B 83 00 00 */ addi r28, r3, 0
|
||||
/* 80358FC8 41 80 00 40 */ blt lbl_80359008
|
||||
/* 80358FCC 2C 1F 00 7F */ cmpwi r31, 0x7f
|
||||
/* 80358FD0 40 80 00 38 */ bge lbl_80359008
|
||||
/* 80358FD4 80 7D 00 30 */ lwz r3, 0x30(r29)
|
||||
/* 80358FD8 3C 03 00 01 */ addis r0, r3, 1
|
||||
/* 80358FDC 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 80358FE0 41 82 00 0C */ beq lbl_80358FEC
|
||||
/* 80358FE4 28 03 02 00 */ cmplwi r3, 0x200
|
||||
/* 80358FE8 40 80 00 20 */ bge lbl_80359008
|
||||
lbl_80358FEC:
|
||||
/* 80358FEC 80 7D 00 38 */ lwz r3, 0x38(r29)
|
||||
/* 80358FF0 3C 03 00 01 */ addis r0, r3, 1
|
||||
/* 80358FF4 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 80358FF8 41 82 00 18 */ beq lbl_80359010
|
||||
/* 80358FFC 54 60 04 FE */ clrlwi r0, r3, 0x13
|
||||
/* 80359000 28 00 1F C0 */ cmplwi r0, 0x1fc0
|
||||
/* 80359004 40 81 00 0C */ ble lbl_80359010
|
||||
lbl_80359008:
|
||||
/* 80359008 38 60 FF 80 */ li r3, -128
|
||||
/* 8035900C 48 00 00 E4 */ b lbl_803590F0
|
||||
lbl_80359010:
|
||||
/* 80359010 38 7C 00 00 */ addi r3, r28, 0
|
||||
/* 80359014 38 81 00 18 */ addi r4, r1, 0x18
|
||||
/* 80359018 4B FF AB 9D */ bl __CARDGetControlBlock
|
||||
/* 8035901C 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80359020 40 80 00 08 */ bge lbl_80359028
|
||||
/* 80359024 48 00 00 CC */ b lbl_803590F0
|
||||
lbl_80359028:
|
||||
/* 80359028 80 61 00 18 */ lwz r3, 0x18(r1)
|
||||
/* 8035902C 4B FF C7 51 */ bl __CARDGetDirBlock
|
||||
/* 80359030 57 E0 30 32 */ slwi r0, r31, 6
|
||||
/* 80359034 7F E3 02 14 */ add r31, r3, r0
|
||||
/* 80359038 80 61 00 18 */ lwz r3, 0x18(r1)
|
||||
/* 8035903C 7F E4 FB 78 */ mr r4, r31
|
||||
/* 80359040 4B FF ED 31 */ bl __CARDIsWritable
|
||||
/* 80359044 7C 64 1B 79 */ or. r4, r3, r3
|
||||
/* 80359048 40 80 00 10 */ bge lbl_80359058
|
||||
/* 8035904C 80 61 00 18 */ lwz r3, 0x18(r1)
|
||||
/* 80359050 4B FF AC 1D */ bl __CARDPutControlBlock
|
||||
/* 80359054 48 00 00 9C */ b lbl_803590F0
|
||||
lbl_80359058:
|
||||
/* 80359058 88 1D 00 2E */ lbz r0, 0x2e(r29)
|
||||
/* 8035905C 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 80359060 38 9D 00 00 */ addi r4, r29, 0
|
||||
/* 80359064 98 1F 00 07 */ stb r0, 7(r31)
|
||||
/* 80359068 80 1D 00 30 */ lwz r0, 0x30(r29)
|
||||
/* 8035906C 90 1F 00 2C */ stw r0, 0x2c(r31)
|
||||
/* 80359070 A0 1D 00 34 */ lhz r0, 0x34(r29)
|
||||
/* 80359074 B0 1F 00 30 */ sth r0, 0x30(r31)
|
||||
/* 80359078 A0 1D 00 36 */ lhz r0, 0x36(r29)
|
||||
/* 8035907C B0 1F 00 32 */ sth r0, 0x32(r31)
|
||||
/* 80359080 80 1D 00 38 */ lwz r0, 0x38(r29)
|
||||
/* 80359084 90 1F 00 3C */ stw r0, 0x3c(r31)
|
||||
/* 80359088 4B FF FC 09 */ bl UpdateIconOffsets
|
||||
/* 8035908C 80 7F 00 2C */ lwz r3, 0x2c(r31)
|
||||
/* 80359090 3C 03 00 01 */ addis r0, r3, 1
|
||||
/* 80359094 28 00 FF FF */ cmplwi r0, 0xffff
|
||||
/* 80359098 40 82 00 14 */ bne lbl_803590AC
|
||||
/* 8035909C A0 1F 00 32 */ lhz r0, 0x32(r31)
|
||||
/* 803590A0 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d
|
||||
/* 803590A4 60 00 00 01 */ ori r0, r0, 1
|
||||
/* 803590A8 B0 1F 00 32 */ sth r0, 0x32(r31)
|
||||
lbl_803590AC:
|
||||
/* 803590AC 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
|
||||
/* 803590B0 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
|
||||
/* 803590B4 54 1D F0 BE */ srwi r29, r0, 2
|
||||
/* 803590B8 4B FE 96 45 */ bl OSGetTime
|
||||
/* 803590BC 38 DD 00 00 */ addi r6, r29, 0
|
||||
/* 803590C0 38 A0 00 00 */ li r5, 0
|
||||
/* 803590C4 48 00 92 61 */ bl __div2i
|
||||
/* 803590C8 90 9F 00 28 */ stw r4, 0x28(r31)
|
||||
/* 803590CC 38 7C 00 00 */ addi r3, r28, 0
|
||||
/* 803590D0 38 9E 00 00 */ addi r4, r30, 0
|
||||
/* 803590D4 4B FF C8 49 */ bl __CARDUpdateDir
|
||||
/* 803590D8 7C 7C 1B 79 */ or. r28, r3, r3
|
||||
/* 803590DC 40 80 00 10 */ bge lbl_803590EC
|
||||
/* 803590E0 80 61 00 18 */ lwz r3, 0x18(r1)
|
||||
/* 803590E4 7F 84 E3 78 */ mr r4, r28
|
||||
/* 803590E8 4B FF AB 85 */ bl __CARDPutControlBlock
|
||||
lbl_803590EC:
|
||||
/* 803590EC 7F 83 E3 78 */ mr r3, r28
|
||||
lbl_803590F0:
|
||||
/* 803590F0 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 803590F4 83 E1 00 2C */ lwz r31, 0x2c(r1)
|
||||
/* 803590F8 83 C1 00 28 */ lwz r30, 0x28(r1)
|
||||
/* 803590FC 83 A1 00 24 */ lwz r29, 0x24(r1)
|
||||
/* 80359100 83 81 00 20 */ lwz r28, 0x20(r1)
|
||||
/* 80359104 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 80359108 7C 08 03 A6 */ mtlr r0
|
||||
/* 8035910C 4E 80 00 20 */ blr
|
||||
@@ -1,212 +0,0 @@
|
||||
lbl_80354E60:
|
||||
/* 80354E60 7C 08 02 A6 */ mflr r0
|
||||
/* 80354E64 3C 80 80 45 */ lis r4, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 80354E68 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80354E6C 38 84 CB C0 */ addi r4, r4, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 80354E70 38 04 00 30 */ addi r0, r4, 0x30
|
||||
/* 80354E74 94 21 FF 78 */ stwu r1, -0x88(r1)
|
||||
/* 80354E78 7C 00 18 40 */ cmplw r0, r3
|
||||
/* 80354E7C 93 E1 00 84 */ stw r31, 0x84(r1)
|
||||
/* 80354E80 3B E0 00 00 */ li r31, 0
|
||||
/* 80354E84 93 C1 00 80 */ stw r30, 0x80(r1)
|
||||
/* 80354E88 93 A1 00 7C */ stw r29, 0x7c(r1)
|
||||
/* 80354E8C 3B A4 00 00 */ addi r29, r4, 0
|
||||
/* 80354E90 93 81 00 78 */ stw r28, 0x78(r1)
|
||||
/* 80354E94 41 82 00 20 */ beq lbl_80354EB4
|
||||
/* 80354E98 38 04 01 40 */ addi r0, r4, 0x140
|
||||
/* 80354E9C 7C 00 18 40 */ cmplw r0, r3
|
||||
/* 80354EA0 38 84 01 10 */ addi r4, r4, 0x110
|
||||
/* 80354EA4 3B A4 00 00 */ addi r29, r4, 0
|
||||
/* 80354EA8 3B E0 00 01 */ li r31, 1
|
||||
/* 80354EAC 41 82 00 08 */ beq lbl_80354EB4
|
||||
/* 80354EB0 3B E0 00 02 */ li r31, 2
|
||||
lbl_80354EB4:
|
||||
/* 80354EB4 80 7D 00 80 */ lwz r3, 0x80(r29)
|
||||
/* 80354EB8 38 03 00 2F */ addi r0, r3, 0x2f
|
||||
/* 80354EBC 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a
|
||||
/* 80354EC0 83 C3 00 20 */ lwz r30, 0x20(r3)
|
||||
/* 80354EC4 4B FF F3 11 */ bl DummyLen
|
||||
/* 80354EC8 80 1D 00 2C */ lwz r0, 0x2c(r29)
|
||||
/* 80354ECC 3B 83 00 00 */ addi r28, r3, 0
|
||||
/* 80354ED0 38 DC 00 00 */ addi r6, r28, 0
|
||||
/* 80354ED4 7F C0 02 78 */ xor r0, r30, r0
|
||||
/* 80354ED8 54 04 00 1E */ rlwinm r4, r0, 0, 0, 0xf
|
||||
/* 80354EDC 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 80354EE0 38 A1 00 34 */ addi r5, r1, 0x34
|
||||
/* 80354EE4 38 E0 00 01 */ li r7, 1
|
||||
/* 80354EE8 4B FF F1 A9 */ bl ReadArrayUnlock
|
||||
/* 80354EEC 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80354EF0 40 80 00 1C */ bge lbl_80354F0C
|
||||
/* 80354EF4 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80354EF8 4B FE F2 25 */ bl EXIUnlock
|
||||
/* 80354EFC 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 80354F00 38 80 FF FD */ li r4, -3
|
||||
/* 80354F04 48 00 21 19 */ bl __CARDMountCallback
|
||||
/* 80354F08 48 00 02 5C */ b lbl_80355164
|
||||
lbl_80354F0C:
|
||||
/* 80354F0C 80 9D 00 14 */ lwz r4, 0x14(r29)
|
||||
/* 80354F10 38 60 00 00 */ li r3, 0
|
||||
/* 80354F14 80 1D 00 2C */ lwz r0, 0x2c(r29)
|
||||
/* 80354F18 7C 9C 22 14 */ add r4, r28, r4
|
||||
/* 80354F1C 38 84 00 04 */ addi r4, r4, 4
|
||||
/* 80354F20 54 84 18 38 */ slwi r4, r4, 3
|
||||
/* 80354F24 38 84 00 01 */ addi r4, r4, 1
|
||||
/* 80354F28 28 04 00 00 */ cmplwi r4, 0
|
||||
/* 80354F2C 40 81 01 68 */ ble lbl_80355094
|
||||
/* 80354F30 28 04 00 08 */ cmplwi r4, 8
|
||||
/* 80354F34 38 C4 FF F8 */ addi r6, r4, -8
|
||||
/* 80354F38 40 81 01 24 */ ble lbl_8035505C
|
||||
/* 80354F3C 38 A6 00 07 */ addi r5, r6, 7
|
||||
/* 80354F40 54 A5 E8 FE */ srwi r5, r5, 3
|
||||
/* 80354F44 28 06 00 00 */ cmplwi r6, 0
|
||||
/* 80354F48 7C A9 03 A6 */ mtctr r5
|
||||
/* 80354F4C 40 81 01 10 */ ble lbl_8035505C
|
||||
lbl_80354F50:
|
||||
/* 80354F50 54 05 38 30 */ slwi r5, r0, 7
|
||||
/* 80354F54 54 06 78 20 */ slwi r6, r0, 0xf
|
||||
/* 80354F58 7C 05 2A 78 */ xor r5, r0, r5
|
||||
/* 80354F5C 7C C5 2A 78 */ xor r5, r6, r5
|
||||
/* 80354F60 54 07 B8 10 */ slwi r7, r0, 0x17
|
||||
/* 80354F64 7C E5 2A 38 */ eqv r5, r7, r5
|
||||
/* 80354F68 54 06 08 3C */ slwi r6, r0, 1
|
||||
/* 80354F6C 54 A0 17 BC */ rlwinm r0, r5, 2, 0x1e, 0x1e
|
||||
/* 80354F70 7C C7 03 78 */ or r7, r6, r0
|
||||
/* 80354F74 54 E0 38 30 */ slwi r0, r7, 7
|
||||
/* 80354F78 54 E5 78 20 */ slwi r5, r7, 0xf
|
||||
/* 80354F7C 7C E0 02 78 */ xor r0, r7, r0
|
||||
/* 80354F80 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 80354F84 7C A0 02 78 */ xor r0, r5, r0
|
||||
/* 80354F88 7C C0 02 38 */ eqv r0, r6, r0
|
||||
/* 80354F8C 54 08 17 BC */ rlwinm r8, r0, 2, 0x1e, 0x1e
|
||||
/* 80354F90 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
|
||||
/* 80354F94 55 00 38 30 */ slwi r0, r8, 7
|
||||
/* 80354F98 55 05 78 20 */ slwi r5, r8, 0xf
|
||||
/* 80354F9C 7D 00 02 78 */ xor r0, r8, r0
|
||||
/* 80354FA0 55 06 B8 10 */ slwi r6, r8, 0x17
|
||||
/* 80354FA4 7C A0 02 78 */ xor r0, r5, r0
|
||||
/* 80354FA8 7C C0 02 38 */ eqv r0, r6, r0
|
||||
/* 80354FAC 54 07 17 BC */ rlwinm r7, r0, 2, 0x1e, 0x1e
|
||||
/* 80354FB0 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
|
||||
/* 80354FB4 54 E0 38 30 */ slwi r0, r7, 7
|
||||
/* 80354FB8 54 E5 78 20 */ slwi r5, r7, 0xf
|
||||
/* 80354FBC 7C E0 02 78 */ xor r0, r7, r0
|
||||
/* 80354FC0 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 80354FC4 7C A0 02 78 */ xor r0, r5, r0
|
||||
/* 80354FC8 7C C0 02 38 */ eqv r0, r6, r0
|
||||
/* 80354FCC 54 08 17 BC */ rlwinm r8, r0, 2, 0x1e, 0x1e
|
||||
/* 80354FD0 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
|
||||
/* 80354FD4 55 00 38 30 */ slwi r0, r8, 7
|
||||
/* 80354FD8 55 05 78 20 */ slwi r5, r8, 0xf
|
||||
/* 80354FDC 7D 00 02 78 */ xor r0, r8, r0
|
||||
/* 80354FE0 55 06 B8 10 */ slwi r6, r8, 0x17
|
||||
/* 80354FE4 7C A0 02 78 */ xor r0, r5, r0
|
||||
/* 80354FE8 7C C0 02 38 */ eqv r0, r6, r0
|
||||
/* 80354FEC 54 07 17 BC */ rlwinm r7, r0, 2, 0x1e, 0x1e
|
||||
/* 80354FF0 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
|
||||
/* 80354FF4 54 E0 38 30 */ slwi r0, r7, 7
|
||||
/* 80354FF8 54 E5 78 20 */ slwi r5, r7, 0xf
|
||||
/* 80354FFC 7C E0 02 78 */ xor r0, r7, r0
|
||||
/* 80355000 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 80355004 7C A0 02 78 */ xor r0, r5, r0
|
||||
/* 80355008 7C C0 02 38 */ eqv r0, r6, r0
|
||||
/* 8035500C 54 08 17 BC */ rlwinm r8, r0, 2, 0x1e, 0x1e
|
||||
/* 80355010 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
|
||||
/* 80355014 55 00 38 30 */ slwi r0, r8, 7
|
||||
/* 80355018 55 05 78 20 */ slwi r5, r8, 0xf
|
||||
/* 8035501C 7D 00 02 78 */ xor r0, r8, r0
|
||||
/* 80355020 55 06 B8 10 */ slwi r6, r8, 0x17
|
||||
/* 80355024 7C A0 02 78 */ xor r0, r5, r0
|
||||
/* 80355028 7C C0 02 38 */ eqv r0, r6, r0
|
||||
/* 8035502C 54 07 17 BC */ rlwinm r7, r0, 2, 0x1e, 0x1e
|
||||
/* 80355030 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
|
||||
/* 80355034 54 E0 38 30 */ slwi r0, r7, 7
|
||||
/* 80355038 54 E5 78 20 */ slwi r5, r7, 0xf
|
||||
/* 8035503C 7C E0 02 78 */ xor r0, r7, r0
|
||||
/* 80355040 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 80355044 7C A0 02 78 */ xor r0, r5, r0
|
||||
/* 80355048 7C C0 02 38 */ eqv r0, r6, r0
|
||||
/* 8035504C 54 00 17 BC */ rlwinm r0, r0, 2, 0x1e, 0x1e
|
||||
/* 80355050 50 E0 08 3A */ rlwimi r0, r7, 1, 0, 0x1d
|
||||
/* 80355054 38 63 00 08 */ addi r3, r3, 8
|
||||
/* 80355058 42 00 FE F8 */ bdnz lbl_80354F50
|
||||
lbl_8035505C:
|
||||
/* 8035505C 7C A3 20 50 */ subf r5, r3, r4
|
||||
/* 80355060 7C 03 20 40 */ cmplw r3, r4
|
||||
/* 80355064 7C A9 03 A6 */ mtctr r5
|
||||
/* 80355068 40 80 00 2C */ bge lbl_80355094
|
||||
lbl_8035506C:
|
||||
/* 8035506C 54 03 38 30 */ slwi r3, r0, 7
|
||||
/* 80355070 54 04 78 20 */ slwi r4, r0, 0xf
|
||||
/* 80355074 7C 03 1A 78 */ xor r3, r0, r3
|
||||
/* 80355078 54 05 B8 10 */ slwi r5, r0, 0x17
|
||||
/* 8035507C 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80355080 7C A3 1A 38 */ eqv r3, r5, r3
|
||||
/* 80355084 54 04 08 3C */ slwi r4, r0, 1
|
||||
/* 80355088 54 60 17 BC */ rlwinm r0, r3, 2, 0x1e, 0x1e
|
||||
/* 8035508C 7C 80 03 78 */ or r0, r4, r0
|
||||
/* 80355090 42 00 FF DC */ bdnz lbl_8035506C
|
||||
lbl_80355094:
|
||||
/* 80355094 54 03 38 30 */ slwi r3, r0, 7
|
||||
/* 80355098 54 04 78 20 */ slwi r4, r0, 0xf
|
||||
/* 8035509C 7C 03 1A 78 */ xor r3, r0, r3
|
||||
/* 803550A0 54 05 B8 10 */ slwi r5, r0, 0x17
|
||||
/* 803550A4 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 803550A8 7C A3 1A 38 */ eqv r3, r5, r3
|
||||
/* 803550AC 54 63 0F FE */ srwi r3, r3, 0x1f
|
||||
/* 803550B0 7C 00 1B 78 */ or r0, r0, r3
|
||||
/* 803550B4 90 1D 00 2C */ stw r0, 0x2c(r29)
|
||||
/* 803550B8 4B FF F1 1D */ bl DummyLen
|
||||
/* 803550BC 80 1D 00 2C */ lwz r0, 0x2c(r29)
|
||||
/* 803550C0 57 C4 80 1E */ slwi r4, r30, 0x10
|
||||
/* 803550C4 38 C3 00 00 */ addi r6, r3, 0
|
||||
/* 803550C8 7C 80 02 78 */ xor r0, r4, r0
|
||||
/* 803550CC 54 04 00 1E */ rlwinm r4, r0, 0, 0, 0xf
|
||||
/* 803550D0 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 803550D4 38 A1 00 34 */ addi r5, r1, 0x34
|
||||
/* 803550D8 38 E0 00 01 */ li r7, 1
|
||||
/* 803550DC 4B FF EF B5 */ bl ReadArrayUnlock
|
||||
/* 803550E0 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 803550E4 40 80 00 1C */ bge lbl_80355100
|
||||
/* 803550E8 7F E3 FB 78 */ mr r3, r31
|
||||
/* 803550EC 4B FE F0 31 */ bl EXIUnlock
|
||||
/* 803550F0 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 803550F4 38 80 FF FD */ li r4, -3
|
||||
/* 803550F8 48 00 1F 25 */ bl __CARDMountCallback
|
||||
/* 803550FC 48 00 00 68 */ b lbl_80355164
|
||||
lbl_80355100:
|
||||
/* 80355100 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 80355104 38 81 00 30 */ addi r4, r1, 0x30
|
||||
/* 80355108 4B FF DD 3D */ bl __CARDReadStatus
|
||||
/* 8035510C 3B 83 00 00 */ addi r28, r3, 0
|
||||
/* 80355110 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 80355114 4B FE E4 59 */ bl EXIProbe
|
||||
/* 80355118 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 8035511C 40 82 00 1C */ bne lbl_80355138
|
||||
/* 80355120 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80355124 4B FE EF F9 */ bl EXIUnlock
|
||||
/* 80355128 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 8035512C 38 80 FF FD */ li r4, -3
|
||||
/* 80355130 48 00 1E ED */ bl __CARDMountCallback
|
||||
/* 80355134 48 00 00 30 */ b lbl_80355164
|
||||
lbl_80355138:
|
||||
/* 80355138 2C 1C 00 00 */ cmpwi r28, 0
|
||||
/* 8035513C 40 82 00 1C */ bne lbl_80355158
|
||||
/* 80355140 88 01 00 30 */ lbz r0, 0x30(r1)
|
||||
/* 80355144 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19
|
||||
/* 80355148 40 82 00 10 */ bne lbl_80355158
|
||||
/* 8035514C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80355150 4B FE EF CD */ bl EXIUnlock
|
||||
/* 80355154 3B 80 FF FB */ li r28, -5
|
||||
lbl_80355158:
|
||||
/* 80355158 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 8035515C 38 9C 00 00 */ addi r4, r28, 0
|
||||
/* 80355160 48 00 1E BD */ bl __CARDMountCallback
|
||||
lbl_80355164:
|
||||
/* 80355164 80 01 00 8C */ lwz r0, 0x8c(r1)
|
||||
/* 80355168 83 E1 00 84 */ lwz r31, 0x84(r1)
|
||||
/* 8035516C 83 C1 00 80 */ lwz r30, 0x80(r1)
|
||||
/* 80355170 83 A1 00 7C */ lwz r29, 0x7c(r1)
|
||||
/* 80355174 83 81 00 78 */ lwz r28, 0x78(r1)
|
||||
/* 80355178 38 21 00 88 */ addi r1, r1, 0x88
|
||||
/* 8035517C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80355180 4E 80 00 20 */ blr
|
||||
@@ -1,55 +0,0 @@
|
||||
lbl_803541D4:
|
||||
/* 803541D4 7C 08 02 A6 */ mflr r0
|
||||
/* 803541D8 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 803541DC 94 21 FF D8 */ stwu r1, -0x28(r1)
|
||||
/* 803541E0 93 E1 00 24 */ stw r31, 0x24(r1)
|
||||
/* 803541E4 93 C1 00 20 */ stw r30, 0x20(r1)
|
||||
/* 803541E8 3B C0 00 01 */ li r30, 1
|
||||
/* 803541EC 93 A1 00 1C */ stw r29, 0x1c(r1)
|
||||
/* 803541F0 3B A0 00 00 */ li r29, 0
|
||||
/* 803541F4 4B FE E5 21 */ bl OSGetTick
|
||||
/* 803541F8 90 6D 84 E8 */ stw r3, next(r13)
|
||||
/* 803541FC 3C 60 41 C6 */ lis r3, 0x41C6 /* 0x41C64E6D@ha */
|
||||
/* 80354200 3B E3 4E 6D */ addi r31, r3, 0x4E6D /* 0x41C64E6D@l */
|
||||
/* 80354204 80 0D 84 E8 */ lwz r0, next(r13)
|
||||
/* 80354208 7C 60 F9 D6 */ mullw r3, r0, r31
|
||||
/* 8035420C 38 03 30 39 */ addi r0, r3, 0x3039
|
||||
/* 80354210 90 0D 84 E8 */ stw r0, next(r13)
|
||||
/* 80354214 80 0D 84 E8 */ lwz r0, next(r13)
|
||||
/* 80354218 54 03 86 FE */ rlwinm r3, r0, 0x10, 0x1b, 0x1f
|
||||
/* 8035421C 38 63 00 01 */ addi r3, r3, 1
|
||||
/* 80354220 48 00 00 40 */ b lbl_80354260
|
||||
lbl_80354224:
|
||||
/* 80354224 4B FE E4 F1 */ bl OSGetTick
|
||||
/* 80354228 7C 60 F0 30 */ slw r0, r3, r30
|
||||
/* 8035422C 3B DE 00 01 */ addi r30, r30, 1
|
||||
/* 80354230 28 1E 00 10 */ cmplwi r30, 0x10
|
||||
/* 80354234 40 81 00 08 */ ble lbl_8035423C
|
||||
/* 80354238 3B C0 00 01 */ li r30, 1
|
||||
lbl_8035423C:
|
||||
/* 8035423C 90 0D 84 E8 */ stw r0, next(r13)
|
||||
/* 80354240 3B BD 00 01 */ addi r29, r29, 1
|
||||
/* 80354244 80 0D 84 E8 */ lwz r0, next(r13)
|
||||
/* 80354248 7C 60 F9 D6 */ mullw r3, r0, r31
|
||||
/* 8035424C 38 03 30 39 */ addi r0, r3, 0x3039
|
||||
/* 80354250 90 0D 84 E8 */ stw r0, next(r13)
|
||||
/* 80354254 80 0D 84 E8 */ lwz r0, next(r13)
|
||||
/* 80354258 54 03 86 FE */ rlwinm r3, r0, 0x10, 0x1b, 0x1f
|
||||
/* 8035425C 38 63 00 01 */ addi r3, r3, 1
|
||||
lbl_80354260:
|
||||
/* 80354260 2C 03 00 04 */ cmpwi r3, 4
|
||||
/* 80354264 40 80 00 0C */ bge lbl_80354270
|
||||
/* 80354268 28 1D 00 0A */ cmplwi r29, 0xa
|
||||
/* 8035426C 41 80 FF B8 */ blt lbl_80354224
|
||||
lbl_80354270:
|
||||
/* 80354270 2C 03 00 04 */ cmpwi r3, 4
|
||||
/* 80354274 40 80 00 08 */ bge lbl_8035427C
|
||||
/* 80354278 38 60 00 04 */ li r3, 4
|
||||
lbl_8035427C:
|
||||
/* 8035427C 80 01 00 2C */ lwz r0, 0x2c(r1)
|
||||
/* 80354280 83 E1 00 24 */ lwz r31, 0x24(r1)
|
||||
/* 80354284 83 C1 00 20 */ lwz r30, 0x20(r1)
|
||||
/* 80354288 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
||||
/* 8035428C 38 21 00 28 */ addi r1, r1, 0x28
|
||||
/* 80354290 7C 08 03 A6 */ mtlr r0
|
||||
/* 80354294 4E 80 00 20 */ blr
|
||||
@@ -1,32 +0,0 @@
|
||||
lbl_80354DF0:
|
||||
/* 80354DF0 7C 08 02 A6 */ mflr r0
|
||||
/* 80354DF4 3C 80 80 45 */ lis r4, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 80354DF8 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80354DFC 38 84 CB C0 */ addi r4, r4, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 80354E00 38 04 00 30 */ addi r0, r4, 0x30
|
||||
/* 80354E04 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 80354E08 7C 00 18 40 */ cmplw r0, r3
|
||||
/* 80354E0C 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 80354E10 41 82 00 10 */ beq lbl_80354E20
|
||||
/* 80354E14 38 04 01 40 */ addi r0, r4, 0x140
|
||||
/* 80354E18 7C 00 18 40 */ cmplw r0, r3
|
||||
/* 80354E1C 38 84 01 10 */ addi r4, r4, 0x110
|
||||
lbl_80354E20:
|
||||
/* 80354E20 83 E4 00 80 */ lwz r31, 0x80(r4)
|
||||
/* 80354E24 3C 60 FF 00 */ lis r3, 0xff00
|
||||
/* 80354E28 4B FF D6 41 */ bl DSPSendMailToDSP
|
||||
lbl_80354E2C:
|
||||
/* 80354E2C 4B FF D6 05 */ bl DSPCheckMailToDSP
|
||||
/* 80354E30 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 80354E34 40 82 FF F8 */ bne lbl_80354E2C
|
||||
/* 80354E38 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80354E3C 4B FF D6 2D */ bl DSPSendMailToDSP
|
||||
lbl_80354E40:
|
||||
/* 80354E40 4B FF D5 F1 */ bl DSPCheckMailToDSP
|
||||
/* 80354E44 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 80354E48 40 82 FF F8 */ bne lbl_80354E40
|
||||
/* 80354E4C 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 80354E50 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 80354E54 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 80354E58 7C 08 03 A6 */ mtlr r0
|
||||
/* 80354E5C 4E 80 00 20 */ blr
|
||||
@@ -1,745 +0,0 @@
|
||||
lbl_80354298:
|
||||
/* 80354298 7C 08 02 A6 */ mflr r0
|
||||
/* 8035429C 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 803542A0 94 21 FE E0 */ stwu r1, -0x120(r1)
|
||||
/* 803542A4 BE C1 00 F8 */ stmw r22, 0xf8(r1)
|
||||
/* 803542A8 3B 03 00 00 */ addi r24, r3, 0
|
||||
/* 803542AC 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 803542B0 1C B8 01 10 */ mulli r5, r24, 0x110
|
||||
/* 803542B4 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 803542B8 7F E0 2A 14 */ add r31, r0, r5
|
||||
/* 803542BC 3A E4 00 00 */ addi r23, r4, 0
|
||||
/* 803542C0 3B DF 00 30 */ addi r30, r31, 0x30
|
||||
/* 803542C4 80 7F 00 80 */ lwz r3, 0x80(r31)
|
||||
/* 803542C8 38 03 00 2F */ addi r0, r3, 0x2f
|
||||
/* 803542CC 54 1C 00 34 */ rlwinm r28, r0, 0, 0, 0x1a
|
||||
/* 803542D0 3B A3 00 00 */ addi r29, r3, 0
|
||||
/* 803542D4 3A DC 00 20 */ addi r22, r28, 0x20
|
||||
/* 803542D8 4B FE E4 3D */ bl OSGetTick
|
||||
/* 803542DC 90 6D 84 E8 */ stw r3, next(r13)
|
||||
/* 803542E0 3C 60 41 C6 */ lis r3, 0x41C6 /* 0x41C64E6D@ha */
|
||||
/* 803542E4 3C A0 7F ED */ lis r5, 0x7FED /* 0x7FEC8000@ha */
|
||||
/* 803542E8 80 8D 84 E8 */ lwz r4, next(r13)
|
||||
/* 803542EC 38 03 4E 6D */ addi r0, r3, 0x4E6D /* 0x41C64E6D@l */
|
||||
/* 803542F0 3B 25 80 00 */ addi r25, r5, 0x8000 /* 0x7FEC8000@l */
|
||||
/* 803542F4 7C 64 01 D6 */ mullw r3, r4, r0
|
||||
/* 803542F8 38 03 30 39 */ addi r0, r3, 0x3039
|
||||
/* 803542FC 90 0D 84 E8 */ stw r0, next(r13)
|
||||
/* 80354300 80 0D 84 E8 */ lwz r0, next(r13)
|
||||
/* 80354304 54 00 84 7E */ rlwinm r0, r0, 0x10, 0x11, 0x1f
|
||||
/* 80354308 7F 39 03 78 */ or r25, r25, r0
|
||||
/* 8035430C 57 39 00 26 */ rlwinm r25, r25, 0, 0, 0x13
|
||||
/* 80354310 4B FF FE C5 */ bl DummyLen
|
||||
/* 80354314 3B 43 00 00 */ addi r26, r3, 0
|
||||
/* 80354318 38 DA 00 00 */ addi r6, r26, 0
|
||||
/* 8035431C 38 78 00 00 */ addi r3, r24, 0
|
||||
/* 80354320 38 99 00 00 */ addi r4, r25, 0
|
||||
/* 80354324 38 A1 00 A4 */ addi r5, r1, 0xa4
|
||||
/* 80354328 38 E0 00 00 */ li r7, 0
|
||||
/* 8035432C 4B FF FD 65 */ bl ReadArrayUnlock
|
||||
/* 80354330 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80354334 40 80 00 0C */ bge lbl_80354340
|
||||
/* 80354338 38 60 FF FD */ li r3, -3
|
||||
/* 8035433C 48 00 0A A0 */ b lbl_80354DDC
|
||||
lbl_80354340:
|
||||
/* 80354340 57 43 18 38 */ slwi r3, r26, 3
|
||||
/* 80354344 38 83 00 01 */ addi r4, r3, 1
|
||||
/* 80354348 28 04 00 00 */ cmplwi r4, 0
|
||||
/* 8035434C 38 60 00 00 */ li r3, 0
|
||||
/* 80354350 40 81 01 68 */ ble lbl_803544B8
|
||||
/* 80354354 28 04 00 08 */ cmplwi r4, 8
|
||||
/* 80354358 38 A4 FF F8 */ addi r5, r4, -8
|
||||
/* 8035435C 40 81 01 24 */ ble lbl_80354480
|
||||
/* 80354360 38 05 00 07 */ addi r0, r5, 7
|
||||
/* 80354364 54 00 E8 FE */ srwi r0, r0, 3
|
||||
/* 80354368 28 05 00 00 */ cmplwi r5, 0
|
||||
/* 8035436C 7C 09 03 A6 */ mtctr r0
|
||||
/* 80354370 40 81 01 10 */ ble lbl_80354480
|
||||
lbl_80354374:
|
||||
/* 80354374 57 20 C9 FE */ srwi r0, r25, 7
|
||||
/* 80354378 57 25 8B FE */ srwi r5, r25, 0xf
|
||||
/* 8035437C 7F 20 02 78 */ xor r0, r25, r0
|
||||
/* 80354380 7C A0 02 78 */ xor r0, r5, r0
|
||||
/* 80354384 57 26 4D FE */ srwi r6, r25, 0x17
|
||||
/* 80354388 7C C0 02 38 */ eqv r0, r6, r0
|
||||
/* 8035438C 57 25 F8 7E */ srwi r5, r25, 1
|
||||
/* 80354390 54 00 F0 42 */ rlwinm r0, r0, 0x1e, 1, 1
|
||||
/* 80354394 7C A7 03 78 */ or r7, r5, r0
|
||||
/* 80354398 54 E0 C9 FE */ srwi r0, r7, 7
|
||||
/* 8035439C 54 E5 8B FE */ srwi r5, r7, 0xf
|
||||
/* 803543A0 7C E0 02 78 */ xor r0, r7, r0
|
||||
/* 803543A4 54 E6 4D FE */ srwi r6, r7, 0x17
|
||||
/* 803543A8 7C A0 02 78 */ xor r0, r5, r0
|
||||
/* 803543AC 7C C0 02 38 */ eqv r0, r6, r0
|
||||
/* 803543B0 54 08 F0 42 */ rlwinm r8, r0, 0x1e, 1, 1
|
||||
/* 803543B4 50 E8 F8 BE */ rlwimi r8, r7, 0x1f, 2, 0x1f
|
||||
/* 803543B8 55 00 C9 FE */ srwi r0, r8, 7
|
||||
/* 803543BC 55 05 8B FE */ srwi r5, r8, 0xf
|
||||
/* 803543C0 7D 00 02 78 */ xor r0, r8, r0
|
||||
/* 803543C4 55 06 4D FE */ srwi r6, r8, 0x17
|
||||
/* 803543C8 7C A0 02 78 */ xor r0, r5, r0
|
||||
/* 803543CC 7C C0 02 38 */ eqv r0, r6, r0
|
||||
/* 803543D0 54 07 F0 42 */ rlwinm r7, r0, 0x1e, 1, 1
|
||||
/* 803543D4 51 07 F8 BE */ rlwimi r7, r8, 0x1f, 2, 0x1f
|
||||
/* 803543D8 54 E0 C9 FE */ srwi r0, r7, 7
|
||||
/* 803543DC 54 E5 8B FE */ srwi r5, r7, 0xf
|
||||
/* 803543E0 7C E0 02 78 */ xor r0, r7, r0
|
||||
/* 803543E4 54 E6 4D FE */ srwi r6, r7, 0x17
|
||||
/* 803543E8 7C A0 02 78 */ xor r0, r5, r0
|
||||
/* 803543EC 7C C0 02 38 */ eqv r0, r6, r0
|
||||
/* 803543F0 54 08 F0 42 */ rlwinm r8, r0, 0x1e, 1, 1
|
||||
/* 803543F4 50 E8 F8 BE */ rlwimi r8, r7, 0x1f, 2, 0x1f
|
||||
/* 803543F8 55 00 C9 FE */ srwi r0, r8, 7
|
||||
/* 803543FC 55 05 8B FE */ srwi r5, r8, 0xf
|
||||
/* 80354400 7D 00 02 78 */ xor r0, r8, r0
|
||||
/* 80354404 55 06 4D FE */ srwi r6, r8, 0x17
|
||||
/* 80354408 7C A0 02 78 */ xor r0, r5, r0
|
||||
/* 8035440C 7C C0 02 38 */ eqv r0, r6, r0
|
||||
/* 80354410 54 07 F0 42 */ rlwinm r7, r0, 0x1e, 1, 1
|
||||
/* 80354414 51 07 F8 BE */ rlwimi r7, r8, 0x1f, 2, 0x1f
|
||||
/* 80354418 54 E0 C9 FE */ srwi r0, r7, 7
|
||||
/* 8035441C 54 E5 8B FE */ srwi r5, r7, 0xf
|
||||
/* 80354420 7C E0 02 78 */ xor r0, r7, r0
|
||||
/* 80354424 54 E6 4D FE */ srwi r6, r7, 0x17
|
||||
/* 80354428 7C A0 02 78 */ xor r0, r5, r0
|
||||
/* 8035442C 7C C0 02 38 */ eqv r0, r6, r0
|
||||
/* 80354430 54 08 F0 42 */ rlwinm r8, r0, 0x1e, 1, 1
|
||||
/* 80354434 50 E8 F8 BE */ rlwimi r8, r7, 0x1f, 2, 0x1f
|
||||
/* 80354438 55 00 C9 FE */ srwi r0, r8, 7
|
||||
/* 8035443C 55 05 8B FE */ srwi r5, r8, 0xf
|
||||
/* 80354440 7D 00 02 78 */ xor r0, r8, r0
|
||||
/* 80354444 55 06 4D FE */ srwi r6, r8, 0x17
|
||||
/* 80354448 7C A0 02 78 */ xor r0, r5, r0
|
||||
/* 8035444C 7C C0 02 38 */ eqv r0, r6, r0
|
||||
/* 80354450 54 07 F0 42 */ rlwinm r7, r0, 0x1e, 1, 1
|
||||
/* 80354454 51 07 F8 BE */ rlwimi r7, r8, 0x1f, 2, 0x1f
|
||||
/* 80354458 54 E0 C9 FE */ srwi r0, r7, 7
|
||||
/* 8035445C 54 E5 8B FE */ srwi r5, r7, 0xf
|
||||
/* 80354460 7C E0 02 78 */ xor r0, r7, r0
|
||||
/* 80354464 54 E6 4D FE */ srwi r6, r7, 0x17
|
||||
/* 80354468 7C A0 02 78 */ xor r0, r5, r0
|
||||
/* 8035446C 7C C0 02 38 */ eqv r0, r6, r0
|
||||
/* 80354470 54 19 F0 42 */ rlwinm r25, r0, 0x1e, 1, 1
|
||||
/* 80354474 50 F9 F8 BE */ rlwimi r25, r7, 0x1f, 2, 0x1f
|
||||
/* 80354478 38 63 00 08 */ addi r3, r3, 8
|
||||
/* 8035447C 42 00 FE F8 */ bdnz lbl_80354374
|
||||
lbl_80354480:
|
||||
/* 80354480 7C 03 20 50 */ subf r0, r3, r4
|
||||
/* 80354484 7C 03 20 40 */ cmplw r3, r4
|
||||
/* 80354488 7C 09 03 A6 */ mtctr r0
|
||||
/* 8035448C 40 80 00 2C */ bge lbl_803544B8
|
||||
lbl_80354490:
|
||||
/* 80354490 57 20 C9 FE */ srwi r0, r25, 7
|
||||
/* 80354494 57 23 8B FE */ srwi r3, r25, 0xf
|
||||
/* 80354498 7F 20 02 78 */ xor r0, r25, r0
|
||||
/* 8035449C 57 24 4D FE */ srwi r4, r25, 0x17
|
||||
/* 803544A0 7C 60 02 78 */ xor r0, r3, r0
|
||||
/* 803544A4 7C 80 02 38 */ eqv r0, r4, r0
|
||||
/* 803544A8 57 23 F8 7E */ srwi r3, r25, 1
|
||||
/* 803544AC 54 00 F0 42 */ rlwinm r0, r0, 0x1e, 1, 1
|
||||
/* 803544B0 7C 79 03 78 */ or r25, r3, r0
|
||||
/* 803544B4 42 00 FF DC */ bdnz lbl_80354490
|
||||
lbl_803544B8:
|
||||
/* 803544B8 57 20 C9 FE */ srwi r0, r25, 7
|
||||
/* 803544BC 57 23 8B FE */ srwi r3, r25, 0xf
|
||||
/* 803544C0 7F 20 02 78 */ xor r0, r25, r0
|
||||
/* 803544C4 57 24 4D FE */ srwi r4, r25, 0x17
|
||||
/* 803544C8 7C 60 02 78 */ xor r0, r3, r0
|
||||
/* 803544CC 7C 80 02 38 */ eqv r0, r4, r0
|
||||
/* 803544D0 54 00 F8 00 */ slwi r0, r0, 0x1f
|
||||
/* 803544D4 7F 20 03 78 */ or r0, r25, r0
|
||||
/* 803544D8 90 1F 00 2C */ stw r0, 0x2c(r31)
|
||||
/* 803544DC 80 7F 00 2C */ lwz r3, 0x2c(r31)
|
||||
/* 803544E0 4B FF FA 45 */ bl bitrev
|
||||
/* 803544E4 90 7F 00 2C */ stw r3, 0x2c(r31)
|
||||
/* 803544E8 4B FF FC ED */ bl DummyLen
|
||||
/* 803544EC 3B 63 00 00 */ addi r27, r3, 0
|
||||
/* 803544F0 38 DB 00 14 */ addi r6, r27, 0x14
|
||||
/* 803544F4 38 78 00 00 */ addi r3, r24, 0
|
||||
/* 803544F8 38 A1 00 A4 */ addi r5, r1, 0xa4
|
||||
/* 803544FC 38 80 00 00 */ li r4, 0
|
||||
/* 80354500 38 E0 00 01 */ li r7, 1
|
||||
/* 80354504 4B FF FB 8D */ bl ReadArrayUnlock
|
||||
/* 80354508 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 8035450C 40 80 00 0C */ bge lbl_80354518
|
||||
/* 80354510 38 60 FF FD */ li r3, -3
|
||||
/* 80354514 48 00 08 C8 */ b lbl_80354DDC
|
||||
lbl_80354518:
|
||||
/* 80354518 38 60 00 04 */ li r3, 4
|
||||
/* 8035451C 80 FF 00 2C */ lwz r7, 0x2c(r31)
|
||||
/* 80354520 83 21 00 A4 */ lwz r25, 0xa4(r1)
|
||||
/* 80354524 7C 69 03 A6 */ mtctr r3
|
||||
/* 80354528 83 41 00 A8 */ lwz r26, 0xa8(r1)
|
||||
/* 8035452C 83 01 00 AC */ lwz r24, 0xac(r1)
|
||||
/* 80354530 7F 39 3A 78 */ xor r25, r25, r7
|
||||
/* 80354534 80 01 00 B0 */ lwz r0, 0xb0(r1)
|
||||
/* 80354538 80 A1 00 B4 */ lwz r5, 0xb4(r1)
|
||||
lbl_8035453C:
|
||||
/* 8035453C 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 80354540 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 80354544 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 80354548 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 8035454C 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 80354550 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354554 54 E4 08 3C */ slwi r4, r7, 1
|
||||
/* 80354558 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e
|
||||
/* 8035455C 7C 87 1B 78 */ or r7, r4, r3
|
||||
/* 80354560 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 80354564 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 80354568 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 8035456C 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 80354570 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354574 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354578 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e
|
||||
/* 8035457C 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d
|
||||
/* 80354580 55 23 38 30 */ slwi r3, r9, 7
|
||||
/* 80354584 55 24 78 20 */ slwi r4, r9, 0xf
|
||||
/* 80354588 7D 23 1A 78 */ xor r3, r9, r3
|
||||
/* 8035458C 55 26 B8 10 */ slwi r6, r9, 0x17
|
||||
/* 80354590 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354594 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354598 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
|
||||
/* 8035459C 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d
|
||||
/* 803545A0 55 03 38 30 */ slwi r3, r8, 7
|
||||
/* 803545A4 55 04 78 20 */ slwi r4, r8, 0xf
|
||||
/* 803545A8 7D 03 1A 78 */ xor r3, r8, r3
|
||||
/* 803545AC 55 06 B8 10 */ slwi r6, r8, 0x17
|
||||
/* 803545B0 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 803545B4 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 803545B8 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
|
||||
/* 803545BC 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
|
||||
/* 803545C0 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 803545C4 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 803545C8 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 803545CC 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 803545D0 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 803545D4 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 803545D8 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
|
||||
/* 803545DC 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
|
||||
/* 803545E0 55 03 38 30 */ slwi r3, r8, 7
|
||||
/* 803545E4 55 04 78 20 */ slwi r4, r8, 0xf
|
||||
/* 803545E8 7D 03 1A 78 */ xor r3, r8, r3
|
||||
/* 803545EC 55 06 B8 10 */ slwi r6, r8, 0x17
|
||||
/* 803545F0 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 803545F4 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 803545F8 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
|
||||
/* 803545FC 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
|
||||
/* 80354600 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 80354604 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 80354608 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 8035460C 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 80354610 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354614 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354618 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
|
||||
/* 8035461C 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
|
||||
/* 80354620 55 03 38 30 */ slwi r3, r8, 7
|
||||
/* 80354624 55 04 78 20 */ slwi r4, r8, 0xf
|
||||
/* 80354628 7D 03 1A 78 */ xor r3, r8, r3
|
||||
/* 8035462C 55 06 B8 10 */ slwi r6, r8, 0x17
|
||||
/* 80354630 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354634 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354638 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
|
||||
/* 8035463C 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
|
||||
/* 80354640 42 00 FE FC */ bdnz lbl_8035453C
|
||||
/* 80354644 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 80354648 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 8035464C 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 80354650 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 80354654 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354658 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 8035465C 54 63 0F FE */ srwi r3, r3, 0x1f
|
||||
/* 80354660 7C E3 1B 78 */ or r3, r7, r3
|
||||
/* 80354664 90 7F 00 2C */ stw r3, 0x2c(r31)
|
||||
/* 80354668 38 60 00 04 */ li r3, 4
|
||||
/* 8035466C 7C 69 03 A6 */ mtctr r3
|
||||
/* 80354670 80 FF 00 2C */ lwz r7, 0x2c(r31)
|
||||
/* 80354674 7F 5A 3A 78 */ xor r26, r26, r7
|
||||
lbl_80354678:
|
||||
/* 80354678 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 8035467C 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 80354680 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 80354684 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354688 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 8035468C 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354690 54 E4 08 3C */ slwi r4, r7, 1
|
||||
/* 80354694 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e
|
||||
/* 80354698 7C 87 1B 78 */ or r7, r4, r3
|
||||
/* 8035469C 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 803546A0 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 803546A4 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 803546A8 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 803546AC 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 803546B0 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 803546B4 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e
|
||||
/* 803546B8 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d
|
||||
/* 803546BC 55 23 38 30 */ slwi r3, r9, 7
|
||||
/* 803546C0 55 24 78 20 */ slwi r4, r9, 0xf
|
||||
/* 803546C4 7D 23 1A 78 */ xor r3, r9, r3
|
||||
/* 803546C8 55 26 B8 10 */ slwi r6, r9, 0x17
|
||||
/* 803546CC 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 803546D0 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 803546D4 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
|
||||
/* 803546D8 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d
|
||||
/* 803546DC 55 03 38 30 */ slwi r3, r8, 7
|
||||
/* 803546E0 55 04 78 20 */ slwi r4, r8, 0xf
|
||||
/* 803546E4 7D 03 1A 78 */ xor r3, r8, r3
|
||||
/* 803546E8 55 06 B8 10 */ slwi r6, r8, 0x17
|
||||
/* 803546EC 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 803546F0 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 803546F4 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
|
||||
/* 803546F8 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
|
||||
/* 803546FC 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 80354700 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 80354704 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 80354708 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 8035470C 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354710 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354714 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
|
||||
/* 80354718 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
|
||||
/* 8035471C 55 03 38 30 */ slwi r3, r8, 7
|
||||
/* 80354720 55 04 78 20 */ slwi r4, r8, 0xf
|
||||
/* 80354724 7D 03 1A 78 */ xor r3, r8, r3
|
||||
/* 80354728 55 06 B8 10 */ slwi r6, r8, 0x17
|
||||
/* 8035472C 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354730 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354734 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
|
||||
/* 80354738 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
|
||||
/* 8035473C 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 80354740 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 80354744 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 80354748 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 8035474C 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354750 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354754 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
|
||||
/* 80354758 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
|
||||
/* 8035475C 55 03 38 30 */ slwi r3, r8, 7
|
||||
/* 80354760 55 04 78 20 */ slwi r4, r8, 0xf
|
||||
/* 80354764 7D 03 1A 78 */ xor r3, r8, r3
|
||||
/* 80354768 55 06 B8 10 */ slwi r6, r8, 0x17
|
||||
/* 8035476C 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354770 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354774 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
|
||||
/* 80354778 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
|
||||
/* 8035477C 42 00 FE FC */ bdnz lbl_80354678
|
||||
/* 80354780 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 80354784 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 80354788 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 8035478C 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 80354790 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354794 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354798 54 63 0F FE */ srwi r3, r3, 0x1f
|
||||
/* 8035479C 7C E3 1B 78 */ or r3, r7, r3
|
||||
/* 803547A0 90 7F 00 2C */ stw r3, 0x2c(r31)
|
||||
/* 803547A4 38 60 00 04 */ li r3, 4
|
||||
/* 803547A8 7C 69 03 A6 */ mtctr r3
|
||||
/* 803547AC 80 FF 00 2C */ lwz r7, 0x2c(r31)
|
||||
/* 803547B0 7F 18 3A 78 */ xor r24, r24, r7
|
||||
lbl_803547B4:
|
||||
/* 803547B4 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 803547B8 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 803547BC 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 803547C0 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 803547C4 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 803547C8 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 803547CC 54 E4 08 3C */ slwi r4, r7, 1
|
||||
/* 803547D0 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e
|
||||
/* 803547D4 7C 87 1B 78 */ or r7, r4, r3
|
||||
/* 803547D8 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 803547DC 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 803547E0 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 803547E4 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 803547E8 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 803547EC 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 803547F0 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e
|
||||
/* 803547F4 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d
|
||||
/* 803547F8 55 23 38 30 */ slwi r3, r9, 7
|
||||
/* 803547FC 55 24 78 20 */ slwi r4, r9, 0xf
|
||||
/* 80354800 7D 23 1A 78 */ xor r3, r9, r3
|
||||
/* 80354804 55 26 B8 10 */ slwi r6, r9, 0x17
|
||||
/* 80354808 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 8035480C 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354810 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
|
||||
/* 80354814 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d
|
||||
/* 80354818 55 03 38 30 */ slwi r3, r8, 7
|
||||
/* 8035481C 55 04 78 20 */ slwi r4, r8, 0xf
|
||||
/* 80354820 7D 03 1A 78 */ xor r3, r8, r3
|
||||
/* 80354824 55 06 B8 10 */ slwi r6, r8, 0x17
|
||||
/* 80354828 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 8035482C 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354830 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
|
||||
/* 80354834 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
|
||||
/* 80354838 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 8035483C 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 80354840 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 80354844 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 80354848 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 8035484C 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354850 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
|
||||
/* 80354854 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
|
||||
/* 80354858 55 03 38 30 */ slwi r3, r8, 7
|
||||
/* 8035485C 55 04 78 20 */ slwi r4, r8, 0xf
|
||||
/* 80354860 7D 03 1A 78 */ xor r3, r8, r3
|
||||
/* 80354864 55 06 B8 10 */ slwi r6, r8, 0x17
|
||||
/* 80354868 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 8035486C 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354870 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
|
||||
/* 80354874 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
|
||||
/* 80354878 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 8035487C 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 80354880 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 80354884 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 80354888 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 8035488C 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354890 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
|
||||
/* 80354894 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
|
||||
/* 80354898 55 03 38 30 */ slwi r3, r8, 7
|
||||
/* 8035489C 55 04 78 20 */ slwi r4, r8, 0xf
|
||||
/* 803548A0 7D 03 1A 78 */ xor r3, r8, r3
|
||||
/* 803548A4 55 06 B8 10 */ slwi r6, r8, 0x17
|
||||
/* 803548A8 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 803548AC 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 803548B0 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
|
||||
/* 803548B4 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
|
||||
/* 803548B8 42 00 FE FC */ bdnz lbl_803547B4
|
||||
/* 803548BC 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 803548C0 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 803548C4 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 803548C8 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 803548CC 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 803548D0 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 803548D4 54 63 0F FE */ srwi r3, r3, 0x1f
|
||||
/* 803548D8 7C E3 1B 78 */ or r3, r7, r3
|
||||
/* 803548DC 90 7F 00 2C */ stw r3, 0x2c(r31)
|
||||
/* 803548E0 38 60 00 04 */ li r3, 4
|
||||
/* 803548E4 7C 69 03 A6 */ mtctr r3
|
||||
/* 803548E8 80 FF 00 2C */ lwz r7, 0x2c(r31)
|
||||
/* 803548EC 7C 00 3A 78 */ xor r0, r0, r7
|
||||
lbl_803548F0:
|
||||
/* 803548F0 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 803548F4 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 803548F8 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 803548FC 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354900 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 80354904 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354908 54 E4 08 3C */ slwi r4, r7, 1
|
||||
/* 8035490C 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e
|
||||
/* 80354910 7C 87 1B 78 */ or r7, r4, r3
|
||||
/* 80354914 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 80354918 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 8035491C 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 80354920 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 80354924 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354928 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 8035492C 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e
|
||||
/* 80354930 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d
|
||||
/* 80354934 55 23 38 30 */ slwi r3, r9, 7
|
||||
/* 80354938 55 24 78 20 */ slwi r4, r9, 0xf
|
||||
/* 8035493C 7D 23 1A 78 */ xor r3, r9, r3
|
||||
/* 80354940 55 26 B8 10 */ slwi r6, r9, 0x17
|
||||
/* 80354944 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354948 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 8035494C 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
|
||||
/* 80354950 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d
|
||||
/* 80354954 55 03 38 30 */ slwi r3, r8, 7
|
||||
/* 80354958 55 04 78 20 */ slwi r4, r8, 0xf
|
||||
/* 8035495C 7D 03 1A 78 */ xor r3, r8, r3
|
||||
/* 80354960 55 06 B8 10 */ slwi r6, r8, 0x17
|
||||
/* 80354964 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354968 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 8035496C 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
|
||||
/* 80354970 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
|
||||
/* 80354974 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 80354978 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 8035497C 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 80354980 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 80354984 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354988 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 8035498C 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
|
||||
/* 80354990 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
|
||||
/* 80354994 55 03 38 30 */ slwi r3, r8, 7
|
||||
/* 80354998 55 04 78 20 */ slwi r4, r8, 0xf
|
||||
/* 8035499C 7D 03 1A 78 */ xor r3, r8, r3
|
||||
/* 803549A0 55 06 B8 10 */ slwi r6, r8, 0x17
|
||||
/* 803549A4 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 803549A8 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 803549AC 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
|
||||
/* 803549B0 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
|
||||
/* 803549B4 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 803549B8 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 803549BC 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 803549C0 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 803549C4 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 803549C8 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 803549CC 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e
|
||||
/* 803549D0 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d
|
||||
/* 803549D4 55 03 38 30 */ slwi r3, r8, 7
|
||||
/* 803549D8 55 04 78 20 */ slwi r4, r8, 0xf
|
||||
/* 803549DC 7D 03 1A 78 */ xor r3, r8, r3
|
||||
/* 803549E0 55 06 B8 10 */ slwi r6, r8, 0x17
|
||||
/* 803549E4 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 803549E8 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 803549EC 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e
|
||||
/* 803549F0 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d
|
||||
/* 803549F4 42 00 FE FC */ bdnz lbl_803548F0
|
||||
/* 803549F8 54 E3 38 30 */ slwi r3, r7, 7
|
||||
/* 803549FC 54 E4 78 20 */ slwi r4, r7, 0xf
|
||||
/* 80354A00 7C E3 1A 78 */ xor r3, r7, r3
|
||||
/* 80354A04 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354A08 54 E6 B8 10 */ slwi r6, r7, 0x17
|
||||
/* 80354A0C 7C C3 1A 38 */ eqv r3, r6, r3
|
||||
/* 80354A10 54 63 0F FE */ srwi r3, r3, 0x1f
|
||||
/* 80354A14 7C E3 1B 78 */ or r3, r7, r3
|
||||
/* 80354A18 90 7F 00 2C */ stw r3, 0x2c(r31)
|
||||
/* 80354A1C 57 64 18 38 */ slwi r4, r27, 3
|
||||
/* 80354A20 28 04 00 00 */ cmplwi r4, 0
|
||||
/* 80354A24 80 DF 00 2C */ lwz r6, 0x2c(r31)
|
||||
/* 80354A28 38 60 00 00 */ li r3, 0
|
||||
/* 80354A2C 7C A5 32 78 */ xor r5, r5, r6
|
||||
/* 80354A30 40 81 01 68 */ ble lbl_80354B98
|
||||
/* 80354A34 28 04 00 08 */ cmplwi r4, 8
|
||||
/* 80354A38 39 04 FF F8 */ addi r8, r4, -8
|
||||
/* 80354A3C 40 81 01 24 */ ble lbl_80354B60
|
||||
/* 80354A40 38 E8 00 07 */ addi r7, r8, 7
|
||||
/* 80354A44 54 E7 E8 FE */ srwi r7, r7, 3
|
||||
/* 80354A48 28 08 00 00 */ cmplwi r8, 0
|
||||
/* 80354A4C 7C E9 03 A6 */ mtctr r7
|
||||
/* 80354A50 40 81 01 10 */ ble lbl_80354B60
|
||||
lbl_80354A54:
|
||||
/* 80354A54 54 C7 38 30 */ slwi r7, r6, 7
|
||||
/* 80354A58 54 C8 78 20 */ slwi r8, r6, 0xf
|
||||
/* 80354A5C 7C C7 3A 78 */ xor r7, r6, r7
|
||||
/* 80354A60 7D 07 3A 78 */ xor r7, r8, r7
|
||||
/* 80354A64 54 C9 B8 10 */ slwi r9, r6, 0x17
|
||||
/* 80354A68 7D 27 3A 38 */ eqv r7, r9, r7
|
||||
/* 80354A6C 54 C8 08 3C */ slwi r8, r6, 1
|
||||
/* 80354A70 54 E6 17 BC */ rlwinm r6, r7, 2, 0x1e, 0x1e
|
||||
/* 80354A74 7D 09 33 78 */ or r9, r8, r6
|
||||
/* 80354A78 55 26 38 30 */ slwi r6, r9, 7
|
||||
/* 80354A7C 55 27 78 20 */ slwi r7, r9, 0xf
|
||||
/* 80354A80 7D 26 32 78 */ xor r6, r9, r6
|
||||
/* 80354A84 55 28 B8 10 */ slwi r8, r9, 0x17
|
||||
/* 80354A88 7C E6 32 78 */ xor r6, r7, r6
|
||||
/* 80354A8C 7D 06 32 38 */ eqv r6, r8, r6
|
||||
/* 80354A90 54 CA 17 BC */ rlwinm r10, r6, 2, 0x1e, 0x1e
|
||||
/* 80354A94 51 2A 08 3A */ rlwimi r10, r9, 1, 0, 0x1d
|
||||
/* 80354A98 55 46 38 30 */ slwi r6, r10, 7
|
||||
/* 80354A9C 55 47 78 20 */ slwi r7, r10, 0xf
|
||||
/* 80354AA0 7D 46 32 78 */ xor r6, r10, r6
|
||||
/* 80354AA4 55 48 B8 10 */ slwi r8, r10, 0x17
|
||||
/* 80354AA8 7C E6 32 78 */ xor r6, r7, r6
|
||||
/* 80354AAC 7D 06 32 38 */ eqv r6, r8, r6
|
||||
/* 80354AB0 54 C9 17 BC */ rlwinm r9, r6, 2, 0x1e, 0x1e
|
||||
/* 80354AB4 51 49 08 3A */ rlwimi r9, r10, 1, 0, 0x1d
|
||||
/* 80354AB8 55 26 38 30 */ slwi r6, r9, 7
|
||||
/* 80354ABC 55 27 78 20 */ slwi r7, r9, 0xf
|
||||
/* 80354AC0 7D 26 32 78 */ xor r6, r9, r6
|
||||
/* 80354AC4 55 28 B8 10 */ slwi r8, r9, 0x17
|
||||
/* 80354AC8 7C E6 32 78 */ xor r6, r7, r6
|
||||
/* 80354ACC 7D 06 32 38 */ eqv r6, r8, r6
|
||||
/* 80354AD0 54 CA 17 BC */ rlwinm r10, r6, 2, 0x1e, 0x1e
|
||||
/* 80354AD4 51 2A 08 3A */ rlwimi r10, r9, 1, 0, 0x1d
|
||||
/* 80354AD8 55 46 38 30 */ slwi r6, r10, 7
|
||||
/* 80354ADC 55 47 78 20 */ slwi r7, r10, 0xf
|
||||
/* 80354AE0 7D 46 32 78 */ xor r6, r10, r6
|
||||
/* 80354AE4 55 48 B8 10 */ slwi r8, r10, 0x17
|
||||
/* 80354AE8 7C E6 32 78 */ xor r6, r7, r6
|
||||
/* 80354AEC 7D 06 32 38 */ eqv r6, r8, r6
|
||||
/* 80354AF0 54 C9 17 BC */ rlwinm r9, r6, 2, 0x1e, 0x1e
|
||||
/* 80354AF4 51 49 08 3A */ rlwimi r9, r10, 1, 0, 0x1d
|
||||
/* 80354AF8 55 26 38 30 */ slwi r6, r9, 7
|
||||
/* 80354AFC 55 27 78 20 */ slwi r7, r9, 0xf
|
||||
/* 80354B00 7D 26 32 78 */ xor r6, r9, r6
|
||||
/* 80354B04 55 28 B8 10 */ slwi r8, r9, 0x17
|
||||
/* 80354B08 7C E6 32 78 */ xor r6, r7, r6
|
||||
/* 80354B0C 7D 06 32 38 */ eqv r6, r8, r6
|
||||
/* 80354B10 54 CA 17 BC */ rlwinm r10, r6, 2, 0x1e, 0x1e
|
||||
/* 80354B14 51 2A 08 3A */ rlwimi r10, r9, 1, 0, 0x1d
|
||||
/* 80354B18 55 46 38 30 */ slwi r6, r10, 7
|
||||
/* 80354B1C 55 47 78 20 */ slwi r7, r10, 0xf
|
||||
/* 80354B20 7D 46 32 78 */ xor r6, r10, r6
|
||||
/* 80354B24 55 48 B8 10 */ slwi r8, r10, 0x17
|
||||
/* 80354B28 7C E6 32 78 */ xor r6, r7, r6
|
||||
/* 80354B2C 7D 06 32 38 */ eqv r6, r8, r6
|
||||
/* 80354B30 54 C9 17 BC */ rlwinm r9, r6, 2, 0x1e, 0x1e
|
||||
/* 80354B34 51 49 08 3A */ rlwimi r9, r10, 1, 0, 0x1d
|
||||
/* 80354B38 55 26 38 30 */ slwi r6, r9, 7
|
||||
/* 80354B3C 55 27 78 20 */ slwi r7, r9, 0xf
|
||||
/* 80354B40 7D 26 32 78 */ xor r6, r9, r6
|
||||
/* 80354B44 55 28 B8 10 */ slwi r8, r9, 0x17
|
||||
/* 80354B48 7C E6 32 78 */ xor r6, r7, r6
|
||||
/* 80354B4C 7D 06 32 38 */ eqv r6, r8, r6
|
||||
/* 80354B50 54 C6 17 BC */ rlwinm r6, r6, 2, 0x1e, 0x1e
|
||||
/* 80354B54 51 26 08 3A */ rlwimi r6, r9, 1, 0, 0x1d
|
||||
/* 80354B58 38 63 00 08 */ addi r3, r3, 8
|
||||
/* 80354B5C 42 00 FE F8 */ bdnz lbl_80354A54
|
||||
lbl_80354B60:
|
||||
/* 80354B60 7C E3 20 50 */ subf r7, r3, r4
|
||||
/* 80354B64 7C 03 20 40 */ cmplw r3, r4
|
||||
/* 80354B68 7C E9 03 A6 */ mtctr r7
|
||||
/* 80354B6C 40 80 00 2C */ bge lbl_80354B98
|
||||
lbl_80354B70:
|
||||
/* 80354B70 54 C3 38 30 */ slwi r3, r6, 7
|
||||
/* 80354B74 54 C4 78 20 */ slwi r4, r6, 0xf
|
||||
/* 80354B78 7C C3 1A 78 */ xor r3, r6, r3
|
||||
/* 80354B7C 54 C7 B8 10 */ slwi r7, r6, 0x17
|
||||
/* 80354B80 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354B84 7C E3 1A 38 */ eqv r3, r7, r3
|
||||
/* 80354B88 54 C4 08 3C */ slwi r4, r6, 1
|
||||
/* 80354B8C 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e
|
||||
/* 80354B90 7C 86 1B 78 */ or r6, r4, r3
|
||||
/* 80354B94 42 00 FF DC */ bdnz lbl_80354B70
|
||||
lbl_80354B98:
|
||||
/* 80354B98 54 C3 38 30 */ slwi r3, r6, 7
|
||||
/* 80354B9C 54 C4 78 20 */ slwi r4, r6, 0xf
|
||||
/* 80354BA0 7C C3 1A 78 */ xor r3, r6, r3
|
||||
/* 80354BA4 54 C7 B8 10 */ slwi r7, r6, 0x17
|
||||
/* 80354BA8 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354BAC 7C E3 1A 38 */ eqv r3, r7, r3
|
||||
/* 80354BB0 54 63 0F FE */ srwi r3, r3, 0x1f
|
||||
/* 80354BB4 7C C3 1B 78 */ or r3, r6, r3
|
||||
/* 80354BB8 90 7F 00 2C */ stw r3, 0x2c(r31)
|
||||
/* 80354BBC 38 60 00 04 */ li r3, 4
|
||||
/* 80354BC0 7C 69 03 A6 */ mtctr r3
|
||||
/* 80354BC4 38 60 00 00 */ li r3, 0
|
||||
/* 80354BC8 80 9F 00 2C */ lwz r4, 0x2c(r31)
|
||||
lbl_80354BCC:
|
||||
/* 80354BCC 54 86 38 30 */ slwi r6, r4, 7
|
||||
/* 80354BD0 54 87 78 20 */ slwi r7, r4, 0xf
|
||||
/* 80354BD4 7C 86 32 78 */ xor r6, r4, r6
|
||||
/* 80354BD8 7C E6 32 78 */ xor r6, r7, r6
|
||||
/* 80354BDC 54 88 B8 10 */ slwi r8, r4, 0x17
|
||||
/* 80354BE0 7D 06 32 38 */ eqv r6, r8, r6
|
||||
/* 80354BE4 54 87 08 3C */ slwi r7, r4, 1
|
||||
/* 80354BE8 54 C4 17 BC */ rlwinm r4, r6, 2, 0x1e, 0x1e
|
||||
/* 80354BEC 7C E8 23 78 */ or r8, r7, r4
|
||||
/* 80354BF0 55 04 38 30 */ slwi r4, r8, 7
|
||||
/* 80354BF4 55 06 78 20 */ slwi r6, r8, 0xf
|
||||
/* 80354BF8 7D 04 22 78 */ xor r4, r8, r4
|
||||
/* 80354BFC 55 07 B8 10 */ slwi r7, r8, 0x17
|
||||
/* 80354C00 7C C4 22 78 */ xor r4, r6, r4
|
||||
/* 80354C04 7C E4 22 38 */ eqv r4, r7, r4
|
||||
/* 80354C08 54 89 17 BC */ rlwinm r9, r4, 2, 0x1e, 0x1e
|
||||
/* 80354C0C 51 09 08 3A */ rlwimi r9, r8, 1, 0, 0x1d
|
||||
/* 80354C10 55 24 38 30 */ slwi r4, r9, 7
|
||||
/* 80354C14 55 26 78 20 */ slwi r6, r9, 0xf
|
||||
/* 80354C18 7D 24 22 78 */ xor r4, r9, r4
|
||||
/* 80354C1C 55 27 B8 10 */ slwi r7, r9, 0x17
|
||||
/* 80354C20 7C C4 22 78 */ xor r4, r6, r4
|
||||
/* 80354C24 7C E4 22 38 */ eqv r4, r7, r4
|
||||
/* 80354C28 54 88 17 BC */ rlwinm r8, r4, 2, 0x1e, 0x1e
|
||||
/* 80354C2C 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d
|
||||
/* 80354C30 55 04 38 30 */ slwi r4, r8, 7
|
||||
/* 80354C34 55 06 78 20 */ slwi r6, r8, 0xf
|
||||
/* 80354C38 7D 04 22 78 */ xor r4, r8, r4
|
||||
/* 80354C3C 55 07 B8 10 */ slwi r7, r8, 0x17
|
||||
/* 80354C40 7C C4 22 78 */ xor r4, r6, r4
|
||||
/* 80354C44 7C E4 22 38 */ eqv r4, r7, r4
|
||||
/* 80354C48 54 89 17 BC */ rlwinm r9, r4, 2, 0x1e, 0x1e
|
||||
/* 80354C4C 51 09 08 3A */ rlwimi r9, r8, 1, 0, 0x1d
|
||||
/* 80354C50 55 24 38 30 */ slwi r4, r9, 7
|
||||
/* 80354C54 55 26 78 20 */ slwi r6, r9, 0xf
|
||||
/* 80354C58 7D 24 22 78 */ xor r4, r9, r4
|
||||
/* 80354C5C 55 27 B8 10 */ slwi r7, r9, 0x17
|
||||
/* 80354C60 7C C4 22 78 */ xor r4, r6, r4
|
||||
/* 80354C64 7C E4 22 38 */ eqv r4, r7, r4
|
||||
/* 80354C68 54 88 17 BC */ rlwinm r8, r4, 2, 0x1e, 0x1e
|
||||
/* 80354C6C 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d
|
||||
/* 80354C70 55 04 38 30 */ slwi r4, r8, 7
|
||||
/* 80354C74 55 06 78 20 */ slwi r6, r8, 0xf
|
||||
/* 80354C78 7D 04 22 78 */ xor r4, r8, r4
|
||||
/* 80354C7C 55 07 B8 10 */ slwi r7, r8, 0x17
|
||||
/* 80354C80 7C C4 22 78 */ xor r4, r6, r4
|
||||
/* 80354C84 7C E4 22 38 */ eqv r4, r7, r4
|
||||
/* 80354C88 54 89 17 BC */ rlwinm r9, r4, 2, 0x1e, 0x1e
|
||||
/* 80354C8C 51 09 08 3A */ rlwimi r9, r8, 1, 0, 0x1d
|
||||
/* 80354C90 55 24 38 30 */ slwi r4, r9, 7
|
||||
/* 80354C94 55 26 78 20 */ slwi r6, r9, 0xf
|
||||
/* 80354C98 7D 24 22 78 */ xor r4, r9, r4
|
||||
/* 80354C9C 55 27 B8 10 */ slwi r7, r9, 0x17
|
||||
/* 80354CA0 7C C4 22 78 */ xor r4, r6, r4
|
||||
/* 80354CA4 7C E4 22 38 */ eqv r4, r7, r4
|
||||
/* 80354CA8 54 88 17 BC */ rlwinm r8, r4, 2, 0x1e, 0x1e
|
||||
/* 80354CAC 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d
|
||||
/* 80354CB0 55 04 38 30 */ slwi r4, r8, 7
|
||||
/* 80354CB4 55 06 78 20 */ slwi r6, r8, 0xf
|
||||
/* 80354CB8 7D 04 22 78 */ xor r4, r8, r4
|
||||
/* 80354CBC 55 07 B8 10 */ slwi r7, r8, 0x17
|
||||
/* 80354CC0 7C C4 22 78 */ xor r4, r6, r4
|
||||
/* 80354CC4 7C E4 22 38 */ eqv r4, r7, r4
|
||||
/* 80354CC8 54 84 17 BC */ rlwinm r4, r4, 2, 0x1e, 0x1e
|
||||
/* 80354CCC 51 04 08 3A */ rlwimi r4, r8, 1, 0, 0x1d
|
||||
/* 80354CD0 38 63 00 08 */ addi r3, r3, 8
|
||||
/* 80354CD4 42 00 FE F8 */ bdnz lbl_80354BCC
|
||||
/* 80354CD8 20 C3 00 21 */ subfic r6, r3, 0x21
|
||||
/* 80354CDC 28 03 00 21 */ cmplwi r3, 0x21
|
||||
/* 80354CE0 7C C9 03 A6 */ mtctr r6
|
||||
/* 80354CE4 40 80 00 2C */ bge lbl_80354D10
|
||||
lbl_80354CE8:
|
||||
/* 80354CE8 54 83 38 30 */ slwi r3, r4, 7
|
||||
/* 80354CEC 54 86 78 20 */ slwi r6, r4, 0xf
|
||||
/* 80354CF0 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354CF4 54 87 B8 10 */ slwi r7, r4, 0x17
|
||||
/* 80354CF8 7C C3 1A 78 */ xor r3, r6, r3
|
||||
/* 80354CFC 7C E3 1A 38 */ eqv r3, r7, r3
|
||||
/* 80354D00 54 84 08 3C */ slwi r4, r4, 1
|
||||
/* 80354D04 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e
|
||||
/* 80354D08 7C 84 1B 78 */ or r4, r4, r3
|
||||
/* 80354D0C 42 00 FF DC */ bdnz lbl_80354CE8
|
||||
lbl_80354D10:
|
||||
/* 80354D10 54 83 38 30 */ slwi r3, r4, 7
|
||||
/* 80354D14 54 86 78 20 */ slwi r6, r4, 0xf
|
||||
/* 80354D18 7C 83 1A 78 */ xor r3, r4, r3
|
||||
/* 80354D1C 54 87 B8 10 */ slwi r7, r4, 0x17
|
||||
/* 80354D20 7C C3 1A 78 */ xor r3, r6, r3
|
||||
/* 80354D24 7C E3 1A 38 */ eqv r3, r7, r3
|
||||
/* 80354D28 54 63 0F FE */ srwi r3, r3, 0x1f
|
||||
/* 80354D2C 7C 83 1B 78 */ or r3, r4, r3
|
||||
/* 80354D30 90 7F 00 2C */ stw r3, 0x2c(r31)
|
||||
/* 80354D34 38 C0 00 08 */ li r6, 8
|
||||
/* 80354D38 3B 60 00 00 */ li r27, 0
|
||||
/* 80354D3C 90 1C 00 00 */ stw r0, 0(r28)
|
||||
/* 80354D40 38 7C 00 00 */ addi r3, r28, 0
|
||||
/* 80354D44 38 80 00 08 */ li r4, 8
|
||||
/* 80354D48 90 BC 00 04 */ stw r5, 4(r28)
|
||||
/* 80354D4C 93 9D 00 00 */ stw r28, 0(r29)
|
||||
/* 80354D50 90 DD 00 04 */ stw r6, 4(r29)
|
||||
/* 80354D54 92 DD 00 0C */ stw r22, 0xc(r29)
|
||||
/* 80354D58 93 7D 00 08 */ stw r27, 8(r29)
|
||||
/* 80354D5C 4B FE 68 51 */ bl DCFlushRange
|
||||
/* 80354D60 38 76 00 00 */ addi r3, r22, 0
|
||||
/* 80354D64 38 80 00 04 */ li r4, 4
|
||||
/* 80354D68 4B FE 68 19 */ bl DCInvalidateRange
|
||||
/* 80354D6C 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 80354D70 38 80 00 10 */ li r4, 0x10
|
||||
/* 80354D74 4B FE 68 39 */ bl DCFlushRange
|
||||
/* 80354D78 38 00 00 FF */ li r0, 0xff
|
||||
/* 80354D7C 3C 60 80 3D */ lis r3, CardData@ha /* 0x803D1EA0@ha */
|
||||
/* 80354D80 90 1E 00 04 */ stw r0, 4(r30)
|
||||
/* 80354D84 38 63 1E A0 */ addi r3, r3, CardData@l /* 0x803D1EA0@l */
|
||||
/* 80354D88 3C 03 80 00 */ addis r0, r3, 0x8000
|
||||
/* 80354D8C 90 1E 00 0C */ stw r0, 0xc(r30)
|
||||
/* 80354D90 38 00 01 60 */ li r0, 0x160
|
||||
/* 80354D94 3C 80 80 35 */ lis r4, InitCallback@ha /* 0x80354DF0@ha */
|
||||
/* 80354D98 90 1E 00 10 */ stw r0, 0x10(r30)
|
||||
/* 80354D9C 3C 60 80 35 */ lis r3, DoneCallback@ha /* 0x80354E60@ha */
|
||||
/* 80354DA0 38 A0 00 10 */ li r5, 0x10
|
||||
/* 80354DA4 93 7E 00 14 */ stw r27, 0x14(r30)
|
||||
/* 80354DA8 38 84 4D F0 */ addi r4, r4, InitCallback@l /* 0x80354DF0@l */
|
||||
/* 80354DAC 38 03 4E 60 */ addi r0, r3, DoneCallback@l /* 0x80354E60@l */
|
||||
/* 80354DB0 B0 BE 00 24 */ sth r5, 0x24(r30)
|
||||
/* 80354DB4 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80354DB8 90 9E 00 28 */ stw r4, 0x28(r30)
|
||||
/* 80354DBC 93 7E 00 2C */ stw r27, 0x2c(r30)
|
||||
/* 80354DC0 90 1E 00 30 */ stw r0, 0x30(r30)
|
||||
/* 80354DC4 93 7E 00 34 */ stw r27, 0x34(r30)
|
||||
/* 80354DC8 4B F4 9C 39 */ bl DSPAddTask
|
||||
/* 80354DCC 93 37 00 00 */ stw r25, 0(r23)
|
||||
/* 80354DD0 38 60 00 00 */ li r3, 0
|
||||
/* 80354DD4 93 57 00 04 */ stw r26, 4(r23)
|
||||
/* 80354DD8 93 17 00 08 */ stw r24, 8(r23)
|
||||
lbl_80354DDC:
|
||||
/* 80354DDC BA C1 00 F8 */ lmw r22, 0xf8(r1)
|
||||
/* 80354DE0 80 01 01 24 */ lwz r0, 0x124(r1)
|
||||
/* 80354DE4 38 21 01 20 */ addi r1, r1, 0x120
|
||||
/* 80354DE8 7C 08 03 A6 */ mtlr r0
|
||||
/* 80354DEC 4E 80 00 20 */ blr
|
||||
@@ -1,47 +0,0 @@
|
||||
lbl_80358A84:
|
||||
/* 80358A84 7C 08 02 A6 */ mflr r0
|
||||
/* 80358A88 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80358A8C 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80358A90 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 80358A94 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 80358A98 93 A1 00 14 */ stw r29, 0x14(r1)
|
||||
/* 80358A9C 7C 9D 23 79 */ or. r29, r4, r4
|
||||
/* 80358AA0 93 81 00 10 */ stw r28, 0x10(r1)
|
||||
/* 80358AA4 3B 83 00 00 */ addi r28, r3, 0
|
||||
/* 80358AA8 1C BC 01 10 */ mulli r5, r28, 0x110
|
||||
/* 80358AAC 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 80358AB0 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 80358AB4 7F E0 2A 14 */ add r31, r0, r5
|
||||
/* 80358AB8 41 80 00 30 */ blt lbl_80358AE8
|
||||
/* 80358ABC 80 9F 00 C0 */ lwz r4, 0xc0(r31)
|
||||
/* 80358AC0 3C 60 80 36 */ lis r3, WriteCallback@ha /* 0x80358914@ha */
|
||||
/* 80358AC4 38 E3 89 14 */ addi r7, r3, WriteCallback@l /* 0x80358914@l */
|
||||
/* 80358AC8 80 BF 00 0C */ lwz r5, 0xc(r31)
|
||||
/* 80358ACC A0 04 00 10 */ lhz r0, 0x10(r4)
|
||||
/* 80358AD0 80 DF 00 B4 */ lwz r6, 0xb4(r31)
|
||||
/* 80358AD4 38 7C 00 00 */ addi r3, r28, 0
|
||||
/* 80358AD8 7C 85 01 D6 */ mullw r4, r5, r0
|
||||
/* 80358ADC 4B FF C8 D1 */ bl __CARDWrite
|
||||
/* 80358AE0 7C 7D 1B 79 */ or. r29, r3, r3
|
||||
/* 80358AE4 40 80 00 30 */ bge lbl_80358B14
|
||||
lbl_80358AE8:
|
||||
/* 80358AE8 83 DF 00 D0 */ lwz r30, 0xd0(r31)
|
||||
/* 80358AEC 38 00 00 00 */ li r0, 0
|
||||
/* 80358AF0 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 80358AF4 90 1F 00 D0 */ stw r0, 0xd0(r31)
|
||||
/* 80358AF8 7F A4 EB 78 */ mr r4, r29
|
||||
/* 80358AFC 4B FF B1 71 */ bl __CARDPutControlBlock
|
||||
/* 80358B00 39 9E 00 00 */ addi r12, r30, 0
|
||||
/* 80358B04 7D 88 03 A6 */ mtlr r12
|
||||
/* 80358B08 38 7C 00 00 */ addi r3, r28, 0
|
||||
/* 80358B0C 38 9D 00 00 */ addi r4, r29, 0
|
||||
/* 80358B10 4E 80 00 21 */ blrl
|
||||
lbl_80358B14:
|
||||
/* 80358B14 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80358B18 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 80358B1C 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 80358B20 83 A1 00 14 */ lwz r29, 0x14(r1)
|
||||
/* 80358B24 83 81 00 10 */ lwz r28, 0x10(r1)
|
||||
/* 80358B28 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 80358B2C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80358B30 4E 80 00 20 */ blr
|
||||
@@ -1,100 +0,0 @@
|
||||
lbl_80358914:
|
||||
/* 80358914 7C 08 02 A6 */ mflr r0
|
||||
/* 80358918 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8035891C 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80358920 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 80358924 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 80358928 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 8035892C 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 80358930 93 A1 00 14 */ stw r29, 0x14(r1)
|
||||
/* 80358934 1C BE 01 10 */ mulli r5, r30, 0x110
|
||||
/* 80358938 93 81 00 10 */ stw r28, 0x10(r1)
|
||||
/* 8035893C 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 80358940 7C 9C 23 79 */ or. r28, r4, r4
|
||||
/* 80358944 7F E0 2A 14 */ add r31, r0, r5
|
||||
/* 80358948 41 80 00 F0 */ blt lbl_80358A38
|
||||
/* 8035894C 83 BF 00 C0 */ lwz r29, 0xc0(r31)
|
||||
/* 80358950 80 7D 00 0C */ lwz r3, 0xc(r29)
|
||||
/* 80358954 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80358958 40 80 00 0C */ bge lbl_80358964
|
||||
/* 8035895C 3B 80 FF F2 */ li r28, -14
|
||||
/* 80358960 48 00 00 D8 */ b lbl_80358A38
|
||||
lbl_80358964:
|
||||
/* 80358964 80 1F 00 0C */ lwz r0, 0xc(r31)
|
||||
/* 80358968 7C 00 18 50 */ subf r0, r0, r3
|
||||
/* 8035896C 90 1D 00 0C */ stw r0, 0xc(r29)
|
||||
/* 80358970 80 1D 00 0C */ lwz r0, 0xc(r29)
|
||||
/* 80358974 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 80358978 41 81 00 54 */ bgt lbl_803589CC
|
||||
/* 8035897C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80358980 4B FF CD FD */ bl __CARDGetDirBlock
|
||||
/* 80358984 80 BD 00 04 */ lwz r5, 4(r29)
|
||||
/* 80358988 3C 80 80 00 */ lis r4, 0x8000 /* 0x800000F8@ha */
|
||||
/* 8035898C 80 04 00 F8 */ lwz r0, 0x00F8(r4) /* 0x800000F8@l */
|
||||
/* 80358990 54 A4 30 32 */ slwi r4, r5, 6
|
||||
/* 80358994 7F 83 22 14 */ add r28, r3, r4
|
||||
/* 80358998 54 1D F0 BE */ srwi r29, r0, 2
|
||||
/* 8035899C 4B FE 9D 61 */ bl OSGetTime
|
||||
/* 803589A0 38 DD 00 00 */ addi r6, r29, 0
|
||||
/* 803589A4 38 A0 00 00 */ li r5, 0
|
||||
/* 803589A8 48 00 99 7D */ bl __div2i
|
||||
/* 803589AC 90 9C 00 28 */ stw r4, 0x28(r28)
|
||||
/* 803589B0 38 00 00 00 */ li r0, 0
|
||||
/* 803589B4 38 7E 00 00 */ addi r3, r30, 0
|
||||
/* 803589B8 80 9F 00 D0 */ lwz r4, 0xd0(r31)
|
||||
/* 803589BC 90 1F 00 D0 */ stw r0, 0xd0(r31)
|
||||
/* 803589C0 4B FF CF 5D */ bl __CARDUpdateDir
|
||||
/* 803589C4 7C 7C 1B 78 */ mr r28, r3
|
||||
/* 803589C8 48 00 00 68 */ b lbl_80358A30
|
||||
lbl_803589CC:
|
||||
/* 803589CC 7F E3 FB 78 */ mr r3, r31
|
||||
/* 803589D0 4B FF CA 45 */ bl __CARDGetFatBlock
|
||||
/* 803589D4 80 9D 00 08 */ lwz r4, 8(r29)
|
||||
/* 803589D8 80 1F 00 0C */ lwz r0, 0xc(r31)
|
||||
/* 803589DC 7C 04 02 14 */ add r0, r4, r0
|
||||
/* 803589E0 90 1D 00 08 */ stw r0, 8(r29)
|
||||
/* 803589E4 A0 1D 00 10 */ lhz r0, 0x10(r29)
|
||||
/* 803589E8 54 00 08 3C */ slwi r0, r0, 1
|
||||
/* 803589EC 7C 03 02 2E */ lhzx r0, r3, r0
|
||||
/* 803589F0 B0 1D 00 10 */ sth r0, 0x10(r29)
|
||||
/* 803589F4 A0 9D 00 10 */ lhz r4, 0x10(r29)
|
||||
/* 803589F8 28 04 00 05 */ cmplwi r4, 5
|
||||
/* 803589FC 41 80 00 10 */ blt lbl_80358A0C
|
||||
/* 80358A00 A0 1F 00 10 */ lhz r0, 0x10(r31)
|
||||
/* 80358A04 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 80358A08 41 80 00 0C */ blt lbl_80358A14
|
||||
lbl_80358A0C:
|
||||
/* 80358A0C 3B 80 FF FA */ li r28, -6
|
||||
/* 80358A10 48 00 00 28 */ b lbl_80358A38
|
||||
lbl_80358A14:
|
||||
/* 80358A14 80 1F 00 0C */ lwz r0, 0xc(r31)
|
||||
/* 80358A18 3C 60 80 36 */ lis r3, EraseCallback@ha /* 0x80358A84@ha */
|
||||
/* 80358A1C 38 A3 8A 84 */ addi r5, r3, EraseCallback@l /* 0x80358A84@l */
|
||||
/* 80358A20 7C 80 21 D6 */ mullw r4, r0, r4
|
||||
/* 80358A24 38 7E 00 00 */ addi r3, r30, 0
|
||||
/* 80358A28 4B FF AF 91 */ bl __CARDEraseSector
|
||||
/* 80358A2C 7C 7C 1B 78 */ mr r28, r3
|
||||
lbl_80358A30:
|
||||
/* 80358A30 2C 1C 00 00 */ cmpwi r28, 0
|
||||
/* 80358A34 40 80 00 30 */ bge lbl_80358A64
|
||||
lbl_80358A38:
|
||||
/* 80358A38 83 BF 00 D0 */ lwz r29, 0xd0(r31)
|
||||
/* 80358A3C 38 00 00 00 */ li r0, 0
|
||||
/* 80358A40 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 80358A44 90 1F 00 D0 */ stw r0, 0xd0(r31)
|
||||
/* 80358A48 7F 84 E3 78 */ mr r4, r28
|
||||
/* 80358A4C 4B FF B2 21 */ bl __CARDPutControlBlock
|
||||
/* 80358A50 39 9D 00 00 */ addi r12, r29, 0
|
||||
/* 80358A54 7D 88 03 A6 */ mtlr r12
|
||||
/* 80358A58 38 7E 00 00 */ addi r3, r30, 0
|
||||
/* 80358A5C 38 9C 00 00 */ addi r4, r28, 0
|
||||
/* 80358A60 4E 80 00 21 */ blrl
|
||||
lbl_80358A64:
|
||||
/* 80358A64 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80358A68 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 80358A6C 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 80358A70 83 A1 00 14 */ lwz r29, 0x14(r1)
|
||||
/* 80358A74 83 81 00 10 */ lwz r28, 0x10(r1)
|
||||
/* 80358A78 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 80358A7C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80358A80 4E 80 00 20 */ blr
|
||||
@@ -1,177 +0,0 @@
|
||||
lbl_8034B2D4:
|
||||
/* 8034B2D4 7C 08 02 A6 */ mflr r0
|
||||
/* 8034B2D8 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034B2DC 94 21 FF D8 */ stwu r1, -0x28(r1)
|
||||
/* 8034B2E0 93 E1 00 24 */ stw r31, 0x24(r1)
|
||||
/* 8034B2E4 93 C1 00 20 */ stw r30, 0x20(r1)
|
||||
/* 8034B2E8 3B C4 00 00 */ addi r30, r4, 0
|
||||
/* 8034B2EC 93 A1 00 1C */ stw r29, 0x1c(r1)
|
||||
/* 8034B2F0 3B A3 00 00 */ addi r29, r3, 0
|
||||
/* 8034B2F4 4B FF 24 01 */ bl OSDisableInterrupts
|
||||
/* 8034B2F8 80 9D 00 0C */ lwz r4, 0xc(r29)
|
||||
/* 8034B2FC 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 8034B300 38 04 00 01 */ addi r0, r4, 1
|
||||
/* 8034B304 28 00 00 0C */ cmplwi r0, 0xc
|
||||
/* 8034B308 41 81 02 20 */ bgt lbl_8034B528
|
||||
/* 8034B30C 3C 60 80 3D */ lis r3, lit_956@ha /* 0x803D163C@ha */
|
||||
/* 8034B310 38 63 16 3C */ addi r3, r3, lit_956@l /* 0x803D163C@l */
|
||||
/* 8034B314 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 8034B318 7C 03 00 2E */ lwzx r0, r3, r0
|
||||
/* 8034B31C 7C 09 03 A6 */ mtctr r0
|
||||
/* 8034B320 4E 80 04 20 */ bctr
|
||||
/* 8034B324 28 1E 00 00 */ cmplwi r30, 0
|
||||
/* 8034B328 41 82 02 00 */ beq lbl_8034B528
|
||||
/* 8034B32C 39 9E 00 00 */ addi r12, r30, 0
|
||||
/* 8034B330 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034B334 38 9D 00 00 */ addi r4, r29, 0
|
||||
/* 8034B338 38 60 00 00 */ li r3, 0
|
||||
/* 8034B33C 4E 80 00 21 */ blrl
|
||||
/* 8034B340 48 00 01 E8 */ b lbl_8034B528
|
||||
/* 8034B344 80 0D 92 18 */ lwz r0, Canceling(r13)
|
||||
/* 8034B348 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034B34C 41 82 00 14 */ beq lbl_8034B360
|
||||
/* 8034B350 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034B354 4B FF 23 C9 */ bl OSRestoreInterrupts
|
||||
/* 8034B358 38 60 00 00 */ li r3, 0
|
||||
/* 8034B35C 48 00 01 D8 */ b lbl_8034B534
|
||||
lbl_8034B360:
|
||||
/* 8034B360 38 00 00 01 */ li r0, 1
|
||||
/* 8034B364 93 CD 92 1C */ stw r30, CancelCallback(r13)
|
||||
/* 8034B368 90 0D 92 18 */ stw r0, Canceling(r13)
|
||||
/* 8034B36C 80 1D 00 08 */ lwz r0, 8(r29)
|
||||
/* 8034B370 28 00 00 04 */ cmplwi r0, 4
|
||||
/* 8034B374 41 82 00 0C */ beq lbl_8034B380
|
||||
/* 8034B378 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 8034B37C 40 82 01 AC */ bne lbl_8034B528
|
||||
lbl_8034B380:
|
||||
/* 8034B380 4B FF D0 C5 */ bl DVDLowBreak
|
||||
/* 8034B384 48 00 01 A4 */ b lbl_8034B528
|
||||
/* 8034B388 7F A3 EB 78 */ mr r3, r29
|
||||
/* 8034B38C 48 00 06 81 */ bl __DVDDequeueWaitingQueue
|
||||
/* 8034B390 38 00 00 0A */ li r0, 0xa
|
||||
/* 8034B394 90 1D 00 0C */ stw r0, 0xc(r29)
|
||||
/* 8034B398 81 9D 00 28 */ lwz r12, 0x28(r29)
|
||||
/* 8034B39C 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034B3A0 41 82 00 14 */ beq lbl_8034B3B4
|
||||
/* 8034B3A4 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034B3A8 38 9D 00 00 */ addi r4, r29, 0
|
||||
/* 8034B3AC 38 60 FF FD */ li r3, -3
|
||||
/* 8034B3B0 4E 80 00 21 */ blrl
|
||||
lbl_8034B3B4:
|
||||
/* 8034B3B4 28 1E 00 00 */ cmplwi r30, 0
|
||||
/* 8034B3B8 41 82 01 70 */ beq lbl_8034B528
|
||||
/* 8034B3BC 39 9E 00 00 */ addi r12, r30, 0
|
||||
/* 8034B3C0 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034B3C4 38 9D 00 00 */ addi r4, r29, 0
|
||||
/* 8034B3C8 38 60 00 00 */ li r3, 0
|
||||
/* 8034B3CC 4E 80 00 21 */ blrl
|
||||
/* 8034B3D0 48 00 01 58 */ b lbl_8034B528
|
||||
/* 8034B3D4 80 1D 00 08 */ lwz r0, 8(r29)
|
||||
/* 8034B3D8 2C 00 00 0D */ cmpwi r0, 0xd
|
||||
/* 8034B3DC 41 82 00 28 */ beq lbl_8034B404
|
||||
/* 8034B3E0 40 80 00 18 */ bge lbl_8034B3F8
|
||||
/* 8034B3E4 2C 00 00 06 */ cmpwi r0, 6
|
||||
/* 8034B3E8 40 80 00 3C */ bge lbl_8034B424
|
||||
/* 8034B3EC 2C 00 00 04 */ cmpwi r0, 4
|
||||
/* 8034B3F0 40 80 00 14 */ bge lbl_8034B404
|
||||
/* 8034B3F4 48 00 00 30 */ b lbl_8034B424
|
||||
lbl_8034B3F8:
|
||||
/* 8034B3F8 2C 00 00 0F */ cmpwi r0, 0xf
|
||||
/* 8034B3FC 41 82 00 08 */ beq lbl_8034B404
|
||||
/* 8034B400 48 00 00 24 */ b lbl_8034B424
|
||||
lbl_8034B404:
|
||||
/* 8034B404 28 1E 00 00 */ cmplwi r30, 0
|
||||
/* 8034B408 41 82 01 20 */ beq lbl_8034B528
|
||||
/* 8034B40C 39 9E 00 00 */ addi r12, r30, 0
|
||||
/* 8034B410 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034B414 38 9D 00 00 */ addi r4, r29, 0
|
||||
/* 8034B418 38 60 00 00 */ li r3, 0
|
||||
/* 8034B41C 4E 80 00 21 */ blrl
|
||||
/* 8034B420 48 00 01 08 */ b lbl_8034B528
|
||||
lbl_8034B424:
|
||||
/* 8034B424 80 0D 92 18 */ lwz r0, Canceling(r13)
|
||||
/* 8034B428 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034B42C 41 82 00 14 */ beq lbl_8034B440
|
||||
/* 8034B430 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034B434 4B FF 22 E9 */ bl OSRestoreInterrupts
|
||||
/* 8034B438 38 60 00 00 */ li r3, 0
|
||||
/* 8034B43C 48 00 00 F8 */ b lbl_8034B534
|
||||
lbl_8034B440:
|
||||
/* 8034B440 38 00 00 01 */ li r0, 1
|
||||
/* 8034B444 93 CD 92 1C */ stw r30, CancelCallback(r13)
|
||||
/* 8034B448 90 0D 92 18 */ stw r0, Canceling(r13)
|
||||
/* 8034B44C 48 00 00 DC */ b lbl_8034B528
|
||||
/* 8034B450 4B FF D0 09 */ bl DVDLowClearCallback
|
||||
/* 8034B454 3C 80 80 35 */ lis r4, cbForStateMotorStopped@ha /* 0x80349FC0@ha */
|
||||
/* 8034B458 38 04 9F C0 */ addi r0, r4, cbForStateMotorStopped@l /* 0x80349FC0@l */
|
||||
/* 8034B45C 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 8034B460 41 82 00 14 */ beq lbl_8034B474
|
||||
/* 8034B464 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034B468 4B FF 22 B5 */ bl OSRestoreInterrupts
|
||||
/* 8034B46C 38 60 00 00 */ li r3, 0
|
||||
/* 8034B470 48 00 00 C4 */ b lbl_8034B534
|
||||
lbl_8034B474:
|
||||
/* 8034B474 80 1D 00 0C */ lwz r0, 0xc(r29)
|
||||
/* 8034B478 2C 00 00 04 */ cmpwi r0, 4
|
||||
/* 8034B47C 40 82 00 0C */ bne lbl_8034B488
|
||||
/* 8034B480 38 00 00 03 */ li r0, 3
|
||||
/* 8034B484 90 0D 92 20 */ stw r0, ResumeFromHere(r13)
|
||||
lbl_8034B488:
|
||||
/* 8034B488 80 1D 00 0C */ lwz r0, 0xc(r29)
|
||||
/* 8034B48C 2C 00 00 05 */ cmpwi r0, 5
|
||||
/* 8034B490 40 82 00 0C */ bne lbl_8034B49C
|
||||
/* 8034B494 38 00 00 04 */ li r0, 4
|
||||
/* 8034B498 90 0D 92 20 */ stw r0, ResumeFromHere(r13)
|
||||
lbl_8034B49C:
|
||||
/* 8034B49C 80 1D 00 0C */ lwz r0, 0xc(r29)
|
||||
/* 8034B4A0 2C 00 00 06 */ cmpwi r0, 6
|
||||
/* 8034B4A4 40 82 00 0C */ bne lbl_8034B4B0
|
||||
/* 8034B4A8 38 00 00 01 */ li r0, 1
|
||||
/* 8034B4AC 90 0D 92 20 */ stw r0, ResumeFromHere(r13)
|
||||
lbl_8034B4B0:
|
||||
/* 8034B4B0 80 1D 00 0C */ lwz r0, 0xc(r29)
|
||||
/* 8034B4B4 2C 00 00 0B */ cmpwi r0, 0xb
|
||||
/* 8034B4B8 40 82 00 0C */ bne lbl_8034B4C4
|
||||
/* 8034B4BC 38 00 00 02 */ li r0, 2
|
||||
/* 8034B4C0 90 0D 92 20 */ stw r0, ResumeFromHere(r13)
|
||||
lbl_8034B4C4:
|
||||
/* 8034B4C4 80 1D 00 0C */ lwz r0, 0xc(r29)
|
||||
/* 8034B4C8 2C 00 00 07 */ cmpwi r0, 7
|
||||
/* 8034B4CC 40 82 00 0C */ bne lbl_8034B4D8
|
||||
/* 8034B4D0 38 00 00 07 */ li r0, 7
|
||||
/* 8034B4D4 90 0D 92 20 */ stw r0, ResumeFromHere(r13)
|
||||
lbl_8034B4D8:
|
||||
/* 8034B4D8 3C 60 80 45 */ lis r3, DummyCommandBlock@ha /* 0x8044C940@ha */
|
||||
/* 8034B4DC 38 03 C9 40 */ addi r0, r3, DummyCommandBlock@l /* 0x8044C940@l */
|
||||
/* 8034B4E0 90 0D 91 F8 */ stw r0, executing(r13)
|
||||
/* 8034B4E4 38 00 00 0A */ li r0, 0xa
|
||||
/* 8034B4E8 90 1D 00 0C */ stw r0, 0xc(r29)
|
||||
/* 8034B4EC 81 9D 00 28 */ lwz r12, 0x28(r29)
|
||||
/* 8034B4F0 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034B4F4 41 82 00 14 */ beq lbl_8034B508
|
||||
/* 8034B4F8 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034B4FC 38 9D 00 00 */ addi r4, r29, 0
|
||||
/* 8034B500 38 60 FF FD */ li r3, -3
|
||||
/* 8034B504 4E 80 00 21 */ blrl
|
||||
lbl_8034B508:
|
||||
/* 8034B508 28 1E 00 00 */ cmplwi r30, 0
|
||||
/* 8034B50C 41 82 00 18 */ beq lbl_8034B524
|
||||
/* 8034B510 39 9E 00 00 */ addi r12, r30, 0
|
||||
/* 8034B514 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034B518 38 9D 00 00 */ addi r4, r29, 0
|
||||
/* 8034B51C 38 60 00 00 */ li r3, 0
|
||||
/* 8034B520 4E 80 00 21 */ blrl
|
||||
lbl_8034B524:
|
||||
/* 8034B524 4B FF EB 89 */ bl stateReady
|
||||
lbl_8034B528:
|
||||
/* 8034B528 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034B52C 4B FF 21 F1 */ bl OSRestoreInterrupts
|
||||
/* 8034B530 38 60 00 01 */ li r3, 1
|
||||
lbl_8034B534:
|
||||
/* 8034B534 80 01 00 2C */ lwz r0, 0x2c(r1)
|
||||
/* 8034B538 83 E1 00 24 */ lwz r31, 0x24(r1)
|
||||
/* 8034B53C 83 C1 00 20 */ lwz r30, 0x20(r1)
|
||||
/* 8034B540 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
||||
/* 8034B544 38 21 00 28 */ addi r1, r1, 0x28
|
||||
/* 8034B548 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034B54C 4E 80 00 20 */ blr
|
||||
@@ -1,51 +0,0 @@
|
||||
lbl_8034AFAC:
|
||||
/* 8034AFAC 7C 08 02 A6 */ mflr r0
|
||||
/* 8034AFB0 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034AFB4 38 00 00 07 */ li r0, 7
|
||||
/* 8034AFB8 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 8034AFBC 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 8034AFC0 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 8034AFC4 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 8034AFC8 90 03 00 08 */ stw r0, 8(r3)
|
||||
/* 8034AFCC 90 83 00 28 */ stw r4, 0x28(r3)
|
||||
/* 8034AFD0 80 0D 84 6C */ lwz r0, autoInvalidation(r13)
|
||||
/* 8034AFD4 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034AFD8 41 82 00 30 */ beq lbl_8034B008
|
||||
/* 8034AFDC 80 7F 00 08 */ lwz r3, 8(r31)
|
||||
/* 8034AFE0 28 03 00 01 */ cmplwi r3, 1
|
||||
/* 8034AFE4 41 82 00 18 */ beq lbl_8034AFFC
|
||||
/* 8034AFE8 38 03 FF FC */ addi r0, r3, -4
|
||||
/* 8034AFEC 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 8034AFF0 40 81 00 0C */ ble lbl_8034AFFC
|
||||
/* 8034AFF4 28 03 00 0E */ cmplwi r3, 0xe
|
||||
/* 8034AFF8 40 82 00 10 */ bne lbl_8034B008
|
||||
lbl_8034AFFC:
|
||||
/* 8034AFFC 80 7F 00 18 */ lwz r3, 0x18(r31)
|
||||
/* 8034B000 80 9F 00 14 */ lwz r4, 0x14(r31)
|
||||
/* 8034B004 4B FF 05 7D */ bl DCInvalidateRange
|
||||
lbl_8034B008:
|
||||
/* 8034B008 4B FF 26 ED */ bl OSDisableInterrupts
|
||||
/* 8034B00C 38 00 00 02 */ li r0, 2
|
||||
/* 8034B010 90 1F 00 0C */ stw r0, 0xc(r31)
|
||||
/* 8034B014 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 8034B018 38 9F 00 00 */ addi r4, r31, 0
|
||||
/* 8034B01C 38 60 00 01 */ li r3, 1
|
||||
/* 8034B020 48 00 08 8D */ bl __DVDPushWaitingQueue
|
||||
/* 8034B024 80 0D 91 F8 */ lwz r0, executing(r13)
|
||||
/* 8034B028 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 8034B02C 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034B030 40 82 00 14 */ bne lbl_8034B044
|
||||
/* 8034B034 80 0D 92 04 */ lwz r0, PauseFlag(r13)
|
||||
/* 8034B038 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034B03C 40 82 00 08 */ bne lbl_8034B044
|
||||
/* 8034B040 4B FF F0 6D */ bl stateReady
|
||||
lbl_8034B044:
|
||||
/* 8034B044 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8034B048 4B FF 26 D5 */ bl OSRestoreInterrupts
|
||||
/* 8034B04C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034B050 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 8034B054 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 8034B058 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 8034B05C 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 8034B060 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034B064 4E 80 00 20 */ blr
|
||||
@@ -1,72 +0,0 @@
|
||||
lbl_8034B628:
|
||||
/* 8034B628 7C 08 02 A6 */ mflr r0
|
||||
/* 8034B62C 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034B630 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8034B634 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 8034B638 4B FF 20 BD */ bl OSDisableInterrupts
|
||||
/* 8034B63C 80 0D 92 10 */ lwz r0, FatalErrorFlag(r13)
|
||||
/* 8034B640 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034B644 41 82 00 0C */ beq lbl_8034B650
|
||||
/* 8034B648 38 80 FF FF */ li r4, -1
|
||||
/* 8034B64C 48 00 00 48 */ b lbl_8034B694
|
||||
lbl_8034B650:
|
||||
/* 8034B650 80 0D 92 08 */ lwz r0, PausingFlag(r13)
|
||||
/* 8034B654 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034B658 41 82 00 0C */ beq lbl_8034B664
|
||||
/* 8034B65C 38 80 00 08 */ li r4, 8
|
||||
/* 8034B660 48 00 00 34 */ b lbl_8034B694
|
||||
lbl_8034B664:
|
||||
/* 8034B664 80 AD 91 F8 */ lwz r5, executing(r13)
|
||||
/* 8034B668 28 05 00 00 */ cmplwi r5, 0
|
||||
/* 8034B66C 40 82 00 0C */ bne lbl_8034B678
|
||||
/* 8034B670 38 80 00 00 */ li r4, 0
|
||||
/* 8034B674 48 00 00 20 */ b lbl_8034B694
|
||||
lbl_8034B678:
|
||||
/* 8034B678 3C 80 80 45 */ lis r4, DummyCommandBlock@ha /* 0x8044C940@ha */
|
||||
/* 8034B67C 38 04 C9 40 */ addi r0, r4, DummyCommandBlock@l /* 0x8044C940@l */
|
||||
/* 8034B680 7C 05 00 40 */ cmplw r5, r0
|
||||
/* 8034B684 40 82 00 0C */ bne lbl_8034B690
|
||||
/* 8034B688 38 80 00 00 */ li r4, 0
|
||||
/* 8034B68C 48 00 00 08 */ b lbl_8034B694
|
||||
lbl_8034B690:
|
||||
/* 8034B690 80 85 00 0C */ lwz r4, 0xc(r5)
|
||||
lbl_8034B694:
|
||||
/* 8034B694 38 04 00 01 */ addi r0, r4, 1
|
||||
/* 8034B698 28 00 00 0C */ cmplwi r0, 0xc
|
||||
/* 8034B69C 41 81 00 68 */ bgt lbl_8034B704
|
||||
/* 8034B6A0 3C 80 80 3D */ lis r4, lit_1060@ha /* 0x803D1670@ha */
|
||||
/* 8034B6A4 38 84 16 70 */ addi r4, r4, lit_1060@l /* 0x803D1670@l */
|
||||
/* 8034B6A8 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 8034B6AC 7C 04 00 2E */ lwzx r0, r4, r0
|
||||
/* 8034B6B0 7C 09 03 A6 */ mtctr r0
|
||||
/* 8034B6B4 4E 80 04 20 */ bctr
|
||||
/* 8034B6B8 3B E0 00 01 */ li r31, 1
|
||||
/* 8034B6BC 48 00 00 48 */ b lbl_8034B704
|
||||
/* 8034B6C0 3B E0 00 00 */ li r31, 0
|
||||
/* 8034B6C4 48 00 00 40 */ b lbl_8034B704
|
||||
/* 8034B6C8 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006000@ha */
|
||||
/* 8034B6CC 38 84 60 00 */ addi r4, r4, 0x6000 /* 0xCC006000@l */
|
||||
/* 8034B6D0 80 84 00 04 */ lwz r4, 4(r4)
|
||||
/* 8034B6D4 54 80 F7 FF */ rlwinm. r0, r4, 0x1e, 0x1f, 0x1f
|
||||
/* 8034B6D8 40 82 00 0C */ bne lbl_8034B6E4
|
||||
/* 8034B6DC 54 80 07 FF */ clrlwi. r0, r4, 0x1f
|
||||
/* 8034B6E0 41 82 00 0C */ beq lbl_8034B6EC
|
||||
lbl_8034B6E4:
|
||||
/* 8034B6E4 3B E0 00 00 */ li r31, 0
|
||||
/* 8034B6E8 48 00 00 1C */ b lbl_8034B704
|
||||
lbl_8034B6EC:
|
||||
/* 8034B6EC 80 0D 92 20 */ lwz r0, ResumeFromHere(r13)
|
||||
/* 8034B6F0 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034B6F4 41 82 00 0C */ beq lbl_8034B700
|
||||
/* 8034B6F8 3B E0 00 00 */ li r31, 0
|
||||
/* 8034B6FC 48 00 00 08 */ b lbl_8034B704
|
||||
lbl_8034B700:
|
||||
/* 8034B700 3B E0 00 01 */ li r31, 1
|
||||
lbl_8034B704:
|
||||
/* 8034B704 4B FF 20 19 */ bl OSRestoreInterrupts
|
||||
/* 8034B708 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034B70C 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8034B710 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 8034B714 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8034B718 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034B71C 4E 80 00 20 */ blr
|
||||
@@ -1,22 +0,0 @@
|
||||
lbl_8034B17C:
|
||||
/* 8034B17C 7C 08 02 A6 */ mflr r0
|
||||
/* 8034B180 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034B184 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 8034B188 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 8034B18C 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 8034B190 4B FF 25 65 */ bl OSDisableInterrupts
|
||||
/* 8034B194 80 1F 00 0C */ lwz r0, 0xc(r31)
|
||||
/* 8034B198 2C 00 00 03 */ cmpwi r0, 3
|
||||
/* 8034B19C 40 82 00 0C */ bne lbl_8034B1A8
|
||||
/* 8034B1A0 3B E0 00 01 */ li r31, 1
|
||||
/* 8034B1A4 48 00 00 08 */ b lbl_8034B1AC
|
||||
lbl_8034B1A8:
|
||||
/* 8034B1A8 7C 1F 03 78 */ mr r31, r0
|
||||
lbl_8034B1AC:
|
||||
/* 8034B1AC 4B FF 25 71 */ bl OSRestoreInterrupts
|
||||
/* 8034B1B0 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034B1B4 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 8034B1B8 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 8034B1BC 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 8034B1C0 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034B1C4 4E 80 00 20 */ blr
|
||||
@@ -1,50 +0,0 @@
|
||||
lbl_8034B1C8:
|
||||
/* 8034B1C8 7C 08 02 A6 */ mflr r0
|
||||
/* 8034B1CC 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034B1D0 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 8034B1D4 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 8034B1D8 93 C1 00 10 */ stw r30, 0x10(r1)
|
||||
/* 8034B1DC 4B FF 25 19 */ bl OSDisableInterrupts
|
||||
/* 8034B1E0 80 0D 92 10 */ lwz r0, FatalErrorFlag(r13)
|
||||
/* 8034B1E4 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 8034B1E8 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034B1EC 41 82 00 0C */ beq lbl_8034B1F8
|
||||
/* 8034B1F0 3B E0 FF FF */ li r31, -1
|
||||
/* 8034B1F4 48 00 00 5C */ b lbl_8034B250
|
||||
lbl_8034B1F8:
|
||||
/* 8034B1F8 80 0D 92 08 */ lwz r0, PausingFlag(r13)
|
||||
/* 8034B1FC 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034B200 41 82 00 0C */ beq lbl_8034B20C
|
||||
/* 8034B204 3B E0 00 08 */ li r31, 8
|
||||
/* 8034B208 48 00 00 48 */ b lbl_8034B250
|
||||
lbl_8034B20C:
|
||||
/* 8034B20C 83 ED 91 F8 */ lwz r31, executing(r13)
|
||||
/* 8034B210 28 1F 00 00 */ cmplwi r31, 0
|
||||
/* 8034B214 40 82 00 0C */ bne lbl_8034B220
|
||||
/* 8034B218 3B E0 00 00 */ li r31, 0
|
||||
/* 8034B21C 48 00 00 34 */ b lbl_8034B250
|
||||
lbl_8034B220:
|
||||
/* 8034B220 3C 60 80 45 */ lis r3, DummyCommandBlock@ha /* 0x8044C940@ha */
|
||||
/* 8034B224 38 03 C9 40 */ addi r0, r3, DummyCommandBlock@l /* 0x8044C940@l */
|
||||
/* 8034B228 7C 1F 00 40 */ cmplw r31, r0
|
||||
/* 8034B22C 40 82 00 0C */ bne lbl_8034B238
|
||||
/* 8034B230 3B E0 00 00 */ li r31, 0
|
||||
/* 8034B234 48 00 00 1C */ b lbl_8034B250
|
||||
lbl_8034B238:
|
||||
/* 8034B238 4B FF 24 BD */ bl OSDisableInterrupts
|
||||
/* 8034B23C 83 FF 00 0C */ lwz r31, 0xc(r31)
|
||||
/* 8034B240 2C 1F 00 03 */ cmpwi r31, 3
|
||||
/* 8034B244 40 82 00 08 */ bne lbl_8034B24C
|
||||
/* 8034B248 3B E0 00 01 */ li r31, 1
|
||||
lbl_8034B24C:
|
||||
/* 8034B24C 4B FF 24 D1 */ bl OSRestoreInterrupts
|
||||
lbl_8034B250:
|
||||
/* 8034B250 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8034B254 4B FF 24 C9 */ bl OSRestoreInterrupts
|
||||
/* 8034B258 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034B25C 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 8034B260 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 8034B264 83 C1 00 10 */ lwz r30, 0x10(r1)
|
||||
/* 8034B268 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 8034B26C 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034B270 4E 80 00 20 */ blr
|
||||
@@ -1,56 +0,0 @@
|
||||
lbl_8034B068:
|
||||
/* 8034B068 7C 08 02 A6 */ mflr r0
|
||||
/* 8034B06C 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034B070 38 00 00 0E */ li r0, 0xe
|
||||
/* 8034B074 94 21 FF D8 */ stwu r1, -0x28(r1)
|
||||
/* 8034B078 93 E1 00 24 */ stw r31, 0x24(r1)
|
||||
/* 8034B07C 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 8034B080 93 C1 00 20 */ stw r30, 0x20(r1)
|
||||
/* 8034B084 90 03 00 08 */ stw r0, 8(r3)
|
||||
/* 8034B088 38 60 00 20 */ li r3, 0x20
|
||||
/* 8034B08C 38 00 00 00 */ li r0, 0
|
||||
/* 8034B090 90 9F 00 18 */ stw r4, 0x18(r31)
|
||||
/* 8034B094 90 7F 00 14 */ stw r3, 0x14(r31)
|
||||
/* 8034B098 90 1F 00 20 */ stw r0, 0x20(r31)
|
||||
/* 8034B09C 90 BF 00 28 */ stw r5, 0x28(r31)
|
||||
/* 8034B0A0 80 0D 84 6C */ lwz r0, autoInvalidation(r13)
|
||||
/* 8034B0A4 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034B0A8 41 82 00 30 */ beq lbl_8034B0D8
|
||||
/* 8034B0AC 80 7F 00 08 */ lwz r3, 8(r31)
|
||||
/* 8034B0B0 28 03 00 01 */ cmplwi r3, 1
|
||||
/* 8034B0B4 41 82 00 18 */ beq lbl_8034B0CC
|
||||
/* 8034B0B8 38 03 FF FC */ addi r0, r3, -4
|
||||
/* 8034B0BC 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 8034B0C0 40 81 00 0C */ ble lbl_8034B0CC
|
||||
/* 8034B0C4 28 03 00 0E */ cmplwi r3, 0xe
|
||||
/* 8034B0C8 40 82 00 10 */ bne lbl_8034B0D8
|
||||
lbl_8034B0CC:
|
||||
/* 8034B0CC 80 7F 00 18 */ lwz r3, 0x18(r31)
|
||||
/* 8034B0D0 80 9F 00 14 */ lwz r4, 0x14(r31)
|
||||
/* 8034B0D4 4B FF 04 AD */ bl DCInvalidateRange
|
||||
lbl_8034B0D8:
|
||||
/* 8034B0D8 4B FF 26 1D */ bl OSDisableInterrupts
|
||||
/* 8034B0DC 38 00 00 02 */ li r0, 2
|
||||
/* 8034B0E0 90 1F 00 0C */ stw r0, 0xc(r31)
|
||||
/* 8034B0E4 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 8034B0E8 38 9F 00 00 */ addi r4, r31, 0
|
||||
/* 8034B0EC 38 60 00 02 */ li r3, 2
|
||||
/* 8034B0F0 48 00 07 BD */ bl __DVDPushWaitingQueue
|
||||
/* 8034B0F4 80 0D 91 F8 */ lwz r0, executing(r13)
|
||||
/* 8034B0F8 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 8034B0FC 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034B100 40 82 00 14 */ bne lbl_8034B114
|
||||
/* 8034B104 80 0D 92 04 */ lwz r0, PauseFlag(r13)
|
||||
/* 8034B108 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034B10C 40 82 00 08 */ bne lbl_8034B114
|
||||
/* 8034B110 4B FF EF 9D */ bl stateReady
|
||||
lbl_8034B114:
|
||||
/* 8034B114 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8034B118 4B FF 26 05 */ bl OSRestoreInterrupts
|
||||
/* 8034B11C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034B120 80 01 00 2C */ lwz r0, 0x2c(r1)
|
||||
/* 8034B124 83 E1 00 24 */ lwz r31, 0x24(r1)
|
||||
/* 8034B128 83 C1 00 20 */ lwz r30, 0x20(r1)
|
||||
/* 8034B12C 38 21 00 28 */ addi r1, r1, 0x28
|
||||
/* 8034B130 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034B134 4E 80 00 20 */ blr
|
||||
@@ -1,56 +0,0 @@
|
||||
lbl_8034AE08:
|
||||
/* 8034AE08 7C 08 02 A6 */ mflr r0
|
||||
/* 8034AE0C 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034AE10 38 00 00 04 */ li r0, 4
|
||||
/* 8034AE14 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 8034AE18 93 E1 00 2C */ stw r31, 0x2c(r1)
|
||||
/* 8034AE1C 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 8034AE20 93 C1 00 28 */ stw r30, 0x28(r1)
|
||||
/* 8034AE24 90 03 00 08 */ stw r0, 8(r3)
|
||||
/* 8034AE28 38 00 00 00 */ li r0, 0
|
||||
/* 8034AE2C 90 83 00 18 */ stw r4, 0x18(r3)
|
||||
/* 8034AE30 90 A3 00 14 */ stw r5, 0x14(r3)
|
||||
/* 8034AE34 90 C3 00 10 */ stw r6, 0x10(r3)
|
||||
/* 8034AE38 90 03 00 20 */ stw r0, 0x20(r3)
|
||||
/* 8034AE3C 90 E3 00 28 */ stw r7, 0x28(r3)
|
||||
/* 8034AE40 80 0D 84 6C */ lwz r0, autoInvalidation(r13)
|
||||
/* 8034AE44 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034AE48 41 82 00 30 */ beq lbl_8034AE78
|
||||
/* 8034AE4C 80 7F 00 08 */ lwz r3, 8(r31)
|
||||
/* 8034AE50 28 03 00 01 */ cmplwi r3, 1
|
||||
/* 8034AE54 41 82 00 18 */ beq lbl_8034AE6C
|
||||
/* 8034AE58 38 03 FF FC */ addi r0, r3, -4
|
||||
/* 8034AE5C 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 8034AE60 40 81 00 0C */ ble lbl_8034AE6C
|
||||
/* 8034AE64 28 03 00 0E */ cmplwi r3, 0xe
|
||||
/* 8034AE68 40 82 00 10 */ bne lbl_8034AE78
|
||||
lbl_8034AE6C:
|
||||
/* 8034AE6C 80 7F 00 18 */ lwz r3, 0x18(r31)
|
||||
/* 8034AE70 80 9F 00 14 */ lwz r4, 0x14(r31)
|
||||
/* 8034AE74 4B FF 07 0D */ bl DCInvalidateRange
|
||||
lbl_8034AE78:
|
||||
/* 8034AE78 4B FF 28 7D */ bl OSDisableInterrupts
|
||||
/* 8034AE7C 38 00 00 02 */ li r0, 2
|
||||
/* 8034AE80 90 1F 00 0C */ stw r0, 0xc(r31)
|
||||
/* 8034AE84 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 8034AE88 38 9F 00 00 */ addi r4, r31, 0
|
||||
/* 8034AE8C 38 60 00 02 */ li r3, 2
|
||||
/* 8034AE90 48 00 0A 1D */ bl __DVDPushWaitingQueue
|
||||
/* 8034AE94 80 0D 91 F8 */ lwz r0, executing(r13)
|
||||
/* 8034AE98 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 8034AE9C 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034AEA0 40 82 00 14 */ bne lbl_8034AEB4
|
||||
/* 8034AEA4 80 0D 92 04 */ lwz r0, PauseFlag(r13)
|
||||
/* 8034AEA8 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034AEAC 40 82 00 08 */ bne lbl_8034AEB4
|
||||
/* 8034AEB0 4B FF F1 FD */ bl stateReady
|
||||
lbl_8034AEB4:
|
||||
/* 8034AEB4 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8034AEB8 4B FF 28 65 */ bl OSRestoreInterrupts
|
||||
/* 8034AEBC 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034AEC0 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 8034AEC4 83 E1 00 2C */ lwz r31, 0x2c(r1)
|
||||
/* 8034AEC8 83 C1 00 28 */ lwz r30, 0x28(r1)
|
||||
/* 8034AECC 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 8034AED0 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034AED4 4E 80 00 20 */ blr
|
||||
@@ -1,59 +0,0 @@
|
||||
lbl_8034AD2C:
|
||||
/* 8034AD2C 7C 08 02 A6 */ mflr r0
|
||||
/* 8034AD30 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034AD34 38 00 00 01 */ li r0, 1
|
||||
/* 8034AD38 94 21 FF C8 */ stwu r1, -0x38(r1)
|
||||
/* 8034AD3C 93 E1 00 34 */ stw r31, 0x34(r1)
|
||||
/* 8034AD40 3B E8 00 00 */ addi r31, r8, 0
|
||||
/* 8034AD44 93 C1 00 30 */ stw r30, 0x30(r1)
|
||||
/* 8034AD48 93 A1 00 2C */ stw r29, 0x2c(r1)
|
||||
/* 8034AD4C 3B A3 00 00 */ addi r29, r3, 0
|
||||
/* 8034AD50 90 03 00 08 */ stw r0, 8(r3)
|
||||
/* 8034AD54 38 00 00 00 */ li r0, 0
|
||||
/* 8034AD58 90 83 00 18 */ stw r4, 0x18(r3)
|
||||
/* 8034AD5C 90 A3 00 14 */ stw r5, 0x14(r3)
|
||||
/* 8034AD60 90 C3 00 10 */ stw r6, 0x10(r3)
|
||||
/* 8034AD64 90 03 00 20 */ stw r0, 0x20(r3)
|
||||
/* 8034AD68 90 E3 00 28 */ stw r7, 0x28(r3)
|
||||
/* 8034AD6C 80 0D 84 6C */ lwz r0, autoInvalidation(r13)
|
||||
/* 8034AD70 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034AD74 41 82 00 30 */ beq lbl_8034ADA4
|
||||
/* 8034AD78 80 7D 00 08 */ lwz r3, 8(r29)
|
||||
/* 8034AD7C 28 03 00 01 */ cmplwi r3, 1
|
||||
/* 8034AD80 41 82 00 18 */ beq lbl_8034AD98
|
||||
/* 8034AD84 38 03 FF FC */ addi r0, r3, -4
|
||||
/* 8034AD88 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 8034AD8C 40 81 00 0C */ ble lbl_8034AD98
|
||||
/* 8034AD90 28 03 00 0E */ cmplwi r3, 0xe
|
||||
/* 8034AD94 40 82 00 10 */ bne lbl_8034ADA4
|
||||
lbl_8034AD98:
|
||||
/* 8034AD98 80 7D 00 18 */ lwz r3, 0x18(r29)
|
||||
/* 8034AD9C 80 9D 00 14 */ lwz r4, 0x14(r29)
|
||||
/* 8034ADA0 4B FF 07 E1 */ bl DCInvalidateRange
|
||||
lbl_8034ADA4:
|
||||
/* 8034ADA4 4B FF 29 51 */ bl OSDisableInterrupts
|
||||
/* 8034ADA8 38 00 00 02 */ li r0, 2
|
||||
/* 8034ADAC 90 1D 00 0C */ stw r0, 0xc(r29)
|
||||
/* 8034ADB0 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 8034ADB4 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 8034ADB8 38 9D 00 00 */ addi r4, r29, 0
|
||||
/* 8034ADBC 48 00 0A F1 */ bl __DVDPushWaitingQueue
|
||||
/* 8034ADC0 80 0D 91 F8 */ lwz r0, executing(r13)
|
||||
/* 8034ADC4 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 8034ADC8 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034ADCC 40 82 00 14 */ bne lbl_8034ADE0
|
||||
/* 8034ADD0 80 0D 92 04 */ lwz r0, PauseFlag(r13)
|
||||
/* 8034ADD4 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034ADD8 40 82 00 08 */ bne lbl_8034ADE0
|
||||
/* 8034ADDC 4B FF F2 D1 */ bl stateReady
|
||||
lbl_8034ADE0:
|
||||
/* 8034ADE0 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8034ADE4 4B FF 29 39 */ bl OSRestoreInterrupts
|
||||
/* 8034ADE8 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034ADEC 80 01 00 3C */ lwz r0, 0x3c(r1)
|
||||
/* 8034ADF0 83 E1 00 34 */ lwz r31, 0x34(r1)
|
||||
/* 8034ADF4 83 C1 00 30 */ lwz r30, 0x30(r1)
|
||||
/* 8034ADF8 83 A1 00 2C */ lwz r29, 0x2c(r1)
|
||||
/* 8034ADFC 38 21 00 38 */ addi r1, r1, 0x38
|
||||
/* 8034AE00 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034AE04 4E 80 00 20 */ blr
|
||||
@@ -1,57 +0,0 @@
|
||||
lbl_8034AED8:
|
||||
/* 8034AED8 7C 08 02 A6 */ mflr r0
|
||||
/* 8034AEDC 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034AEE0 38 00 00 05 */ li r0, 5
|
||||
/* 8034AEE4 94 21 FF D8 */ stwu r1, -0x28(r1)
|
||||
/* 8034AEE8 93 E1 00 24 */ stw r31, 0x24(r1)
|
||||
/* 8034AEEC 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 8034AEF0 93 C1 00 20 */ stw r30, 0x20(r1)
|
||||
/* 8034AEF4 90 03 00 08 */ stw r0, 8(r3)
|
||||
/* 8034AEF8 38 60 00 20 */ li r3, 0x20
|
||||
/* 8034AEFC 38 00 00 00 */ li r0, 0
|
||||
/* 8034AF00 90 9F 00 18 */ stw r4, 0x18(r31)
|
||||
/* 8034AF04 90 7F 00 14 */ stw r3, 0x14(r31)
|
||||
/* 8034AF08 90 1F 00 10 */ stw r0, 0x10(r31)
|
||||
/* 8034AF0C 90 1F 00 20 */ stw r0, 0x20(r31)
|
||||
/* 8034AF10 90 BF 00 28 */ stw r5, 0x28(r31)
|
||||
/* 8034AF14 80 0D 84 6C */ lwz r0, autoInvalidation(r13)
|
||||
/* 8034AF18 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034AF1C 41 82 00 30 */ beq lbl_8034AF4C
|
||||
/* 8034AF20 80 7F 00 08 */ lwz r3, 8(r31)
|
||||
/* 8034AF24 28 03 00 01 */ cmplwi r3, 1
|
||||
/* 8034AF28 41 82 00 18 */ beq lbl_8034AF40
|
||||
/* 8034AF2C 38 03 FF FC */ addi r0, r3, -4
|
||||
/* 8034AF30 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 8034AF34 40 81 00 0C */ ble lbl_8034AF40
|
||||
/* 8034AF38 28 03 00 0E */ cmplwi r3, 0xe
|
||||
/* 8034AF3C 40 82 00 10 */ bne lbl_8034AF4C
|
||||
lbl_8034AF40:
|
||||
/* 8034AF40 80 7F 00 18 */ lwz r3, 0x18(r31)
|
||||
/* 8034AF44 80 9F 00 14 */ lwz r4, 0x14(r31)
|
||||
/* 8034AF48 4B FF 06 39 */ bl DCInvalidateRange
|
||||
lbl_8034AF4C:
|
||||
/* 8034AF4C 4B FF 27 A9 */ bl OSDisableInterrupts
|
||||
/* 8034AF50 38 00 00 02 */ li r0, 2
|
||||
/* 8034AF54 90 1F 00 0C */ stw r0, 0xc(r31)
|
||||
/* 8034AF58 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 8034AF5C 38 9F 00 00 */ addi r4, r31, 0
|
||||
/* 8034AF60 38 60 00 02 */ li r3, 2
|
||||
/* 8034AF64 48 00 09 49 */ bl __DVDPushWaitingQueue
|
||||
/* 8034AF68 80 0D 91 F8 */ lwz r0, executing(r13)
|
||||
/* 8034AF6C 3B E3 00 00 */ addi r31, r3, 0
|
||||
/* 8034AF70 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034AF74 40 82 00 14 */ bne lbl_8034AF88
|
||||
/* 8034AF78 80 0D 92 04 */ lwz r0, PauseFlag(r13)
|
||||
/* 8034AF7C 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034AF80 40 82 00 08 */ bne lbl_8034AF88
|
||||
/* 8034AF84 4B FF F1 29 */ bl stateReady
|
||||
lbl_8034AF88:
|
||||
/* 8034AF88 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8034AF8C 4B FF 27 91 */ bl OSRestoreInterrupts
|
||||
/* 8034AF90 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034AF94 80 01 00 2C */ lwz r0, 0x2c(r1)
|
||||
/* 8034AF98 83 E1 00 24 */ lwz r31, 0x24(r1)
|
||||
/* 8034AF9C 83 C1 00 20 */ lwz r30, 0x20(r1)
|
||||
/* 8034AFA0 38 21 00 28 */ addi r1, r1, 0x28
|
||||
/* 8034AFA4 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034AFA8 4E 80 00 20 */ blr
|
||||
@@ -1,81 +0,0 @@
|
||||
lbl_8034B720:
|
||||
/* 8034B720 7C 08 02 A6 */ mflr r0
|
||||
/* 8034B724 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034B728 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 8034B72C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 8034B730 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 8034B734 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8034B738 93 A1 00 14 */ stw r29, 0x14(r1)
|
||||
/* 8034B73C 4B FF 1F B9 */ bl OSDisableInterrupts
|
||||
/* 8034B740 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 8034B744 48 00 01 31 */ bl __DVDClearWaitingQueue
|
||||
/* 8034B748 80 0D 92 18 */ lwz r0, Canceling(r13)
|
||||
/* 8034B74C 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034B750 41 82 00 0C */ beq lbl_8034B75C
|
||||
/* 8034B754 93 CD 92 1C */ stw r30, CancelCallback(r13)
|
||||
/* 8034B758 48 00 00 C0 */ b lbl_8034B818
|
||||
lbl_8034B75C:
|
||||
/* 8034B75C 80 6D 91 F8 */ lwz r3, executing(r13)
|
||||
/* 8034B760 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 8034B764 41 82 00 0C */ beq lbl_8034B770
|
||||
/* 8034B768 38 00 00 00 */ li r0, 0
|
||||
/* 8034B76C 90 03 00 28 */ stw r0, 0x28(r3)
|
||||
lbl_8034B770:
|
||||
/* 8034B770 4B FF 1F 85 */ bl OSDisableInterrupts
|
||||
/* 8034B774 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 8034B778 4B FF 1F 7D */ bl OSDisableInterrupts
|
||||
/* 8034B77C 80 0D 91 F8 */ lwz r0, executing(r13)
|
||||
/* 8034B780 38 80 00 01 */ li r4, 1
|
||||
/* 8034B784 90 8D 92 04 */ stw r4, PauseFlag(r13)
|
||||
/* 8034B788 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034B78C 40 82 00 08 */ bne lbl_8034B794
|
||||
/* 8034B790 90 8D 92 08 */ stw r4, PausingFlag(r13)
|
||||
lbl_8034B794:
|
||||
/* 8034B794 4B FF 1F 89 */ bl OSRestoreInterrupts
|
||||
/* 8034B798 48 00 00 0C */ b lbl_8034B7A4
|
||||
lbl_8034B79C:
|
||||
/* 8034B79C 38 80 00 00 */ li r4, 0
|
||||
/* 8034B7A0 4B FF FB 35 */ bl DVDCancelAsync
|
||||
lbl_8034B7A4:
|
||||
/* 8034B7A4 48 00 01 71 */ bl __DVDPopWaitingQueue
|
||||
/* 8034B7A8 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 8034B7AC 40 82 FF F0 */ bne lbl_8034B79C
|
||||
/* 8034B7B0 80 6D 91 F8 */ lwz r3, executing(r13)
|
||||
/* 8034B7B4 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 8034B7B8 41 82 00 10 */ beq lbl_8034B7C8
|
||||
/* 8034B7BC 7F C4 F3 78 */ mr r4, r30
|
||||
/* 8034B7C0 4B FF FB 15 */ bl DVDCancelAsync
|
||||
/* 8034B7C4 48 00 00 20 */ b lbl_8034B7E4
|
||||
lbl_8034B7C8:
|
||||
/* 8034B7C8 28 1E 00 00 */ cmplwi r30, 0
|
||||
/* 8034B7CC 41 82 00 18 */ beq lbl_8034B7E4
|
||||
/* 8034B7D0 39 9E 00 00 */ addi r12, r30, 0
|
||||
/* 8034B7D4 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034B7D8 38 60 00 00 */ li r3, 0
|
||||
/* 8034B7DC 38 80 00 00 */ li r4, 0
|
||||
/* 8034B7E0 4E 80 00 21 */ blrl
|
||||
lbl_8034B7E4:
|
||||
/* 8034B7E4 4B FF 1F 11 */ bl OSDisableInterrupts
|
||||
/* 8034B7E8 38 80 00 00 */ li r4, 0
|
||||
/* 8034B7EC 90 8D 92 04 */ stw r4, PauseFlag(r13)
|
||||
/* 8034B7F0 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8034B7F4 80 0D 92 08 */ lwz r0, PausingFlag(r13)
|
||||
/* 8034B7F8 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034B7FC 41 82 00 0C */ beq lbl_8034B808
|
||||
/* 8034B800 90 8D 92 08 */ stw r4, PausingFlag(r13)
|
||||
/* 8034B804 4B FF E8 A9 */ bl stateReady
|
||||
lbl_8034B808:
|
||||
/* 8034B808 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8034B80C 4B FF 1F 11 */ bl OSRestoreInterrupts
|
||||
/* 8034B810 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034B814 4B FF 1F 09 */ bl OSRestoreInterrupts
|
||||
lbl_8034B818:
|
||||
/* 8034B818 7F A3 EB 78 */ mr r3, r29
|
||||
/* 8034B81C 4B FF 1F 01 */ bl OSRestoreInterrupts
|
||||
/* 8034B820 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 8034B824 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 8034B828 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 8034B82C 83 A1 00 14 */ lwz r29, 0x14(r1)
|
||||
/* 8034B830 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 8034B834 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034B838 4E 80 00 20 */ blr
|
||||
@@ -1,462 +0,0 @@
|
||||
lbl_8034A6D4:
|
||||
/* 8034A6D4 7C 08 02 A6 */ mflr r0
|
||||
/* 8034A6D8 28 03 00 10 */ cmplwi r3, 0x10
|
||||
/* 8034A6DC 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034A6E0 3C 80 80 45 */ lis r4, BB2@ha /* 0x8044C900@ha */
|
||||
/* 8034A6E4 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 8034A6E8 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 8034A6EC 3B E4 C9 00 */ addi r31, r4, BB2@l /* 0x8044C900@l */
|
||||
/* 8034A6F0 93 C1 00 10 */ stw r30, 0x10(r1)
|
||||
/* 8034A6F4 40 82 00 20 */ bne lbl_8034A714
|
||||
/* 8034A6F8 3C 60 01 23 */ lis r3, 0x0123 /* 0x01234568@ha */
|
||||
/* 8034A6FC 38 63 45 68 */ addi r3, r3, 0x4568 /* 0x01234568@l */
|
||||
/* 8034A700 48 00 14 89 */ bl __DVDStoreErrorCode
|
||||
/* 8034A704 48 00 0A 35 */ bl DVDReset
|
||||
/* 8034A708 38 60 00 00 */ li r3, 0
|
||||
/* 8034A70C 4B FF EB D1 */ bl cbForStateError
|
||||
/* 8034A710 48 00 06 04 */ b lbl_8034AD14
|
||||
lbl_8034A714:
|
||||
/* 8034A714 80 0D 92 14 */ lwz r0, CurrCommand(r13)
|
||||
/* 8034A718 28 00 00 03 */ cmplwi r0, 3
|
||||
/* 8034A71C 41 82 00 10 */ beq lbl_8034A72C
|
||||
/* 8034A720 80 0D 92 14 */ lwz r0, CurrCommand(r13)
|
||||
/* 8034A724 28 00 00 0F */ cmplwi r0, 0xf
|
||||
/* 8034A728 40 82 00 E0 */ bne lbl_8034A808
|
||||
lbl_8034A72C:
|
||||
/* 8034A72C 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e
|
||||
/* 8034A730 41 82 00 20 */ beq lbl_8034A750
|
||||
/* 8034A734 3C 60 01 23 */ lis r3, 0x0123 /* 0x01234567@ha */
|
||||
/* 8034A738 38 63 45 67 */ addi r3, r3, 0x4567 /* 0x01234567@l */
|
||||
/* 8034A73C 48 00 14 4D */ bl __DVDStoreErrorCode
|
||||
/* 8034A740 3C 60 80 35 */ lis r3, cbForStateError@ha /* 0x803492DC@ha */
|
||||
/* 8034A744 38 63 92 DC */ addi r3, r3, cbForStateError@l /* 0x803492DC@l */
|
||||
/* 8034A748 4B FF D8 CD */ bl DVDLowStopMotor
|
||||
/* 8034A74C 48 00 05 C8 */ b lbl_8034AD14
|
||||
lbl_8034A750:
|
||||
/* 8034A750 38 00 00 00 */ li r0, 0
|
||||
/* 8034A754 90 0D 92 2C */ stw r0, NumInternalRetry(r13)
|
||||
/* 8034A758 80 0D 92 14 */ lwz r0, CurrCommand(r13)
|
||||
/* 8034A75C 28 00 00 0F */ cmplwi r0, 0xf
|
||||
/* 8034A760 40 82 00 0C */ bne lbl_8034A76C
|
||||
/* 8034A764 38 00 00 01 */ li r0, 1
|
||||
/* 8034A768 90 0D 92 30 */ stw r0, ResetRequired(r13)
|
||||
lbl_8034A76C:
|
||||
/* 8034A76C 80 0D 92 18 */ lwz r0, Canceling(r13)
|
||||
/* 8034A770 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034A774 41 82 00 6C */ beq lbl_8034A7E0
|
||||
/* 8034A778 38 00 00 07 */ li r0, 7
|
||||
/* 8034A77C 83 CD 91 F8 */ lwz r30, executing(r13)
|
||||
/* 8034A780 90 0D 92 20 */ stw r0, ResumeFromHere(r13)
|
||||
/* 8034A784 38 7F 00 40 */ addi r3, r31, 0x40
|
||||
/* 8034A788 38 00 00 00 */ li r0, 0
|
||||
/* 8034A78C 90 0D 92 18 */ stw r0, Canceling(r13)
|
||||
/* 8034A790 38 00 00 0A */ li r0, 0xa
|
||||
/* 8034A794 90 6D 91 F8 */ stw r3, executing(r13)
|
||||
/* 8034A798 90 1E 00 0C */ stw r0, 0xc(r30)
|
||||
/* 8034A79C 81 9E 00 28 */ lwz r12, 0x28(r30)
|
||||
/* 8034A7A0 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034A7A4 41 82 00 14 */ beq lbl_8034A7B8
|
||||
/* 8034A7A8 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034A7AC 38 9E 00 00 */ addi r4, r30, 0
|
||||
/* 8034A7B0 38 60 FF FD */ li r3, -3
|
||||
/* 8034A7B4 4E 80 00 21 */ blrl
|
||||
lbl_8034A7B8:
|
||||
/* 8034A7B8 81 8D 92 1C */ lwz r12, CancelCallback(r13)
|
||||
/* 8034A7BC 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034A7C0 41 82 00 14 */ beq lbl_8034A7D4
|
||||
/* 8034A7C4 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034A7C8 38 9E 00 00 */ addi r4, r30, 0
|
||||
/* 8034A7CC 38 60 00 00 */ li r3, 0
|
||||
/* 8034A7D0 4E 80 00 21 */ blrl
|
||||
lbl_8034A7D4:
|
||||
/* 8034A7D4 4B FF F8 D9 */ bl stateReady
|
||||
/* 8034A7D8 38 00 00 01 */ li r0, 1
|
||||
/* 8034A7DC 48 00 00 08 */ b lbl_8034A7E4
|
||||
lbl_8034A7E0:
|
||||
/* 8034A7E0 38 00 00 00 */ li r0, 0
|
||||
lbl_8034A7E4:
|
||||
/* 8034A7E4 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034A7E8 40 82 05 2C */ bne lbl_8034AD14
|
||||
/* 8034A7EC 80 8D 91 F8 */ lwz r4, executing(r13)
|
||||
/* 8034A7F0 38 00 00 07 */ li r0, 7
|
||||
/* 8034A7F4 3C 60 80 35 */ lis r3, cbForStateMotorStopped@ha /* 0x80349FC0@ha */
|
||||
/* 8034A7F8 90 04 00 0C */ stw r0, 0xc(r4)
|
||||
/* 8034A7FC 38 63 9F C0 */ addi r3, r3, cbForStateMotorStopped@l /* 0x80349FC0@l */
|
||||
/* 8034A800 4B FF D7 45 */ bl DVDLowWaitCoverClose
|
||||
/* 8034A804 48 00 05 10 */ b lbl_8034AD14
|
||||
lbl_8034A808:
|
||||
/* 8034A808 80 8D 92 14 */ lwz r4, CurrCommand(r13)
|
||||
/* 8034A80C 28 04 00 01 */ cmplwi r4, 1
|
||||
/* 8034A810 41 82 00 18 */ beq lbl_8034A828
|
||||
/* 8034A814 38 04 FF FC */ addi r0, r4, -4
|
||||
/* 8034A818 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 8034A81C 40 81 00 0C */ ble lbl_8034A828
|
||||
/* 8034A820 28 04 00 0E */ cmplwi r4, 0xe
|
||||
/* 8034A824 40 82 00 0C */ bne lbl_8034A830
|
||||
lbl_8034A828:
|
||||
/* 8034A828 38 00 00 01 */ li r0, 1
|
||||
/* 8034A82C 48 00 00 1C */ b lbl_8034A848
|
||||
lbl_8034A830:
|
||||
/* 8034A830 80 0D 84 7C */ lwz r0, DmaCommand(r13)
|
||||
/* 8034A834 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 8034A838 40 82 00 0C */ bne lbl_8034A844
|
||||
/* 8034A83C 38 00 00 01 */ li r0, 1
|
||||
/* 8034A840 48 00 00 08 */ b lbl_8034A848
|
||||
lbl_8034A844:
|
||||
/* 8034A844 38 00 00 00 */ li r0, 0
|
||||
lbl_8034A848:
|
||||
/* 8034A848 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034A84C 41 82 00 28 */ beq lbl_8034A874
|
||||
/* 8034A850 80 CD 91 F8 */ lwz r6, executing(r13)
|
||||
/* 8034A854 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC006000@ha */
|
||||
/* 8034A858 38 84 60 00 */ addi r4, r4, 0x6000 /* 0xCC006000@l */
|
||||
/* 8034A85C 80 84 00 18 */ lwz r4, 0x18(r4)
|
||||
/* 8034A860 80 06 00 1C */ lwz r0, 0x1c(r6)
|
||||
/* 8034A864 80 A6 00 20 */ lwz r5, 0x20(r6)
|
||||
/* 8034A868 7C 04 00 50 */ subf r0, r4, r0
|
||||
/* 8034A86C 7C 05 02 14 */ add r0, r5, r0
|
||||
/* 8034A870 90 06 00 20 */ stw r0, 0x20(r6)
|
||||
lbl_8034A874:
|
||||
/* 8034A874 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c
|
||||
/* 8034A878 41 82 00 60 */ beq lbl_8034A8D8
|
||||
/* 8034A87C 83 CD 91 F8 */ lwz r30, executing(r13)
|
||||
/* 8034A880 38 7F 00 40 */ addi r3, r31, 0x40
|
||||
/* 8034A884 38 00 00 00 */ li r0, 0
|
||||
/* 8034A888 90 0D 92 18 */ stw r0, Canceling(r13)
|
||||
/* 8034A88C 38 00 00 0A */ li r0, 0xa
|
||||
/* 8034A890 90 6D 91 F8 */ stw r3, executing(r13)
|
||||
/* 8034A894 90 1E 00 0C */ stw r0, 0xc(r30)
|
||||
/* 8034A898 81 9E 00 28 */ lwz r12, 0x28(r30)
|
||||
/* 8034A89C 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034A8A0 41 82 00 14 */ beq lbl_8034A8B4
|
||||
/* 8034A8A4 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034A8A8 38 9E 00 00 */ addi r4, r30, 0
|
||||
/* 8034A8AC 38 60 FF FD */ li r3, -3
|
||||
/* 8034A8B0 4E 80 00 21 */ blrl
|
||||
lbl_8034A8B4:
|
||||
/* 8034A8B4 81 8D 92 1C */ lwz r12, CancelCallback(r13)
|
||||
/* 8034A8B8 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034A8BC 41 82 00 14 */ beq lbl_8034A8D0
|
||||
/* 8034A8C0 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034A8C4 38 9E 00 00 */ addi r4, r30, 0
|
||||
/* 8034A8C8 38 60 00 00 */ li r3, 0
|
||||
/* 8034A8CC 4E 80 00 21 */ blrl
|
||||
lbl_8034A8D0:
|
||||
/* 8034A8D0 4B FF F7 DD */ bl stateReady
|
||||
/* 8034A8D4 48 00 04 40 */ b lbl_8034AD14
|
||||
lbl_8034A8D8:
|
||||
/* 8034A8D8 54 60 07 FF */ clrlwi. r0, r3, 0x1f
|
||||
/* 8034A8DC 41 82 03 14 */ beq lbl_8034ABF0
|
||||
/* 8034A8E0 38 A0 00 00 */ li r5, 0
|
||||
/* 8034A8E4 90 AD 92 2C */ stw r5, NumInternalRetry(r13)
|
||||
/* 8034A8E8 80 0D 92 14 */ lwz r0, CurrCommand(r13)
|
||||
/* 8034A8EC 28 00 00 10 */ cmplwi r0, 0x10
|
||||
/* 8034A8F0 40 82 00 3C */ bne lbl_8034A92C
|
||||
/* 8034A8F4 80 8D 91 F8 */ lwz r4, executing(r13)
|
||||
/* 8034A8F8 38 1F 00 40 */ addi r0, r31, 0x40
|
||||
/* 8034A8FC 38 60 00 01 */ li r3, 1
|
||||
/* 8034A900 90 6D 92 38 */ stw r3, MotorState(r13)
|
||||
/* 8034A904 90 0D 91 F8 */ stw r0, executing(r13)
|
||||
/* 8034A908 90 A4 00 0C */ stw r5, 0xc(r4)
|
||||
/* 8034A90C 81 84 00 28 */ lwz r12, 0x28(r4)
|
||||
/* 8034A910 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034A914 41 82 00 10 */ beq lbl_8034A924
|
||||
/* 8034A918 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034A91C 38 60 00 00 */ li r3, 0
|
||||
/* 8034A920 4E 80 00 21 */ blrl
|
||||
lbl_8034A924:
|
||||
/* 8034A924 4B FF F7 89 */ bl stateReady
|
||||
/* 8034A928 48 00 03 EC */ b lbl_8034AD14
|
||||
lbl_8034A92C:
|
||||
/* 8034A92C 80 0D 92 18 */ lwz r0, Canceling(r13)
|
||||
/* 8034A930 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034A934 41 82 00 60 */ beq lbl_8034A994
|
||||
/* 8034A938 90 AD 92 20 */ stw r5, ResumeFromHere(r13)
|
||||
/* 8034A93C 38 7F 00 40 */ addi r3, r31, 0x40
|
||||
/* 8034A940 83 CD 91 F8 */ lwz r30, executing(r13)
|
||||
/* 8034A944 38 00 00 0A */ li r0, 0xa
|
||||
/* 8034A948 90 AD 92 18 */ stw r5, Canceling(r13)
|
||||
/* 8034A94C 90 6D 91 F8 */ stw r3, executing(r13)
|
||||
/* 8034A950 90 1E 00 0C */ stw r0, 0xc(r30)
|
||||
/* 8034A954 81 9E 00 28 */ lwz r12, 0x28(r30)
|
||||
/* 8034A958 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034A95C 41 82 00 14 */ beq lbl_8034A970
|
||||
/* 8034A960 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034A964 38 9E 00 00 */ addi r4, r30, 0
|
||||
/* 8034A968 38 60 FF FD */ li r3, -3
|
||||
/* 8034A96C 4E 80 00 21 */ blrl
|
||||
lbl_8034A970:
|
||||
/* 8034A970 81 8D 92 1C */ lwz r12, CancelCallback(r13)
|
||||
/* 8034A974 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034A978 41 82 00 14 */ beq lbl_8034A98C
|
||||
/* 8034A97C 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034A980 38 9E 00 00 */ addi r4, r30, 0
|
||||
/* 8034A984 38 60 00 00 */ li r3, 0
|
||||
/* 8034A988 4E 80 00 21 */ blrl
|
||||
lbl_8034A98C:
|
||||
/* 8034A98C 4B FF F7 21 */ bl stateReady
|
||||
/* 8034A990 38 A0 00 01 */ li r5, 1
|
||||
lbl_8034A994:
|
||||
/* 8034A994 2C 05 00 00 */ cmpwi r5, 0
|
||||
/* 8034A998 40 82 03 7C */ bne lbl_8034AD14
|
||||
/* 8034A99C 80 6D 92 14 */ lwz r3, CurrCommand(r13)
|
||||
/* 8034A9A0 28 03 00 01 */ cmplwi r3, 1
|
||||
/* 8034A9A4 41 82 00 18 */ beq lbl_8034A9BC
|
||||
/* 8034A9A8 38 03 FF FC */ addi r0, r3, -4
|
||||
/* 8034A9AC 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 8034A9B0 40 81 00 0C */ ble lbl_8034A9BC
|
||||
/* 8034A9B4 28 03 00 0E */ cmplwi r3, 0xe
|
||||
/* 8034A9B8 40 82 00 0C */ bne lbl_8034A9C4
|
||||
lbl_8034A9BC:
|
||||
/* 8034A9BC 38 00 00 01 */ li r0, 1
|
||||
/* 8034A9C0 48 00 00 1C */ b lbl_8034A9DC
|
||||
lbl_8034A9C4:
|
||||
/* 8034A9C4 80 0D 84 7C */ lwz r0, DmaCommand(r13)
|
||||
/* 8034A9C8 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 8034A9CC 40 82 00 0C */ bne lbl_8034A9D8
|
||||
/* 8034A9D0 38 00 00 01 */ li r0, 1
|
||||
/* 8034A9D4 48 00 00 08 */ b lbl_8034A9DC
|
||||
lbl_8034A9D8:
|
||||
/* 8034A9D8 38 00 00 00 */ li r0, 0
|
||||
lbl_8034A9DC:
|
||||
/* 8034A9DC 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034A9E0 41 82 00 54 */ beq lbl_8034AA34
|
||||
/* 8034A9E4 80 6D 91 F8 */ lwz r3, executing(r13)
|
||||
/* 8034A9E8 80 83 00 20 */ lwz r4, 0x20(r3)
|
||||
/* 8034A9EC 80 03 00 14 */ lwz r0, 0x14(r3)
|
||||
/* 8034A9F0 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 8034A9F4 41 82 00 0C */ beq lbl_8034AA00
|
||||
/* 8034A9F8 4B FF F9 9D */ bl stateBusy
|
||||
/* 8034A9FC 48 00 03 18 */ b lbl_8034AD14
|
||||
lbl_8034AA00:
|
||||
/* 8034AA00 38 1F 00 40 */ addi r0, r31, 0x40
|
||||
/* 8034AA04 90 0D 91 F8 */ stw r0, executing(r13)
|
||||
/* 8034AA08 38 00 00 00 */ li r0, 0
|
||||
/* 8034AA0C 38 83 00 00 */ addi r4, r3, 0
|
||||
/* 8034AA10 90 03 00 0C */ stw r0, 0xc(r3)
|
||||
/* 8034AA14 81 83 00 28 */ lwz r12, 0x28(r3)
|
||||
/* 8034AA18 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034AA1C 41 82 00 10 */ beq lbl_8034AA2C
|
||||
/* 8034AA20 80 64 00 20 */ lwz r3, 0x20(r4)
|
||||
/* 8034AA24 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034AA28 4E 80 00 21 */ blrl
|
||||
lbl_8034AA2C:
|
||||
/* 8034AA2C 4B FF F6 81 */ bl stateReady
|
||||
/* 8034AA30 48 00 02 E4 */ b lbl_8034AD14
|
||||
lbl_8034AA34:
|
||||
/* 8034AA34 80 8D 92 14 */ lwz r4, CurrCommand(r13)
|
||||
/* 8034AA38 38 04 FF F7 */ addi r0, r4, -9
|
||||
/* 8034AA3C 28 00 00 03 */ cmplwi r0, 3
|
||||
/* 8034AA40 41 81 00 0C */ bgt lbl_8034AA4C
|
||||
/* 8034AA44 38 00 00 01 */ li r0, 1
|
||||
/* 8034AA48 48 00 00 48 */ b lbl_8034AA90
|
||||
lbl_8034AA4C:
|
||||
/* 8034AA4C 3C 60 80 3D */ lis r3, ImmCommand@ha /* 0x803D15EC@ha */
|
||||
/* 8034AA50 84 03 15 EC */ lwzu r0, ImmCommand@l(r3) /* 0x803D15EC@l */
|
||||
/* 8034AA54 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 8034AA58 40 82 00 0C */ bne lbl_8034AA64
|
||||
/* 8034AA5C 38 00 00 01 */ li r0, 1
|
||||
/* 8034AA60 48 00 00 30 */ b lbl_8034AA90
|
||||
lbl_8034AA64:
|
||||
/* 8034AA64 84 03 00 04 */ lwzu r0, 4(r3)
|
||||
/* 8034AA68 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 8034AA6C 40 82 00 0C */ bne lbl_8034AA78
|
||||
/* 8034AA70 38 00 00 01 */ li r0, 1
|
||||
/* 8034AA74 48 00 00 1C */ b lbl_8034AA90
|
||||
lbl_8034AA78:
|
||||
/* 8034AA78 80 03 00 04 */ lwz r0, 4(r3)
|
||||
/* 8034AA7C 7C 04 00 40 */ cmplw r4, r0
|
||||
/* 8034AA80 40 82 00 0C */ bne lbl_8034AA8C
|
||||
/* 8034AA84 38 00 00 01 */ li r0, 1
|
||||
/* 8034AA88 48 00 00 08 */ b lbl_8034AA90
|
||||
lbl_8034AA8C:
|
||||
/* 8034AA8C 38 00 00 00 */ li r0, 0
|
||||
lbl_8034AA90:
|
||||
/* 8034AA90 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034AA94 41 82 00 68 */ beq lbl_8034AAFC
|
||||
/* 8034AA98 80 0D 92 14 */ lwz r0, CurrCommand(r13)
|
||||
/* 8034AA9C 28 00 00 0B */ cmplwi r0, 0xb
|
||||
/* 8034AAA0 41 82 00 10 */ beq lbl_8034AAB0
|
||||
/* 8034AAA4 80 0D 92 14 */ lwz r0, CurrCommand(r13)
|
||||
/* 8034AAA8 28 00 00 0A */ cmplwi r0, 0xa
|
||||
/* 8034AAAC 40 82 00 14 */ bne lbl_8034AAC0
|
||||
lbl_8034AAB0:
|
||||
/* 8034AAB0 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006020@ha */
|
||||
/* 8034AAB4 80 03 60 20 */ lwz r0, 0x6020(r3) /* 0xCC006020@l */
|
||||
/* 8034AAB8 54 03 10 3A */ slwi r3, r0, 2
|
||||
/* 8034AABC 48 00 00 10 */ b lbl_8034AACC
|
||||
lbl_8034AAC0:
|
||||
/* 8034AAC0 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006000@ha */
|
||||
/* 8034AAC4 38 63 60 00 */ addi r3, r3, 0x6000 /* 0xCC006000@l */
|
||||
/* 8034AAC8 80 63 00 20 */ lwz r3, 0x20(r3)
|
||||
lbl_8034AACC:
|
||||
/* 8034AACC 80 8D 91 F8 */ lwz r4, executing(r13)
|
||||
/* 8034AAD0 38 BF 00 40 */ addi r5, r31, 0x40
|
||||
/* 8034AAD4 38 00 00 00 */ li r0, 0
|
||||
/* 8034AAD8 90 AD 91 F8 */ stw r5, executing(r13)
|
||||
/* 8034AADC 90 04 00 0C */ stw r0, 0xc(r4)
|
||||
/* 8034AAE0 81 84 00 28 */ lwz r12, 0x28(r4)
|
||||
/* 8034AAE4 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034AAE8 41 82 00 0C */ beq lbl_8034AAF4
|
||||
/* 8034AAEC 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034AAF0 4E 80 00 21 */ blrl
|
||||
lbl_8034AAF4:
|
||||
/* 8034AAF4 4B FF F5 B9 */ bl stateReady
|
||||
/* 8034AAF8 48 00 02 1C */ b lbl_8034AD14
|
||||
lbl_8034AAFC:
|
||||
/* 8034AAFC 80 0D 92 14 */ lwz r0, CurrCommand(r13)
|
||||
/* 8034AB00 28 00 00 06 */ cmplwi r0, 6
|
||||
/* 8034AB04 40 82 00 B8 */ bne lbl_8034ABBC
|
||||
/* 8034AB08 80 8D 91 F8 */ lwz r4, executing(r13)
|
||||
/* 8034AB0C 38 A4 00 1C */ addi r5, r4, 0x1c
|
||||
/* 8034AB10 80 04 00 1C */ lwz r0, 0x1c(r4)
|
||||
/* 8034AB14 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034AB18 40 82 00 74 */ bne lbl_8034AB8C
|
||||
/* 8034AB1C 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006020@ha */
|
||||
/* 8034AB20 80 03 60 20 */ lwz r0, 0x6020(r3) /* 0xCC006020@l */
|
||||
/* 8034AB24 54 00 07 FF */ clrlwi. r0, r0, 0x1f
|
||||
/* 8034AB28 41 82 00 34 */ beq lbl_8034AB5C
|
||||
/* 8034AB2C 38 1F 00 40 */ addi r0, r31, 0x40
|
||||
/* 8034AB30 90 0D 91 F8 */ stw r0, executing(r13)
|
||||
/* 8034AB34 38 00 00 09 */ li r0, 9
|
||||
/* 8034AB38 90 04 00 0C */ stw r0, 0xc(r4)
|
||||
/* 8034AB3C 81 84 00 28 */ lwz r12, 0x28(r4)
|
||||
/* 8034AB40 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034AB44 41 82 00 10 */ beq lbl_8034AB54
|
||||
/* 8034AB48 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034AB4C 38 60 FF FE */ li r3, -2
|
||||
/* 8034AB50 4E 80 00 21 */ blrl
|
||||
lbl_8034AB54:
|
||||
/* 8034AB54 4B FF F5 59 */ bl stateReady
|
||||
/* 8034AB58 48 00 01 BC */ b lbl_8034AD14
|
||||
lbl_8034AB5C:
|
||||
/* 8034AB5C 38 00 00 00 */ li r0, 0
|
||||
/* 8034AB60 90 0D 92 0C */ stw r0, AutoFinishing(r13)
|
||||
/* 8034AB64 38 00 00 01 */ li r0, 1
|
||||
/* 8034AB68 3C 60 80 35 */ lis r3, cbForStateBusy@ha /* 0x8034A6D4@ha */
|
||||
/* 8034AB6C 90 05 00 00 */ stw r0, 0(r5)
|
||||
/* 8034AB70 38 C3 A6 D4 */ addi r6, r3, cbForStateBusy@l /* 0x8034A6D4@l */
|
||||
/* 8034AB74 38 60 00 00 */ li r3, 0
|
||||
/* 8034AB78 80 AD 91 F8 */ lwz r5, executing(r13)
|
||||
/* 8034AB7C 80 85 00 14 */ lwz r4, 0x14(r5)
|
||||
/* 8034AB80 80 A5 00 10 */ lwz r5, 0x10(r5)
|
||||
/* 8034AB84 4B FF D6 45 */ bl DVDLowAudioStream
|
||||
/* 8034AB88 48 00 01 8C */ b lbl_8034AD14
|
||||
lbl_8034AB8C:
|
||||
/* 8034AB8C 38 1F 00 40 */ addi r0, r31, 0x40
|
||||
/* 8034AB90 90 0D 91 F8 */ stw r0, executing(r13)
|
||||
/* 8034AB94 38 00 00 00 */ li r0, 0
|
||||
/* 8034AB98 90 04 00 0C */ stw r0, 0xc(r4)
|
||||
/* 8034AB9C 81 84 00 28 */ lwz r12, 0x28(r4)
|
||||
/* 8034ABA0 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034ABA4 41 82 00 10 */ beq lbl_8034ABB4
|
||||
/* 8034ABA8 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034ABAC 38 60 00 00 */ li r3, 0
|
||||
/* 8034ABB0 4E 80 00 21 */ blrl
|
||||
lbl_8034ABB4:
|
||||
/* 8034ABB4 4B FF F4 F9 */ bl stateReady
|
||||
/* 8034ABB8 48 00 01 5C */ b lbl_8034AD14
|
||||
lbl_8034ABBC:
|
||||
/* 8034ABBC 80 8D 91 F8 */ lwz r4, executing(r13)
|
||||
/* 8034ABC0 38 7F 00 40 */ addi r3, r31, 0x40
|
||||
/* 8034ABC4 38 00 00 00 */ li r0, 0
|
||||
/* 8034ABC8 90 6D 91 F8 */ stw r3, executing(r13)
|
||||
/* 8034ABCC 90 04 00 0C */ stw r0, 0xc(r4)
|
||||
/* 8034ABD0 81 84 00 28 */ lwz r12, 0x28(r4)
|
||||
/* 8034ABD4 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034ABD8 41 82 00 10 */ beq lbl_8034ABE8
|
||||
/* 8034ABDC 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034ABE0 38 60 00 00 */ li r3, 0
|
||||
/* 8034ABE4 4E 80 00 21 */ blrl
|
||||
lbl_8034ABE8:
|
||||
/* 8034ABE8 4B FF F4 C5 */ bl stateReady
|
||||
/* 8034ABEC 48 00 01 28 */ b lbl_8034AD14
|
||||
lbl_8034ABF0:
|
||||
/* 8034ABF0 80 0D 92 14 */ lwz r0, CurrCommand(r13)
|
||||
/* 8034ABF4 28 00 00 0E */ cmplwi r0, 0xe
|
||||
/* 8034ABF8 40 82 00 20 */ bne lbl_8034AC18
|
||||
/* 8034ABFC 3C 60 01 23 */ lis r3, 0x0123 /* 0x01234567@ha */
|
||||
/* 8034AC00 38 63 45 67 */ addi r3, r3, 0x4567 /* 0x01234567@l */
|
||||
/* 8034AC04 48 00 0F 85 */ bl __DVDStoreErrorCode
|
||||
/* 8034AC08 3C 60 80 35 */ lis r3, cbForStateError@ha /* 0x803492DC@ha */
|
||||
/* 8034AC0C 38 63 92 DC */ addi r3, r3, cbForStateError@l /* 0x803492DC@l */
|
||||
/* 8034AC10 4B FF D4 05 */ bl DVDLowStopMotor
|
||||
/* 8034AC14 48 00 01 00 */ b lbl_8034AD14
|
||||
lbl_8034AC18:
|
||||
/* 8034AC18 80 0D 92 14 */ lwz r0, CurrCommand(r13)
|
||||
/* 8034AC1C 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 8034AC20 41 82 00 28 */ beq lbl_8034AC48
|
||||
/* 8034AC24 80 0D 92 14 */ lwz r0, CurrCommand(r13)
|
||||
/* 8034AC28 28 00 00 04 */ cmplwi r0, 4
|
||||
/* 8034AC2C 41 82 00 1C */ beq lbl_8034AC48
|
||||
/* 8034AC30 80 0D 92 14 */ lwz r0, CurrCommand(r13)
|
||||
/* 8034AC34 28 00 00 05 */ cmplwi r0, 5
|
||||
/* 8034AC38 41 82 00 10 */ beq lbl_8034AC48
|
||||
/* 8034AC3C 80 0D 92 14 */ lwz r0, CurrCommand(r13)
|
||||
/* 8034AC40 28 00 00 0E */ cmplwi r0, 0xe
|
||||
/* 8034AC44 40 82 00 C4 */ bne lbl_8034AD08
|
||||
lbl_8034AC48:
|
||||
/* 8034AC48 83 CD 91 F8 */ lwz r30, executing(r13)
|
||||
/* 8034AC4C 80 7E 00 20 */ lwz r3, 0x20(r30)
|
||||
/* 8034AC50 80 1E 00 14 */ lwz r0, 0x14(r30)
|
||||
/* 8034AC54 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 8034AC58 40 82 00 B0 */ bne lbl_8034AD08
|
||||
/* 8034AC5C 80 0D 92 18 */ lwz r0, Canceling(r13)
|
||||
/* 8034AC60 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034AC64 41 82 00 64 */ beq lbl_8034ACC8
|
||||
/* 8034AC68 38 80 00 00 */ li r4, 0
|
||||
/* 8034AC6C 90 8D 92 20 */ stw r4, ResumeFromHere(r13)
|
||||
/* 8034AC70 38 7F 00 40 */ addi r3, r31, 0x40
|
||||
/* 8034AC74 38 00 00 0A */ li r0, 0xa
|
||||
/* 8034AC78 90 8D 92 18 */ stw r4, Canceling(r13)
|
||||
/* 8034AC7C 90 6D 91 F8 */ stw r3, executing(r13)
|
||||
/* 8034AC80 90 1E 00 0C */ stw r0, 0xc(r30)
|
||||
/* 8034AC84 81 9E 00 28 */ lwz r12, 0x28(r30)
|
||||
/* 8034AC88 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034AC8C 41 82 00 14 */ beq lbl_8034ACA0
|
||||
/* 8034AC90 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034AC94 38 9E 00 00 */ addi r4, r30, 0
|
||||
/* 8034AC98 38 60 FF FD */ li r3, -3
|
||||
/* 8034AC9C 4E 80 00 21 */ blrl
|
||||
lbl_8034ACA0:
|
||||
/* 8034ACA0 81 8D 92 1C */ lwz r12, CancelCallback(r13)
|
||||
/* 8034ACA4 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034ACA8 41 82 00 14 */ beq lbl_8034ACBC
|
||||
/* 8034ACAC 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034ACB0 38 9E 00 00 */ addi r4, r30, 0
|
||||
/* 8034ACB4 38 60 00 00 */ li r3, 0
|
||||
/* 8034ACB8 4E 80 00 21 */ blrl
|
||||
lbl_8034ACBC:
|
||||
/* 8034ACBC 4B FF F3 F1 */ bl stateReady
|
||||
/* 8034ACC0 38 00 00 01 */ li r0, 1
|
||||
/* 8034ACC4 48 00 00 08 */ b lbl_8034ACCC
|
||||
lbl_8034ACC8:
|
||||
/* 8034ACC8 38 00 00 00 */ li r0, 0
|
||||
lbl_8034ACCC:
|
||||
/* 8034ACCC 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034ACD0 40 82 00 44 */ bne lbl_8034AD14
|
||||
/* 8034ACD4 80 8D 91 F8 */ lwz r4, executing(r13)
|
||||
/* 8034ACD8 38 7F 00 40 */ addi r3, r31, 0x40
|
||||
/* 8034ACDC 38 00 00 00 */ li r0, 0
|
||||
/* 8034ACE0 90 6D 91 F8 */ stw r3, executing(r13)
|
||||
/* 8034ACE4 90 04 00 0C */ stw r0, 0xc(r4)
|
||||
/* 8034ACE8 81 84 00 28 */ lwz r12, 0x28(r4)
|
||||
/* 8034ACEC 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034ACF0 41 82 00 10 */ beq lbl_8034AD00
|
||||
/* 8034ACF4 80 64 00 20 */ lwz r3, 0x20(r4)
|
||||
/* 8034ACF8 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034ACFC 4E 80 00 21 */ blrl
|
||||
lbl_8034AD00:
|
||||
/* 8034AD00 4B FF F3 AD */ bl stateReady
|
||||
/* 8034AD04 48 00 00 10 */ b lbl_8034AD14
|
||||
lbl_8034AD08:
|
||||
/* 8034AD08 3C 60 80 35 */ lis r3, cbForStateGettingError@ha /* 0x80349498@ha */
|
||||
/* 8034AD0C 38 63 94 98 */ addi r3, r3, cbForStateGettingError@l /* 0x80349498@l */
|
||||
/* 8034AD10 4B FF D3 91 */ bl DVDLowRequestError
|
||||
lbl_8034AD14:
|
||||
/* 8034AD14 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 8034AD18 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 8034AD1C 83 C1 00 10 */ lwz r30, 0x10(r1)
|
||||
/* 8034AD20 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 8034AD24 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034AD28 4E 80 00 20 */ blr
|
||||
@@ -1,59 +0,0 @@
|
||||
lbl_80349C24:
|
||||
/* 80349C24 7C 08 02 A6 */ mflr r0
|
||||
/* 80349C28 28 03 00 10 */ cmplwi r3, 0x10
|
||||
/* 80349C2C 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80349C30 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 80349C34 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 80349C38 40 82 00 20 */ bne lbl_80349C58
|
||||
/* 80349C3C 3C 60 01 23 */ lis r3, 0x0123 /* 0x01234568@ha */
|
||||
/* 80349C40 38 63 45 68 */ addi r3, r3, 0x4568 /* 0x01234568@l */
|
||||
/* 80349C44 48 00 1F 45 */ bl __DVDStoreErrorCode
|
||||
/* 80349C48 48 00 14 F1 */ bl DVDReset
|
||||
/* 80349C4C 38 60 00 00 */ li r3, 0
|
||||
/* 80349C50 4B FF F6 8D */ bl cbForStateError
|
||||
/* 80349C54 48 00 00 94 */ b lbl_80349CE8
|
||||
lbl_80349C58:
|
||||
/* 80349C58 54 60 07 FF */ clrlwi. r0, r3, 0x1f
|
||||
/* 80349C5C 41 82 00 80 */ beq lbl_80349CDC
|
||||
/* 80349C60 3C 60 80 35 */ lis r3, stateReadingFST@ha /* 0x803491C8@ha */
|
||||
/* 80349C64 80 8D 92 00 */ lwz r4, bootInfo(r13)
|
||||
/* 80349C68 38 03 91 C8 */ addi r0, r3, stateReadingFST@l /* 0x803491C8@l */
|
||||
/* 80349C6C 38 A0 00 00 */ li r5, 0
|
||||
/* 80349C70 90 0D 92 40 */ stw r0, LastState(r13)
|
||||
/* 80349C74 3C 60 80 45 */ lis r3, BB2@ha /* 0x8044C900@ha */
|
||||
/* 80349C78 90 AD 92 2C */ stw r5, NumInternalRetry(r13)
|
||||
/* 80349C7C 38 63 C9 00 */ addi r3, r3, BB2@l /* 0x8044C900@l */
|
||||
/* 80349C80 3B E3 00 08 */ addi r31, r3, 8
|
||||
/* 80349C84 80 64 00 3C */ lwz r3, 0x3c(r4)
|
||||
/* 80349C88 80 1F 00 00 */ lwz r0, 0(r31)
|
||||
/* 80349C8C 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 80349C90 40 80 00 1C */ bge lbl_80349CAC
|
||||
/* 80349C94 3C 60 80 3D */ lis r3, lit_24@ha /* 0x803D1574@ha */
|
||||
/* 80349C98 4C C6 31 82 */ crclr 6
|
||||
/* 80349C9C 38 A3 15 74 */ addi r5, r3, lit_24@l /* 0x803D1574@l */
|
||||
/* 80349CA0 38 6D 84 74 */ la r3, lit_23(r13) /* 804509F4-_SDA_BASE_ */
|
||||
/* 80349CA4 38 80 02 95 */ li r4, 0x295
|
||||
/* 80349CA8 4B CB D1 D5 */ bl OSPanic
|
||||
lbl_80349CAC:
|
||||
/* 80349CAC 3C 60 80 45 */ lis r3, BB2@ha /* 0x8044C900@ha */
|
||||
/* 80349CB0 80 DF 00 00 */ lwz r6, 0(r31)
|
||||
/* 80349CB4 38 A3 C9 00 */ addi r5, r3, BB2@l /* 0x8044C900@l */
|
||||
/* 80349CB8 80 ED 92 00 */ lwz r7, bootInfo(r13)
|
||||
/* 80349CBC 3C 80 80 35 */ lis r4, cbForStateReadingFST@ha /* 0x8034925C@ha */
|
||||
/* 80349CC0 80 A5 00 04 */ lwz r5, 4(r5)
|
||||
/* 80349CC4 38 06 00 1F */ addi r0, r6, 0x1f
|
||||
/* 80349CC8 80 67 00 38 */ lwz r3, 0x38(r7)
|
||||
/* 80349CCC 38 C4 92 5C */ addi r6, r4, cbForStateReadingFST@l /* 0x8034925C@l */
|
||||
/* 80349CD0 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a
|
||||
/* 80349CD4 4B FF DF 45 */ bl DVDLowRead
|
||||
/* 80349CD8 48 00 00 10 */ b lbl_80349CE8
|
||||
lbl_80349CDC:
|
||||
/* 80349CDC 3C 60 80 35 */ lis r3, cbForStateGettingError@ha /* 0x80349498@ha */
|
||||
/* 80349CE0 38 63 94 98 */ addi r3, r3, cbForStateGettingError@l /* 0x80349498@l */
|
||||
/* 80349CE4 4B FF E3 BD */ bl DVDLowRequestError
|
||||
lbl_80349CE8:
|
||||
/* 80349CE8 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 80349CEC 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 80349CF0 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 80349CF4 7C 08 03 A6 */ mtlr r0
|
||||
/* 80349CF8 4E 80 00 20 */ blr
|
||||
@@ -1,39 +0,0 @@
|
||||
lbl_803491C8:
|
||||
/* 803491C8 7C 08 02 A6 */ mflr r0
|
||||
/* 803491CC 3C 60 80 35 */ lis r3, stateReadingFST@ha /* 0x803491C8@ha */
|
||||
/* 803491D0 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 803491D4 38 03 91 C8 */ addi r0, r3, stateReadingFST@l /* 0x803491C8@l */
|
||||
/* 803491D8 3C 60 80 45 */ lis r3, BB2@ha /* 0x8044C900@ha */
|
||||
/* 803491DC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 803491E0 38 63 C9 00 */ addi r3, r3, BB2@l /* 0x8044C900@l */
|
||||
/* 803491E4 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 803491E8 3B E3 00 08 */ addi r31, r3, 8
|
||||
/* 803491EC 90 0D 92 40 */ stw r0, LastState(r13)
|
||||
/* 803491F0 80 8D 92 00 */ lwz r4, bootInfo(r13)
|
||||
/* 803491F4 80 1F 00 00 */ lwz r0, 0(r31)
|
||||
/* 803491F8 80 64 00 3C */ lwz r3, 0x3c(r4)
|
||||
/* 803491FC 7C 03 00 40 */ cmplw r3, r0
|
||||
/* 80349200 40 80 00 1C */ bge lbl_8034921C
|
||||
/* 80349204 3C 60 80 3D */ lis r3, lit_24@ha /* 0x803D1574@ha */
|
||||
/* 80349208 4C C6 31 82 */ crclr 6
|
||||
/* 8034920C 38 A3 15 74 */ addi r5, r3, lit_24@l /* 0x803D1574@l */
|
||||
/* 80349210 38 6D 84 74 */ la r3, lit_23(r13) /* 804509F4-_SDA_BASE_ */
|
||||
/* 80349214 38 80 02 95 */ li r4, 0x295
|
||||
/* 80349218 4B CB DC 65 */ bl OSPanic
|
||||
lbl_8034921C:
|
||||
/* 8034921C 3C 60 80 45 */ lis r3, BB2@ha /* 0x8044C900@ha */
|
||||
/* 80349220 80 DF 00 00 */ lwz r6, 0(r31)
|
||||
/* 80349224 38 A3 C9 00 */ addi r5, r3, BB2@l /* 0x8044C900@l */
|
||||
/* 80349228 80 ED 92 00 */ lwz r7, bootInfo(r13)
|
||||
/* 8034922C 3C 80 80 35 */ lis r4, cbForStateReadingFST@ha /* 0x8034925C@ha */
|
||||
/* 80349230 80 A5 00 04 */ lwz r5, 4(r5)
|
||||
/* 80349234 38 06 00 1F */ addi r0, r6, 0x1f
|
||||
/* 80349238 80 67 00 38 */ lwz r3, 0x38(r7)
|
||||
/* 8034923C 38 C4 92 5C */ addi r6, r4, cbForStateReadingFST@l /* 0x8034925C@l */
|
||||
/* 80349240 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a
|
||||
/* 80349244 4B FF E9 D5 */ bl DVDLowRead
|
||||
/* 80349248 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8034924C 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 80349250 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80349254 7C 08 03 A6 */ mtlr r0
|
||||
/* 80349258 4E 80 00 20 */ blr
|
||||
@@ -1,209 +0,0 @@
|
||||
lbl_8034A0AC:
|
||||
/* 8034A0AC 7C 08 02 A6 */ mflr r0
|
||||
/* 8034A0B0 3C 60 80 45 */ lis r3, BB2@ha /* 0x8044C900@ha */
|
||||
/* 8034A0B4 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034A0B8 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8034A0BC 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 8034A0C0 3B E3 C9 00 */ addi r31, r3, BB2@l /* 0x8044C900@l */
|
||||
/* 8034A0C4 48 00 18 F1 */ bl __DVDCheckWaitingQueue
|
||||
/* 8034A0C8 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 8034A0CC 40 82 00 10 */ bne lbl_8034A0DC
|
||||
/* 8034A0D0 38 00 00 00 */ li r0, 0
|
||||
/* 8034A0D4 90 0D 91 F8 */ stw r0, executing(r13)
|
||||
/* 8034A0D8 48 00 02 A8 */ b lbl_8034A380
|
||||
lbl_8034A0DC:
|
||||
/* 8034A0DC 80 0D 92 04 */ lwz r0, PauseFlag(r13)
|
||||
/* 8034A0E0 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034A0E4 41 82 00 18 */ beq lbl_8034A0FC
|
||||
/* 8034A0E8 38 60 00 01 */ li r3, 1
|
||||
/* 8034A0EC 38 00 00 00 */ li r0, 0
|
||||
/* 8034A0F0 90 6D 92 08 */ stw r3, PausingFlag(r13)
|
||||
/* 8034A0F4 90 0D 91 F8 */ stw r0, executing(r13)
|
||||
/* 8034A0F8 48 00 02 88 */ b lbl_8034A380
|
||||
lbl_8034A0FC:
|
||||
/* 8034A0FC 48 00 18 19 */ bl __DVDPopWaitingQueue
|
||||
/* 8034A100 80 0D 92 10 */ lwz r0, FatalErrorFlag(r13)
|
||||
/* 8034A104 90 6D 91 F8 */ stw r3, executing(r13)
|
||||
/* 8034A108 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034A10C 41 82 00 3C */ beq lbl_8034A148
|
||||
/* 8034A110 80 6D 91 F8 */ lwz r3, executing(r13)
|
||||
/* 8034A114 38 80 FF FF */ li r4, -1
|
||||
/* 8034A118 38 1F 00 40 */ addi r0, r31, 0x40
|
||||
/* 8034A11C 90 83 00 0C */ stw r4, 0xc(r3)
|
||||
/* 8034A120 80 8D 91 F8 */ lwz r4, executing(r13)
|
||||
/* 8034A124 90 0D 91 F8 */ stw r0, executing(r13)
|
||||
/* 8034A128 81 84 00 28 */ lwz r12, 0x28(r4)
|
||||
/* 8034A12C 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034A130 41 82 00 10 */ beq lbl_8034A140
|
||||
/* 8034A134 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034A138 38 60 FF FF */ li r3, -1
|
||||
/* 8034A13C 4E 80 00 21 */ blrl
|
||||
lbl_8034A140:
|
||||
/* 8034A140 4B FF FF 6D */ bl stateReady
|
||||
/* 8034A144 48 00 02 3C */ b lbl_8034A380
|
||||
lbl_8034A148:
|
||||
/* 8034A148 80 8D 91 F8 */ lwz r4, executing(r13)
|
||||
/* 8034A14C 80 04 00 08 */ lwz r0, 8(r4)
|
||||
/* 8034A150 90 0D 92 14 */ stw r0, CurrCommand(r13)
|
||||
/* 8034A154 80 0D 92 20 */ lwz r0, ResumeFromHere(r13)
|
||||
/* 8034A158 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034A15C 41 82 01 5C */ beq lbl_8034A2B8
|
||||
/* 8034A160 80 0D 92 20 */ lwz r0, ResumeFromHere(r13)
|
||||
/* 8034A164 2C 00 00 04 */ cmpwi r0, 4
|
||||
/* 8034A168 41 82 00 64 */ beq lbl_8034A1CC
|
||||
/* 8034A16C 40 80 00 1C */ bge lbl_8034A188
|
||||
/* 8034A170 2C 00 00 02 */ cmpwi r0, 2
|
||||
/* 8034A174 41 82 00 28 */ beq lbl_8034A19C
|
||||
/* 8034A178 40 80 00 3C */ bge lbl_8034A1B4
|
||||
/* 8034A17C 2C 00 00 01 */ cmpwi r0, 1
|
||||
/* 8034A180 40 80 00 64 */ bge lbl_8034A1E4
|
||||
/* 8034A184 48 00 01 28 */ b lbl_8034A2AC
|
||||
lbl_8034A188:
|
||||
/* 8034A188 2C 00 00 08 */ cmpwi r0, 8
|
||||
/* 8034A18C 40 80 01 20 */ bge lbl_8034A2AC
|
||||
/* 8034A190 2C 00 00 06 */ cmpwi r0, 6
|
||||
/* 8034A194 40 80 00 50 */ bge lbl_8034A1E4
|
||||
/* 8034A198 48 00 01 00 */ b lbl_8034A298
|
||||
lbl_8034A19C:
|
||||
/* 8034A19C 38 00 00 0B */ li r0, 0xb
|
||||
/* 8034A1A0 3C 60 80 35 */ lis r3, cbForStateMotorStopped@ha /* 0x80349FC0@ha */
|
||||
/* 8034A1A4 90 04 00 0C */ stw r0, 0xc(r4)
|
||||
/* 8034A1A8 38 63 9F C0 */ addi r3, r3, cbForStateMotorStopped@l /* 0x80349FC0@l */
|
||||
/* 8034A1AC 4B FF DD 99 */ bl DVDLowWaitCoverClose
|
||||
/* 8034A1B0 48 00 00 FC */ b lbl_8034A2AC
|
||||
lbl_8034A1B4:
|
||||
/* 8034A1B4 38 00 00 04 */ li r0, 4
|
||||
/* 8034A1B8 3C 60 80 35 */ lis r3, cbForStateMotorStopped@ha /* 0x80349FC0@ha */
|
||||
/* 8034A1BC 90 04 00 0C */ stw r0, 0xc(r4)
|
||||
/* 8034A1C0 38 63 9F C0 */ addi r3, r3, cbForStateMotorStopped@l /* 0x80349FC0@l */
|
||||
/* 8034A1C4 4B FF DD 81 */ bl DVDLowWaitCoverClose
|
||||
/* 8034A1C8 48 00 00 E4 */ b lbl_8034A2AC
|
||||
lbl_8034A1CC:
|
||||
/* 8034A1CC 38 00 00 05 */ li r0, 5
|
||||
/* 8034A1D0 3C 60 80 35 */ lis r3, cbForStateMotorStopped@ha /* 0x80349FC0@ha */
|
||||
/* 8034A1D4 90 04 00 0C */ stw r0, 0xc(r4)
|
||||
/* 8034A1D8 38 63 9F C0 */ addi r3, r3, cbForStateMotorStopped@l /* 0x80349FC0@l */
|
||||
/* 8034A1DC 4B FF DD 69 */ bl DVDLowWaitCoverClose
|
||||
/* 8034A1E0 48 00 00 CC */ b lbl_8034A2AC
|
||||
lbl_8034A1E4:
|
||||
/* 8034A1E4 38 00 00 03 */ li r0, 3
|
||||
/* 8034A1E8 90 04 00 0C */ stw r0, 0xc(r4)
|
||||
/* 8034A1EC 80 0D 92 14 */ lwz r0, CurrCommand(r13)
|
||||
/* 8034A1F0 2C 00 00 0D */ cmpwi r0, 0xd
|
||||
/* 8034A1F4 41 82 00 28 */ beq lbl_8034A21C
|
||||
/* 8034A1F8 40 80 00 18 */ bge lbl_8034A210
|
||||
/* 8034A1FC 2C 00 00 06 */ cmpwi r0, 6
|
||||
/* 8034A200 40 80 00 4C */ bge lbl_8034A24C
|
||||
/* 8034A204 2C 00 00 04 */ cmpwi r0, 4
|
||||
/* 8034A208 40 80 00 14 */ bge lbl_8034A21C
|
||||
/* 8034A20C 48 00 00 40 */ b lbl_8034A24C
|
||||
lbl_8034A210:
|
||||
/* 8034A210 2C 00 00 0F */ cmpwi r0, 0xf
|
||||
/* 8034A214 41 82 00 08 */ beq lbl_8034A21C
|
||||
/* 8034A218 48 00 00 34 */ b lbl_8034A24C
|
||||
lbl_8034A21C:
|
||||
/* 8034A21C 48 00 16 59 */ bl __DVDClearWaitingQueue
|
||||
/* 8034A220 80 8D 91 F8 */ lwz r4, executing(r13)
|
||||
/* 8034A224 38 1F 00 40 */ addi r0, r31, 0x40
|
||||
/* 8034A228 90 0D 91 F8 */ stw r0, executing(r13)
|
||||
/* 8034A22C 81 84 00 28 */ lwz r12, 0x28(r4)
|
||||
/* 8034A230 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034A234 41 82 00 10 */ beq lbl_8034A244
|
||||
/* 8034A238 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034A23C 38 60 FF FC */ li r3, -4
|
||||
/* 8034A240 4E 80 00 21 */ blrl
|
||||
lbl_8034A244:
|
||||
/* 8034A244 4B FF FE 69 */ bl stateReady
|
||||
/* 8034A248 48 00 00 64 */ b lbl_8034A2AC
|
||||
lbl_8034A24C:
|
||||
/* 8034A24C 38 00 00 00 */ li r0, 0
|
||||
/* 8034A250 90 0D 92 38 */ stw r0, MotorState(r13)
|
||||
/* 8034A254 48 00 0E E5 */ bl DVDReset
|
||||
/* 8034A258 38 7F 00 70 */ addi r3, r31, 0x70
|
||||
/* 8034A25C 4B FF 06 9D */ bl OSCreateAlarm
|
||||
/* 8034A260 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
|
||||
/* 8034A264 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
|
||||
/* 8034A268 3C 80 10 62 */ lis r4, 0x1062 /* 0x10624DD3@ha */
|
||||
/* 8034A26C 3C 60 80 35 */ lis r3, AlarmHandler@ha /* 0x80349DEC@ha */
|
||||
/* 8034A270 54 00 F0 BE */ srwi r0, r0, 2
|
||||
/* 8034A274 38 84 4D D3 */ addi r4, r4, 0x4DD3 /* 0x10624DD3@l */
|
||||
/* 8034A278 7C 04 00 16 */ mulhwu r0, r4, r0
|
||||
/* 8034A27C 54 00 D1 BE */ srwi r0, r0, 6
|
||||
/* 8034A280 1C C0 04 7E */ mulli r6, r0, 0x47e
|
||||
/* 8034A284 38 E3 9D EC */ addi r7, r3, AlarmHandler@l /* 0x80349DEC@l */
|
||||
/* 8034A288 38 7F 00 70 */ addi r3, r31, 0x70
|
||||
/* 8034A28C 38 A0 00 00 */ li r5, 0
|
||||
/* 8034A290 4B FF 08 C9 */ bl OSSetAlarm
|
||||
/* 8034A294 48 00 00 18 */ b lbl_8034A2AC
|
||||
lbl_8034A298:
|
||||
/* 8034A298 80 6D 92 24 */ lwz r3, CancelLastError(r13)
|
||||
/* 8034A29C 48 00 18 ED */ bl __DVDStoreErrorCode
|
||||
/* 8034A2A0 3C 60 80 35 */ lis r3, cbForStateError@ha /* 0x803492DC@ha */
|
||||
/* 8034A2A4 38 63 92 DC */ addi r3, r3, cbForStateError@l /* 0x803492DC@l */
|
||||
/* 8034A2A8 4B FF DD 6D */ bl DVDLowStopMotor
|
||||
lbl_8034A2AC:
|
||||
/* 8034A2AC 38 00 00 00 */ li r0, 0
|
||||
/* 8034A2B0 90 0D 92 20 */ stw r0, ResumeFromHere(r13)
|
||||
/* 8034A2B4 48 00 00 CC */ b lbl_8034A380
|
||||
lbl_8034A2B8:
|
||||
/* 8034A2B8 80 0D 92 38 */ lwz r0, MotorState(r13)
|
||||
/* 8034A2BC 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034A2C0 40 82 00 18 */ bne lbl_8034A2D8
|
||||
/* 8034A2C4 38 00 00 01 */ li r0, 1
|
||||
/* 8034A2C8 90 04 00 0C */ stw r0, 0xc(r4)
|
||||
/* 8034A2CC 80 6D 91 F8 */ lwz r3, executing(r13)
|
||||
/* 8034A2D0 48 00 00 C5 */ bl stateBusy
|
||||
/* 8034A2D4 48 00 00 AC */ b lbl_8034A380
|
||||
lbl_8034A2D8:
|
||||
/* 8034A2D8 80 0D 92 14 */ lwz r0, CurrCommand(r13)
|
||||
/* 8034A2DC 2C 00 00 0D */ cmpwi r0, 0xd
|
||||
/* 8034A2E0 41 82 00 28 */ beq lbl_8034A308
|
||||
/* 8034A2E4 40 80 00 18 */ bge lbl_8034A2FC
|
||||
/* 8034A2E8 2C 00 00 06 */ cmpwi r0, 6
|
||||
/* 8034A2EC 40 80 00 4C */ bge lbl_8034A338
|
||||
/* 8034A2F0 2C 00 00 04 */ cmpwi r0, 4
|
||||
/* 8034A2F4 40 80 00 14 */ bge lbl_8034A308
|
||||
/* 8034A2F8 48 00 00 40 */ b lbl_8034A338
|
||||
lbl_8034A2FC:
|
||||
/* 8034A2FC 2C 00 00 0F */ cmpwi r0, 0xf
|
||||
/* 8034A300 41 82 00 08 */ beq lbl_8034A308
|
||||
/* 8034A304 48 00 00 34 */ b lbl_8034A338
|
||||
lbl_8034A308:
|
||||
/* 8034A308 48 00 15 6D */ bl __DVDClearWaitingQueue
|
||||
/* 8034A30C 80 8D 91 F8 */ lwz r4, executing(r13)
|
||||
/* 8034A310 38 1F 00 40 */ addi r0, r31, 0x40
|
||||
/* 8034A314 90 0D 91 F8 */ stw r0, executing(r13)
|
||||
/* 8034A318 81 84 00 28 */ lwz r12, 0x28(r4)
|
||||
/* 8034A31C 28 0C 00 00 */ cmplwi r12, 0
|
||||
/* 8034A320 41 82 00 10 */ beq lbl_8034A330
|
||||
/* 8034A324 7D 88 03 A6 */ mtlr r12
|
||||
/* 8034A328 38 60 FF FC */ li r3, -4
|
||||
/* 8034A32C 4E 80 00 21 */ blrl
|
||||
lbl_8034A330:
|
||||
/* 8034A330 4B FF FD 7D */ bl stateReady
|
||||
/* 8034A334 48 00 00 4C */ b lbl_8034A380
|
||||
lbl_8034A338:
|
||||
/* 8034A338 38 00 00 00 */ li r0, 0
|
||||
/* 8034A33C 90 0D 92 38 */ stw r0, MotorState(r13)
|
||||
/* 8034A340 48 00 0D F9 */ bl DVDReset
|
||||
/* 8034A344 38 7F 00 70 */ addi r3, r31, 0x70
|
||||
/* 8034A348 4B FF 05 B1 */ bl OSCreateAlarm
|
||||
/* 8034A34C 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */
|
||||
/* 8034A350 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */
|
||||
/* 8034A354 3C 80 10 62 */ lis r4, 0x1062 /* 0x10624DD3@ha */
|
||||
/* 8034A358 3C 60 80 35 */ lis r3, AlarmHandler@ha /* 0x80349DEC@ha */
|
||||
/* 8034A35C 54 00 F0 BE */ srwi r0, r0, 2
|
||||
/* 8034A360 38 84 4D D3 */ addi r4, r4, 0x4DD3 /* 0x10624DD3@l */
|
||||
/* 8034A364 7C 04 00 16 */ mulhwu r0, r4, r0
|
||||
/* 8034A368 54 00 D1 BE */ srwi r0, r0, 6
|
||||
/* 8034A36C 1C C0 04 7E */ mulli r6, r0, 0x47e
|
||||
/* 8034A370 38 E3 9D EC */ addi r7, r3, AlarmHandler@l /* 0x80349DEC@l */
|
||||
/* 8034A374 38 7F 00 70 */ addi r3, r31, 0x70
|
||||
/* 8034A378 38 A0 00 00 */ li r5, 0
|
||||
/* 8034A37C 4B FF 07 DD */ bl OSSetAlarm
|
||||
lbl_8034A380:
|
||||
/* 8034A380 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8034A384 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 8034A388 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8034A38C 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034A390 4E 80 00 20 */ blr
|
||||
@@ -1,8 +0,0 @@
|
||||
lbl_80348458:
|
||||
/* 80348458 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC006004@ha */
|
||||
/* 8034845C 38 00 00 00 */ li r0, 0
|
||||
/* 80348460 90 03 60 04 */ stw r0, 0x6004(r3) /* 0xCC006004@l */
|
||||
/* 80348464 80 6D 91 98 */ lwz r3, Callback(r13)
|
||||
/* 80348468 90 0D 91 AC */ stw r0, WaitingCoverClose(r13)
|
||||
/* 8034846C 90 0D 91 98 */ stw r0, Callback(r13)
|
||||
/* 80348470 4E 80 00 20 */ blr
|
||||
@@ -1,83 +0,0 @@
|
||||
lbl_8034E9EC:
|
||||
/* 8034E9EC 7C 08 02 A6 */ mflr r0
|
||||
/* 8034E9F0 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034E9F4 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 8034E9F8 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 8034E9FC 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 8034EA00 3C 60 80 00 */ lis r3, 0x8000
|
||||
/* 8034EA04 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 8034EA08 93 A1 00 14 */ stw r29, 0x14(r1)
|
||||
/* 8034EA0C 7C 7D FC 30 */ srw r29, r3, r31
|
||||
/* 8034EA10 80 0D 92 CC */ lwz r0, EnabledBits(r13)
|
||||
/* 8034EA14 7C 00 E8 39 */ and. r0, r0, r29
|
||||
/* 8034EA18 41 82 00 F8 */ beq lbl_8034EB10
|
||||
/* 8034EA1C 80 AD 92 D8 */ lwz r5, WaitingBits(r13)
|
||||
/* 8034EA20 7F A6 E8 F8 */ nor r6, r29, r29
|
||||
/* 8034EA24 80 6D 92 DC */ lwz r3, CheckingBits(r13)
|
||||
/* 8034EA28 54 80 07 3F */ clrlwi. r0, r4, 0x1c
|
||||
/* 8034EA2C 7C A5 30 38 */ and r5, r5, r6
|
||||
/* 8034EA30 7C 63 30 38 */ and r3, r3, r6
|
||||
/* 8034EA34 90 AD 92 D8 */ stw r5, WaitingBits(r13)
|
||||
/* 8034EA38 90 6D 92 DC */ stw r3, CheckingBits(r13)
|
||||
/* 8034EA3C 54 83 00 2E */ rlwinm r3, r4, 0, 0, 0x17
|
||||
/* 8034EA40 40 82 00 6C */ bne lbl_8034EAAC
|
||||
/* 8034EA44 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0
|
||||
/* 8034EA48 41 82 00 64 */ beq lbl_8034EAAC
|
||||
/* 8034EA4C 54 60 02 D7 */ rlwinm. r0, r3, 0, 0xb, 0xb
|
||||
/* 8034EA50 41 82 00 5C */ beq lbl_8034EAAC
|
||||
/* 8034EA54 54 60 00 43 */ rlwinm. r0, r3, 0, 1, 1
|
||||
/* 8034EA58 41 82 00 54 */ beq lbl_8034EAAC
|
||||
/* 8034EA5C 54 60 01 4B */ rlwinm. r0, r3, 0, 5, 5
|
||||
/* 8034EA60 40 82 00 4C */ bne lbl_8034EAAC
|
||||
/* 8034EA64 54 60 03 19 */ rlwinm. r0, r3, 0, 0xc, 0xc
|
||||
/* 8034EA68 40 82 00 44 */ bne lbl_8034EAAC
|
||||
/* 8034EA6C 54 60 03 5B */ rlwinm. r0, r3, 0, 0xd, 0xd
|
||||
/* 8034EA70 40 82 00 3C */ bne lbl_8034EAAC
|
||||
/* 8034EA74 1C 9F 00 0C */ mulli r4, r31, 0xc
|
||||
/* 8034EA78 3C 60 80 45 */ lis r3, Origin@ha /* 0x8044CB80@ha */
|
||||
/* 8034EA7C 38 03 CB 80 */ addi r0, r3, Origin@l /* 0x8044CB80@l */
|
||||
/* 8034EA80 3C 60 80 35 */ lis r3, PADOriginUpdateCallback@ha /* 0x8034E51C@ha */
|
||||
/* 8034EA84 7C C0 22 14 */ add r6, r0, r4
|
||||
/* 8034EA88 39 03 E5 1C */ addi r8, r3, PADOriginUpdateCallback@l /* 0x8034E51C@l */
|
||||
/* 8034EA8C 38 7F 00 00 */ addi r3, r31, 0
|
||||
/* 8034EA90 38 8D 84 B8 */ la r4, CmdReadOrigin(r13) /* 80450A38-_SDA_BASE_ */
|
||||
/* 8034EA94 38 A0 00 01 */ li r5, 1
|
||||
/* 8034EA98 38 E0 00 0A */ li r7, 0xa
|
||||
/* 8034EA9C 39 40 00 00 */ li r10, 0
|
||||
/* 8034EAA0 39 20 00 00 */ li r9, 0
|
||||
/* 8034EAA4 4B FF 70 E9 */ bl SITransfer
|
||||
/* 8034EAA8 48 00 00 68 */ b lbl_8034EB10
|
||||
lbl_8034EAAC:
|
||||
/* 8034EAAC 4B FE EC 49 */ bl OSDisableInterrupts
|
||||
/* 8034EAB0 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 8034EAB4 38 7D 00 00 */ addi r3, r29, 0
|
||||
/* 8034EAB8 4B FF 6E 45 */ bl SIDisablePolling
|
||||
/* 8034EABC 80 0D 92 CC */ lwz r0, EnabledBits(r13)
|
||||
/* 8034EAC0 7F A9 E8 F8 */ nor r9, r29, r29
|
||||
/* 8034EAC4 80 CD 92 D8 */ lwz r6, WaitingBits(r13)
|
||||
/* 8034EAC8 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034EACC 80 AD 92 DC */ lwz r5, CheckingBits(r13)
|
||||
/* 8034EAD0 80 8D 92 E0 */ lwz r4, PendingBits(r13)
|
||||
/* 8034EAD4 7C 08 48 38 */ and r8, r0, r9
|
||||
/* 8034EAD8 80 0D 92 E4 */ lwz r0, BarrelBits(r13)
|
||||
/* 8034EADC 7C C7 48 38 */ and r7, r6, r9
|
||||
/* 8034EAE0 7C A6 48 38 */ and r6, r5, r9
|
||||
/* 8034EAE4 7C 85 48 38 */ and r5, r4, r9
|
||||
/* 8034EAE8 91 0D 92 CC */ stw r8, EnabledBits(r13)
|
||||
/* 8034EAEC 7C 00 48 38 */ and r0, r0, r9
|
||||
/* 8034EAF0 90 ED 92 D8 */ stw r7, WaitingBits(r13)
|
||||
/* 8034EAF4 38 80 00 00 */ li r4, 0
|
||||
/* 8034EAF8 90 CD 92 DC */ stw r6, CheckingBits(r13)
|
||||
/* 8034EAFC 90 AD 92 E0 */ stw r5, PendingBits(r13)
|
||||
/* 8034EB00 90 0D 92 E4 */ stw r0, BarrelBits(r13)
|
||||
/* 8034EB04 4B FF 1D 49 */ bl OSSetWirelessID
|
||||
/* 8034EB08 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8034EB0C 4B FE EC 11 */ bl OSRestoreInterrupts
|
||||
lbl_8034EB10:
|
||||
/* 8034EB10 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 8034EB14 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 8034EB18 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 8034EB1C 83 A1 00 14 */ lwz r29, 0x14(r1)
|
||||
/* 8034EB20 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 8034EB24 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034EB28 4E 80 00 20 */ blr
|
||||
@@ -1,24 +0,0 @@
|
||||
lbl_8034FBA0:
|
||||
/* 8034FBA0 7C 08 02 A6 */ mflr r0
|
||||
/* 8034FBA4 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 8034FBA8 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034FBAC 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 8034FBB0 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 8034FBB4 83 ED 92 E8 */ lwz r31, SamplingCallback(r13)
|
||||
/* 8034FBB8 90 6D 92 E8 */ stw r3, SamplingCallback(r13)
|
||||
/* 8034FBBC 41 82 00 14 */ beq lbl_8034FBD0
|
||||
/* 8034FBC0 3C 60 80 35 */ lis r3, SamplingHandler@ha /* 0x8034FB40@ha */
|
||||
/* 8034FBC4 38 63 FB 40 */ addi r3, r3, SamplingHandler@l /* 0x8034FB40@l */
|
||||
/* 8034FBC8 4B FF 57 0D */ bl SIRegisterPollingHandler
|
||||
/* 8034FBCC 48 00 00 10 */ b lbl_8034FBDC
|
||||
lbl_8034FBD0:
|
||||
/* 8034FBD0 3C 60 80 35 */ lis r3, SamplingHandler@ha /* 0x8034FB40@ha */
|
||||
/* 8034FBD4 38 63 FB 40 */ addi r3, r3, SamplingHandler@l /* 0x8034FB40@l */
|
||||
/* 8034FBD8 4B FF 57 C9 */ bl SIUnregisterPollingHandler
|
||||
lbl_8034FBDC:
|
||||
/* 8034FBDC 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034FBE0 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 8034FBE4 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 8034FBE8 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 8034FBEC 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034FBF0 4E 80 00 20 */ blr
|
||||
@@ -1,35 +0,0 @@
|
||||
lbl_8034FBF4:
|
||||
/* 8034FBF4 7C 08 02 A6 */ mflr r0
|
||||
/* 8034FBF8 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034FBFC 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 8034FC00 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 8034FC04 93 C1 00 10 */ stw r30, 0x10(r1)
|
||||
/* 8034FC08 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8034FC0C 4B FE DA E9 */ bl OSDisableInterrupts
|
||||
/* 8034FC10 3C 80 80 00 */ lis r4, 0x8000 /* 0x800030E3@ha */
|
||||
/* 8034FC14 88 04 30 E3 */ lbz r0, 0x30E3(r4) /* 0x800030E3@l */
|
||||
/* 8034FC18 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19
|
||||
/* 8034FC1C 41 82 00 0C */ beq lbl_8034FC28
|
||||
/* 8034FC20 3B E0 00 01 */ li r31, 1
|
||||
/* 8034FC24 48 00 00 08 */ b lbl_8034FC2C
|
||||
lbl_8034FC28:
|
||||
/* 8034FC28 3B E0 00 00 */ li r31, 0
|
||||
lbl_8034FC2C:
|
||||
/* 8034FC2C 3C 80 80 00 */ lis r4, 0x8000 /* 0x800030E3@ha */
|
||||
/* 8034FC30 88 04 30 E3 */ lbz r0, 0x30E3(r4) /* 0x800030E3@l */
|
||||
/* 8034FC34 2C 1E 00 00 */ cmpwi r30, 0
|
||||
/* 8034FC38 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18
|
||||
/* 8034FC3C 98 04 30 E3 */ stb r0, 0x30e3(r4)
|
||||
/* 8034FC40 41 82 00 10 */ beq lbl_8034FC50
|
||||
/* 8034FC44 88 04 30 E3 */ lbz r0, 0x30e3(r4)
|
||||
/* 8034FC48 60 00 00 40 */ ori r0, r0, 0x40
|
||||
/* 8034FC4C 98 04 30 E3 */ stb r0, 0x30e3(r4)
|
||||
lbl_8034FC50:
|
||||
/* 8034FC50 4B FE DA CD */ bl OSRestoreInterrupts
|
||||
/* 8034FC54 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034FC58 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 8034FC5C 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 8034FC60 83 C1 00 10 */ lwz r30, 0x10(r1)
|
||||
/* 8034FC64 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 8034FC68 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034FC6C 4E 80 00 20 */ blr
|
||||
@@ -334,7 +334,7 @@ parser.add_argument(
|
||||
"--select-occurence",
|
||||
dest="select_occurence",
|
||||
type=int,
|
||||
default=0,
|
||||
default=None,
|
||||
help="If multiple occurence of the same symbol is found, use this to select the correct ocurrance."
|
||||
)
|
||||
parser.add_argument(
|
||||
@@ -426,6 +426,7 @@ class Config:
|
||||
source_old_binutils: bool
|
||||
diff_section: str
|
||||
inlines: bool
|
||||
select_occurence: Optional[int]
|
||||
max_function_size_lines: int
|
||||
max_function_size_bytes: int
|
||||
|
||||
@@ -515,6 +516,7 @@ def create_config(args: argparse.Namespace, project: ProjectSettings) -> Config:
|
||||
source_old_binutils=args.source_old_binutils,
|
||||
diff_section=args.diff_section,
|
||||
inlines=args.inlines,
|
||||
select_occurence=args.select_occurence,
|
||||
max_function_size_lines=args.max_lines,
|
||||
max_function_size_bytes=args.max_lines * 4,
|
||||
# Display options
|
||||
@@ -1155,7 +1157,12 @@ def search_map_file(
|
||||
fail(f"Internal error while parsing map file")
|
||||
|
||||
if len(cands) > 1:
|
||||
fail(f"Found multiple occurrences of function {fn_name} in map file.")
|
||||
if config.select_occurence is None :
|
||||
fail(f"Found {len(cands)} occurrences of function {fn_name} in map file.")
|
||||
elif config.select_occurence >= len(cands):
|
||||
fail(f"Could not choose index {config.select_occurence} of {fn_name} in map file out of {len(cands)}.")
|
||||
else:
|
||||
return cands[config.select_occurence]
|
||||
if len(cands) == 1:
|
||||
return cands[0]
|
||||
elif project.map_format == "mw":
|
||||
@@ -1171,7 +1178,12 @@ def search_map_file(
|
||||
contents,
|
||||
)
|
||||
if len(find) > 1:
|
||||
fail(f"Found multiple occurrences of function {fn_name} in map file.")
|
||||
if config.select_occurence is None:
|
||||
fail(f"Found {len(find)} occurrences of function {fn_name} in map file.")
|
||||
elif config.select_occurence >= len(find):
|
||||
fail(f"Could not choose index {config.select_occurence} of {fn_name} in map file out of {len(find)}.")
|
||||
else:
|
||||
find = [find[config.select_occurence]]
|
||||
if len(find) == 1:
|
||||
rom = int(find[0][1], 16)
|
||||
objname = find[0][2]
|
||||
@@ -1209,7 +1221,11 @@ def search_map_file(
|
||||
contents,
|
||||
)
|
||||
if len(find) > 1:
|
||||
fail(f"Found multiple occurrences of function {fn_name} in map file.")
|
||||
fail(f"Found {len(find)} occurrences of function {fn_name} in map file.")
|
||||
elif config.select_occurence >= len(find):
|
||||
fail(f"Could not choose index {config.select_occurence} of {fn_name} in map file out of {len(find)}.")
|
||||
else:
|
||||
find = [find[config.select_occurence]]
|
||||
if len(find) == 1:
|
||||
names_find = re.search(r"(\S+) ... (\S+)", find[0])
|
||||
assert names_find is not None
|
||||
|
||||
@@ -7,8 +7,20 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ARQ_CHUNK_SIZE_DEFAULT 4096
|
||||
|
||||
typedef void (*ARQCallback)(u32 request_address);
|
||||
|
||||
typedef enum _ARamType {
|
||||
ARAM_DIR_MRAM_TO_ARAM,
|
||||
ARAM_DIR_ARAM_TO_MRAM,
|
||||
} ARamType;
|
||||
|
||||
typedef enum _ArqPriotity {
|
||||
ARQ_PRIORITY_LOW,
|
||||
ARQ_PRIORITY_HIGH,
|
||||
} ArqPriotity;
|
||||
|
||||
typedef struct ARQRequest {
|
||||
struct ARQRequest* next;
|
||||
u32 owner;
|
||||
|
||||
@@ -117,7 +117,7 @@ void __CARDTxHandler(s32 chan, OSContext* context);
|
||||
void __CARDUnlockedHandler(s32 chan, OSContext* context);
|
||||
s32 __CARDEnableInterrupt(s32 chan, BOOL enable);
|
||||
s32 __CARDReadStatus(s32 chan, u8* status);
|
||||
void __CARDReadVendorID();
|
||||
s32 __CARDReadVendorID(s32 chan, u16* vendorId);
|
||||
s32 __CARDClearStatus(s32 chan);
|
||||
s32 __CARDStart(s32 chan, CARDCallback txCallback, CARDCallback exiCallback);
|
||||
s32 __CARDReadSegment(s32 chan, CARDCallback callback);
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
vu32 __DIRegs[16] : 0xCC006000;
|
||||
|
||||
typedef enum DVDState {
|
||||
DVD_STATE_END = 0x0,
|
||||
DVD_STATE_BUSY = 0x1,
|
||||
@@ -50,7 +48,6 @@ struct DVDFileInfo;
|
||||
struct DVDCommandBlock;
|
||||
typedef void (*DVDCBCallback)(s32 result, struct DVDCommandBlock* block);
|
||||
typedef void (*DVDCallback)(s32 result, struct DVDFileInfo* info);
|
||||
typedef void (*DVDLowCallback)(u32 intType);
|
||||
|
||||
typedef struct DVDCommandBlock {
|
||||
/* 0x00 */ struct DVDCommandBlock* next;
|
||||
|
||||
@@ -3,4 +3,7 @@
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
typedef void (*DVDLowCallback)(u32 intType);
|
||||
vu32 __DIRegs[16] : 0xCC006000;
|
||||
|
||||
#endif /* DVDLOW_H */
|
||||
|
||||
@@ -131,7 +131,7 @@ void __OSEVEnd();
|
||||
static void OSDefaultExceptionHandler(__OSException exception, OSContext* context);
|
||||
void __OSPSInit(void);
|
||||
u32 __OSGetDIConfig(void);
|
||||
void OSRegisterVersion(char* version);
|
||||
void OSRegisterVersion(const char* version);
|
||||
void OSSwitchFiberEx(u32, u32, u32, u32, u32, u32);
|
||||
|
||||
inline s16 __OSf32tos16(register f32 inF) {
|
||||
|
||||
@@ -14,6 +14,7 @@ LIBAI_A_CFLAGS := \
|
||||
-fp hard \
|
||||
-nodefaults \
|
||||
-str reuse \
|
||||
-inline auto \
|
||||
-RTTI off \
|
||||
-maxerrors 5 \
|
||||
-enum int $(INCLUDES) \
|
||||
@@ -35,10 +36,11 @@ $(BUILD_DIR)/libs/dolphin/ai/%.o: libs/dolphin/ai/%.c $(BUILD_DIR)/libs/dolphin/
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
|
||||
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBAI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@$(FRANK_CC) $(LIBAI_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c
|
||||
@$(DOLPHIN_LIB_CC) $(LIBAI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
|
||||
@echo Frank is fixing $@
|
||||
@$(PYTHON) $(FRANK) $@ $@ $@
|
||||
@$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@
|
||||
|
||||
ifndef DISABLE_DEPS
|
||||
LIBAI_A_D_FILES := $(LIBAI_A_O_FILES:.o=.d)
|
||||
|
||||
+35
-1
@@ -211,8 +211,41 @@ static OSTime max_wait;
|
||||
/* 804518B0-804518B4 000DB0 0004+00 2/2 0/0 0/0 .sbss buffer */
|
||||
static OSTime buffer;
|
||||
|
||||
inline void AIResetStreamSampleCount(void) { __AIRegs[0] = (__AIRegs[0] & ~0x20) | 0x20; }
|
||||
|
||||
inline void AISetStreamTrigger(u32 trigger) { __AIRegs[3] = trigger; }
|
||||
|
||||
/* 80350084-803501F0 34A9C4 016C+00 0/0 1/1 0/0 .text AIInit */
|
||||
// need compiler epilogue patch
|
||||
// time assignments are weird
|
||||
#ifdef NONMATCHING
|
||||
void AIInit(u8* stack) {
|
||||
if (__AI_init_flag == TRUE) {
|
||||
return;
|
||||
}
|
||||
|
||||
OSRegisterVersion(__AIVersion);
|
||||
bound_32KHz = OSNanosecondsToTicks(31524);
|
||||
bound_48KHz = OSNanosecondsToTicks(42024);
|
||||
min_wait = OSNanosecondsToTicks(42000);
|
||||
max_wait = OSNanosecondsToTicks(63000);
|
||||
buffer = OSNanosecondsToTicks(3000);
|
||||
|
||||
AISetStreamVolRight(0);
|
||||
AISetStreamVolLeft(0);
|
||||
AISetStreamTrigger(0);
|
||||
AIResetStreamSampleCount();
|
||||
__AI_set_stream_sample_rate(1);
|
||||
AISetDSPSampleRate(0);
|
||||
__AIS_Callback = 0;
|
||||
__AID_Callback = 0;
|
||||
__CallbackStack = stack;
|
||||
__OSSetInterruptHandler(5, __AIDHandler);
|
||||
__OSUnmaskInterrupts(0x04000000);
|
||||
__OSSetInterruptHandler(8, __AISHandler);
|
||||
__OSUnmaskInterrupts(0x800000);
|
||||
__AI_init_flag = TRUE;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -221,6 +254,7 @@ asm void AIInit(u8* stack) {
|
||||
#include "asm/dolphin/ai/ai/AIInit.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803501F0-8035026C 34AB30 007C+00 1/1 0/0 0/0 .text __AISHandler */
|
||||
void __AISHandler(s16 interrupt, OSContext* context) {
|
||||
|
||||
@@ -37,10 +37,11 @@ $(BUILD_DIR)/libs/dolphin/ar/%.o: libs/dolphin/ar/%.c $(BUILD_DIR)/libs/dolphin/
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
|
||||
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBAR_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@$(FRANK_CC) $(LIBAR_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c
|
||||
@$(DOLPHIN_LIB_CC) $(LIBAR_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
|
||||
@echo Frank is fixing $@
|
||||
@$(PYTHON) $(FRANK) $@ $@ $@
|
||||
@$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@
|
||||
|
||||
ifndef DISABLE_DEPS
|
||||
LIBAR_A_D_FILES := $(LIBAR_A_O_FILES:.o=.d)
|
||||
|
||||
+223
-58
@@ -12,7 +12,7 @@
|
||||
|
||||
void __ARHandler(s16 interrupt, OSContext* context);
|
||||
void __ARClearInterrupt();
|
||||
void __ARGetInterruptStatus();
|
||||
u16 __ARGetInterruptStatus();
|
||||
void __ARChecksize();
|
||||
|
||||
/* ############################################################################################## */
|
||||
@@ -20,8 +20,6 @@ void __ARChecksize();
|
||||
static ARCallback __AR_Callback;
|
||||
|
||||
/* 80350554-80350598 34AE94 0044+00 0/0 1/1 0/0 .text ARRegisterDMACallback */
|
||||
// needs compiler epilogue patch
|
||||
#ifdef NONMATCHING
|
||||
ARCallback ARRegisterDMACallback(ARCallback callback) {
|
||||
ARCallback oldCb;
|
||||
BOOL enabled;
|
||||
@@ -31,20 +29,8 @@ ARCallback ARRegisterDMACallback(ARCallback callback) {
|
||||
OSRestoreInterrupts(enabled);
|
||||
return oldCb;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm ARCallback ARRegisterDMACallback(ARCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/ar/ar/ARRegisterDMACallback.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80350598-803505D4 34AED8 003C+00 0/0 2/2 0/0 .text ARGetDMAStatus */
|
||||
// needs compiler epilogue patch
|
||||
#ifdef NONMATCHING
|
||||
u32 ARGetDMAStatus() {
|
||||
BOOL enabled;
|
||||
u32 val;
|
||||
@@ -53,16 +39,6 @@ u32 ARGetDMAStatus() {
|
||||
OSRestoreInterrupts(enabled);
|
||||
return val;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm u32 ARGetDMAStatus(void) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/ar/ar/ARGetDMAStatus.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803505D4-803506C4 34AF14 00F0+00 0/0 5/5 0/0 .text ARStartDMA */
|
||||
void ARStartDMA(u32 type, u32 mainmem_addr, u32 aram_addr, u32 length) {
|
||||
@@ -100,8 +76,6 @@ static u32 __AR_FreeBlocks;
|
||||
static u32* __AR_BlockLength;
|
||||
|
||||
/* 803506C4-8035072C 34B004 0068+00 0/0 1/1 0/0 .text ARAlloc */
|
||||
// needs compiler epilogue patch
|
||||
#ifdef NONMATCHING
|
||||
u32 ARAlloc(u32 length) {
|
||||
u32 tmp;
|
||||
BOOL enabled;
|
||||
@@ -116,16 +90,6 @@ u32 ARAlloc(u32 length) {
|
||||
|
||||
return tmp;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm u32 ARAlloc(u32 length) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/ar/ar/ARAlloc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803D1BE8-803D1C30 02ED08 0044+04 1/0 0/0 0/0 .data @1 */
|
||||
@@ -139,14 +103,39 @@ SECTION_SDATA static const char* __ARVersion = lit_1;
|
||||
static volatile BOOL __AR_init_flag;
|
||||
|
||||
/* 8035072C-803507F0 34B06C 00C4+00 0/0 1/1 0/0 .text ARInit */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm u32 ARInit(u32* stack_index_addr, u32 num_entries) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/ar/ar/ARInit.s"
|
||||
u32 ARInit(u32* stack_index_addr, u32 num_entries) {
|
||||
BOOL old;
|
||||
u16 refresh;
|
||||
|
||||
if (__AR_init_flag == TRUE) {
|
||||
return 0x4000;
|
||||
}
|
||||
|
||||
OSRegisterVersion(__ARVersion);
|
||||
|
||||
old = OSDisableInterrupts();
|
||||
|
||||
__AR_Callback = NULL;
|
||||
|
||||
__OSSetInterruptHandler(OS_INTR_DSP_ARAM, __ARHandler);
|
||||
__OSUnmaskInterrupts(OS_INTERRUPTMASK_DSP_ARAM);
|
||||
|
||||
__AR_StackPointer = 0x4000;
|
||||
__AR_FreeBlocks = num_entries;
|
||||
__AR_BlockLength = stack_index_addr;
|
||||
|
||||
refresh = (u16)(__DSPRegs[13] & 0x000000ff);
|
||||
|
||||
__DSPRegs[13] = (u16)((__DSPRegs[13] & ~0x000000ff) | (refresh & 0x000000ff));
|
||||
|
||||
__ARChecksize();
|
||||
|
||||
__AR_init_flag = TRUE;
|
||||
|
||||
OSRestoreInterrupts(old);
|
||||
|
||||
return __AR_StackPointer;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803507F0-803507F8 -00001 0008+00 0/0 0/0 0/0 .text ARGetSize */
|
||||
u32 ARGetSize(void) {
|
||||
@@ -174,26 +163,201 @@ static void __ARHandler(s16 interrupt, OSContext* context) {
|
||||
}
|
||||
|
||||
/* 80350870-80350890 34B1B0 0020+00 0/0 2/2 0/0 .text __ARClearInterrupt */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __ARClearInterrupt() {
|
||||
nofralloc
|
||||
#include "asm/dolphin/ar/ar/__ARClearInterrupt.s"
|
||||
void __ARClearInterrupt(void) {
|
||||
u16 tmp;
|
||||
tmp = __DSPRegs[5];
|
||||
tmp = (u16)((tmp & ~(0x00000080 | 0x00000008)) | 0x00000020);
|
||||
__DSPRegs[5] = tmp;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80350890-803508A0 34B1D0 0010+00 0/0 2/2 0/0 .text __ARGetInterruptStatus */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __ARGetInterruptStatus() {
|
||||
nofralloc
|
||||
#include "asm/dolphin/ar/ar/__ARGetInterruptStatus.s"
|
||||
u16 __ARGetInterruptStatus(void) {
|
||||
return ((u16)(__DSPRegs[5] & 0x0020));
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#define RoundUP32(x) (((u32)(x) + 32 - 1) & ~(32 - 1))
|
||||
|
||||
/* 803508A0-80352094 34B1E0 17F4+00 1/1 0/0 0/0 .text __ARChecksize */
|
||||
#ifdef NONMATCHING
|
||||
void __ARChecksize(void) {
|
||||
|
||||
u8 test_data_pad[0x20 + 31];
|
||||
u8 dummy_data_pad[0x20 + 31];
|
||||
u8 buffer_pad[0x20 + 31];
|
||||
|
||||
u8 save_pad_1[0x20 + 31];
|
||||
u8 save_pad_2[0x20 + 31];
|
||||
u8 save_pad_3[0x20 + 31];
|
||||
u8 save_pad_4[0x20 + 31];
|
||||
u8 save_pad_5[0x20 + 31];
|
||||
|
||||
u16 dspreg9;
|
||||
u32* test_data;
|
||||
u32* dummy_data;
|
||||
u32* buffer;
|
||||
u32* save1;
|
||||
u32* save2;
|
||||
u32* save3;
|
||||
u32* save4;
|
||||
u32* save5;
|
||||
|
||||
u16 ARAM_mode = 0;
|
||||
u32 ARAM_size = 0;
|
||||
|
||||
u32 i;
|
||||
|
||||
while (!(__DSPRegs[11] & 1))
|
||||
;
|
||||
|
||||
ARAM_mode = 3;
|
||||
__DSPRegs[9] = (u16)((__DSPRegs[9] & ~(0x00000007 | 0x00000038)) | 0x20 | 2 | 1);
|
||||
ARAM_size = __AR_InternalSize = 0x1000000;
|
||||
|
||||
test_data = (u32*)(RoundUP32((u32)(test_data_pad)));
|
||||
dummy_data = (u32*)(RoundUP32((u32)(dummy_data_pad)));
|
||||
buffer = (u32*)(RoundUP32((u32)(buffer_pad)));
|
||||
|
||||
save1 = (u32*)(RoundUP32((u32)(save_pad_1)));
|
||||
save2 = (u32*)(RoundUP32((u32)(save_pad_2)));
|
||||
save3 = (u32*)(RoundUP32((u32)(save_pad_3)));
|
||||
save4 = (u32*)(RoundUP32((u32)(save_pad_4)));
|
||||
save5 = (u32*)(RoundUP32((u32)(save_pad_5)));
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
*(test_data + i) = 0xdeadbeef;
|
||||
*(dummy_data + i) = 0xbad0bad0;
|
||||
}
|
||||
|
||||
DCFlushRange((void*)test_data, 0x20);
|
||||
DCFlushRange((void*)dummy_data, 0x20);
|
||||
|
||||
__AR_ExpansionSize = 0;
|
||||
|
||||
DCInvalidateRange((void*)save1, 0x20);
|
||||
__ARReadDMA((u32)save1, ARAM_size + 0, 0x20);
|
||||
PPCSync();
|
||||
|
||||
__ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20);
|
||||
|
||||
memset((void*)buffer, 0, 0x20);
|
||||
DCFlushRange((void*)buffer, 0x20);
|
||||
|
||||
__ARReadDMA((u32)buffer, ARAM_size + 0x0000000, 0x20);
|
||||
PPCSync();
|
||||
|
||||
if (buffer[0] == test_data[0]) {
|
||||
|
||||
DCInvalidateRange((void*)save2, 0x20);
|
||||
__ARReadDMA((u32)save2, ARAM_size + 0x0200000, 0x20);
|
||||
PPCSync();
|
||||
|
||||
DCInvalidateRange((void*)save3, 0x20);
|
||||
__ARReadDMA((u32)save3, ARAM_size + 0x1000000, 0x20);
|
||||
PPCSync();
|
||||
|
||||
DCInvalidateRange((void*)save4, 0x20);
|
||||
__ARReadDMA((u32)save4, ARAM_size + 0x0000200, 0x20);
|
||||
PPCSync();
|
||||
|
||||
DCInvalidateRange((void*)save5, 0x20);
|
||||
__ARReadDMA((u32)save5, ARAM_size + 0x0400000, 0x20);
|
||||
PPCSync();
|
||||
|
||||
__ARWriteDMA((u32)dummy_data, ARAM_size + 0x0200000, 0x20);
|
||||
|
||||
__ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20);
|
||||
|
||||
memset((void*)buffer, 0, 0x20);
|
||||
DCFlushRange((void*)buffer, 0x20);
|
||||
|
||||
__ARReadDMA((u32)buffer, ARAM_size + 0x0200000, 0x20);
|
||||
PPCSync();
|
||||
|
||||
if (buffer[0] == test_data[0]) {
|
||||
__ARWriteDMA((u32)save1, ARAM_size + 0x0000000, 0x20);
|
||||
|
||||
ARAM_mode |= 0 << 1;
|
||||
ARAM_size += 0x0200000;
|
||||
__AR_ExpansionSize = 0x0200000;
|
||||
} else {
|
||||
__ARWriteDMA((u32)dummy_data, ARAM_size + 0x1000000, 0x20);
|
||||
|
||||
__ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20);
|
||||
|
||||
memset((void*)buffer, 0, 0x20);
|
||||
DCFlushRange((void*)buffer, 0x20);
|
||||
|
||||
__ARReadDMA((u32)buffer, ARAM_size + 0x1000000, 0x20);
|
||||
PPCSync();
|
||||
|
||||
if (buffer[0] == test_data[0]) {
|
||||
__ARWriteDMA((u32)save1, ARAM_size + 0x0000000, 0x20);
|
||||
__ARWriteDMA((u32)save2, ARAM_size + 0x0200000, 0x20);
|
||||
|
||||
ARAM_mode |= 4 << 1;
|
||||
ARAM_size += 0x0400000;
|
||||
__AR_ExpansionSize = 0x0400000;
|
||||
} else {
|
||||
__ARWriteDMA((u32)dummy_data, ARAM_size + 0x0000200, 0x20);
|
||||
|
||||
__ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20);
|
||||
|
||||
memset((void*)buffer, 0, 0x20);
|
||||
DCFlushRange((void*)buffer, 0x20);
|
||||
|
||||
__ARReadDMA((u32)buffer, ARAM_size + 0x0000200, 0x20);
|
||||
PPCSync();
|
||||
|
||||
if (buffer[0] == test_data[0]) {
|
||||
__ARWriteDMA((u32)save1, ARAM_size + 0x0000000, 0x20);
|
||||
__ARWriteDMA((u32)save2, ARAM_size + 0x0200000, 0x20);
|
||||
__ARWriteDMA((u32)save3, ARAM_size + 0x1000000, 0x20);
|
||||
|
||||
ARAM_mode |= 8 << 1;
|
||||
ARAM_size += 0x0800000;
|
||||
__AR_ExpansionSize = 0x0800000;
|
||||
} else {
|
||||
__ARWriteDMA((u32)dummy_data, ARAM_size + 0x0400000, 0x20);
|
||||
|
||||
__ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20);
|
||||
|
||||
memset((void*)buffer, 0, 0x20);
|
||||
DCFlushRange((void*)buffer, 0x20);
|
||||
|
||||
__ARReadDMA((u32)buffer, ARAM_size + 0x0400000, 0x20);
|
||||
PPCSync();
|
||||
|
||||
if (buffer[0] == test_data[0]) {
|
||||
__ARWriteDMA((u32)save1, ARAM_size + 0x0000000, 0x20);
|
||||
__ARWriteDMA((u32)save2, ARAM_size + 0x0200000, 0x20);
|
||||
__ARWriteDMA((u32)save3, ARAM_size + 0x1000000, 0x20);
|
||||
__ARWriteDMA((u32)save4, ARAM_size + 0x0000200, 0x20);
|
||||
|
||||
ARAM_mode |= 12 << 1;
|
||||
ARAM_size += 0x1000000;
|
||||
__AR_ExpansionSize = 0x1000000;
|
||||
} else {
|
||||
__ARWriteDMA((u32)save1, ARAM_size + 0x0000000, 0x20);
|
||||
__ARWriteDMA((u32)save2, ARAM_size + 0x0200000, 0x20);
|
||||
__ARWriteDMA((u32)save3, ARAM_size + 0x1000000, 0x20);
|
||||
__ARWriteDMA((u32)save4, ARAM_size + 0x0000200, 0x20);
|
||||
__ARWriteDMA((u32)save5, ARAM_size + 0x0400000, 0x20);
|
||||
|
||||
ARAM_mode |= 16 << 1;
|
||||
ARAM_size += 0x2000000;
|
||||
__AR_ExpansionSize = 0x2000000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
__DSPRegs[9] = (u16)((__DSPRegs[9] & ~(0x07 | 0x38)) | ARAM_mode);
|
||||
}
|
||||
|
||||
*(u32*)OSPhysicalToUncached(0x00D0) = ARAM_size;
|
||||
|
||||
__AR_Size = ARAM_size;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -202,3 +366,4 @@ asm void __ARChecksize() {
|
||||
#include "asm/dolphin/ar/ar/__ARChecksize.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
+158
-53
@@ -21,7 +21,7 @@ void ARQInit();
|
||||
//
|
||||
|
||||
void OSRegisterVersion();
|
||||
void OSDisableInterrupts();
|
||||
BOOL OSDisableInterrupts();
|
||||
void OSRestoreInterrupts();
|
||||
void ARRegisterDMACallback();
|
||||
void ARStartDMA();
|
||||
@@ -32,41 +32,71 @@ void ARStartDMA();
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804518D8-804518DC 000DD8 0004+00 3/3 0/0 0/0 .sbss __ARQRequestQueueHi */
|
||||
static u8 __ARQRequestQueueHi[4];
|
||||
static ARQRequest* __ARQRequestQueueHi;
|
||||
|
||||
/* 804518DC-804518E0 000DDC 0004+00 1/1 0/0 0/0 .sbss __ARQRequestTailHi */
|
||||
static u8 __ARQRequestTailHi[4];
|
||||
static ARQRequest* __ARQRequestTailHi;
|
||||
|
||||
/* 804518E0-804518E4 000DE0 0004+00 3/3 0/0 0/0 .sbss __ARQRequestQueueLo */
|
||||
static u8 __ARQRequestQueueLo[4];
|
||||
static ARQRequest* __ARQRequestQueueLo;
|
||||
|
||||
/* 804518E4-804518E8 000DE4 0004+00 1/1 0/0 0/0 .sbss __ARQRequestTailLo */
|
||||
static u8 __ARQRequestTailLo[4];
|
||||
static ARQRequest* __ARQRequestTailLo;
|
||||
|
||||
/* 804518E8-804518EC 000DE8 0004+00 3/3 0/0 0/0 .sbss __ARQRequestPendingHi */
|
||||
static u8 __ARQRequestPendingHi[4];
|
||||
static ARQRequest* __ARQRequestPendingHi;
|
||||
|
||||
/* 804518EC-804518F0 000DEC 0004+00 4/4 0/0 0/0 .sbss __ARQRequestPendingLo */
|
||||
static u8 __ARQRequestPendingLo[4];
|
||||
static ARQRequest* __ARQRequestPendingLo;
|
||||
|
||||
/* 804518F0-804518F4 000DF0 0004+00 3/3 0/0 0/0 .sbss __ARQCallbackHi */
|
||||
static u8 __ARQCallbackHi[4];
|
||||
static ARQCallback __ARQCallbackHi;
|
||||
|
||||
/* 804518F4-804518F8 000DF4 0004+00 3/3 0/0 0/0 .sbss __ARQCallbackLo */
|
||||
static u8 __ARQCallbackLo[4];
|
||||
static ARQCallback __ARQCallbackLo;
|
||||
|
||||
/* 804518F8-804518FC 000DF8 0004+00 2/2 0/0 0/0 .sbss __ARQChunkSize */
|
||||
static u8 __ARQChunkSize[4];
|
||||
static u32 __ARQChunkSize;
|
||||
|
||||
/* 803D1C30-803D1C78 02ED50 0045+03 1/0 0/0 0/0 .data @1 */
|
||||
const char* __ARQVersion = "<< Dolphin SDK - ARQ\trelease build: Apr 5 2004 04:15:04 (0x2301) >>";
|
||||
|
||||
/* 804518FC-80451900 000DFC 0004+00 1/1 0/0 0/0 .sbss __ARQ_init_flag */
|
||||
static BOOL __ARQ_init_flag;
|
||||
|
||||
|
||||
/* 80352094-80352194 34C9D4 0100+00 2/2 0/0 0/0 .text __ARQServiceQueueLo */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __ARQServiceQueueLo() {
|
||||
nofralloc
|
||||
#include "asm/dolphin/ar/arq/__ARQServiceQueueLo.s"
|
||||
void __ARQServiceQueueLo(void) {
|
||||
if ((__ARQRequestPendingLo == NULL) && (__ARQRequestQueueLo)) {
|
||||
__ARQRequestPendingLo = __ARQRequestQueueLo;
|
||||
|
||||
__ARQRequestQueueLo = __ARQRequestQueueLo->next;
|
||||
}
|
||||
|
||||
if (__ARQRequestPendingLo) {
|
||||
if (__ARQRequestPendingLo->length <= __ARQChunkSize) {
|
||||
if (__ARQRequestPendingLo->type == ARAM_DIR_MRAM_TO_ARAM)
|
||||
ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->source,
|
||||
__ARQRequestPendingLo->destination, __ARQRequestPendingLo->length);
|
||||
else
|
||||
ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->destination,
|
||||
__ARQRequestPendingLo->source, __ARQRequestPendingLo->length);
|
||||
|
||||
__ARQCallbackLo = __ARQRequestPendingLo->callback;
|
||||
} else {
|
||||
if (__ARQRequestPendingLo->type == ARAM_DIR_MRAM_TO_ARAM)
|
||||
ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->source,
|
||||
__ARQRequestPendingLo->destination, __ARQChunkSize);
|
||||
else
|
||||
ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->destination,
|
||||
__ARQRequestPendingLo->source, __ARQChunkSize);
|
||||
}
|
||||
|
||||
__ARQRequestPendingLo->length -= __ARQChunkSize;
|
||||
__ARQRequestPendingLo->source += __ARQChunkSize;
|
||||
__ARQRequestPendingLo->destination += __ARQChunkSize;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80352194-80352198 34CAD4 0004+00 1/1 0/0 0/0 .text __ARQCallbackHack */
|
||||
void __ARQCallbackHack() {
|
||||
@@ -74,46 +104,121 @@ void __ARQCallbackHack() {
|
||||
}
|
||||
|
||||
/* 80352198-80352264 34CAD8 00CC+00 1/1 0/0 0/0 .text __ARQInterruptServiceRoutine */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __ARQInterruptServiceRoutine() {
|
||||
nofralloc
|
||||
#include "asm/dolphin/ar/arq/__ARQInterruptServiceRoutine.s"
|
||||
void __ARQInterruptServiceRoutine(void) {
|
||||
if (__ARQCallbackHi) {
|
||||
(*__ARQCallbackHi)((u32)__ARQRequestPendingHi);
|
||||
__ARQRequestPendingHi = NULL;
|
||||
__ARQCallbackHi = NULL;
|
||||
}
|
||||
|
||||
else if (__ARQCallbackLo)
|
||||
{
|
||||
(*__ARQCallbackLo)((u32)__ARQRequestPendingLo);
|
||||
__ARQRequestPendingLo = NULL;
|
||||
__ARQCallbackLo = NULL;
|
||||
}
|
||||
|
||||
if (__ARQRequestQueueHi) {
|
||||
if (__ARQRequestQueueHi->type == 0) {
|
||||
ARStartDMA(__ARQRequestQueueHi->type, __ARQRequestQueueHi->source,
|
||||
__ARQRequestQueueHi->destination, __ARQRequestQueueHi->length);
|
||||
} else {
|
||||
ARStartDMA(__ARQRequestQueueHi->type, __ARQRequestQueueHi->destination,
|
||||
__ARQRequestQueueHi->source, __ARQRequestQueueHi->length);
|
||||
}
|
||||
__ARQCallbackHi = __ARQRequestQueueHi->callback;
|
||||
__ARQRequestPendingHi = __ARQRequestQueueHi;
|
||||
__ARQRequestQueueHi = __ARQRequestQueueHi->next;
|
||||
}
|
||||
|
||||
if (__ARQRequestPendingHi == NULL) {
|
||||
__ARQServiceQueueLo();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803D1C30-803D1C78 02ED50 0045+03 1/0 0/0 0/0 .data @1 */
|
||||
SECTION_DATA static char lit_1[] = "<< Dolphin SDK - ARQ\trelease build: Apr 5 2004 04:15:04 (0x2301) >>";
|
||||
|
||||
/* 80450A50-80450A58 -00001 0004+04 1/1 0/0 0/0 .sdata __ARQVersion */
|
||||
SECTION_SDATA static void* __ARQVersion[1 + 1 /* padding */] = {
|
||||
(void*)&lit_1,
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 804518FC-80451900 000DFC 0004+00 1/1 0/0 0/0 .sbss __ARQ_init_flag */
|
||||
static u8 __ARQ_init_flag[4];
|
||||
|
||||
/* 80352264-803522D4 34CBA4 0070+00 0/0 1/1 0/0 .text ARQInit */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void ARQInit() {
|
||||
nofralloc
|
||||
#include "asm/dolphin/ar/arq/ARQInit.s"
|
||||
void ARQInit(void) {
|
||||
if (__ARQ_init_flag == TRUE) {
|
||||
return;
|
||||
}
|
||||
|
||||
OSRegisterVersion(__ARQVersion);
|
||||
__ARQRequestQueueHi = __ARQRequestQueueLo = NULL;
|
||||
__ARQChunkSize = ARQ_CHUNK_SIZE_DEFAULT;
|
||||
ARRegisterDMACallback(&__ARQInterruptServiceRoutine);
|
||||
__ARQRequestPendingHi = NULL;
|
||||
__ARQRequestPendingLo = NULL;
|
||||
__ARQCallbackHi = NULL;
|
||||
__ARQCallbackLo = NULL;
|
||||
__ARQ_init_flag = TRUE;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803522D4-80352430 34CC14 015C+00 0/0 1/1 0/0 .text ARQPostRequest */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void ARQPostRequest(ARQRequest* task, u32 owner, u32 type, u32 priority, u32 source,
|
||||
u32 destination, u32 length, ARQCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/ar/arq/ARQPostRequest.s"
|
||||
void ARQPostRequest(ARQRequest* request, u32 owner, u32 type, u32 priority, u32 source, u32 dest,
|
||||
u32 length, ARQCallback callback) {
|
||||
BOOL enabled;
|
||||
|
||||
request->next = NULL;
|
||||
request->owner = owner;
|
||||
request->type = type;
|
||||
request->source = source;
|
||||
request->destination = dest;
|
||||
request->length = length;
|
||||
|
||||
if (callback) {
|
||||
request->callback = callback;
|
||||
} else {
|
||||
request->callback = (ARQCallback)&__ARQCallbackHack;
|
||||
}
|
||||
|
||||
enabled = OSDisableInterrupts();
|
||||
|
||||
switch (priority) {
|
||||
case ARQ_PRIORITY_LOW:
|
||||
|
||||
if (__ARQRequestQueueLo) {
|
||||
__ARQRequestTailLo->next = request;
|
||||
} else {
|
||||
__ARQRequestQueueLo = request;
|
||||
}
|
||||
__ARQRequestTailLo = request;
|
||||
|
||||
break;
|
||||
|
||||
case ARQ_PRIORITY_HIGH:
|
||||
|
||||
if (__ARQRequestQueueHi) {
|
||||
__ARQRequestTailHi->next = request;
|
||||
} else {
|
||||
__ARQRequestQueueHi = request;
|
||||
}
|
||||
|
||||
__ARQRequestTailHi = request;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if ((__ARQRequestPendingHi == NULL) && (__ARQRequestPendingLo == NULL)) {
|
||||
if (__ARQRequestQueueHi) {
|
||||
if (__ARQRequestQueueHi->type == ARAM_DIR_MRAM_TO_ARAM) {
|
||||
ARStartDMA(__ARQRequestQueueHi->type, __ARQRequestQueueHi->source,
|
||||
__ARQRequestQueueHi->destination, __ARQRequestQueueHi->length);
|
||||
} else {
|
||||
ARStartDMA(__ARQRequestQueueHi->type, __ARQRequestQueueHi->destination,
|
||||
__ARQRequestQueueHi->source, __ARQRequestQueueHi->length);
|
||||
}
|
||||
|
||||
__ARQCallbackHi = __ARQRequestQueueHi->callback;
|
||||
|
||||
__ARQRequestPendingHi = __ARQRequestQueueHi;
|
||||
|
||||
__ARQRequestQueueHi = __ARQRequestQueueHi->next;
|
||||
}
|
||||
|
||||
if (__ARQRequestPendingHi == NULL) {
|
||||
__ARQServiceQueueLo();
|
||||
}
|
||||
}
|
||||
|
||||
OSRestoreInterrupts(enabled);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
@@ -27,7 +27,7 @@ $(BUILD_DIR)/libs/dolphin/base/%.o: libs/dolphin/base/%.c $(BUILD_DIR)/libs/dolp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
|
||||
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBBASE_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@$(DOLPHIN_LIB_CC) $(CFLAGS) $(LIBBASE_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
|
||||
@echo Frank is fixing $@
|
||||
@$(PYTHON) $(FRANK) $@ $@ $@
|
||||
|
||||
+229
-57
@@ -186,14 +186,23 @@ s32 __CARDReadStatus(s32 chan, u8* status) {
|
||||
}
|
||||
|
||||
/* 80352F34-80353024 34D874 00F0+00 0/0 1/1 0/0 .text __CARDReadVendorID */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __CARDReadVendorID() {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDBios/__CARDReadVendorID.s"
|
||||
s32 __CARDReadVendorID(s32 chan, u16* vendorId) {
|
||||
BOOL err;
|
||||
u32 cmd;
|
||||
|
||||
if (!EXISelect(chan, 0, 4)) {
|
||||
return CARD_RESULT_NOCARD;
|
||||
}
|
||||
|
||||
cmd = 0x85000000;
|
||||
err = FALSE;
|
||||
err |= !EXIImm(chan, &cmd, 2, 1, NULL);
|
||||
err |= !EXISync(chan);
|
||||
err |= !EXIImm(chan, vendorId, 2, 0, NULL);
|
||||
err |= !EXISync(chan);
|
||||
err |= !EXIDeselect(chan);
|
||||
return err ? CARD_RESULT_NOCARD : CARD_RESULT_READY;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80353024-803530D0 34D964 00AC+00 1/1 1/1 0/0 .text __CARDClearStatus */
|
||||
s32 __CARDClearStatus(s32 chan) {
|
||||
@@ -237,15 +246,69 @@ static void TimeoutHandler(OSAlarm* alarm, OSContext* context) {
|
||||
}
|
||||
}
|
||||
|
||||
/* 80353174-80353414 34DAB4 02A0+00 2/2 0/0 0/0 .text Retry */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm s32 Retry(s32 chan) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDBios/Retry.s"
|
||||
static inline void SetupTimeoutAlarm(CARDControl* card) {
|
||||
OSCancelAlarm(&card->alarm);
|
||||
switch (card->cmd[0]) {
|
||||
case 0xF2:
|
||||
OSSetAlarm(&card->alarm, OSMillisecondsToTicks(100), TimeoutHandler);
|
||||
break;
|
||||
case 0xF3:
|
||||
break;
|
||||
case 0xF4:
|
||||
if (card->pageSize > 0x80) {
|
||||
OSSetAlarm(&card->alarm, OSSecondsToTicks((OSTime)2) * (card->cBlock / 0x40),
|
||||
TimeoutHandler);
|
||||
break;
|
||||
}
|
||||
case 0xF1:
|
||||
OSSetAlarm(&card->alarm, OSSecondsToTicks((OSTime)2) * (card->sectorSize / 0x2000),
|
||||
TimeoutHandler);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80353174-80353414 34DAB4 02A0+00 2/2 0/0 0/0 .text Retry */
|
||||
static s32 Retry(s32 chan) {
|
||||
CARDControl* card;
|
||||
card = &__CARDBlock[chan];
|
||||
|
||||
if (!EXISelect(chan, 0, 4)) {
|
||||
EXIUnlock(chan);
|
||||
return CARD_RESULT_NOCARD;
|
||||
}
|
||||
|
||||
SetupTimeoutAlarm(card);
|
||||
|
||||
if (!EXIImmEx(chan, card->cmd, card->cmdlen, 1)) {
|
||||
EXIDeselect(chan);
|
||||
EXIUnlock(chan);
|
||||
return CARD_RESULT_NOCARD;
|
||||
}
|
||||
|
||||
if (card->cmd[0] == 0x52 &&
|
||||
!EXIImmEx(chan, (u8*)card->workArea + sizeof(CARDID), card->latency, 1)) {
|
||||
EXIDeselect(chan);
|
||||
EXIUnlock(chan);
|
||||
return CARD_RESULT_NOCARD;
|
||||
}
|
||||
|
||||
if (card->mode == 0xffffffff) {
|
||||
EXIDeselect(chan);
|
||||
EXIUnlock(chan);
|
||||
return CARD_RESULT_READY;
|
||||
}
|
||||
|
||||
if (!EXIDma(chan, card->buffer, (s32)((card->cmd[0] == 0x52) ? 512 : card->pageSize), card->mode,
|
||||
__CARDTxHandler)) {
|
||||
EXIDeselect(chan);
|
||||
EXIUnlock(chan);
|
||||
return CARD_RESULT_NOCARD;
|
||||
}
|
||||
|
||||
return CARD_RESULT_READY;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80353414-80353524 34DD54 0110+00 1/1 0/0 0/0 .text UnlockedCallback */
|
||||
static void UnlockedCallback(s32 chan, s32 result) {
|
||||
@@ -287,14 +350,43 @@ static void UnlockedCallback(s32 chan, s32 result) {
|
||||
}
|
||||
|
||||
/* 80353524-80353748 34DE64 0224+00 3/3 0/0 0/0 .text __CARDStart */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 __CARDStart(s32 chan, CARDCallback txCallback, CARDCallback exiCallback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDBios/__CARDStart.s"
|
||||
static s32 __CARDStart(s32 chan, CARDCallback txCallback, CARDCallback exiCallback) {
|
||||
BOOL enabled;
|
||||
CARDControl* card;
|
||||
s32 result;
|
||||
|
||||
enabled = OSDisableInterrupts();
|
||||
|
||||
card = &__CARDBlock[chan];
|
||||
if (!card->attached) {
|
||||
result = CARD_RESULT_NOCARD;
|
||||
} else {
|
||||
|
||||
if (txCallback) {
|
||||
card->txCallback = txCallback;
|
||||
}
|
||||
if (exiCallback) {
|
||||
card->exiCallback = exiCallback;
|
||||
}
|
||||
card->unlockCallback = UnlockedCallback;
|
||||
if (!EXILock(chan, 0, __CARDUnlockedHandler)) {
|
||||
result = CARD_RESULT_BUSY;
|
||||
} else {
|
||||
card->unlockCallback = 0;
|
||||
|
||||
if (!EXISelect(chan, 0, 4)) {
|
||||
EXIUnlock(chan);
|
||||
result = CARD_RESULT_NOCARD;
|
||||
} else {
|
||||
SetupTimeoutAlarm(card);
|
||||
result = CARD_RESULT_READY;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
OSRestoreInterrupts(enabled);
|
||||
return result;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#define AD1(x) ((u8)(((x) >> 17) & 0x7f))
|
||||
#define AD1EX(x) ((u8)(AD1(x) | 0x80));
|
||||
@@ -337,15 +429,19 @@ s32 __CARDReadSegment(s32 chan, CARDCallback callback) {
|
||||
}
|
||||
|
||||
/* 8035387C-803539B8 34E1BC 013C+00 0/0 2/2 0/0 .text __CARDWritePage */
|
||||
// needs compiler epilogue patch
|
||||
#ifdef NONMATCH
|
||||
s32 __CARDWritePage(s32 chan, CARDCallback callback) {
|
||||
CARDControl* card;
|
||||
s32 result;
|
||||
|
||||
card = &__CARDBlock[chan];
|
||||
|
||||
card->cmd[0] = 0xF2;
|
||||
card->cmd[1] = AD1(card->addr);
|
||||
if (card->pageSize > 0x80) {
|
||||
card->cmd[1] = AD1(card->addr) | 0x80;
|
||||
} else {
|
||||
card->cmd[1] = AD1(card->addr);
|
||||
}
|
||||
|
||||
card->cmd[2] = AD2(card->addr);
|
||||
card->cmd[3] = AD3(card->addr);
|
||||
card->cmd[4] = BA(card->addr);
|
||||
@@ -358,7 +454,7 @@ s32 __CARDWritePage(s32 chan, CARDCallback callback) {
|
||||
result = CARD_RESULT_READY;
|
||||
} else if (result >= 0) {
|
||||
if (!EXIImmEx(chan, card->cmd, card->cmdlen, 1) ||
|
||||
!EXIDma(chan, card->buffer, 128, card->mode, __CARDTxHandler)) {
|
||||
!EXIDma(chan, card->buffer, card->pageSize, card->mode, __CARDTxHandler)) {
|
||||
card->exiCallback = 0;
|
||||
EXIDeselect(chan);
|
||||
EXIUnlock(chan);
|
||||
@@ -369,26 +465,43 @@ s32 __CARDWritePage(s32 chan, CARDCallback callback) {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 __CARDWritePage(s32 chan, CARDCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDBios/__CARDWritePage.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803539B8-80353AC8 34E2F8 0110+00 0/0 6/6 0/0 .text __CARDEraseSector */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 __CARDEraseSector(s32 chan, u32 addr, CARDCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDBios/__CARDEraseSector.s"
|
||||
s32 __CARDEraseSector(s32 chan, u32 addr, CARDCallback callback) {
|
||||
CARDControl* card;
|
||||
s32 result;
|
||||
|
||||
card = &__CARDBlock[chan];
|
||||
if (card->pageSize > 0x80) {
|
||||
if (callback) {
|
||||
callback(chan, 0);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
card->cmd[0] = 0xF1;
|
||||
card->cmd[1] = AD1(addr);
|
||||
card->cmd[2] = AD2(addr);
|
||||
card->cmdlen = 3;
|
||||
card->mode = -1;
|
||||
card->retry = 3;
|
||||
|
||||
result = __CARDStart(chan, 0, callback);
|
||||
|
||||
if (result == CARD_RESULT_BUSY) {
|
||||
result = CARD_RESULT_READY;
|
||||
} else if (result >= 0) {
|
||||
if (!EXIImmEx(chan, card->cmd, card->cmdlen, 1)) {
|
||||
card->exiCallback = NULL;
|
||||
result = CARD_RESULT_NOCARD;
|
||||
} else {
|
||||
result = CARD_RESULT_READY;
|
||||
}
|
||||
|
||||
EXIDeselect(chan);
|
||||
EXIUnlock(chan);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803D1E38-803D1E80 02EF58 0046+02 1/0 0/0 0/0 .data @1 */
|
||||
@@ -478,26 +591,84 @@ s32 __CARDGetControlBlock(s32 chan, CARDControl** pcard) {
|
||||
}
|
||||
|
||||
/* 80353C6C-80353CD0 34E5AC 0064+00 0/0 24/24 0/0 .text __CARDPutControlBlock */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 __CARDPutControlBlock(CARDControl* card, s32 result) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDBios/__CARDPutControlBlock.s"
|
||||
s32 __CARDPutControlBlock(CARDControl* card, s32 result) {
|
||||
BOOL enabled;
|
||||
|
||||
enabled = OSDisableInterrupts();
|
||||
if (card->attached) {
|
||||
card->result = result;
|
||||
} else if (card->result == CARD_RESULT_BUSY) {
|
||||
card->result = result;
|
||||
}
|
||||
OSRestoreInterrupts(enabled);
|
||||
return result;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80353CD0-80353E20 34E610 0150+00 0/0 1/1 0/0 .text CARDFreeBlocks */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 CARDFreeBlocks(s32 chan, s32* byteNotUsed, s32* filesNotUsed) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDBios/CARDFreeBlocks.s"
|
||||
s32 CARDFreeBlocks(s32 chan, s32* byteNotUsed, s32* filesNotUsed) {
|
||||
CARDControl* card;
|
||||
s32 result;
|
||||
u16* fat;
|
||||
CARDDir* dir;
|
||||
CARDDir* ent;
|
||||
u16 fileNo;
|
||||
|
||||
result = __CARDGetControlBlock(chan, &card);
|
||||
if (result < 0) {
|
||||
return result;
|
||||
}
|
||||
|
||||
fat = __CARDGetFatBlock(card);
|
||||
dir = __CARDGetDirBlock(card);
|
||||
if (fat == 0 || dir == 0) {
|
||||
return __CARDPutControlBlock(card, CARD_RESULT_BROKEN);
|
||||
}
|
||||
|
||||
if (byteNotUsed) {
|
||||
*byteNotUsed = (s32)(card->sectorSize * fat[CARD_FAT_FREEBLOCKS]);
|
||||
}
|
||||
|
||||
if (filesNotUsed) {
|
||||
*filesNotUsed = 0;
|
||||
for (fileNo = 0; fileNo < CARD_MAX_FILE; fileNo++) {
|
||||
ent = &dir[fileNo];
|
||||
if (ent->fileName[0] == 0xff) {
|
||||
++*filesNotUsed;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return __CARDPutControlBlock(card, CARD_RESULT_READY);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80353E20-80353EB8 34E760 0098+00 0/0 7/7 0/0 .text __CARDSync */
|
||||
#ifdef NONMATCHING
|
||||
s32 __CARDSync(s32 chan) {
|
||||
CARDControl* card;
|
||||
s32 val;
|
||||
BOOL enabled;
|
||||
s32 result;
|
||||
|
||||
card = &__CARDBlock[chan];
|
||||
enabled = OSDisableInterrupts();
|
||||
for (;; ) {
|
||||
if (chan < 0 || chan >= 2)
|
||||
result = -0x80;
|
||||
else
|
||||
result = card->result;
|
||||
val = result;
|
||||
|
||||
if (val != CARD_RESULT_BUSY){
|
||||
break;
|
||||
} else {
|
||||
OSSleepThread(&card->threadQueue);
|
||||
}
|
||||
}
|
||||
OSRestoreInterrupts(enabled);
|
||||
|
||||
return val;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -506,6 +677,7 @@ asm s32 __CARDSync(s32 chan) {
|
||||
#include "asm/dolphin/card/CARDBios/__CARDSync.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80353EB8-80353F08 34E7F8 0050+00 1/0 0/0 0/0 .text OnReset */
|
||||
static s32 OnReset(s32 f) {
|
||||
|
||||
@@ -62,18 +62,39 @@ static void WriteCallback(s32 chan, s32 result) {
|
||||
}
|
||||
|
||||
/* 803554F0-803555B8 34FE30 00C8+00 1/1 0/0 0/0 .text EraseCallback */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void EraseCallback(s32 chan, s32 result) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDBlock/EraseCallback.s"
|
||||
static void EraseCallback(s32 chan, s32 result) {
|
||||
CARDControl* card;
|
||||
CARDCallback callback;
|
||||
u32 temp[2]; /* this compiler sucks */
|
||||
u16* fat;
|
||||
u32 addr;
|
||||
|
||||
card = &__CARDBlock[chan];
|
||||
if (result < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
fat = __CARDGetFatBlock(card);
|
||||
addr = ((u32)fat - (u32)card->workArea) / CARD_SYSTEM_BLOCK_SIZE * card->sectorSize;
|
||||
result = __CARDWrite(chan, addr, CARD_SYSTEM_BLOCK_SIZE, fat, WriteCallback);
|
||||
if (result < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
error:
|
||||
if (card->apiCallback == NULL) {
|
||||
__CARDPutControlBlock(card, result);
|
||||
}
|
||||
callback = card->eraseCallback;
|
||||
if (callback) {
|
||||
card->eraseCallback = NULL;
|
||||
callback(chan, result);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803555B8-803556D0 34FEF8 0118+00 0/0 1/1 0/0 .text __CARDAllocBlock */
|
||||
// needs compiler epilogue patch
|
||||
#ifdef NONMATCHING
|
||||
s32 __CARDAllocBlock(s32 chan, u32 cBlock, CARDCallback callback) {
|
||||
CARDControl* card;
|
||||
u16* fat;
|
||||
@@ -122,23 +143,17 @@ s32 __CARDAllocBlock(s32 chan, u32 cBlock, CARDCallback callback) {
|
||||
|
||||
return __CARDUpdateFatBlock(chan, fat, callback);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 __CARDAllocBlock(s32 chan, u32 cBlock, CARDCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDBlock/__CARDAllocBlock.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803556D0-8035577C 350010 00AC+00 1/1 1/1 0/0 .text __CARDUpdateFatBlock */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 __CARDUpdateFatBlock(s32 chan, u16* fat, CARDCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDBlock/__CARDUpdateFatBlock.s"
|
||||
s32 __CARDUpdateFatBlock(s32 chan, u16* fat, CARDCallback callback) {
|
||||
CARDControl* card;
|
||||
|
||||
card = &__CARDBlock[chan];
|
||||
++fat[2];
|
||||
__CARDCheckSum(fat + 2, 0x1FFC, fat, fat + 1);
|
||||
DCStoreRange(fat, 0x2000);
|
||||
card->eraseCallback = callback;
|
||||
|
||||
return __CARDEraseSector(chan, (((u32)fat - (u32)card->workArea) / 8192u) * card->sectorSize,
|
||||
EraseCallback);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
+130
-32
@@ -53,34 +53,143 @@ void __CARDCheckSum(void* ptr, int length, u16* checksum, u16* checksumInv) {
|
||||
}
|
||||
|
||||
/* 80355B90-80355E14 3504D0 0284+00 2/2 0/0 0/0 .text VerifyID */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm s32 VerifyID(CARDControl* card) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDCheck/VerifyID.s"
|
||||
static s32 VerifyID(CARDControl* card) {
|
||||
CARDID* id;
|
||||
u16 checksum;
|
||||
u16 checksumInv;
|
||||
OSSramEx* sramEx;
|
||||
OSTime rand;
|
||||
int i;
|
||||
|
||||
id = card->workArea;
|
||||
|
||||
if (id->deviceID != 0 || id->size != card->size) {
|
||||
return CARD_RESULT_BROKEN;
|
||||
}
|
||||
|
||||
__CARDCheckSum(id, sizeof(CARDID) - sizeof(u32), &checksum, &checksumInv);
|
||||
if (id->checkSum != checksum || id->checkSumInv != checksumInv) {
|
||||
return CARD_RESULT_BROKEN;
|
||||
}
|
||||
|
||||
rand = *(OSTime*)&id->serial[12];
|
||||
sramEx = __OSLockSramEx();
|
||||
|
||||
for (i = 0; i < 12; i++) {
|
||||
rand = (rand * 1103515245 + 12345) >> 16;
|
||||
if (id->serial[i] != (u8)(sramEx->flashID[card - __CARDBlock][i] + rand)) {
|
||||
__OSUnlockSramEx(FALSE);
|
||||
return CARD_RESULT_BROKEN;
|
||||
}
|
||||
rand = ((rand * 1103515245 + 12345) >> 16) & 0x7FFF;
|
||||
}
|
||||
|
||||
__OSUnlockSramEx(FALSE);
|
||||
if (id->encode != __CARDGetFontEncode()) {
|
||||
return CARD_RESULT_ENCODING;
|
||||
}
|
||||
|
||||
return CARD_RESULT_READY;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80355E14-80356054 350754 0240+00 2/2 0/0 0/0 .text VerifyDir */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm s32 VerifyDir(CARDControl* card, int* outCurrent) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDCheck/VerifyDir.s"
|
||||
static s32 VerifyDir(CARDControl* card, int* outCurrent) {
|
||||
CARDDir* dir[2];
|
||||
CARDDirCheck* check[2];
|
||||
u16 checkSum;
|
||||
u16 checkSumInv;
|
||||
int i;
|
||||
int errors;
|
||||
int current;
|
||||
|
||||
current = errors = 0;
|
||||
for (i = 0; i < 2; i++) {
|
||||
dir[i] = (CARDDir*)((u8*)card->workArea + (1 + i) * CARD_SYSTEM_BLOCK_SIZE);
|
||||
check[i] = __CARDGetDirCheck(dir[i]);
|
||||
__CARDCheckSum(dir[i], CARD_SYSTEM_BLOCK_SIZE - sizeof(u32), &checkSum, &checkSumInv);
|
||||
if (check[i]->checkSum != checkSum || check[i]->checkSumInv != checkSumInv) {
|
||||
++errors;
|
||||
current = i;
|
||||
card->currentDir = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (0 == errors) {
|
||||
if (card->currentDir == 0) {
|
||||
if ((check[0]->checkCode - check[1]->checkCode) < 0) {
|
||||
current = 0;
|
||||
} else {
|
||||
current = 1;
|
||||
}
|
||||
card->currentDir = dir[current];
|
||||
memcpy(dir[current], dir[current ^ 1], CARD_SYSTEM_BLOCK_SIZE);
|
||||
} else {
|
||||
current = (card->currentDir == dir[0]) ? 0 : 1;
|
||||
}
|
||||
}
|
||||
if (outCurrent) {
|
||||
*outCurrent = current;
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80356054-803562D8 350994 0284+00 2/2 0/0 0/0 .text VerifyFAT */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm s32 VerifyFAT(CARDControl* card, int* outCurrent) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDCheck/VerifyFAT.s"
|
||||
static s32 VerifyFAT(CARDControl* card, int* outCurrent) {
|
||||
u16* fat[2];
|
||||
u16* fatp;
|
||||
u16 nBlock;
|
||||
u16 cFree;
|
||||
int i;
|
||||
u16 checkSum;
|
||||
u16 checkSumInv;
|
||||
int errors;
|
||||
int current;
|
||||
|
||||
current = errors = 0;
|
||||
for (i = 0; i < 2; i++) {
|
||||
fatp = fat[i] = (u16*)((u8*)card->workArea + (3 + i) * CARD_SYSTEM_BLOCK_SIZE);
|
||||
|
||||
__CARDCheckSum(&fatp[CARD_FAT_CHECKCODE], CARD_SYSTEM_BLOCK_SIZE - sizeof(u32), &checkSum,
|
||||
&checkSumInv);
|
||||
if (fatp[CARD_FAT_CHECKSUM] != checkSum || fatp[CARD_FAT_CHECKSUMINV] != checkSumInv) {
|
||||
++errors;
|
||||
current = i;
|
||||
card->currentFat = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
cFree = 0;
|
||||
for (nBlock = CARD_NUM_SYSTEM_BLOCK; nBlock < card->cBlock; nBlock++) {
|
||||
if (fatp[nBlock] == CARD_FAT_AVAIL) {
|
||||
cFree++;
|
||||
}
|
||||
}
|
||||
if (cFree != fatp[CARD_FAT_FREEBLOCKS]) {
|
||||
++errors;
|
||||
current = i;
|
||||
card->currentFat = 0;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (0 == errors) {
|
||||
if (card->currentFat == 0) {
|
||||
if (((s16)fat[0][CARD_FAT_CHECKCODE] - (s16)fat[1][CARD_FAT_CHECKCODE]) < 0) {
|
||||
current = 0;
|
||||
} else {
|
||||
current = 1;
|
||||
}
|
||||
card->currentFat = fat[current];
|
||||
memcpy(fat[current], fat[current ^ 1], CARD_SYSTEM_BLOCK_SIZE);
|
||||
} else {
|
||||
current = (card->currentFat == fat[0]) ? 0 : 1;
|
||||
}
|
||||
}
|
||||
if (outCurrent) {
|
||||
*outCurrent = current;
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803562D8-80356364 350C18 008C+00 0/0 1/1 0/0 .text __CARDVerify */
|
||||
s32 __CARDVerify(CARDControl* card) {
|
||||
@@ -105,7 +214,6 @@ s32 __CARDVerify(CARDControl* card) {
|
||||
}
|
||||
|
||||
/* 80356364-803568F4 350CA4 0590+00 1/1 0/0 0/0 .text CARDCheckExAsync */
|
||||
#ifdef NONMATCHING
|
||||
s32 CARDCheckExAsync(s32 chan, s32* xferBytes, CARDCallback callback) {
|
||||
CARDControl* card;
|
||||
CARDDir* dir[2];
|
||||
@@ -235,16 +343,6 @@ s32 CARDCheckExAsync(s32 chan, s32* xferBytes, CARDCallback callback) {
|
||||
}
|
||||
return CARD_RESULT_READY;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm s32 CARDCheckExAsync(s32 chan, s32* xferBytes, CARDCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDCheck/CARDCheckExAsync.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803568F4-80356948 351234 0054+00 0/0 2/2 0/0 .text CARDCheck */
|
||||
s32 CARDCheck(s32 chan) {
|
||||
|
||||
@@ -55,8 +55,6 @@ error:
|
||||
}
|
||||
|
||||
/* 80355854-8035591C 350194 00C8+00 1/1 0/0 0/0 .text EraseCallback */
|
||||
// needs compiler epilogue patch
|
||||
#ifdef NONMATCHING
|
||||
static void EraseCallback(s32 chan, s32 result) {
|
||||
CARDControl* card;
|
||||
CARDCallback callback;
|
||||
@@ -88,19 +86,8 @@ error:
|
||||
callback(chan, result);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void EraseCallback(s32 chan, s32 result) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDDir/EraseCallback.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8035591C-803559E0 35025C 00C4+00 0/0 4/4 0/0 .text __CARDUpdateDir */
|
||||
#ifdef NONMATCHING
|
||||
s32 __CARDUpdateDir(s32 chan, CARDCallback callback) {
|
||||
CARDControl* card;
|
||||
CARDDirCheck* check;
|
||||
@@ -123,13 +110,3 @@ s32 __CARDUpdateDir(s32 chan, CARDCallback callback) {
|
||||
addr = ((u32)dir - (u32)card->workArea) / 0x2000 * card->sectorSize;
|
||||
return __CARDEraseSector(chan, addr, EraseCallback);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 __CARDUpdateDir(s32 chan, CARDCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDDir/__CARDUpdateDir.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "dolphin/card/card.h"
|
||||
#include "dolphin/dsp/dsp.h"
|
||||
#include "dolphin/dvd/dvd.h"
|
||||
#include "dolphin/vi/vi.h"
|
||||
|
||||
#include "dolphin/card/CARDPriv.h"
|
||||
|
||||
@@ -68,14 +69,82 @@ error:
|
||||
}
|
||||
|
||||
/* 803575C8-80357C20 351F08 0658+00 1/1 0/0 0/0 .text __CARDFormatRegionAsync */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 __CARDFormatRegionAsync(s32 chan, u16 encode, CARDCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDFormat/__CARDFormatRegionAsync.s"
|
||||
s32 __CARDFormatRegionAsync(s32 chan, u16 encode, CARDCallback callback) {
|
||||
CARDControl* card;
|
||||
CARDID* id;
|
||||
CARDDir* dir;
|
||||
u16* fat;
|
||||
s16 i;
|
||||
s32 result;
|
||||
OSSram* sram;
|
||||
OSSramEx* sramEx;
|
||||
u16 viDTVStatus;
|
||||
OSTime time;
|
||||
OSTime rand;
|
||||
|
||||
result = __CARDGetControlBlock(chan, &card);
|
||||
if (result < 0) {
|
||||
return result;
|
||||
}
|
||||
|
||||
id = (CARDID*)card->workArea;
|
||||
memset(id, 0xff, CARD_SYSTEM_BLOCK_SIZE);
|
||||
viDTVStatus = __VIRegs[55];
|
||||
|
||||
id->encode = encode;
|
||||
|
||||
sram = __OSLockSram();
|
||||
*(u32*)&id->serial[20] = sram->counterBias;
|
||||
*(u32*)&id->serial[24] = sram->language;
|
||||
__OSUnlockSram(FALSE);
|
||||
|
||||
rand = time = OSGetTime();
|
||||
|
||||
sramEx = __OSLockSramEx();
|
||||
for (i = 0; i < 12; i++) {
|
||||
rand = (rand * 1103515245 + 12345) >> 16;
|
||||
id->serial[i] = (u8)(sramEx->flashID[chan][i] + rand);
|
||||
rand = ((rand * 1103515245 + 12345) >> 16) & 0x7FFF;
|
||||
}
|
||||
__OSUnlockSramEx(FALSE);
|
||||
|
||||
*(u32*)&id->serial[28] = viDTVStatus;
|
||||
*(OSTime*)&id->serial[12] = time;
|
||||
|
||||
id->deviceID = 0;
|
||||
id->size = card->size;
|
||||
__CARDCheckSum(id, sizeof(CARDID) - sizeof(u32), &id->checkSum, &id->checkSumInv);
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
CARDDirCheck* check;
|
||||
|
||||
dir = (CARDDir*)((u8*)card->workArea + (1 + i) * CARD_SYSTEM_BLOCK_SIZE);
|
||||
memset(dir, 0xff, CARD_SYSTEM_BLOCK_SIZE);
|
||||
check = __CARDGetDirCheck(dir);
|
||||
check->checkCode = i;
|
||||
__CARDCheckSum(dir, CARD_SYSTEM_BLOCK_SIZE - sizeof(u32), &check->checkSum,
|
||||
&check->checkSumInv);
|
||||
}
|
||||
for (i = 0; i < 2; i++) {
|
||||
fat = (u16*)((u8*)card->workArea + (3 + i) * CARD_SYSTEM_BLOCK_SIZE);
|
||||
memset(fat, 0x00, CARD_SYSTEM_BLOCK_SIZE);
|
||||
fat[CARD_FAT_CHECKCODE] = (u16)i;
|
||||
fat[CARD_FAT_FREEBLOCKS] = (u16)(card->cBlock - CARD_NUM_SYSTEM_BLOCK);
|
||||
fat[CARD_FAT_LASTSLOT] = CARD_NUM_SYSTEM_BLOCK - 1;
|
||||
__CARDCheckSum(&fat[CARD_FAT_CHECKCODE], CARD_SYSTEM_BLOCK_SIZE - sizeof(u32),
|
||||
&fat[CARD_FAT_CHECKSUM], &fat[CARD_FAT_CHECKSUMINV]);
|
||||
}
|
||||
|
||||
card->apiCallback = callback ? callback : __CARDDefaultApiCallback;
|
||||
DCStoreRange(card->workArea, CARD_WORKAREA_SIZE);
|
||||
|
||||
card->formatStep = 0;
|
||||
result = __CARDEraseSector(chan, (u32)card->sectorSize * card->formatStep, FormatCallback);
|
||||
if (result < 0) {
|
||||
__CARDPutControlBlock(card, result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80357C20-80357C74 352560 0054+00 0/0 1/1 0/0 .text CARDFormat */
|
||||
s32 CARDFormat(s32 chan) {
|
||||
|
||||
+137
-15
@@ -146,14 +146,133 @@ static u32 LatencyTable[8] = {
|
||||
};
|
||||
|
||||
/* 80356BC8-8035701C 351508 0454+00 2/2 0/0 0/0 .text DoMount */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm s32 DoMount(s32 chan) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDMount/DoMount.s"
|
||||
static s32 DoMount(s32 chan) {
|
||||
CARDControl* card;
|
||||
u32 id;
|
||||
u8 status;
|
||||
s32 result;
|
||||
OSSramEx* sram;
|
||||
int i;
|
||||
u8 checkSum;
|
||||
int step;
|
||||
|
||||
card = &__CARDBlock[chan];
|
||||
|
||||
if (card->mountStep == 0) {
|
||||
if (EXIGetID(chan, 0, &id) == 0) {
|
||||
result = CARD_RESULT_NOCARD;
|
||||
} else if (IsCard(id)) {
|
||||
result = CARD_RESULT_READY;
|
||||
} else {
|
||||
result = CARD_RESULT_WRONGDEVICE;
|
||||
}
|
||||
if (result < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
card->cid = id;
|
||||
|
||||
card->size = (u16)(id & 0xFC);
|
||||
card->sectorSize = SectorSizeTable[(id & 0x00003800) >> 11];
|
||||
card->cBlock = (u16)((card->size * 1024 * 1024 / 8) / card->sectorSize);
|
||||
card->latency = LatencyTable[(id & 0x00000700) >> 8];
|
||||
|
||||
result = __CARDReadVendorID(chan, &card->vendorID);
|
||||
if (result < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (CARDGetFastMode() && (card->vendorID >> 8) == 0xec) {
|
||||
card->pageSize = 0x200;
|
||||
} else {
|
||||
card->pageSize = 0x80;
|
||||
}
|
||||
result = __CARDClearStatus(chan);
|
||||
if (result < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
result = __CARDReadStatus(chan, &status);
|
||||
if (result < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (!EXIProbe(chan)) {
|
||||
result = CARD_RESULT_NOCARD;
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (!(status & 0x40)) {
|
||||
result = __CARDUnlock(chan, card->id);
|
||||
if (result < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
checkSum = 0;
|
||||
sram = __OSLockSramEx();
|
||||
for (i = 0; i < 12; i++) {
|
||||
sram->flashID[chan][i] = card->id[i];
|
||||
checkSum += card->id[i];
|
||||
}
|
||||
sram->flashIDCheckSum[chan] = (u8)~checkSum;
|
||||
__OSUnlockSramEx(TRUE);
|
||||
|
||||
return result;
|
||||
} else {
|
||||
card->mountStep = 1;
|
||||
|
||||
checkSum = 0;
|
||||
sram = __OSLockSramEx();
|
||||
for (i = 0; i < 12; i++) {
|
||||
checkSum += sram->flashID[chan][i];
|
||||
}
|
||||
__OSUnlockSramEx(FALSE);
|
||||
if (sram->flashIDCheckSum[chan] != (u8)~checkSum) {
|
||||
result = CARD_RESULT_IOERROR;
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (card->mountStep == 1) {
|
||||
if (card->cid == 0x80000004) {
|
||||
u16 vendorID;
|
||||
|
||||
sram = __OSLockSramEx();
|
||||
vendorID = *(u16*)sram->flashID[chan];
|
||||
__OSUnlockSramEx(FALSE);
|
||||
|
||||
if (__CARDVendorID == 0xffff || vendorID != __CARDVendorID) {
|
||||
result = CARD_RESULT_WRONGDEVICE;
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
|
||||
card->mountStep = 2;
|
||||
|
||||
result = __CARDEnableInterrupt(chan, TRUE);
|
||||
if (result < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
EXISetExiCallback(chan, __CARDExiHandler);
|
||||
EXIUnlock(chan);
|
||||
DCInvalidateRange(card->workArea, CARD_WORKAREA_SIZE);
|
||||
}
|
||||
|
||||
step = card->mountStep - 2;
|
||||
result = __CARDRead(chan, (u32)card->sectorSize * step, CARD_SYSTEM_BLOCK_SIZE,
|
||||
(u8*)card->workArea + (CARD_SYSTEM_BLOCK_SIZE * step), __CARDMountCallback);
|
||||
if (result < 0) {
|
||||
__CARDPutControlBlock(card, result);
|
||||
}
|
||||
return result;
|
||||
|
||||
error:
|
||||
EXIUnlock(chan);
|
||||
DoUnmount(chan, result);
|
||||
return result;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8035701C-80357154 35195C 0138+00 2/2 1/1 0/0 .text __CARDMountCallback */
|
||||
void __CARDMountCallback(s32 chan, s32 result) {
|
||||
@@ -266,7 +385,7 @@ s32 CARDMount(s32 chan, void* workArea, CARDCallback attachCb) {
|
||||
}
|
||||
|
||||
/* 8035733C-803573D8 351C7C 009C+00 2/2 0/0 0/0 .text DoUnmount */
|
||||
static void DoUnmount(s32 chan, s32 result) {
|
||||
static inline void DoUnmount(s32 chan, s32 result) {
|
||||
CARDControl* card;
|
||||
BOOL enabled;
|
||||
|
||||
@@ -284,11 +403,14 @@ static void DoUnmount(s32 chan, s32 result) {
|
||||
}
|
||||
|
||||
/* 803573D8-80357484 351D18 00AC+00 0/0 2/2 0/0 .text CARDUnmount */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 CARDUnmount(s32 chan) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDMount/CARDUnmount.s"
|
||||
s32 CARDUnmount(s32 chan) {
|
||||
CARDControl* card;
|
||||
s32 result;
|
||||
|
||||
result = __CARDGetControlBlock(chan, &card);
|
||||
if (result < 0) {
|
||||
return result;
|
||||
}
|
||||
DoUnmount(chan, CARD_RESULT_NOCARD);
|
||||
return CARD_RESULT_READY;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
@@ -12,10 +12,10 @@
|
||||
#include "dolphin/card/CARDPriv.h"
|
||||
|
||||
/* 80450A70 0002+00 data_80450A70 __CARDVendorID */
|
||||
SECTION_SDATA u16 __CARDVendorID = 0xFFFF;
|
||||
u16 __CARDVendorID = 0xFFFF;
|
||||
|
||||
/* 80450A72 0006+00 data_80450A72 None */
|
||||
SECTION_SDATA u8 data_80450A72 = 0x1C;
|
||||
u8 data_80450A72 = 0x1C;
|
||||
|
||||
/* 80359158-8035921C 353A98 00C4+00 0/0 1/1 0/0 .text CARDGetSerialNo */
|
||||
s32 CARDGetSerialNo(s32 chan, u64* serialNo) {
|
||||
|
||||
+105
-35
@@ -41,60 +41,130 @@ BOOL __CARDCompareFileName(CARDDir* ent, const char* fileName) {
|
||||
}
|
||||
|
||||
/* 80357CDC-80357D70 35261C 0094+00 2/2 0/0 0/0 .text __CARDAccess */
|
||||
#ifdef NONMATCHING
|
||||
s32 __CARDAccess(CARDControl* card, CARDDir* ent) {
|
||||
const DVDDiskID* diskId = card->diskID;
|
||||
if (ent->gameName[0] == 0xFF) {
|
||||
return CARD_RESULT_NOFILE;
|
||||
}
|
||||
|
||||
if (card->diskID == &__CARDDiskNone ||
|
||||
(memcmp(ent->gameName, card->diskID->game_name, 4) == 0 &&
|
||||
memcmp(ent->company, card->diskID->company, 2) == 0)) {
|
||||
if (diskId == &__CARDDiskNone ||
|
||||
(memcmp(ent->gameName, diskId->game_name, 4) == 0 &&
|
||||
memcmp(ent->company, diskId->company, 2) == 0)) {
|
||||
return CARD_RESULT_READY;
|
||||
}
|
||||
|
||||
return CARD_RESULT_NOPERM;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 __CARDAccess(CARDControl* card, CARDDir* ent) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDOpen/__CARDAccess.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80357D70-80357EA4 3526B0 0134+00 0/0 2/2 0/0 .text __CARDIsWritable */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 __CARDIsWritable(CARDControl* card, CARDDir* ent) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDOpen/__CARDIsWritable.s"
|
||||
s32 __CARDIsWritable(CARDControl* card, CARDDir* ent) {
|
||||
s32 retVal;
|
||||
const DVDDiskID* diskId = card->diskID;
|
||||
u8 val;
|
||||
if ((u8)ent->gameName[0] == 0xFFu) {
|
||||
retVal = CARD_RESULT_NOFILE;
|
||||
} else if (diskId == &__CARDDiskNone ||
|
||||
(memcmp(ent->gameName, diskId->game_name, 4) == 0 &&
|
||||
memcmp(ent->company, diskId->company, 2) == 0)) {
|
||||
retVal = CARD_RESULT_READY;
|
||||
} else {
|
||||
retVal = CARD_RESULT_NOPERM;
|
||||
}
|
||||
|
||||
if (retVal == CARD_RESULT_NOPERM) {
|
||||
val = ent->permission & data_80450A72;
|
||||
if (val & 0x20u && (memcmp(ent->gameName, __CARDDiskNone.game_name, 4) == 0 &&
|
||||
memcmp(ent->company, __CARDDiskNone.company, 2) == 0)) {
|
||||
return CARD_RESULT_READY;
|
||||
} else if (val & 0x40 && (memcmp(ent->gameName, __CARDDiskNone.game_name, 4) == 0 &&
|
||||
memcmp(ent->company, diskId->company, 2) == 0)) {
|
||||
return CARD_RESULT_READY;
|
||||
}
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80357EA4-80357F98 3527E4 00F4+00 0/0 2/2 0/0 .text __CARDIsReadable */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 __CARDIsReadable(CARDControl* card, CARDDir* ent) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDOpen/__CARDIsReadable.s"
|
||||
s32 __CARDIsReadable(CARDControl* card, CARDDir* ent) {
|
||||
u8 val;
|
||||
s32 retVal;
|
||||
const DVDDiskID* diskId = card->diskID;
|
||||
|
||||
retVal = __CARDAccess(card, ent);
|
||||
|
||||
if (retVal == CARD_RESULT_NOPERM) {
|
||||
val = ent->permission & data_80450A72;
|
||||
if (val & 0x20u && (memcmp(ent->gameName, __CARDDiskNone.game_name, 4) == 0 &&
|
||||
memcmp(ent->company, __CARDDiskNone.company, 2) == 0)) {
|
||||
retVal = CARD_RESULT_READY;
|
||||
} else if (val & 0x40 && (memcmp(ent->gameName, __CARDDiskNone.game_name, 4) == 0 &&
|
||||
memcmp(ent->company, diskId->company, 2) == 0)) {
|
||||
retVal = CARD_RESULT_READY;
|
||||
}
|
||||
}
|
||||
|
||||
if (retVal == CARD_RESULT_NOPERM && (ent->permission & 0x4)) {
|
||||
return CARD_RESULT_READY;
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
static inline s32 __CARDGetFileNo(CARDControl* card, const char* fileName, s32* pfileNo) {
|
||||
CARDDir* dir;
|
||||
CARDDir* ent;
|
||||
s32 fileNo;
|
||||
s32 result;
|
||||
|
||||
if (!card->attached) {
|
||||
return CARD_RESULT_NOCARD;
|
||||
}
|
||||
|
||||
dir = __CARDGetDirBlock(card);
|
||||
for (fileNo = 0; fileNo < CARD_MAX_FILE; fileNo++) {
|
||||
ent = &dir[fileNo];
|
||||
result = __CARDAccess(card, ent);
|
||||
if (result < 0) {
|
||||
continue;
|
||||
}
|
||||
if (__CARDCompareFileName(ent, fileName)) {
|
||||
*pfileNo = fileNo;
|
||||
return CARD_RESULT_READY;
|
||||
}
|
||||
}
|
||||
|
||||
return CARD_RESULT_NOFILE;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80357F98-803580B4 3528D8 011C+00 0/0 3/3 0/0 .text CARDOpen */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 CARDOpen(s32 chan, const char* fileName, CARDFileInfo* fileInfo) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDOpen/CARDOpen.s"
|
||||
s32 CARDOpen(s32 chan, const char* fileName, CARDFileInfo* fileInfo) {
|
||||
CARDControl* card;
|
||||
CARDDir* dir;
|
||||
CARDDir* ent;
|
||||
s32 result;
|
||||
s32 fileNo;
|
||||
|
||||
fileInfo->chan = -1;
|
||||
result = __CARDGetControlBlock(chan, &card);
|
||||
if (result < 0) {
|
||||
return result;
|
||||
}
|
||||
result = __CARDGetFileNo(card, fileName, &fileNo);
|
||||
if (0 <= result) {
|
||||
dir = __CARDGetDirBlock(card);
|
||||
ent = &dir[fileNo];
|
||||
if (!CARDIsValidBlockNo(card, ent->startBlock)) {
|
||||
result = CARD_RESULT_BROKEN;
|
||||
} else {
|
||||
fileInfo->chan = chan;
|
||||
fileInfo->fileNo = fileNo;
|
||||
fileInfo->offset = 0;
|
||||
fileInfo->iBlock = ent->startBlock;
|
||||
}
|
||||
}
|
||||
return __CARDPutControlBlock(card, result);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803580B4-80358108 3529F4 0054+00 0/0 3/3 0/0 .text CARDClose */
|
||||
s32 CARDClose(CARDFileInfo* fileInfo) {
|
||||
|
||||
@@ -74,14 +74,39 @@ s32 __CARDRead(s32 chan, u32 addr, s32 length, void* dst, CARDCallback callback)
|
||||
}
|
||||
|
||||
/* 803552C4-803553AC 34FC04 00E8+00 1/1 0/0 0/0 .text BlockWriteCallback */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void BlockWriteCallback(s32 chan, s32 result) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDRdwr/BlockWriteCallback.s"
|
||||
static void BlockWriteCallback(s32 chan, s32 result) {
|
||||
CARDCallback callback;
|
||||
CARDControl* card = &__CARDBlock[chan];
|
||||
|
||||
if (result < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
card->xferred += card->pageSize;
|
||||
|
||||
card->addr += card->pageSize;
|
||||
(u8*)card->buffer += card->pageSize;
|
||||
if (--card->repeat <= 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
result = __CARDWritePage(chan, BlockWriteCallback);
|
||||
if (result < 0) {
|
||||
goto error;
|
||||
}
|
||||
return;
|
||||
|
||||
error:
|
||||
if (card->apiCallback == 0) {
|
||||
__CARDPutControlBlock(card, result);
|
||||
}
|
||||
callback = card->xferCallback;
|
||||
if (callback) {
|
||||
card->xferCallback = 0;
|
||||
callback(chan, result);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
|
||||
/* 803553AC-80355414 34FCEC 0068+00 0/0 4/4 0/0 .text __CARDWrite */
|
||||
s32 __CARDWrite(s32 chan, u32 addr, s32 length, void* dst, CARDCallback callback) {
|
||||
|
||||
@@ -120,7 +120,6 @@ error:
|
||||
}
|
||||
|
||||
/* 80358788-803588CC 3530C8 0144+00 1/1 0/0 0/0 .text CARDReadAsync */
|
||||
#ifdef NONMATCHING
|
||||
s32 CARDReadAsync(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset,
|
||||
CARDCallback callback) {
|
||||
CARDControl* card;
|
||||
@@ -138,10 +137,7 @@ s32 CARDReadAsync(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset,
|
||||
|
||||
dir = __CARDGetDirBlock(card);
|
||||
ent = &dir[fileInfo->fileNo];
|
||||
result = __CARDAccess(card, ent);
|
||||
if (result == CARD_RESULT_NOPERM) {
|
||||
result = __CARDIsWritable(ent);
|
||||
}
|
||||
result = __CARDIsReadable(card, ent);
|
||||
|
||||
if (result < 0) {
|
||||
return __CARDPutControlBlock(card, result);
|
||||
@@ -159,17 +155,6 @@ s32 CARDReadAsync(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset,
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm s32 CARDReadAsync(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset,
|
||||
CARDCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDRead/CARDReadAsync.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803588CC-80358914 35320C 0048+00 0/0 2/2 0/0 .text CARDRead */
|
||||
s32 CARDRead(CARDFileInfo* fileInfo, void* buf, s32 length, s32 offset) {
|
||||
|
||||
@@ -17,7 +17,7 @@ static void UpdateIconOffsets(CARDDir* ent, CARDStat* stat);
|
||||
// External References:
|
||||
//
|
||||
|
||||
SECTION_INIT void memcpy();
|
||||
void memcpy();
|
||||
void __div2i();
|
||||
|
||||
//
|
||||
@@ -84,7 +84,6 @@ static void UpdateIconOffsets(CARDDir* ent, CARDStat* stat) {
|
||||
}
|
||||
|
||||
/* 80358E88-80358F9C 3537C8 0114+00 0/0 2/2 0/0 .text CARDGetStatus */
|
||||
#ifdef NONMATCHING
|
||||
s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat* stat) {
|
||||
CARDControl* card;
|
||||
CARDDir* dir;
|
||||
@@ -101,10 +100,7 @@ s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat* stat) {
|
||||
|
||||
dir = __CARDGetDirBlock(card);
|
||||
ent = &dir[fileNo];
|
||||
result = __CARDAccess(card, ent);
|
||||
if (result == CARD_RESULT_NOPERM) {
|
||||
result = __CARDIsWritable(ent);
|
||||
}
|
||||
result = __CARDIsReadable(card, ent);
|
||||
|
||||
if (result >= 0) {
|
||||
memcpy(stat->gameName, ent->gameName, sizeof(stat->gameName));
|
||||
@@ -123,19 +119,8 @@ s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat* stat) {
|
||||
}
|
||||
return __CARDPutControlBlock(card, result);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat* stat) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDStat/CARDGetStatus.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80358F9C-80359110 3538DC 0174+00 1/1 0/0 0/0 .text CARDSetStatusAsync */
|
||||
#ifdef NONMATCHING
|
||||
s32 CARDSetStatusAsync(s32 chan, s32 fileNo, CARDStat* stat, CARDCallback callback) {
|
||||
CARDControl* card;
|
||||
CARDDir* dir;
|
||||
@@ -155,7 +140,7 @@ s32 CARDSetStatusAsync(s32 chan, s32 fileNo, CARDStat* stat, CARDCallback callba
|
||||
|
||||
dir = __CARDGetDirBlock(card);
|
||||
ent = &dir[fileNo];
|
||||
result = __CARDAccess(card, ent);
|
||||
result = __CARDIsWritable(card, ent);
|
||||
if (result < 0) {
|
||||
return __CARDPutControlBlock(card, result);
|
||||
}
|
||||
@@ -178,16 +163,6 @@ s32 CARDSetStatusAsync(s32 chan, s32 fileNo, CARDStat* stat, CARDCallback callba
|
||||
}
|
||||
return result;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm s32 CARDSetStatusAsync(s32 chan, s32 fileNo, CARDStat* stat, CARDCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDStat/CARDSetStatusAsync.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80359110-80359158 353A50 0048+00 0/0 1/1 0/0 .text CARDSetStatus */
|
||||
s32 CARDSetStatus(s32 chan, s32 fileNo, CARDStat* stat) {
|
||||
|
||||
+295
-32
@@ -26,7 +26,7 @@ static void DoneCallback(void* _task);
|
||||
// External References:
|
||||
//
|
||||
|
||||
SECTION_INIT void memset();
|
||||
void memset();
|
||||
void DSPAddTask();
|
||||
void DSPSendMailToDSP();
|
||||
|
||||
@@ -100,15 +100,47 @@ static s32 ReadArrayUnlock(s32 chan, u32 data, void* rbuf, s32 rlen, s32 mode) {
|
||||
/* 80450A68-80450A70 0004E8 0004+04 2/2 0/0 0/0 .sdata next */
|
||||
static unsigned long int next = 1;
|
||||
|
||||
/* 803541D4-80354298 34EB14 00C4+00 2/2 0/0 0/0 .text DummyLen */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm s32 DummyLen(void) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDUnlock/DummyLen.s"
|
||||
static inline int CARDRand(void) {
|
||||
next = next * 1103515245 + 12345;
|
||||
return (int)((unsigned int)(next / 65536) % 32768);
|
||||
}
|
||||
|
||||
static inline void CARDSrand(unsigned int seed) { next = seed; }
|
||||
|
||||
/* 803541D4-80354298 34EB14 00C4+00 2/2 0/0 0/0 .text DummyLen */
|
||||
static s32 DummyLen(void) {
|
||||
u32 tick;
|
||||
u32 wk;
|
||||
s32 tmp;
|
||||
u32 max;
|
||||
|
||||
wk = 1;
|
||||
max = 0;
|
||||
tick = OSGetTick();
|
||||
CARDSrand(tick);
|
||||
|
||||
tmp = CARDRand();
|
||||
tmp &= 0x0000001f;
|
||||
tmp += 1;
|
||||
while ((tmp < 4) && (max < 10)) {
|
||||
tick = OSGetTick();
|
||||
tmp = (s32)(tick << wk);
|
||||
wk++;
|
||||
if (wk > 16) {
|
||||
wk = 1;
|
||||
}
|
||||
CARDSrand((u32)tmp);
|
||||
tmp = CARDRand();
|
||||
tmp &= 0x0000001f;
|
||||
tmp += 1;
|
||||
max++;
|
||||
}
|
||||
if (tmp < 4) {
|
||||
tmp = 4;
|
||||
}
|
||||
|
||||
return tmp;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803D1EA0-803D2000 02EFC0 0160+00 1/1 0/0 0/0 .data CardData */
|
||||
@@ -137,32 +169,263 @@ SECTION_DATA static u8 CardData[352] ALIGN_DECL(32) = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 80354298-80354DF0 34EBD8 0B58+00 0/0 1/1 0/0 .text __CARDUnlock */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 __CARDUnlock(s32 chan, u8 flashID[12]) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDUnlock/__CARDUnlock.s"
|
||||
typedef struct DecodeParameters {
|
||||
u8* inputAddr;
|
||||
u32 inputLength;
|
||||
u32 aramAddr;
|
||||
u8* outputAddr;
|
||||
} DecodeParameters;
|
||||
|
||||
static inline u32 GetInitVal(void) {
|
||||
u32 tmp;
|
||||
u32 tick;
|
||||
|
||||
tick = OSGetTick();
|
||||
CARDSrand(tick);
|
||||
tmp = 0x7fec8000;
|
||||
tmp |= CARDRand();
|
||||
tmp &= 0xfffff000;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
static inline u32 exnor_1st(u32 data, u32 rshift) {
|
||||
u32 wk;
|
||||
u32 w;
|
||||
u32 i;
|
||||
|
||||
w = data;
|
||||
for (i = 0; i < rshift; i++) {
|
||||
wk = ~(w ^ (w >> 7) ^ (w >> 15) ^ (w >> 23));
|
||||
w = (w >> 1) | ((wk << 30) & 0x40000000);
|
||||
}
|
||||
return w;
|
||||
}
|
||||
|
||||
static inline u32 exnor(u32 data, u32 lshift) {
|
||||
u32 wk;
|
||||
u32 w;
|
||||
u32 i;
|
||||
|
||||
w = data;
|
||||
for (i = 0; i < lshift; i++) {
|
||||
// 1bit Left Shift
|
||||
wk = ~(w ^ (w << 7) ^ (w << 15) ^ (w << 23));
|
||||
w = (w << 1) | ((wk >> 30) & 0x00000002);
|
||||
// printf("i=%d, w=%8x\n", i, w);
|
||||
}
|
||||
return w;
|
||||
}
|
||||
|
||||
/* 80354298-80354DF0 34EBD8 0B58+00 0/0 1/1 0/0 .text __CARDUnlock */
|
||||
s32 __CARDUnlock(s32 chan, u8 flashID[12]) {
|
||||
u32 init_val;
|
||||
u32 data;
|
||||
|
||||
s32 dummy;
|
||||
s32 rlen;
|
||||
u32 rshift;
|
||||
|
||||
u8 fsts;
|
||||
u32 wk, wk1;
|
||||
u32 Ans1 = 0;
|
||||
u32 Ans2 = 0;
|
||||
u32* dp;
|
||||
u8 rbuf[64];
|
||||
u32 para1A = 0;
|
||||
u32 para1B = 0;
|
||||
u32 para2A = 0;
|
||||
u32 para2B = 0;
|
||||
|
||||
CARDControl* card;
|
||||
DSPTaskInfo* task;
|
||||
DecodeParameters* param;
|
||||
u8* input;
|
||||
u8* output;
|
||||
|
||||
card = &__CARDBlock[chan];
|
||||
task = &card->task;
|
||||
param = (DecodeParameters*)card->workArea;
|
||||
input = (u8*)((u8*)param + sizeof(DecodeParameters));
|
||||
input = (u8*)OSRoundUp32B(input);
|
||||
output = input + 32;
|
||||
|
||||
fsts = 0;
|
||||
init_val = GetInitVal();
|
||||
|
||||
dummy = DummyLen();
|
||||
rlen = dummy;
|
||||
if (ReadArrayUnlock(chan, init_val, rbuf, rlen, 0) < 0) {
|
||||
return CARD_RESULT_NOCARD;
|
||||
}
|
||||
|
||||
rshift = (u32)(dummy * 8 + 1);
|
||||
wk = exnor_1st(init_val, rshift);
|
||||
wk1 = ~(wk ^ (wk >> 7) ^ (wk >> 15) ^ (wk >> 23));
|
||||
card->scramble = (wk | ((wk1 << 31) & 0x80000000));
|
||||
card->scramble = bitrev(card->scramble);
|
||||
dummy = DummyLen();
|
||||
rlen = 20 + dummy;
|
||||
data = 0;
|
||||
if (ReadArrayUnlock(chan, data, rbuf, rlen, 1) < 0) {
|
||||
return CARD_RESULT_NOCARD;
|
||||
}
|
||||
dp = (u32*)rbuf;
|
||||
para1A = *dp++;
|
||||
para1B = *dp++;
|
||||
Ans1 = *dp++;
|
||||
para2A = *dp++;
|
||||
para2B = *dp++;
|
||||
para1A = (para1A ^ card->scramble);
|
||||
rshift = 32;
|
||||
wk = exnor(card->scramble, rshift);
|
||||
wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23));
|
||||
card->scramble = (wk | ((wk1 >> 31) & 0x00000001));
|
||||
para1B = (para1B ^ card->scramble);
|
||||
rshift = 32;
|
||||
wk = exnor(card->scramble, rshift);
|
||||
wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23));
|
||||
card->scramble = (wk | ((wk1 >> 31) & 0x00000001));
|
||||
Ans1 ^= card->scramble;
|
||||
rshift = 32;
|
||||
wk = exnor(card->scramble, rshift);
|
||||
wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23));
|
||||
card->scramble = (wk | ((wk1 >> 31) & 0x00000001));
|
||||
para2A = (para2A ^ card->scramble);
|
||||
rshift = 32;
|
||||
wk = exnor(card->scramble, rshift);
|
||||
wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23));
|
||||
card->scramble = (wk | ((wk1 >> 31) & 0x00000001));
|
||||
para2B = (para2B ^ card->scramble);
|
||||
rshift = (u32)(dummy * 8);
|
||||
wk = exnor(card->scramble, rshift);
|
||||
wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23));
|
||||
card->scramble = (wk | ((wk1 >> 31) & 0x00000001));
|
||||
rshift = 32 + 1;
|
||||
wk = exnor(card->scramble, rshift);
|
||||
wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23));
|
||||
card->scramble = (wk | ((wk1 >> 31) & 0x00000001));
|
||||
|
||||
*(u32*)&input[0] = para2A;
|
||||
*(u32*)&input[4] = para2B;
|
||||
|
||||
param->inputAddr = input;
|
||||
param->inputLength = 8;
|
||||
param->outputAddr = output;
|
||||
param->aramAddr = 0;
|
||||
|
||||
DCFlushRange(input, 8);
|
||||
DCInvalidateRange(output, 4);
|
||||
DCFlushRange(param, sizeof(DecodeParameters));
|
||||
|
||||
task->priority = 255;
|
||||
task->iram_mmem_addr = (u16*)OSPhysicalToCached(CardData);
|
||||
task->iram_length = 0x160;
|
||||
task->iram_addr = 0;
|
||||
task->dsp_init_vector = 0x10;
|
||||
task->init_cb = InitCallback;
|
||||
task->res_cb = NULL;
|
||||
task->done_cb = DoneCallback;
|
||||
task->req_cb = NULL;
|
||||
DSPAddTask(task);
|
||||
|
||||
dp = (u32*)flashID;
|
||||
*dp++ = para1A;
|
||||
*dp++ = para1B;
|
||||
*dp = Ans1;
|
||||
|
||||
return CARD_RESULT_READY;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80354DF0-80354E60 34F730 0070+00 1/1 0/0 0/0 .text InitCallback */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void InitCallback(void* _task) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDUnlock/InitCallback.s"
|
||||
static void InitCallback(void* _task) {
|
||||
s32 chan;
|
||||
CARDControl* card;
|
||||
DSPTaskInfo* task;
|
||||
DecodeParameters* param;
|
||||
|
||||
task = _task;
|
||||
for (chan = 0; chan < 2; ++chan) {
|
||||
card = &__CARDBlock[chan];
|
||||
if ((DSPTaskInfo*)&card->task == task) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
param = (DecodeParameters*)card->workArea;
|
||||
|
||||
DSPSendMailToDSP(0xff000000);
|
||||
while (DSPCheckMailToDSP())
|
||||
;
|
||||
|
||||
DSPSendMailToDSP((u32)param);
|
||||
while (DSPCheckMailToDSP())
|
||||
;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80354E60-80355184 34F7A0 0324+00 1/1 0/0 0/0 .text DoneCallback */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void DoneCallback(void* _task) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDUnlock/DoneCallback.s"
|
||||
}
|
||||
#pragma pop
|
||||
static void DoneCallback(void* _task) {
|
||||
u8 rbuf[64];
|
||||
u32 data;
|
||||
s32 dummy;
|
||||
s32 rlen;
|
||||
u32 rshift;
|
||||
|
||||
u8 unk;
|
||||
u32 wk, wk1;
|
||||
u32 Ans2;
|
||||
|
||||
s32 chan;
|
||||
CARDControl* card;
|
||||
s32 result;
|
||||
DSPTaskInfo* task;
|
||||
DecodeParameters* param;
|
||||
|
||||
u8* input;
|
||||
u8* output;
|
||||
task = _task;
|
||||
for (chan = 0; chan < 2; ++chan) {
|
||||
card = &__CARDBlock[chan];
|
||||
if ((DSPTaskInfo*)&card->task == task) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
param = (DecodeParameters*)card->workArea;
|
||||
input = (u8*)((u8*)param + sizeof(DecodeParameters));
|
||||
input = (u8*)OSRoundUp32B(input);
|
||||
output = input + 32;
|
||||
|
||||
Ans2 = *(u32*)output;
|
||||
dummy = DummyLen();
|
||||
rlen = dummy;
|
||||
data = ((Ans2 ^ card->scramble) & 0xffff0000);
|
||||
if (ReadArrayUnlock(chan, data, rbuf, rlen, 1) < 0) {
|
||||
EXIUnlock(chan);
|
||||
__CARDMountCallback(chan, CARD_RESULT_NOCARD);
|
||||
return;
|
||||
}
|
||||
|
||||
rshift = (u32)((dummy + 4 + card->latency) * 8 + 1);
|
||||
wk = exnor(card->scramble, rshift);
|
||||
wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23));
|
||||
card->scramble = (wk | ((wk1 >> 31) & 0x00000001));
|
||||
|
||||
dummy = DummyLen();
|
||||
rlen = dummy;
|
||||
data = (((Ans2 << 16) ^ card->scramble) & 0xffff0000);
|
||||
if (ReadArrayUnlock(chan, data, rbuf, rlen, 1) < 0) {
|
||||
EXIUnlock(chan);
|
||||
__CARDMountCallback(chan, CARD_RESULT_NOCARD);
|
||||
return;
|
||||
}
|
||||
result = __CARDReadStatus(chan, &unk);
|
||||
if (!EXIProbe(chan)) {
|
||||
EXIUnlock(chan);
|
||||
__CARDMountCallback(chan, CARD_RESULT_NOCARD);
|
||||
return;
|
||||
}
|
||||
if (result == CARD_RESULT_READY && !(unk & 0x40)) {
|
||||
EXIUnlock(chan);
|
||||
result = CARD_RESULT_IOERROR;
|
||||
}
|
||||
__CARDMountCallback(chan, result);
|
||||
}
|
||||
@@ -29,24 +29,81 @@ void __div2i();
|
||||
//
|
||||
|
||||
/* 80358914-80358A84 353254 0170+00 1/1 0/0 0/0 .text WriteCallback */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void WriteCallback(s32 chan, s32 result) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDWrite/WriteCallback.s"
|
||||
static void WriteCallback(s32 chan, s32 result) {
|
||||
CARDControl* card;
|
||||
CARDCallback callback;
|
||||
u16* fat;
|
||||
CARDDir* dir;
|
||||
CARDDir* ent;
|
||||
CARDFileInfo* fileInfo;
|
||||
|
||||
card = &__CARDBlock[chan];
|
||||
if (result < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
fileInfo = card->fileInfo;
|
||||
if (fileInfo->length < 0) {
|
||||
result = CARD_RESULT_CANCELED;
|
||||
goto error;
|
||||
}
|
||||
|
||||
fileInfo->length -= card->sectorSize;
|
||||
if (fileInfo->length <= 0) {
|
||||
dir = __CARDGetDirBlock(card);
|
||||
ent = &dir[fileInfo->fileNo];
|
||||
ent->time = (u32)OSTicksToSeconds(OSGetTime());
|
||||
callback = card->apiCallback;
|
||||
card->apiCallback = 0;
|
||||
result = __CARDUpdateDir(chan, callback);
|
||||
} else {
|
||||
fat = __CARDGetFatBlock(card);
|
||||
fileInfo->offset += card->sectorSize;
|
||||
fileInfo->iBlock = fat[fileInfo->iBlock];
|
||||
if (!CARDIsValidBlockNo(card, fileInfo->iBlock)) {
|
||||
result = CARD_RESULT_BROKEN;
|
||||
goto error;
|
||||
}
|
||||
result = __CARDEraseSector(chan, card->sectorSize * (u32)fileInfo->iBlock, EraseCallback);
|
||||
}
|
||||
|
||||
if (result < 0) {
|
||||
goto error;
|
||||
}
|
||||
return;
|
||||
|
||||
error:
|
||||
callback = card->apiCallback;
|
||||
card->apiCallback = 0;
|
||||
__CARDPutControlBlock(card, result);
|
||||
callback(chan, result);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80358A84-80358B34 3533C4 00B0+00 2/2 0/0 0/0 .text EraseCallback */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void EraseCallback(s32 chan, s32 result) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDWrite/EraseCallback.s"
|
||||
static void EraseCallback(s32 chan, s32 result) {
|
||||
CARDControl* card;
|
||||
CARDCallback callback;
|
||||
CARDFileInfo* fileInfo;
|
||||
|
||||
card = &__CARDBlock[chan];
|
||||
if (result < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
fileInfo = card->fileInfo;
|
||||
result = __CARDWrite(chan, card->sectorSize * (u32)fileInfo->iBlock, card->sectorSize,
|
||||
card->buffer, WriteCallback);
|
||||
if (result < 0) {
|
||||
goto error;
|
||||
}
|
||||
return;
|
||||
|
||||
error:
|
||||
callback = card->apiCallback;
|
||||
card->apiCallback = 0;
|
||||
__CARDPutControlBlock(card, result);
|
||||
callback(chan, result);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80358B34-80358C48 353474 0114+00 1/1 0/0 0/0 .text CARDWriteAsync */
|
||||
s32 CARDWriteAsync(CARDFileInfo* fileInfo, const void* buf, s32 length, s32 offset,
|
||||
|
||||
@@ -34,12 +34,15 @@ LIBCARD_A_O_FILES := \
|
||||
$(BUILD_DIR)/libs/dolphin/card/CARDStat.o \
|
||||
$(BUILD_DIR)/libs/dolphin/card/CARDNet.o \
|
||||
|
||||
LIBCARD_A_CFLAGS := \
|
||||
NO_INLINE_FILES = libs/dolphin/card/CARDOpen.c
|
||||
|
||||
LIBCARD_A_CFLAGS = \
|
||||
-Cpp_exceptions off \
|
||||
-proc gekko \
|
||||
-fp hard \
|
||||
-nodefaults \
|
||||
-str reuse \
|
||||
$(if $(filter $(NO_INLINE_FILES), $<),,-inline auto) \
|
||||
-RTTI off \
|
||||
-maxerrors 5 \
|
||||
-enum int $(INCLUDES) \
|
||||
@@ -61,10 +64,11 @@ $(BUILD_DIR)/libs/dolphin/card/%.o: libs/dolphin/card/%.c $(BUILD_DIR)/libs/dolp
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
|
||||
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBCARD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@$(FRANK_CC) $(LIBCARD_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c
|
||||
@$(DOLPHIN_LIB_CC) $(LIBCARD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
|
||||
@echo Frank is fixing $@
|
||||
@$(PYTHON) $(FRANK) $@ $@ $@
|
||||
@$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@
|
||||
|
||||
ifndef DISABLE_DEPS
|
||||
LIBCARD_A_D_FILES := $(LIBCARD_A_O_FILES:.o=.d)
|
||||
|
||||
@@ -35,7 +35,7 @@ $(BUILD_DIR)/libs/dolphin/db/%.o: libs/dolphin/db/%.c $(BUILD_DIR)/libs/dolphin/
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
|
||||
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBDB_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@$(DOLPHIN_LIB_CC) $(LIBDB_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
|
||||
@echo Frank is fixing $@
|
||||
@$(PYTHON) $(FRANK) $@ $@ $@
|
||||
|
||||
@@ -39,7 +39,7 @@ $(BUILD_DIR)/libs/dolphin/dsp/%.o: libs/dolphin/dsp/%.c $(BUILD_DIR)/libs/dolphi
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
|
||||
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBDSP_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@$(DOLPHIN_LIB_CC) $(LIBDSP_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
|
||||
@echo Frank is fixing $@
|
||||
@$(PYTHON) $(FRANK) $@ $@ $@
|
||||
|
||||
@@ -28,6 +28,7 @@ LIBDVD_A_CFLAGS := \
|
||||
-fp hard \
|
||||
-nodefaults \
|
||||
-str reuse \
|
||||
-inline auto \
|
||||
-RTTI off \
|
||||
-maxerrors 5 \
|
||||
-enum int $(INCLUDES) \
|
||||
@@ -49,10 +50,11 @@ $(BUILD_DIR)/libs/dolphin/dvd/%.o: libs/dolphin/dvd/%.c $(BUILD_DIR)/libs/dolphi
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
|
||||
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBDVD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@$(FRANK_CC) $(LIBDVD_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c
|
||||
@$(DOLPHIN_LIB_CC) $(LIBDVD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
|
||||
@echo Frank is fixing $@
|
||||
@$(PYTHON) $(FRANK) $@ $@ $@
|
||||
@$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@
|
||||
|
||||
ifndef DISABLE_DEPS
|
||||
LIBDVD_A_D_FILES := $(LIBDVD_A_O_FILES:.o=.d)
|
||||
|
||||
+370
-194
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "dolphin/dvd/dvd.h"
|
||||
#include "dolphin/dvd/dvdlow.h"
|
||||
#include "MSL_C/MSL_Common/Src/mem.h"
|
||||
#include "MSL_C/MSL_Common/Src/string.h"
|
||||
#include "dol2asm.h"
|
||||
@@ -64,7 +65,7 @@ void DVDLowRequestAudioStatus();
|
||||
void DVDLowAudioBufferConfig();
|
||||
void DVDLowReset();
|
||||
void DVDLowBreak();
|
||||
void DVDLowClearCallback();
|
||||
DVDLowCallback DVDLowClearCallback();
|
||||
BOOL __DVDLowTestAlarm(OSAlarm* alarm);
|
||||
void __DVDFSInit();
|
||||
void __DVDClearWaitingQueue();
|
||||
@@ -86,7 +87,7 @@ extern OSThreadQueue __DVDThreadQueue;
|
||||
static void defaultOptionalCommandChecker() {}
|
||||
|
||||
/* 804509E8-804509EC -00001 0004+00 1/1 0/0 0/0 .sdata __DVDVersion */
|
||||
SECTION_SDATA static char* __DVDVersion = "<< Dolphin SDK - DVD\trelease build: Apr 5 2004 04:14:51 (0x2301) >>";
|
||||
static char* __DVDVersion = "<< Dolphin SDK - DVD\trelease build: Apr 5 2004 04:14:51 (0x2301) >>";
|
||||
|
||||
/* 80451778-8045177C 000C78 0004+00 24/24 0/0 0/0 .sbss executing */
|
||||
static DVDCommandBlock* executing;
|
||||
@@ -173,34 +174,33 @@ void DVDInit(void) {
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803D1574-803D15A8 02E694 0034+00 2/2 0/0 0/0 .data @24 */
|
||||
SECTION_DATA static char lit_24[] = "DVDChangeDisk(): FST in the new disc is too big. ";
|
||||
|
||||
/* 8044C900-8044C920 079620 0020+00 8/8 0/0 0/0 .bss BB2 */
|
||||
static DVDBB2 BB2 ALIGN_DECL(32);
|
||||
|
||||
/* 804509EC-804509F0 00046C 0004+00 6/6 0/0 0/0 .sdata autoInvalidation */
|
||||
SECTION_SDATA static u32 autoInvalidation = 0x00000001;
|
||||
static BOOL autoInvalidation = TRUE;
|
||||
|
||||
/* 804509F0-804509F4 -00001 0004+00 1/1 0/0 0/0 .sdata checkOptionalCommand */
|
||||
SECTION_SDATA static DVDOptionalCommandChecker checkOptionalCommand = defaultOptionalCommandChecker;
|
||||
static DVDOptionalCommandChecker checkOptionalCommand = defaultOptionalCommandChecker;
|
||||
|
||||
/* 804509F4-804509FC 000474 0006+02 2/2 0/0 0/0 .sdata @23 */
|
||||
SECTION_SDATA static char lit_23[] = "dvd.c";
|
||||
|
||||
typedef void (*stateFunc)(DVDCommandBlock* block);
|
||||
/* 804517C0-804517C8 000CC0 0004+04 6/6 0/0 0/0 .sbss LastState */
|
||||
/* 804517C0-804517C8 000CC0 0004+04 6/6 0/0 0/0 .sbss "dvd.c" LastState */
|
||||
static stateFunc LastState;
|
||||
|
||||
/* 803491C8-8034925C 343B08 0094+00 1/1 0/0 0/0 .text stateReadingFST */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void stateReadingFST(void) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/dvd/dvd/stateReadingFST.s"
|
||||
void stateReadingFST() {
|
||||
LastState = (stateFunc)stateReadingFST;
|
||||
|
||||
if (bootInfo->fst_max_length < BB2.FSTLength) {
|
||||
OSPanic("dvd.c", 661, "DVDChangeDisk(): FST in the new disc is too big. ");
|
||||
}
|
||||
|
||||
DVDLowRead(bootInfo->fst_location, OSRoundUp32B(BB2.FSTLength), BB2.FSTPosition,
|
||||
cbForStateReadingFST);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8044C920-8044C940 079640 0020+00 2/3 0/0 0/0 .bss CurrDiskID */
|
||||
@@ -235,6 +235,11 @@ static void cbForStateReadingFST(u32 intType) {
|
||||
}
|
||||
}
|
||||
|
||||
inline static void stateError(u32 error) {
|
||||
__DVDStoreErrorCode(error);
|
||||
DVDLowStopMotor(cbForStateError);
|
||||
}
|
||||
|
||||
/* 803492DC-80349388 343C1C 00AC+00 12/12 0/0 0/0 .text cbForStateError */
|
||||
static void cbForStateError(u32 intType) {
|
||||
DVDCommandBlock* finished;
|
||||
@@ -264,7 +269,7 @@ static void cbForStateError(u32 intType) {
|
||||
}
|
||||
|
||||
/* 80349388-803493BC 343CC8 0034+00 2/2 0/0 0/0 .text stateTimeout */
|
||||
static void stateTimeout(void) {
|
||||
static inline void stateTimeout(void) {
|
||||
__DVDStoreErrorCode(0x1234568);
|
||||
DVDReset();
|
||||
cbForStateError(0);
|
||||
@@ -344,8 +349,7 @@ static void cbForStateGettingError(u32 intType) {
|
||||
}
|
||||
|
||||
if (intType & 2) {
|
||||
__DVDStoreErrorCode(0x1234567);
|
||||
DVDLowStopMotor(cbForStateError);
|
||||
stateError(0x1234567);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -355,8 +359,7 @@ static void cbForStateGettingError(u32 intType) {
|
||||
errorCategory = CategorizeError(error);
|
||||
|
||||
if (errorCategory == 1) {
|
||||
__DVDStoreErrorCode(error);
|
||||
DVDLowStopMotor(cbForStateError);
|
||||
stateError(error);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -404,8 +407,7 @@ static void cbForStateGettingError(u32 intType) {
|
||||
stateMotorStopped();
|
||||
return;
|
||||
} else {
|
||||
__DVDStoreErrorCode(0x1234567);
|
||||
DVDLowStopMotor(cbForStateError);
|
||||
stateError(0x1234567);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -437,13 +439,11 @@ static void cbForUnrecoveredErrorRetry(u32 intType) {
|
||||
}
|
||||
|
||||
if (intType & 2) {
|
||||
__DVDStoreErrorCode(0x1234567);
|
||||
DVDLowStopMotor(cbForStateError);
|
||||
stateError(0x1234567);
|
||||
return;
|
||||
}
|
||||
|
||||
__DVDStoreErrorCode(__DIRegs[8]);
|
||||
DVDLowStopMotor(cbForStateError);
|
||||
stateError(__DIRegs[8]);
|
||||
}
|
||||
|
||||
/* 803497D8-80349800 344118 0028+00 2/2 0/0 0/0 .text stateGoToRetry */
|
||||
@@ -461,8 +461,7 @@ static void cbForStateGoToRetry(u32 intType) {
|
||||
}
|
||||
|
||||
if (intType & 2) {
|
||||
__DVDStoreErrorCode(0x1234567);
|
||||
DVDLowStopMotor(cbForStateError);
|
||||
stateError(0x1234567);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -549,8 +548,7 @@ static void cbForStateCheckID1(u32 intType) {
|
||||
}
|
||||
|
||||
if (intType & 2) {
|
||||
__DVDStoreErrorCode(0x1234567);
|
||||
DVDLowStopMotor(cbForStateError);
|
||||
stateError(0x1234567);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -563,14 +561,29 @@ static void cbForStateCheckID1(u32 intType) {
|
||||
}
|
||||
|
||||
/* 80349C24-80349CFC 344564 00D8+00 1/1 0/0 0/0 .text cbForStateCheckID2 */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void cbForStateCheckID2(u32 intType) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/dvd/dvd/cbForStateCheckID2.s"
|
||||
|
||||
static void cbForStateCheckID2(u32 intType) {
|
||||
if (intType == 16) {
|
||||
stateTimeout();
|
||||
return;
|
||||
}
|
||||
|
||||
if (intType & 1) {
|
||||
NumInternalRetry = 0;
|
||||
|
||||
LastState = (stateFunc)stateReadingFST;
|
||||
|
||||
if (bootInfo->fst_max_length < BB2.FSTLength) {
|
||||
OSPanic("dvd.c", 661, "DVDChangeDisk(): FST in the new disc is too big. ");
|
||||
}
|
||||
|
||||
DVDLowRead(bootInfo->fst_location, OSRoundUp32B(BB2.FSTLength), BB2.FSTPosition,
|
||||
cbForStateReadingFST);
|
||||
|
||||
} else {
|
||||
stateGettingError();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80349CFC-80349DEC 34463C 00F0+00 1/1 0/0 0/0 .text cbForStateCheckID3 */
|
||||
static void cbForStateCheckID3(u32 intType) {
|
||||
@@ -655,7 +668,7 @@ static void cbForStateCoverClosed(u32 intType) {
|
||||
}
|
||||
|
||||
/* 80349F98-80349FC0 3448D8 0028+00 3/3 0/0 0/0 .text stateMotorStopped */
|
||||
static void stateMotorStopped(void) {
|
||||
static inline void stateMotorStopped(void) {
|
||||
DVDLowWaitCoverClose(cbForStateMotorStopped);
|
||||
}
|
||||
|
||||
@@ -667,7 +680,6 @@ static void cbForStateMotorStopped(u32 intType) {
|
||||
}
|
||||
|
||||
/* 8034A0AC-8034A394 3449EC 02E8+00 18/18 0/0 0/0 .text stateReady */
|
||||
#ifdef NONMATCHING
|
||||
static void stateReady() {
|
||||
DVDCommandBlock* finished;
|
||||
|
||||
@@ -699,51 +711,38 @@ static void stateReady() {
|
||||
|
||||
if (ResumeFromHere) {
|
||||
switch (ResumeFromHere) {
|
||||
case 1:
|
||||
executing->state = 1;
|
||||
stateCoverClosed();
|
||||
break;
|
||||
case 2:
|
||||
executing->state = 11;
|
||||
stateMotorStopped();
|
||||
break;
|
||||
|
||||
case 3:
|
||||
executing->state = 4;
|
||||
stateMotorStopped();
|
||||
break;
|
||||
|
||||
case 4:
|
||||
executing->state = 5;
|
||||
stateMotorStopped();
|
||||
break;
|
||||
case 7:
|
||||
case 6:
|
||||
case 1:
|
||||
executing->state = 3;
|
||||
stateCoverClosed();
|
||||
break;
|
||||
|
||||
case 5:
|
||||
executing->state = -1;
|
||||
stateError(CancelLastError);
|
||||
break;
|
||||
}
|
||||
|
||||
ResumeFromHere = 0;
|
||||
} else {
|
||||
executing->state = 1;
|
||||
stateBusy(executing);
|
||||
if (MotorState == 0) {
|
||||
executing->state = 1;
|
||||
stateBusy(executing);
|
||||
} else {
|
||||
stateCoverClosed();
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void stateReady(void) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/dvd/dvd/stateReady.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8034A394-8034A6D4 344CD4 0340+00 4/3 0/0 0/0 .text stateBusy */
|
||||
#define MIN(a, b) (((a) > (b)) ? (b) : (a))
|
||||
@@ -844,15 +843,193 @@ static u32 ImmCommand[] = {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF};
|
||||
/* 804509FC-80450A00 00047C 0004+00 1/1 0/0 0/0 .sdata DmaCommand */
|
||||
SECTION_SDATA static u32 DmaCommand[] = {0xFFFFFFFF};
|
||||
|
||||
/* 8034A6D4-8034AD2C 345014 0658+00 1/1 0/0 0/0 .text cbForStateBusy */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void cbForStateBusy(u32 intType) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/dvd/dvd/cbForStateBusy.s"
|
||||
inline static BOOL IsImmCommandWithResult(u32 command) {
|
||||
u32 i;
|
||||
|
||||
if (command == 9 || command == 10 || command == 11 || command == 12) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
for (i = 0; i < sizeof(ImmCommand) / sizeof(ImmCommand[0]); i++) {
|
||||
if (command == ImmCommand[i])
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
inline static BOOL IsDmaCommand(u32 command) {
|
||||
u32 i;
|
||||
|
||||
if (command == 1 || command == 4 || command == 5 || command == 14)
|
||||
return TRUE;
|
||||
|
||||
for (i = 0; i < sizeof(DmaCommand) / sizeof(DmaCommand[0]); i++) {
|
||||
if (command == DmaCommand[i])
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 8034A6D4-8034AD2C 345014 0658+00 1/1 0/0 0/0 .text cbForStateBusy */
|
||||
static void cbForStateBusy(u32 intType) {
|
||||
DVDCommandBlock* finished;
|
||||
|
||||
if (intType == 16) {
|
||||
stateTimeout();
|
||||
return;
|
||||
}
|
||||
|
||||
if ((CurrCommand == 3) || (CurrCommand == 15)) {
|
||||
if (intType & 2) {
|
||||
stateError(0x1234567);
|
||||
return;
|
||||
}
|
||||
|
||||
NumInternalRetry = 0;
|
||||
|
||||
if (CurrCommand == 15) {
|
||||
ResetRequired = TRUE;
|
||||
}
|
||||
|
||||
if (CheckCancel(7)) {
|
||||
return;
|
||||
}
|
||||
|
||||
executing->state = 7;
|
||||
stateMotorStopped();
|
||||
return;
|
||||
}
|
||||
|
||||
if (IsDmaCommand(CurrCommand)) {
|
||||
executing->transferred_size += executing->current_transfer_size - __DIRegs[6];
|
||||
}
|
||||
|
||||
if (intType & 8) {
|
||||
Canceling = FALSE;
|
||||
finished = executing;
|
||||
executing = &DummyCommandBlock;
|
||||
|
||||
finished->state = 10;
|
||||
if (finished->callback)
|
||||
(*finished->callback)(-3, finished);
|
||||
if (CancelCallback)
|
||||
(CancelCallback)(0, finished);
|
||||
stateReady();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (intType & 1) {
|
||||
NumInternalRetry = 0;
|
||||
|
||||
if (CurrCommand == 16) {
|
||||
MotorState = 1;
|
||||
finished = executing;
|
||||
executing = &DummyCommandBlock;
|
||||
finished->state = 0;
|
||||
if (finished->callback) {
|
||||
(*finished->callback)(0, finished);
|
||||
}
|
||||
stateReady();
|
||||
return;
|
||||
}
|
||||
|
||||
if (CheckCancel(0))
|
||||
return;
|
||||
|
||||
if (IsDmaCommand(CurrCommand)) {
|
||||
if (executing->transferred_size != executing->length) {
|
||||
stateBusy(executing);
|
||||
return;
|
||||
}
|
||||
|
||||
finished = executing;
|
||||
executing = &DummyCommandBlock;
|
||||
|
||||
finished->state = 0;
|
||||
if (finished->callback) {
|
||||
(finished->callback)((s32)finished->transferred_size, finished);
|
||||
}
|
||||
stateReady();
|
||||
} else if (IsImmCommandWithResult(CurrCommand)) {
|
||||
s32 result;
|
||||
|
||||
if ((CurrCommand == 11) || (CurrCommand == 10)) {
|
||||
result = (s32)(__DIRegs[8] << 2);
|
||||
} else {
|
||||
result = (s32)__DIRegs[8];
|
||||
}
|
||||
finished = executing;
|
||||
executing = &DummyCommandBlock;
|
||||
|
||||
finished->state = 0;
|
||||
if (finished->callback) {
|
||||
(finished->callback)(result, finished);
|
||||
}
|
||||
stateReady();
|
||||
} else if (CurrCommand == 6) {
|
||||
if (executing->current_transfer_size == 0) {
|
||||
if (__DIRegs[8] & 1) {
|
||||
finished = executing;
|
||||
executing = &DummyCommandBlock;
|
||||
|
||||
finished->state = 9;
|
||||
if (finished->callback) {
|
||||
(finished->callback)(-2, finished);
|
||||
}
|
||||
stateReady();
|
||||
} else {
|
||||
AutoFinishing = FALSE;
|
||||
executing->current_transfer_size = 1;
|
||||
DVDLowAudioStream(0, executing->length, executing->offset, cbForStateBusy);
|
||||
}
|
||||
} else {
|
||||
finished = executing;
|
||||
executing = &DummyCommandBlock;
|
||||
|
||||
finished->state = 0;
|
||||
if (finished->callback) {
|
||||
(finished->callback)(0, finished);
|
||||
}
|
||||
stateReady();
|
||||
}
|
||||
} else {
|
||||
finished = executing;
|
||||
executing = &DummyCommandBlock;
|
||||
|
||||
finished->state = 0;
|
||||
if (finished->callback) {
|
||||
(finished->callback)(0, finished);
|
||||
}
|
||||
stateReady();
|
||||
}
|
||||
} else {
|
||||
if (CurrCommand == 14) {
|
||||
stateError(0x01234567);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((CurrCommand == 1 || CurrCommand == 4 || CurrCommand == 5 || CurrCommand == 14) &&
|
||||
(executing->transferred_size == executing->length)) {
|
||||
if (CheckCancel(0)) {
|
||||
return;
|
||||
}
|
||||
finished = executing;
|
||||
executing = &DummyCommandBlock;
|
||||
|
||||
finished->state = 0;
|
||||
if (finished->callback) {
|
||||
(finished->callback)((s32)finished->transferred_size, finished);
|
||||
}
|
||||
stateReady();
|
||||
return;
|
||||
}
|
||||
|
||||
stateGettingError();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
static inline BOOL issueCommand(s32 prio, DVDCommandBlock* block) {
|
||||
BOOL level;
|
||||
@@ -878,7 +1055,6 @@ static inline BOOL issueCommand(s32 prio, DVDCommandBlock* block) {
|
||||
}
|
||||
|
||||
/* 8034AD2C-8034AE08 34566C 00DC+00 0/0 5/5 0/0 .text DVDReadAbsAsyncPrio */
|
||||
#ifdef NONMATCHING
|
||||
BOOL DVDReadAbsAsyncPrio(DVDCommandBlock* block, void* addr, s32 length, s32 offset,
|
||||
DVDCBCallback callback, s32 prio) {
|
||||
BOOL idle;
|
||||
@@ -892,58 +1068,59 @@ BOOL DVDReadAbsAsyncPrio(DVDCommandBlock* block, void* addr, s32 length, s32 off
|
||||
idle = issueCommand(prio, block);
|
||||
return idle;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm BOOL DVDReadAbsAsyncPrio(DVDCommandBlock* block, void* addr, s32 length, s32 offset,
|
||||
DVDCBCallback callback, s32 prio) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/dvd/dvd/DVDReadAbsAsyncPrio.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8034AE08-8034AED8 345748 00D0+00 0/0 1/1 0/0 .text DVDReadAbsAsyncForBS */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm BOOL DVDReadAbsAsyncForBS(DVDCommandBlock* block, void* addr, s32 length, s32 offset,
|
||||
DVDCBCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/dvd/dvd/DVDReadAbsAsyncForBS.s"
|
||||
BOOL DVDReadAbsAsyncForBS(DVDCommandBlock* block, void* addr, s32 length, s32 offset,
|
||||
DVDCBCallback callback) {
|
||||
BOOL idle;
|
||||
block->command = 4;
|
||||
block->buffer = addr;
|
||||
block->length = length;
|
||||
block->offset = offset;
|
||||
block->transferred_size = 0;
|
||||
block->callback = callback;
|
||||
|
||||
idle = issueCommand(2, block);
|
||||
return idle;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8034AED8-8034AFAC 345818 00D4+00 0/0 2/2 0/0 .text DVDReadDiskID */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm BOOL DVDReadDiskID(DVDCommandBlock* block, DVDDiskID* diskID, DVDCBCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/dvd/dvd/DVDReadDiskID.s"
|
||||
BOOL DVDReadDiskID(DVDCommandBlock* block, DVDDiskID* diskID, DVDCBCallback callback) {
|
||||
BOOL idle;
|
||||
block->command = 5;
|
||||
block->buffer = diskID;
|
||||
block->length = sizeof(DVDDiskID);
|
||||
block->offset = 0;
|
||||
block->transferred_size = 0;
|
||||
block->callback = callback;
|
||||
|
||||
idle = issueCommand(2, block);
|
||||
return idle;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8034AFAC-8034B068 3458EC 00BC+00 0/0 1/1 0/0 .text DVDCancelStreamAsync */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm BOOL DVDCancelStreamAsync(DVDCommandBlock* block, DVDCBCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/dvd/dvd/DVDCancelStreamAsync.s"
|
||||
BOOL DVDCancelStreamAsync(DVDCommandBlock* block, DVDCBCallback callback) {
|
||||
BOOL idle;
|
||||
block->command = 7;
|
||||
block->callback = callback;
|
||||
idle = issueCommand(1, block);
|
||||
return idle;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8034B068-8034B138 3459A8 00D0+00 0/0 1/1 0/0 .text DVDInquiryAsync */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm BOOL DVDInquiryAsync(DVDCommandBlock* block, DVDDriveInfo* info, DVDCBCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/dvd/dvd/DVDInquiryAsync.s"
|
||||
BOOL DVDInquiryAsync(DVDCommandBlock* block, DVDDriveInfo* info, DVDCBCallback callback) {
|
||||
BOOL idle;
|
||||
|
||||
block->command = 14;
|
||||
block->buffer = (void*)info;
|
||||
block->length = sizeof(DVDDriveInfo);
|
||||
block->transferred_size = 0;
|
||||
block->callback = callback;
|
||||
|
||||
idle = issueCommand(2, block);
|
||||
|
||||
return idle;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8034B138-8034B17C 345A78 0044+00 15/15 2/2 0/0 .text DVDReset */
|
||||
void DVDReset(void) {
|
||||
@@ -955,8 +1132,6 @@ void DVDReset(void) {
|
||||
}
|
||||
|
||||
/* 8034B17C-8034B1C8 345ABC 004C+00 0/0 6/6 0/0 .text DVDGetCommandBlockStatus */
|
||||
// needs compiler epilogue patch
|
||||
#ifdef NONMATCHING
|
||||
s32 DVDGetCommandBlockStatus(const DVDCommandBlock* block) {
|
||||
BOOL enabled;
|
||||
s32 retVal;
|
||||
@@ -973,26 +1148,34 @@ s32 DVDGetCommandBlockStatus(const DVDCommandBlock* block) {
|
||||
|
||||
return retVal;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 DVDGetCommandBlockStatus(const DVDCommandBlock* block) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/dvd/dvd/DVDGetCommandBlockStatus.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8034B1C8-8034B274 345B08 00AC+00 0/0 7/7 0/0 .text DVDGetDriveStatus */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 DVDGetDriveStatus(void) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/dvd/dvd/DVDGetDriveStatus.s"
|
||||
s32 DVDGetDriveStatus() {
|
||||
BOOL enabled;
|
||||
s32 retVal;
|
||||
DVDCommandBlock* cmd;
|
||||
|
||||
enabled = OSDisableInterrupts();
|
||||
|
||||
if (FatalErrorFlag) {
|
||||
retVal = -1;
|
||||
} else if (PausingFlag) {
|
||||
retVal = 8;
|
||||
} else {
|
||||
cmd = executing;
|
||||
if (cmd == (DVDCommandBlock*)NULL) {
|
||||
retVal = 0;
|
||||
} else if (cmd == &DummyCommandBlock) {
|
||||
retVal = 0;
|
||||
} else {
|
||||
retVal = DVDGetCommandBlockStatus(executing);
|
||||
}
|
||||
}
|
||||
|
||||
OSRestoreInterrupts(enabled);
|
||||
|
||||
return retVal;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8034B274-8034B284 345BB4 0010+00 0/0 1/1 0/0 .text DVDSetAutoInvalidation */
|
||||
BOOL DVDSetAutoInvalidation(BOOL autoInval) {
|
||||
@@ -1016,33 +1199,18 @@ void DVDResume(void) {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803D15F8-803D163C 02E718 0041+03 0/0 0/0 0/0 .data @789 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static char lit_789[] =
|
||||
"DVDChangeDiskAsync(): You can't specify NULL to company name. \n";
|
||||
#pragma pop
|
||||
|
||||
/* 803D163C-803D1670 -00001 0034+00 1/1 0/0 0/0 .data @956 */
|
||||
SECTION_DATA static void* lit_956[13] = {
|
||||
(void*)(((char*)DVDCancelAsync) + 0x50), (void*)(((char*)DVDCancelAsync) + 0x50),
|
||||
(void*)(((char*)DVDCancelAsync) + 0x70), (void*)(((char*)DVDCancelAsync) + 0xB4),
|
||||
(void*)(((char*)DVDCancelAsync) + 0x100), (void*)(((char*)DVDCancelAsync) + 0x17C),
|
||||
(void*)(((char*)DVDCancelAsync) + 0x17C), (void*)(((char*)DVDCancelAsync) + 0x17C),
|
||||
(void*)(((char*)DVDCancelAsync) + 0x17C), (void*)(((char*)DVDCancelAsync) + 0x254),
|
||||
(void*)(((char*)DVDCancelAsync) + 0x254), (void*)(((char*)DVDCancelAsync) + 0x50),
|
||||
(void*)(((char*)DVDCancelAsync) + 0x17C),
|
||||
};
|
||||
static char string_DVDChangeDiskAsyncMsg[] = "DVDChangeDiskAsync(): You can't specify NULL to company name. \n";
|
||||
|
||||
/* 8034B2D4-8034B550 345C14 027C+00 3/2 0/0 0/0 .text DVDCancelAsync */
|
||||
// needs compiler epilogue patch
|
||||
#ifdef NONMATCHING
|
||||
BOOL DVDCancelAsync(DVDCommandBlock* block, DVDCBCallback callback) {
|
||||
BOOL enabled;
|
||||
DVDLowCallback old;
|
||||
s32 state;
|
||||
|
||||
enabled = OSDisableInterrupts();
|
||||
|
||||
switch (block->state) {
|
||||
state = block->state;
|
||||
switch (state) {
|
||||
case -1:
|
||||
case 0:
|
||||
case 10:
|
||||
@@ -1131,16 +1299,6 @@ BOOL DVDCancelAsync(DVDCommandBlock* block, DVDCBCallback callback) {
|
||||
OSRestoreInterrupts(enabled);
|
||||
return TRUE;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm BOOL DVDCancelAsync(DVDCommandBlock* block, DVDCBCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/dvd/dvd/DVDCancelAsync.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8034B550-8034B5FC 345E90 00AC+00 0/0 1/1 1/1 .text DVDCancel */
|
||||
s32 DVDCancel(DVDCommandBlock* block) {
|
||||
@@ -1190,28 +1348,8 @@ DVDDiskID* DVDGetCurrentDiskID(void) {
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803D1670-803D16A8 -00001 0034+04 1/1 0/0 0/0 .data @1060 */
|
||||
SECTION_DATA static void* lit_1060[13 + 1 /* padding */] = {
|
||||
(void*)(((char*)DVDCheckDisk) + 0x98),
|
||||
(void*)(((char*)DVDCheckDisk) + 0xA0),
|
||||
(void*)(((char*)DVDCheckDisk) + 0x90),
|
||||
(void*)(((char*)DVDCheckDisk) + 0x90),
|
||||
(void*)(((char*)DVDCheckDisk) + 0x98),
|
||||
(void*)(((char*)DVDCheckDisk) + 0x98),
|
||||
(void*)(((char*)DVDCheckDisk) + 0x98),
|
||||
(void*)(((char*)DVDCheckDisk) + 0x98),
|
||||
(void*)(((char*)DVDCheckDisk) + 0x98),
|
||||
(void*)(((char*)DVDCheckDisk) + 0xA0),
|
||||
(void*)(((char*)DVDCheckDisk) + 0x90),
|
||||
(void*)(((char*)DVDCheckDisk) + 0x90),
|
||||
(void*)(((char*)DVDCheckDisk) + 0x98),
|
||||
/* padding */
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 8034B628-8034B720 345F68 00F8+00 1/0 4/4 0/0 .text DVDCheckDisk */
|
||||
// needs compiler epilogue patch
|
||||
#ifdef NONMATCHING
|
||||
BOOL DVDCheckDisk(void) {
|
||||
BOOL enabled;
|
||||
s32 retVal;
|
||||
@@ -1257,8 +1395,10 @@ BOOL DVDCheckDisk(void) {
|
||||
coverReg = __DIRegs[1];
|
||||
if (((coverReg >> 2) & 1) || (coverReg & 1)) {
|
||||
retVal = FALSE;
|
||||
} else if (ResumeFromHere) {
|
||||
retVal = 0;
|
||||
} else {
|
||||
retVal = TRUE;
|
||||
retVal = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1266,26 +1406,62 @@ BOOL DVDCheckDisk(void) {
|
||||
|
||||
return retVal;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm BOOL DVDCheckDisk(void) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/dvd/dvd/DVDCheckDisk.s"
|
||||
|
||||
inline void DVDPause(void) {
|
||||
BOOL level;
|
||||
level = OSDisableInterrupts();
|
||||
PauseFlag = TRUE;
|
||||
if (executing == (DVDCommandBlock*)NULL) {
|
||||
PausingFlag = TRUE;
|
||||
}
|
||||
OSRestoreInterrupts(level);
|
||||
}
|
||||
|
||||
inline BOOL DVDCancelAllAsync(DVDCBCallback callback) {
|
||||
BOOL enabled;
|
||||
DVDCommandBlock* p;
|
||||
BOOL retVal;
|
||||
|
||||
enabled = OSDisableInterrupts();
|
||||
DVDPause();
|
||||
|
||||
while ((p = __DVDPopWaitingQueue()) != 0) {
|
||||
DVDCancelAsync(p, NULL);
|
||||
}
|
||||
|
||||
if (executing)
|
||||
retVal = DVDCancelAsync(executing, callback);
|
||||
else {
|
||||
retVal = TRUE;
|
||||
if (callback)
|
||||
(*callback)(0, NULL);
|
||||
}
|
||||
|
||||
DVDResume();
|
||||
OSRestoreInterrupts(enabled);
|
||||
return retVal;
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8034B720-8034B83C 346060 011C+00 0/0 1/1 0/0 .text __DVDPrepareResetAsync */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __DVDPrepareResetAsync(DVDCBCallback callback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/dvd/dvd/__DVDPrepareResetAsync.s"
|
||||
void __DVDPrepareResetAsync(DVDCBCallback callback) {
|
||||
BOOL enabled;
|
||||
|
||||
enabled = OSDisableInterrupts();
|
||||
|
||||
__DVDClearWaitingQueue();
|
||||
|
||||
if (Canceling) {
|
||||
CancelCallback = callback;
|
||||
} else {
|
||||
if (executing) {
|
||||
executing->callback = NULL;
|
||||
}
|
||||
|
||||
DVDCancelAllAsync(callback);
|
||||
}
|
||||
|
||||
OSRestoreInterrupts(enabled);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8034B83C-8034B874 34617C 0038+00 0/0 1/1 0/0 .text __DVDTestAlarm */
|
||||
BOOL __DVDTestAlarm(OSAlarm* alarm) {
|
||||
|
||||
+10
-10
@@ -29,7 +29,7 @@ void DVDLowRequestAudioStatus();
|
||||
void DVDLowAudioBufferConfig();
|
||||
void DVDLowReset();
|
||||
void DVDLowBreak();
|
||||
void DVDLowClearCallback();
|
||||
DVDLowCallback DVDLowClearCallback();
|
||||
void __DVDLowSetWAType();
|
||||
void __DVDLowTestAlarm();
|
||||
|
||||
@@ -64,7 +64,7 @@ static u8 StopAtNextInt[4];
|
||||
static u8 LastLength[4];
|
||||
|
||||
/* 80451718-8045171C 000C18 0004+00 13/13 0/0 0/0 .sbss Callback */
|
||||
static u8 Callback[4];
|
||||
static DVDLowCallback Callback;
|
||||
|
||||
/* 8045171C-80451720 000C1C 0004+00 1/1 0/0 0/0 .sbss ResetCoverCallback */
|
||||
static u8 ResetCoverCallback[4];
|
||||
@@ -79,7 +79,7 @@ static u8 data_80451724[4];
|
||||
static u8 ResetOccurred[4];
|
||||
|
||||
/* 8045172C-80451730 000C2C 0004+00 3/3 0/0 0/0 .sbss WaitingCoverClose */
|
||||
static u8 WaitingCoverClose[4];
|
||||
static DVDLowCallback WaitingCoverClose;
|
||||
|
||||
/* 80451730-80451734 000C30 0004+00 2/2 0/0 0/0 .sbss Breaking */
|
||||
static u8 Breaking[4];
|
||||
@@ -321,14 +321,14 @@ asm void DVDLowBreak() {
|
||||
#pragma pop
|
||||
|
||||
/* 80348458-80348474 342D98 001C+00 0/0 1/1 0/0 .text DVDLowClearCallback */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void DVDLowClearCallback() {
|
||||
nofralloc
|
||||
#include "asm/dolphin/dvd/dvdlow/DVDLowClearCallback.s"
|
||||
DVDLowCallback DVDLowClearCallback() {
|
||||
DVDLowCallback rv;
|
||||
__DIRegs[1] = 0;
|
||||
rv = Callback;
|
||||
WaitingCoverClose = NULL;
|
||||
Callback = NULL;
|
||||
return rv;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80348474-803484B8 342DB4 0044+00 1/1 0/0 0/0 .text __DVDLowSetWAType */
|
||||
#pragma push
|
||||
|
||||
@@ -37,7 +37,7 @@ $(BUILD_DIR)/libs/dolphin/exi/%.o: libs/dolphin/exi/%.c $(BUILD_DIR)/libs/dolphi
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
|
||||
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBEXI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@$(DOLPHIN_LIB_CC) $(LIBEXI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
|
||||
@echo Frank is fixing $@
|
||||
@$(PYTHON) $(FRANK) $@ $@ $@
|
||||
|
||||
@@ -37,7 +37,7 @@ $(BUILD_DIR)/libs/dolphin/gd/%.o: libs/dolphin/gd/%.c $(BUILD_DIR)/libs/dolphin/
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
|
||||
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBGD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@$(DOLPHIN_LIB_CC) $(LIBGD_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
|
||||
@echo Frank is fixing $@
|
||||
@$(PYTHON) $(FRANK) $@ $@ $@
|
||||
|
||||
@@ -53,7 +53,7 @@ $(BUILD_DIR)/libs/dolphin/gx/%.o: libs/dolphin/gx/%.c $(BUILD_DIR)/libs/dolphin/
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
|
||||
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBGX_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@$(DOLPHIN_LIB_CC) $(CFLAGS) $(LIBGX_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
|
||||
@echo Frank is fixing $@
|
||||
@$(PYTHON) $(FRANK) $@ $@ $@
|
||||
|
||||
@@ -35,7 +35,7 @@ $(BUILD_DIR)/libs/dolphin/mtx/%.o: libs/dolphin/mtx/%.c $(BUILD_DIR)/libs/dolphi
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
|
||||
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(CFLAGS) $(LIBMTX_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@$(DOLPHIN_LIB_CC) $(CFLAGS) $(LIBMTX_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
|
||||
@echo Frank is fixing $@
|
||||
@$(PYTHON) $(FRANK) $@ $@ $@
|
||||
|
||||
@@ -79,7 +79,7 @@ $(BUILD_DIR)/libs/dolphin/os/%.o: libs/dolphin/os/%.c $(BUILD_DIR)/libs/dolphin/
|
||||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
|
||||
@$(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe $(LIBOS_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@$(DOLPHIN_LIB_CC) $(LIBOS_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
|
||||
@echo Frank is fixing $@
|
||||
@$(PYTHON) $(FRANK) $@ $@ $@
|
||||
|
||||
@@ -832,6 +832,6 @@ u32 __OSGetDIConfig(void) {
|
||||
}
|
||||
|
||||
/* 8033A874-8033A8A0 3351B4 002C+00 1/1 11/11 0/0 .text OSRegisterVersion */
|
||||
void OSRegisterVersion(char* version) {
|
||||
void OSRegisterVersion(const char* version) {
|
||||
OSReport("%s\n", version);
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user