AREA code_start, CODE, READONLY ENTRY b start DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 start ldr r0,=start2 ldr r3,=start2+1024 ldr r1,=0x03000000 reloc ldrh r2,[r0],#2 strh r2,[r1],#2 cmp r0,r3 blt reloc ldr r0,=0x03000000 bx r0 start2 mov r0,#0x10 bl romchange ldr r0,=0x080000be ldrb r1,[r0,#-1] ldrh r2,[r0] cmp r2,#0 bne bad stmdb sp!,{r1} mov r0,#0x18 bl romchange ldmia sp!,{r2} ldr r0,=0x080000be ldrb r1,[r0,#-1] ldrh r0,[r0] cmp r0,#0 bne bad cmp r1,r2 bne bad good ldr r0,=0x4000000 ;dispcnt mov r1,#0 ;BG_MODE_0|BG0_ON strh r1,[r0] ldr r0,=0x05000000 ldr r1,=0x1fe0 strh r1,[r0] b good bad ldr r0,=0x4000000 ;dispcnt mov r1,#0 ;BG_MODE_0|BG0_ON strh r1,[r0] ldr r0,=0x05000000 mov r1,#0xff strh r1,[r0] b bad romchange stmdb sp!,{lr} stmdb sp!,{r0} ldr r0,=0x0930eca8 ldr r1,=0x0802468a mov r3, #0x354 add r3, r3, #0x5000 ldr r7,=0x08eca800 ldr r6,=0x080268a0 ldr r4,=0x096b592e mov lr, #0x234 add lr, lr, #0x1000 strh r3, [r0] mov r12, #0x0 sub r2, r0, #0x1300000 add r5, r1, #0x1400000 loop1 add r12, r12, #0x1 cmps r12, #0x1f4 strh lr, [r1] blt loop1 strh r3, [r2] mov r12, #0x278 add r12, r12, #0x5400 strh r3, [r1] mov r2, #0x0 loop2 add r2, r2, #0x1 cmps r2, #0x1f4 strh r12, [r1] blt loop2 strh r3, [r0] strh r3, [r1] strh r12, [r7] mov r12, #0xcd add r12, r12, #0xab00 strh lr, [r6] mov r2, #0x0 loop3 add r2, r2, #0x1 cmps r2, #0x1f4 strh r12, [r1] blt loop3 ldr r1,=0x03004010 strh r3, [r0] ldr r2, [r1] strh r2, [r5] strh r3, [r0] ldmia sp!,{r0} strh r0, [r4] ;Store ROM Page value ldmia sp!,{lr} bx lr end2 END