dsi/exploits/minitwlpayload/source/start.s

57 lines
1.4 KiB
ArmAsm

/*
mini - a Free Software replacement for the Nintendo/BroadOn IOS.
ELF loader: system startup
Copyright (C) 2008, 2009 Hector Martin "marcan" <marcan@marcansoft.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, version 2.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
//Modified for nzonehtmlhaxx by yellowstar6.
//Stripped down by fincs.
.arm
.arch armv5te
.fpu softvfp
.section .init
.global _start
_start:
@ clear BSS
ldr r1, =__bss_start
ldr r2, =__bss_end
mov r3, #0
bss_loop:
@ check for the end
cmp r1, r2
beq done_bss
@ clear the word and move on
str r3, [r1]
add r1, r1, #4
b bss_loop
done_bss:
ldr r0, =0x0000FFFF
mcr p15, 0, r0, c5, c0, 0
mcr p15, 0, r0, c5, c0, 1
ldr r0, =0x33333333
mcr p15, 0, r0, c5, c0, 2
mcr p15, 0, r0, c5, c0, 3
@ take the plunge
bl main
1: b 1b @ Added by yellowstar6. This code should never be executed.