summaryrefslogtreecommitdiff
path: root/asm/SDK/WD/wd_receive.s
blob: 8f8a106e9db4b7a09776f7aad02ff07d342e997b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
.include "macros.inc"

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

.global WD_ReceiveNotification
WD_ReceiveNotification:
/* 802EE38C 002E9FEC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802EE390 002E9FF0  7C 08 02 A6 */	mflr r0
/* 802EE394 002E9FF4  90 01 00 24 */	stw r0, 0x24(r1)
/* 802EE398 002E9FF8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802EE39C 002E9FFC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802EE3A0 002EA000  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802EE3A4 002EA004  7C 7D 1B 78 */	mr r29, r3
/* 802EE3A8 002EA008  4B FF F9 B5 */	bl WDi_GetWork
/* 802EE3AC 002EA00C  80 63 00 08 */	lwz r3, 8(r3)
/* 802EE3B0 002EA010  38 80 00 9C */	li r4, 0x9c
/* 802EE3B4 002EA014  38 A0 00 20 */	li r5, 0x20
/* 802EE3B8 002EA018  4B FB 5F 81 */	bl iosAllocAligned
/* 802EE3BC 002EA01C  38 83 00 08 */	addi r4, r3, 8
/* 802EE3C0 002EA020  38 00 00 4A */	li r0, 0x4a
/* 802EE3C4 002EA024  7C 7E 1B 78 */	mr r30, r3
/* 802EE3C8 002EA028  90 83 00 00 */	stw r4, 0(r3)
/* 802EE3CC 002EA02C  38 C3 00 07 */	addi r6, r3, 7
/* 802EE3D0 002EA030  38 BD FF FF */	addi r5, r29, -1
/* 802EE3D4 002EA034  7C 09 03 A6 */	mtctr r0
lbl_802EE3D8:
/* 802EE3D8 002EA038  88 85 00 01 */	lbz r4, 1(r5)
/* 802EE3DC 002EA03C  8C 05 00 02 */	lbzu r0, 2(r5)
/* 802EE3E0 002EA040  98 86 00 01 */	stb r4, 1(r6)
/* 802EE3E4 002EA044  9C 06 00 02 */	stbu r0, 2(r6)
/* 802EE3E8 002EA048  42 00 FF F0 */	bdnz lbl_802EE3D8
/* 802EE3EC 002EA04C  38 00 00 94 */	li r0, 0x94
/* 802EE3F0 002EA050  3C 80 00 01 */	lis r4, 0x00008001@ha
/* 802EE3F4 002EA054  90 03 00 04 */	stw r0, 4(r3)
/* 802EE3F8 002EA058  38 64 80 01 */	addi r3, r4, 0x00008001@l
/* 802EE3FC 002EA05C  7F C6 F3 78 */	mr r6, r30
/* 802EE400 002EA060  38 80 00 00 */	li r4, 0
/* 802EE404 002EA064  38 A0 00 01 */	li r5, 1
/* 802EE408 002EA068  4B FF F9 61 */	bl WDi_Ioctlv
/* 802EE40C 002EA06C  38 00 00 4A */	li r0, 0x4a
/* 802EE410 002EA070  7C 7F 1B 78 */	mr r31, r3
/* 802EE414 002EA074  38 BD FF FF */	addi r5, r29, -1
/* 802EE418 002EA078  38 9E 00 07 */	addi r4, r30, 7
/* 802EE41C 002EA07C  7C 09 03 A6 */	mtctr r0
lbl_802EE420:
/* 802EE420 002EA080  88 64 00 01 */	lbz r3, 1(r4)
/* 802EE424 002EA084  8C 04 00 02 */	lbzu r0, 2(r4)
/* 802EE428 002EA088  98 65 00 01 */	stb r3, 1(r5)
/* 802EE42C 002EA08C  9C 05 00 02 */	stbu r0, 2(r5)
/* 802EE430 002EA090  42 00 FF F0 */	bdnz lbl_802EE420
/* 802EE434 002EA094  4B FF F9 29 */	bl WDi_GetWork
/* 802EE438 002EA098  80 63 00 08 */	lwz r3, 8(r3)
/* 802EE43C 002EA09C  7F C4 F3 78 */	mr r4, r30
/* 802EE440 002EA0A0  4B FB 5E FD */	bl iosFree
/* 802EE444 002EA0A4  7F E3 FB 78 */	mr r3, r31
/* 802EE448 002EA0A8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802EE44C 002EA0AC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802EE450 002EA0B0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802EE454 002EA0B4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802EE458 002EA0B8  7C 08 03 A6 */	mtlr r0
/* 802EE45C 002EA0BC  38 21 00 20 */	addi r1, r1, 0x20
/* 802EE460 002EA0C0  4E 80 00 20 */	blr

.global WD_ReceiveFrame
WD_ReceiveFrame:
/* 802EE464 002EA0C4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802EE468 002EA0C8  7C 08 02 A6 */	mflr r0
/* 802EE46C 002EA0CC  90 01 00 14 */	stw r0, 0x14(r1)
/* 802EE470 002EA0D0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802EE474 002EA0D4  7C 9F 23 78 */	mr r31, r4
/* 802EE478 002EA0D8  93 C1 00 08 */	stw r30, 8(r1)
/* 802EE47C 002EA0DC  7C 7E 1B 78 */	mr r30, r3
/* 802EE480 002EA0E0  4B FF F8 DD */	bl WDi_GetWork
/* 802EE484 002EA0E4  80 63 00 08 */	lwz r3, 8(r3)
/* 802EE488 002EA0E8  38 80 00 08 */	li r4, 8
/* 802EE48C 002EA0EC  38 A0 00 20 */	li r5, 0x20
/* 802EE490 002EA0F0  4B FB 5E A9 */	bl iosAllocAligned
/* 802EE494 002EA0F4  93 C3 00 00 */	stw r30, 0(r3)
/* 802EE498 002EA0F8  7C 7E 1B 78 */	mr r30, r3
/* 802EE49C 002EA0FC  3C A0 00 01 */	lis r5, 0x00008000@ha
/* 802EE4A0 002EA100  38 80 00 00 */	li r4, 0
/* 802EE4A4 002EA104  93 E3 00 04 */	stw r31, 4(r3)
/* 802EE4A8 002EA108  38 65 80 00 */	addi r3, r5, 0x00008000@l
/* 802EE4AC 002EA10C  7F C6 F3 78 */	mr r6, r30
/* 802EE4B0 002EA110  38 A0 00 01 */	li r5, 1
/* 802EE4B4 002EA114  4B FF F8 B5 */	bl WDi_Ioctlv
/* 802EE4B8 002EA118  7C 7F 1B 78 */	mr r31, r3
/* 802EE4BC 002EA11C  4B FF F8 A1 */	bl WDi_GetWork
/* 802EE4C0 002EA120  80 63 00 08 */	lwz r3, 8(r3)
/* 802EE4C4 002EA124  7F C4 F3 78 */	mr r4, r30
/* 802EE4C8 002EA128  4B FB 5E 75 */	bl iosFree
/* 802EE4CC 002EA12C  7F E3 FB 78 */	mr r3, r31
/* 802EE4D0 002EA130  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802EE4D4 002EA134  83 C1 00 08 */	lwz r30, 8(r1)
/* 802EE4D8 002EA138  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802EE4DC 002EA13C  7C 08 03 A6 */	mtlr r0
/* 802EE4E0 002EA140  38 21 00 10 */	addi r1, r1, 0x10
/* 802EE4E4 002EA144  4E 80 00 20 */	blr