X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=savezelda.git;a=blobdiff_plain;f=twilight%2Fstart.S;fp=twilight%2Fstart.S;h=5d453aa00874ed54bca3901e98e6e090ae4f2d73;hp=0000000000000000000000000000000000000000;hb=e1ede7aa2cb1840add9ba88901c7495deb2b37e3;hpb=15edfaae0fe106910d059e91f8cb4f691cc50da4 diff --git a/twilight/start.S b/twilight/start.S new file mode 100644 index 0000000..5d453aa --- /dev/null +++ b/twilight/start.S @@ -0,0 +1,35 @@ +// Copyright 2008-2009 Segher Boessenkool +// This code is licensed to you under the terms of the GNU GPL, version 2; +// see file COPYING or http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt + +#define XSTR(x) #x +#define ISTR(x) XSTR(x) + + .section .start,"ax" + + // Uninteresting stuff. + .incbin "head.b" + + // "Link". This is displayed on the load menu, so make it nice. +0: .ascii ISTR(NAME) + .fill 17 - (. - 0b) + + // "Epona". Hungry horse eats the stack. + .fill 0xe8,1,'3' + + // The return address on the stack. + .long start + + // Align things properly -- there's code after this. + .fill 7,1,'S' + .balign 4,0 + +start: + // Set up a stack frame. + lis 1,0x8080 ; li 0,0 ; stwu 0,-64(1) + + // Pass the address we are called from, to determine region. + mflr 3 + + // Go for it! + b main