diff options
author | YamaArashi <shadow962@live.com> | 2015-11-27 02:19:02 -0800 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2015-11-27 02:19:02 -0800 |
commit | 6105801ee7f6ef3e3e58fdd14fae8ccab507c441 (patch) | |
tree | a41f79af9cc02032df1384717e8045bd9a85ef15 /asm/multiboot.s | |
parent | 85036fe67f90992493292b922f29269bf3237c1d (diff) |
split out multiboot.s
Diffstat (limited to 'asm/multiboot.s')
-rw-r--r-- | asm/multiboot.s | 912 |
1 files changed, 912 insertions, 0 deletions
diff --git a/asm/multiboot.s b/asm/multiboot.s new file mode 100644 index 000000000..92ded3a0b --- /dev/null +++ b/asm/multiboot.s @@ -0,0 +1,912 @@ + thumb_func_start MultiBootInit +; void MultiBootInit(MultiBootParam *mp) +MultiBootInit: ; 81BA6D0 + adds r2, r0, 0 + movs r1, 0 + strb r1, [r2, 0x1E] + strb r1, [r2, 0x18] + strb r1, [r2, 0x1D] + adds r3, r2, 0 + adds r3, 0x4A + movs r0, 0xF + strb r0, [r3] + adds r0, r2, 0 + adds r0, 0x48 + strb r1, [r0] + strh r1, [r2, 0x16] + ldr r0, =0x04000134 + strh r1, [r0] + ldr r2, =0x04000128 + ldr r3, =0x00002003 + adds r0, r3, 0 + strh r0, [r2] + ldr r0, =0x0400012a + strh r1, [r0] + bx lr + .align 2, 0 + .pool + thumb_func_end MultiBootInit + + thumb_func_start MultiBootMain +; int MultiBootMain(MultiBootParam *mp) +MultiBootMain: ; 81BA70C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r7, r0, 0 + bl MultiBootCheckComplete + cmp r0, 0 + beq @081BA722 + b @081BAAEA +@081BA722: + adds r0, r7, 0 + adds r0, 0x4A + ldrb r1, [r0] + mov r10, r0 + cmp r1, 0xF + bls @081BA736 + subs r0, r1, 0x1 + mov r1, r10 + strb r0, [r1] + b @081BAAEA +@081BA736: + adds r1, r7, 0 + adds r1, 0x48 + ldrb r0, [r1] + cmp r0, 0 + beq @081BA760 + movs r0, 0 + strb r0, [r1] + ldr r0, =0x04000128 + ldrh r0, [r0] + movs r5, 0xFC + ands r5, r0 + cmp r5, 0x8 + beq @081BA760 + adds r0, r7, 0 + bl MultiBootInit + movs r0, 0x8 + eors r0, r5 + b @081BAAEC + .align 2, 0 + .pool +@081BA760: + ldrb r0, [r7, 0x18] + cmp r0, 0xDF + bls @081BA7B2 + adds r0, r7, 0 + bl MultiBootHandShake + adds r5, r0, 0 + cmp r5, 0 + beq @081BA774 + b @081BAAEC +@081BA774: + adds r0, r7, 0 + adds r0, 0x4B + ldrb r0, [r0] + cmp r0, 0x1 + bne @081BA790 + ldrb r0, [r7, 0x18] + cmp r0, 0xE1 + bls @081BA790 + adds r0, r7, 0 + bl MultiBootCheckComplete + cmp r0, 0 + bne @081BA790 + b @081BAADA +@081BA790: + adds r0, r7, 0 + bl MultiBootCheckComplete + cmp r0, 0 + beq @081BA79C + b @081BAAEA +@081BA79C: + ldrh r0, [r7, 0x16] + cmp r0, 0 + bne @081BA7AC + adds r0, r7, 0 + bl MultiBootInit + movs r0, 0x71 + b @081BAAEC +@081BA7AC: + subs r0, 0x1 + strh r0, [r7, 0x16] + b @081BAAEA +@081BA7B2: + ldrb r0, [r7, 0x18] + cmp r0, 0x2 + bne @081BA7BA + b @081BA8F0 +@081BA7BA: + cmp r0, 0x2 + bgt @081BA7C8 + cmp r0, 0 + beq @081BA7D6 + cmp r0, 0x1 + beq @081BA892 + b @081BAA28 +@081BA7C8: + cmp r0, 0xD0 + bne @081BA7CE + b @081BA93C +@081BA7CE: + cmp r0, 0xD1 + bne @081BA7D4 + b @081BA9D6 +@081BA7D4: + b @081BAA28 +@081BA7D6: + movs r3, 0xE + movs r5, 0x3 + ldr r0, =0x04000120 + ldrh r0, [r0, 0x6] + adds r1, r0, 0 + ldr r0, =0x0000ffff + ldrb r2, [r7, 0x1E] + adds r6, r2, 0 + cmp r1, r0 + bne @081BA7FE + adds r4, r1, 0 + ldr r1, =0x04000126 +@081BA7EE: + asrs r3, 1 + subs r1, 0x2 + subs r5, 0x1 + cmp r5, 0 + beq @081BA7FE + ldrh r0, [r1] + cmp r0, r4 + beq @081BA7EE +@081BA7FE: + movs r0, 0xE + ands r3, r0 + strb r3, [r7, 0x1D] + movs r5, 0x3 + ldr r0, =0x04000120 + ldrh r0, [r0, 0x6] + adds r4, r0, 0 + asrs r0, r2, 3 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq @081BA82C + ldr r0, =0x00007208 + b @081BA852 + .align 2, 0 + .pool +@081BA82C: + subs r5, 0x1 + cmp r5, 0 + beq @081BA858 + lsls r0, r5, 1 + ldr r1, =0x04000120 + adds r0, r1 + ldrh r0, [r0] + adds r4, r0, 0 + adds r0, r2, 0 + asrs r0, r5 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq @081BA82C + adds r0, r1, 0 + lsls r0, r5 + movs r1, 0xE4 + lsls r1, 7 + orrs r0, r1 +@081BA852: + cmp r4, r0 + beq @081BA82C + movs r3, 0 +@081BA858: + adds r0, r3, 0 + ands r0, r6 + strb r0, [r7, 0x1E] + cmp r3, 0 + bne @081BA868 + movs r0, 0xF + mov r2, r10 + strb r0, [r2] +@081BA868: + mov r1, r10 + ldrb r0, [r1] + cmp r0, 0 + bne @081BA884 + ldrb r0, [r7, 0x1D] + ldrb r2, [r7, 0x1E] + cmp r0, r2 + beq @081BA88A + adds r0, r7, 0 + bl MultiBootStartProbe + b @081BA892 + .align 2, 0 + .pool +@081BA884: + subs r0, 0x1 + mov r1, r10 + strb r0, [r1] +@081BA88A: + ldrb r1, [r7, 0x1E] + movs r2, 0xC4 + lsls r2, 7 + b @081BA992 +@081BA892: + adds r1, r7, 0 + adds r1, 0x49 + movs r0, 0 + strb r0, [r1] + movs r5, 0x3 + mov r12, r1 + ldr r3, =0x0300129c +@081BA8A0: + lsls r0, r5, 1 + ldr r2, =0x04000120 + adds r0, r2 + ldrh r0, [r0] + adds r4, r0, 0 + asrs r0, r4, 8 + subs r2, r5, 0x1 + cmp r0, 0x72 + bne @081BA8CA + lsls r0, r2, 1 + adds r0, r3 + strh r4, [r0] + movs r0, 0xFF + ands r4, r0 + movs r0, 0x1 + lsls r0, r5 + cmp r4, r0 + bne @081BA8CA + ldrb r0, [r1] + orrs r4, r0 + strb r4, [r1] +@081BA8CA: + adds r5, r2, 0 + cmp r5, 0 + bne @081BA8A0 + ldrb r0, [r7, 0x1D] + mov r1, r12 + ldrb r1, [r1] + cmp r0, r1 + bne @081BA88A + movs r0, 0x2 + strb r0, [r7, 0x18] + mov r2, r12 + ldrb r1, [r2] + movs r2, 0xC2 + lsls r2, 7 + b @081BA992 + .align 2, 0 + .pool +@081BA8F0: + movs r5, 0x3 + movs r0, 0x49 + adds r0, r7 + mov r12, r0 + mov r4, r12 + movs r6, 0x1 + ldr r1, =0x0300129c + mov r9, r1 + ldr r2, =0x04000120 + mov r8, r2 +@081BA904: + ldrb r3, [r4] + adds r0, r3, 0 + asrs r0, r5 + ands r0, r6 + subs r2, r5, 0x1 + cmp r0, 0 + beq @081BA92A + lsls r0, r5, 1 + add r0, r8 + ldrh r1, [r0] + lsls r0, r2, 1 + add r0, r9 + ldrh r0, [r0] + cmp r1, r0 + beq @081BA92A + adds r0, r6, 0 + lsls r0, r5 + eors r3, r0 + strb r3, [r4] +@081BA92A: + adds r5, r2, 0 + cmp r5, 0 + bne @081BA904 + b @081BAA90 + .align 2, 0 + .pool +@081BA93C: + movs r3, 0x1 + movs r5, 0x3 + movs r0, 0x49 + adds r0, r7 + mov r12, r0 + adds r6, r7, 0 + adds r6, 0x19 + ldr r1, =0x0300129c + mov r8, r1 +@081BA94E: + lsls r0, r5, 1 + ldr r2, =0x04000120 + adds r0, r2 + ldrh r0, [r0] + adds r4, r0, 0 + subs r2, r5, 0x1 + adds r0, r6, r2 + strb r4, [r0] + mov r0, r12 + ldrb r1, [r0] + asrs r1, r5 + movs r0, 0x1 + ands r1, r0 + cmp r1, 0 + beq @081BA982 + asrs r0, r4, 8 + subs r0, 0x72 + cmp r0, 0x1 + bls @081BA976 + b @081BAAE0 +@081BA976: + lsls r0, r2, 1 + add r0, r8 + ldrh r0, [r0] + cmp r4, r0 + bne @081BA982 + movs r3, 0 +@081BA982: + adds r5, r2, 0 + cmp r5, 0 + bne @081BA94E + cmp r3, 0 + bne @081BA9A8 + ldrb r1, [r7, 0x1C] + movs r2, 0xC6 + lsls r2, 7 +@081BA992: + adds r0, r2, 0 + orrs r1, r0 + adds r0, r7, 0 + bl MultiBootSend + b @081BAAEC + .align 2, 0 + .pool +@081BA9A8: + movs r0, 0xD1 + strb r0, [r7, 0x18] + movs r3, 0x11 + movs r5, 0x3 + adds r1, r6, 0x2 +@081BA9B2: + ldrb r0, [r1] + adds r3, r0 + subs r1, 0x1 + subs r5, 0x1 + cmp r5, 0 + bne @081BA9B2 + strb r3, [r7, 0x14] + movs r0, 0xFF + ands r3, r0 + movs r1, 0xC8 + lsls r1, 7 + adds r0, r1, 0 + orrs r3, r0 + adds r0, r7, 0 + adds r1, r3, 0 + bl MultiBootSend + b @081BAAEC +@081BA9D6: + movs r5, 0x3 + movs r2, 0x49 + ldrb r1, [r2, r7] + ldr r2, =0x04000126 + movs r3, 0x1 +@081BA9E0: + ldrh r0, [r2] + adds r4, r0, 0 + adds r0, r1, 0 + asrs r0, r5 + ands r0, r3 + cmp r0, 0 + beq @081BA9F4 + asrs r0, r4, 8 + cmp r0, 0x73 + bne @081BAAE0 +@081BA9F4: + subs r2, 0x2 + subs r5, 0x1 + cmp r5, 0 + bne @081BA9E0 + adds r0, r7, 0 + bl MultiBoot + adds r5, r0, 0 + cmp r5, 0 + bne @081BAA18 + movs r0, 0xE0 + strb r0, [r7, 0x18] + adds r0, 0xB0 + strh r0, [r7, 0x16] + b @081BAAEA + .align 2, 0 + .pool +@081BAA18: + adds r0, r7, 0 + bl MultiBootInit + movs r0, 0x1E + mov r1, r10 + strb r0, [r1] + movs r0, 0x70 + b @081BAAEC +@081BAA28: + movs r5, 0x3 + movs r2, 0x49 + adds r2, r7 + mov r12, r2 + mov r8, r12 + movs r0, 0x1 + mov r9, r0 +@081BAA36: + mov r1, r8 + ldrb r6, [r1] + adds r0, r6, 0 + asrs r0, r5 + mov r2, r9 + ands r0, r2 + cmp r0, 0 + beq @081BAA70 + lsls r0, r5, 1 + ldr r1, =0x04000120 + adds r0, r1 + ldrh r0, [r0] + adds r4, r0, 0 + asrs r2, r4, 8 + ldrb r0, [r7, 0x18] + lsrs r0, 1 + movs r1, 0x62 + subs r1, r0 + mov r3, r9 + lsls r3, r5 + cmp r2, r1 + bne @081BAA6A + movs r0, 0xFF + ands r4, r0 + cmp r4, r3 + beq @081BAA70 +@081BAA6A: + eors r6, r3 + mov r2, r8 + strb r6, [r2] +@081BAA70: + subs r5, 0x1 + cmp r5, 0 + bne @081BAA36 + ldrb r0, [r7, 0x18] + cmp r0, 0xC4 + bne @081BAA90 + mov r0, r12 + ldrb r1, [r0] + movs r0, 0xE + ands r0, r1 + strb r0, [r7, 0x1E] + strb r5, [r7, 0x18] + b @081BA88A + .align 2, 0 + .pool +@081BAA90: + mov r1, r12 + ldrb r0, [r1] + cmp r0, 0 + bne @081BAAA2 + adds r0, r7, 0 + bl MultiBootInit + movs r0, 0x50 + b @081BAAEC +@081BAAA2: + ldrb r0, [r7, 0x18] + adds r0, 0x2 + strb r0, [r7, 0x18] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xC4 + bne @081BAAB2 + b @081BA88A +@081BAAB2: + ldrb r0, [r7, 0x18] + ldr r1, [r7, 0x28] + adds r0, r1 + subs r1, r0, 0x3 + ldrb r2, [r1] + lsls r2, 8 + subs r0, 0x4 + ldrb r1, [r0] + orrs r1, r2 + adds r0, r7, 0 + bl MultiBootSend + adds r5, r0, 0 + cmp r5, 0 + bne @081BAAEC + adds r0, r7, 0 + adds r0, 0x4B + ldrb r0, [r0] + cmp r0, 0x1 + bne @081BAAEA +@081BAADA: + bl MultiBootWaitSendDone + b @081BA736 +@081BAAE0: + adds r0, r7, 0 + bl MultiBootInit + movs r0, 0x60 + b @081BAAEC +@081BAAEA: + movs r0, 0 +@081BAAEC: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end MultiBootMain + + thumb_func_start MultiBootSend +; int MultiBootSend(MultiBootParam *mp, u16 data) +MultiBootSend: ; 81BAAFC + push {r4,lr} + adds r2, r0, 0 + lsls r1, 16 + lsrs r1, 16 + ldr r3, =0x04000128 + ldrh r0, [r3] + movs r4, 0x8C + ands r4, r0 + cmp r4, 0x8 + bne @081BAB34 + ldr r0, =0x0400012a + strh r1, [r0] + ldr r1, =0x00002083 + adds r0, r1, 0 + strh r0, [r3] + adds r1, r2, 0 + adds r1, 0x48 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0 + b @081BAB40 + .align 2, 0 + .pool +@081BAB34: + adds r0, r2, 0 + bl MultiBootInit + movs r0, 0x8 + eors r4, r0 + adds r0, r4, 0 +@081BAB40: + pop {r4} + pop {r1} + bx r1 + thumb_func_end MultiBootSend + + thumb_func_start MultiBootStartProbe +; void MultiBootStartProbe(MultiBootParam *mp) +MultiBootStartProbe: ; 81BAB48 + push {lr} + adds r1, r0, 0 + ldrb r0, [r1, 0x18] + cmp r0, 0 + beq @081BAB5A + adds r0, r1, 0 + bl MultiBootInit + b @081BAB66 +@081BAB5A: + adds r2, r1, 0 + adds r2, 0x4A + strb r0, [r2] + strb r0, [r1, 0x1E] + movs r0, 0x1 + strb r0, [r1, 0x18] +@081BAB66: + pop {r0} + bx r0 + thumb_func_end MultiBootStartProbe + + thumb_func_start MultiBootStartMaster +; void MultiBootStartMaster(MultiBootParam *mp, u8 *srcp, int length, u8 palette_color, s8 palette_speed) +MultiBootStartMaster: ; 81BAB6C + push {r4-r7,lr} + adds r4, r0, 0 + adds r6, r1, 0 + ldr r0, [sp, 0x14] + lsls r3, 24 + lsrs r5, r3, 24 + lsls r0, 24 + lsrs r7, r0, 24 + movs r3, 0 + ldrb r0, [r4, 0x18] + cmp r0, 0 + bne @081BABA8 + ldrb r0, [r4, 0x1E] + cmp r0, 0 + beq @081BABA8 + adds r0, r4, 0 + adds r0, 0x4A + ldrb r0, [r0] + cmp r0, 0 + bne @081BABA8 + str r6, [r4, 0x20] + adds r2, 0xF + movs r0, 0x10 + negs r0, r0 + ands r2, r0 + subs r0, 0xF0 + adds r1, r2, r0 + ldr r0, =0x0003ff00 + cmp r1, r0 + bls @081BABB4 +@081BABA8: + adds r0, r4, 0 + bl MultiBootInit + b @081BAC28 + .align 2, 0 + .pool +@081BABB4: + adds r0, r6, r2 + str r0, [r4, 0x24] + lsls r1, r7, 24 + movs r2, 0x80 + lsls r2, 19 + adds r0, r1, r2 + asrs r0, 24 + adds r2, r1, 0 + cmp r0, 0x8 + bhi @081BAC14 + lsls r0, 2 + ldr r1, =@081BABD8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 + .pool + .align 2, 0 +@081BABD8: + .4byte @081BABFC + .4byte @081BABFC + .4byte @081BABFC + .4byte @081BABFC + .4byte @081BAC06 + .4byte @081BAC0C + .4byte @081BAC0C + .4byte @081BAC0C + .4byte @081BAC0C +@081BABFC: + lsls r3, r5, 3 + asrs r1, r2, 24 + movs r0, 0x3 + subs r0, r1 + b @081BAC12 +@081BAC06: + movs r0, 0x38 + adds r3, r5, 0 + b @081BAC12 +@081BAC0C: + lsls r3, r5, 3 + asrs r0, r2, 24 + subs r0, 0x1 +@081BAC12: + orrs r3, r0 +@081BAC14: + movs r0, 0x3F + ands r3, r0 + lsls r0, r3, 1 + movs r2, 0x7F + negs r2, r2 + adds r1, r2, 0 + orrs r0, r1 + strb r0, [r4, 0x1C] + movs r0, 0xD0 + strb r0, [r4, 0x18] +@081BAC28: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end MultiBootStartMaster + + thumb_func_start MultiBootCheckComplete +; s32 MultiBootCheckComplete(MultiBootParam *mp) +MultiBootCheckComplete: ; 81BAC30 + push {lr} + ldrb r0, [r0, 0x18] + cmp r0, 0xE9 + beq @081BAC3C + movs r0, 0 + b @081BAC3E +@081BAC3C: + movs r0, 0x1 +@081BAC3E: + pop {r1} + bx r1 + thumb_func_end MultiBootCheckComplete + + thumb_func_start MultiBootHandShake +; int MultiBootHandShake(MultiBootParam *mp) +MultiBootHandShake: ; 81BAC44 + push {r4-r6,lr} + adds r3, r0, 0 + ldrb r0, [r3, 0x18] + cmp r0, 0xE0 + beq @081BAC60 + cmp r0, 0xE0 + blt @081BAC70 + cmp r0, 0xE8 + bgt @081BAC70 + cmp r0, 0xE7 + blt @081BAC70 + movs r4, 0x3 + ldrb r5, [r3, 0x1E] + b @081BACD0 +@081BAC60: + movs r1, 0 + movs r0, 0xE1 + strb r0, [r3, 0x18] + str r1, [r3, 0x4] + movs r0, 0x80 + lsls r0, 13 + str r0, [r3] + b @081BACC2 +@081BAC70: + movs r4, 0x3 + ldrb r5, [r3, 0x1E] + movs r6, 0x1 + ldr r1, =0x04000126 +@081BAC78: + ldrh r0, [r1] + adds r2, r0, 0 + adds r0, r5, 0 + asrs r0, r4 + ands r0, r6 + cmp r0, 0 + beq @081BAC8C + ldr r0, [r3, 0x4] + cmp r2, r0 + bne @081BAC60 +@081BAC8C: + subs r1, 0x2 + subs r4, 0x1 + cmp r4, 0 + bne @081BAC78 + ldrb r0, [r3, 0x18] + adds r0, 0x1 + strb r0, [r3, 0x18] + ldr r1, [r3] + ldrh r0, [r3] + str r0, [r3, 0x4] + cmp r1, 0 + bne @081BACBA + ldr r0, [r3, 0x28] + adds r1, r0, 0 + adds r1, 0xAC + ldrb r1, [r1] + adds r0, 0xAD + ldrb r0, [r0] + lsls r0, 8 + orrs r1, r0 + str r1, [r3, 0x4] + lsls r1, 5 + str r1, [r3] +@081BACBA: + ldr r0, [r3] + lsrs r0, 5 + str r0, [r3] +@081BACC0: + ldrh r1, [r3] +@081BACC2: + adds r0, r3, 0 + bl MultiBootSend + b @081BAD28 + .align 2, 0 + .pool +@081BACD0: + lsls r0, r4, 1 + ldr r1, =0x04000120 + adds r0, r1 + ldrh r0, [r0] + adds r2, r0, 0 + adds r0, r5, 0 + asrs r0, r4 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq @081BACEC + ldr r0, [r3, 0x4] + cmp r2, r0 + bne @081BAD1C +@081BACEC: + subs r4, 0x1 + cmp r4, 0 + bne @081BACD0 + ldrb r0, [r3, 0x18] + adds r0, 0x1 + strb r0, [r3, 0x18] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xE9 + beq @081BAD26 + ldr r0, [r3, 0x28] + adds r1, r0, 0 + adds r1, 0xAE + ldrb r1, [r1] + adds r0, 0xAF + ldrb r0, [r0] + lsls r0, 8 + orrs r1, r0 + str r1, [r3] + str r1, [r3, 0x4] + b @081BACC0 + .align 2, 0 + .pool +@081BAD1C: + adds r0, r3, 0 + bl MultiBootInit + movs r0, 0x71 + b @081BAD28 +@081BAD26: + movs r0, 0 +@081BAD28: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end MultiBootHandShake + + thumb_func_start MultiBootWaitCycles +; void MultiBootWaitCycles(u32 cycles) +MultiBootWaitCycles: ; 81BAD30 + mov r2, pc + lsrs r2, 24 + movs r1, 0xC + cmp r2, 0x2 + beq @081BAD42 + movs r1, 0xD + cmp r2, 0x8 + beq @081BAD42 + movs r1, 0x4 +@081BAD42: + subs r0, r1 + bgt @081BAD42 + bx lr + thumb_func_end MultiBootWaitCycles + + thumb_func_start MultiBootWaitSendDone +; void MultiBootWaitSendDone(void) +MultiBootWaitSendDone: ; 81BAD48 + push {r4,r5,lr} + movs r2, 0 + ldr r3, =0x04000128 + ldrh r1, [r3] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq @081BAD6C + ldr r5, =0x0000795c + movs r4, 0x80 +@081BAD5C: + adds r2, 0x1 + cmp r2, r5 + bgt @081BAD6C + ldrh r1, [r3] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne @081BAD5C +@081BAD6C: + movs r0, 0x96 + lsls r0, 2 + bl MultiBootWaitCycles + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 + .pool + thumb_func_end MultiBootWaitSendDone |