Advertisement
Guest User

Untitled

a guest
Jul 4th, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .include "constants/LCDControl.inc"
  2. .include "constants/InterruptEnable.inc"
  3. .include "constants/SIO.inc"
  4. .include "externs/start.inc"
  5.  
  6. // this section declaration is crucial for linking, otherwise it won't overlay
  7. // range= [0x08000000,0x0800023C)
  8. .section .f__start, "ax"
  9.  
  10. .arm
  11. start_:
  12.    b    loc_80000D0
  13. dword_8000004:    .word 0x51AEFF24, 0x21A29A69, 0xA82843D, 0xAD09E484, 0x988B2411
  14.    .word 0x217F81C0, 0x19BE52A3, 0x20CE0993, 0x4A4A4610, 0xEC3127F8
  15.    .word 0x33E8C758, 0xBFCEE382, 0x94DFF485, 0xC1094BCE, 0xC08A5694
  16.    .word 0xFCA77213, 0x734D849F, 0x619ACAA3, 0x27A39758, 0x769803FC
  17.    .word 0x61C71D23, 0x56AE0403, 0x8438BF, 0xFD0EA740, 0x3FE52FF
  18.    .word 0xF130956F, 0x85C0FB97, 0x2580D660, 0x3BE63A9, 0xE2384E01
  19.    .word 0xFF34A2F9, 0x44033EBB, 0xCB900078, 0x943A1188, 0x637CC065
  20.    .word 0xAF3CF087, 0x8BE425D6, 0x72AC0A38, 0x7F8D421, 0x4B434F52
  21.    .word 0x36455845, 0x5858525F, 0x4A365242, 0x963830, 0x0
  22.    .word 0x0
  23.    .word dword_2D00
  24.    .word 0x0, 0x0, 0x0, 0x0
  25. loc_80000D0:
  26.    mov    r0, #0x12
  27.    msr    cpsr_cf, r0
  28.    ldr    sp, [pc, #0x80001ec-0x80000d8-8] // =0x3007f60
  29.    mov    r0, #0x13
  30.    msr    cpsr_cf, r0
  31.    ldr    sp, [pc, #0x80001f0-0x80000e4-8] // =0x3007fe0
  32.    mov    r0, #0x1f
  33.    msr    cpsr_cf, r0
  34.    ldr    sp, [pc, #0x80001f4-0x80000f0-8] // =0x3007e00
  35.    ldr    r0, [pc, #0x80001f8-0x80000f4-8] // =loc_3007ffc
  36.    ldr    r1, [pc, #0x80001fc-0x80000f8-8] // =0x3005b00
  37.    str    r1, [r0]
  38.    ldr    r0, [pc, #0x8000200-0x8000100-8] // =gamepakwaitstatecontrol
  39.    ldr    r1, [pc, #0x8000204-0x8000104-8] // =0x45b4
  40.    str    r1, [r0]
  41.    mov    r0, #0x3000000  // memblock
  42.    mov    r1, #0x7e00  // amt
  43.    bl    start_clearMemory
  44.    mov    r0, #0x2000000  // memblock
  45.    mov    r1, #0x40000  // amt
  46.    bl    start_clearMemory
  47.    mov    r0, #0x6000000  // memblock
  48.    mov    r1, #0x18000  // amt
  49.    bl    start_clearMemory
  50.    mov    r0, #0x7000000  // memblock
  51.    mov    r1, #0x400  // amt
  52.    bl    start_clearMemory
  53.    mov    r0, #0x5000000  // memblock
  54.    mov    r1, #0x400  // amt
  55.    bl    start_clearMemory
  56.    ldr    r0, [pc, #0x8000208-0x8000148-8] // =loc_81d6000
  57.    ldr    r1, [pc, #0x800020c-0x800014c-8] // =0x3005b00
  58.    ldr    r2, [pc, #0x8000210-0x8000150-8] // =dword_1e78
  59.    bl    start_80001D8
  60.    ldr    r0, [pc, #0x8000214-0x8000158-8] // =sub_8006bb4
  61.    mov    lr, pc
  62.    bx    r0
  63.    ldr    r0, [pc, #0x8000218-0x8000164-8] // =loc_8006c16
  64.    mov    lr, pc
  65.    bx    r0
  66.    ldr    r0, [pc, #0x800021c-0x8000170-8] // =start_800023c
  67.    mov    lr, pc
  68.    bx    r0
  69.    ldr    r0, [pc, #0x8000220-0x800017c-8] // =byte_20081b0
  70.    mov    r1, #0
  71.    strb    r1, [r0]
  72.    ldr    r0, [pc, #0x8000224-0x8000188-8] // =dword_2009930
  73.    mov    r1, #1
  74.    str    r1, [r0]
  75.    ldr    r0, [pc, #0x8000228-0x8000194-8] // =dword_200a870
  76.    mov    r1, #0
  77.    str    r1, [r0]
  78.    ldr    r0, [pc, #0x800022c-0x80001a0-8] // =generallcdstatus_stat_lyc_
  79.    mov    r1, #8
  80.    strh    r1, [r0]
  81.    ldr    r0, [pc, #0x8000230-0x80001ac-8] // =keyinterruptcontrol
  82.    ldr    r1, [pc, #0x8000234-0x80001b0-8] // =0x83ff  // argv
  83.    strh    r1, [r0]
  84.    ldr    r0, [pc, #0x8000238-0x80001b8-8] // =main_  // argc
  85.    bx    r0
  86.    b    start_
  87. // end of function start_
  88.  
  89. .arm
  90. start_clearMemory:
  91.    mov    r2, #0
  92. loc_80001C8:
  93.    subs    r1, r1, #4
  94.    str    r2, [r0,r1]
  95.    bne    loc_80001C8
  96.    bx    lr
  97. // end of function start_clearMemory
  98.  
  99. .arm
  100. start_80001D8:
  101.    subs    r2, r2, #4
  102.    ldr    r3, [r0,r2]
  103.    str    r3, [r1,r2]
  104.    bne    start_80001D8
  105.    bx    lr
  106. dword_80001EC:    .word 0x3007F60
  107. dword_80001F0:    .word 0x3007FE0
  108. dword_80001F4:    .word 0x3007E00
  109. off_80001F8:    .word loc_3007FFC
  110. dword_80001FC:    .word 0x3005B00
  111. off_8000200:    .word GamePakWaitstateControl
  112. dword_8000204:    .word 0x45B4
  113. off_8000208:    .word loc_81D6000
  114. dword_800020C:    .word 0x3005B00
  115. off_8000210:    .word dword_1E78+0x30
  116. off_8000214:    .word sub_8006BB4+1
  117. off_8000218:    .word loc_8006C16+1
  118. off_800021C:    .word start_800023C+1
  119. off_8000220:    .word byte_20081B0
  120. off_8000224:    .word dword_2009930
  121. off_8000228:    .word dword_200A870
  122. off_800022C:    .word GeneralLCDStatus_STAT_LYC_
  123. off_8000230:    .word KeyInterruptControl
  124. argv:    .word 0x83FF
  125. argc:    .word main_+1
  126. // end of function start_80001D8
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement