summaryrefslogtreecommitdiff
path: root/arm7/asm/OS_arena.s
blob: 3b444cdd00d4901b0fba3208df56e2a39749fc53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
	.include "asm/macros.inc"
	.include "global.inc"

    .text

	arm_func_start OS_SetArenaLo
OS_SetArenaLo: ; 0x037F9BBC
	mov	r0, r0, lsl #2
	add	r0, r0, #40894464	; 0x2700000
	add	r0, r0, #1044480	; 0xff000
	str	r1, [r0, #3488]	; 0xda0
	bx	lr

	arm_func_start OS_SetArenaHi
OS_SetArenaHi: ; 0x037F9BD0
	mov	r0, r0, lsl #2
	add	r0, r0, #40894464	; 0x2700000
	add	r0, r0, #1044480	; 0xff000
	str	r1, [r0, #3524]	; 0xdc4
	bx	lr

	arm_func_start OS_GetInitArenaLo
OS_GetInitArenaLo: ; 0x037F9BE4
	cmp	r0, #1
	beq	_037F9C00
	cmp	r0, #7
	beq	_037F9C08
	cmp	r0, #8
	beq	_037F9C18
	b	_037F9C2C
_037F9C00:
	ldr	r0, _037F9C34	; =0x027FAFCC
	bx	lr
_037F9C08:
	ldr	r0, _037F9C38	; =0x0380B92C
	cmp	r0, #58720256	; 0x03800000
	movhi	r0, #58720256	; 0x03800000
	bx	lr
_037F9C18:
	mov	r0, #58720256	; 0x03800000
	ldr	r1, _037F9C38	; =0x0380B92C
	cmp	r1, #58720256	; 0x03800000
	movhi	r0, r1
	bx	lr
_037F9C2C:
	mov	r0, #0
	bx	lr
_037F9C34:	.word	0x027FAFCC
_037F9C38:	.word	0x0380B92C

	arm_func_start OS_GetInitArenaHi
OS_GetInitArenaHi: ; 0x037F9C3C
	cmp	r0, #1
	beq	_037F9C58
	cmp	r0, #7
	beq	_037F9C60
	cmp	r0, #8
	beq	_037F9C68
	b	_037F9CA0
_037F9C58:
	ldr	r0, _037F9CA8	; =0x027FF000
	bx	lr
_037F9C60:
	mov	r0, #58720256	; 0x03800000
	bx	lr
_037F9C68:
	ldr	r1, _037F9CAC	; =0x00000400
	ldr	r0, _037F9CB0	; =0x0380FF80
	sub	r2, r0, r1
	mov	r0, #58720256	; 0x03800000
	ldr	r1, _037F9CB4	; =0x0380B92C
	cmp	r1, #58720256	; 0x03800000
	movhi	r0, r1
	ldr	r1, _037F9CB8	; =0x00000400
	cmp	r1, #0
	bxeq	lr
	cmp	r1, #0
	sublt	r0, r0, r1
	subge	r0, r2, r1
	bx	lr
_037F9CA0:
	mov	r0, #0
	bx	lr
_037F9CA8:	.word	0x027FF000
_037F9CAC:	.word	0x00000400
_037F9CB0:	.word	0x0380FF80
_037F9CB4:	.word	0x0380B92C
_037F9CB8:	.word	0x00000400

	arm_func_start OS_GetArenaLo
OS_GetArenaLo: ; 0x037F9CBC
	mov	r0, r0, lsl #2
	add	r0, r0, #40894464	; 0x2700000
	add	r0, r0, #1044480	; 0xff000
	ldr	r0, [r0, #3488]	; 0xda0
	bx	lr

	arm_func_start OS_GetArenaHi
OS_GetArenaHi: ; 0x037F9CD0
	mov	r0, r0, lsl #2
	add	r0, r0, #40894464	; 0x2700000
	add	r0, r0, #1044480	; 0xff000
	ldr	r0, [r0, #3524]	; 0xdc4
	bx	lr

	arm_func_start OS_InitArena
OS_InitArena: ; 0x037F9CE4
	stmfd	sp!, {lr}
	sub	sp, sp, #4
	ldr	r1, _037F9D84	; =_038078F4
	ldr	r0, [r1]
	cmp	r0, #0
	bne	_037F9D78
	mov	r0, #1
	str	r0, [r1]
	bl	OS_GetInitArenaHi
	mov	r1, r0
	mov	r0, #1
	bl	OS_SetArenaHi
	mov	r0, #1
	bl	OS_GetInitArenaLo
	mov	r1, r0
	mov	r0, #1
	bl	OS_SetArenaLo
	mov	r0, #7
	bl	OS_GetInitArenaHi
	mov	r1, r0
	mov	r0, #7
	bl	OS_SetArenaHi
	mov	r0, #7
	bl	OS_GetInitArenaLo
	mov	r1, r0
	mov	r0, #7
	bl	OS_SetArenaLo
	mov	r0, #8
	bl	OS_GetInitArenaHi
	mov	r1, r0
	mov	r0, #8
	bl	OS_SetArenaHi
	mov	r0, #8
	bl	OS_GetInitArenaLo
	mov	r1, r0
	mov	r0, #8
	bl	OS_SetArenaLo
_037F9D78:
	add	sp, sp, #4
	ldmia	sp!, {lr}
	bx	lr
_037F9D84:	.word	_038078F4