diff options
author | YamaArashi <shadow962@live.com> | 2015-10-06 19:12:31 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2015-10-06 19:12:31 -0700 |
commit | dc52bd0d851dbab5fca188e44b936a0811f24ee9 (patch) | |
tree | 5280e76a001caf75234881e62037504582f8cb99 | |
parent | 61abdbe445f42994abbd253fc437cd3c9988c83f (diff) |
split out task.s
-rw-r--r-- | asm/emerald.s | 527 | ||||
-rw-r--r-- | asm/task.s | 526 |
2 files changed, 527 insertions, 526 deletions
diff --git a/asm/emerald.s b/asm/emerald.s index cef2de1a0..91e42cca2 100644 --- a/asm/emerald.s +++ b/asm/emerald.s @@ -317339,532 +317339,7 @@ _080A8F32: .pool thumb_func_end sub_80A8EE4 - thumb_func_start clear_tasks -clear_tasks: @ 80A8F50 - push {r4-r7,lr} - movs r4, 0 - ldr r6, =0x03005e00 - adds r7, r6, 0 - adds r7, 0x8 -_080A8F5A: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r6 - movs r1, 0 - strb r1, [r2, 0x4] - ldr r1, =nullsub_4 + 1 - str r1, [r2] - strb r4, [r2, 0x5] - adds r4, 0x1 - strb r4, [r2, 0x6] - movs r1, 0x1 - negs r1, r1 - adds r5, r1, 0 - movs r1, 0xFF - strb r1, [r2, 0x7] - adds r0, r7 - movs r1, 0 - movs r2, 0x20 - bl memset - lsls r4, 24 - lsrs r4, 24 - cmp r4, 0xF - bls _080A8F5A - ldr r0, =0x03005e00 - movs r1, 0xFE - strb r1, [r0, 0x5] - ldr r1, =0x0000025e - adds r0, r1 - ldrb r1, [r0] - orrs r1, r5 - strb r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end clear_tasks - - thumb_func_start AddTask -AddTask: @ 80A8FB0 - push {r4-r7,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r6, 0 - ldr r7, =0x03005e00 -_080A8FBC: - lsls r0, r6, 2 - adds r0, r6 - lsls r5, r0, 3 - adds r4, r5, r7 - ldrb r0, [r4, 0x4] - cmp r0, 0 - bne _080A8FF0 - str r2, [r4] - strb r1, [r4, 0x7] - adds r0, r6, 0 - bl insert_task_in_order_by_priority - adds r0, r7, 0 - adds r0, 0x8 - adds r0, r5, r0 - movs r1, 0 - movs r2, 0x20 - bl memset - movs r0, 0x1 - strb r0, [r4, 0x4] - adds r0, r6, 0 - b _080A8FFC - .align 2, 0 - .pool -_080A8FF0: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xF - bls _080A8FBC - movs r0, 0 -_080A8FFC: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end AddTask - - thumb_func_start insert_task_in_order_by_priority -insert_task_in_order_by_priority: @ 80A9004 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r4, r0, 24 - bl get_first_active_task - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x10 - bne _080A9034 - ldr r1, =0x03005e00 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0xFE - strb r1, [r0, 0x5] - movs r1, 0xFF - strb r1, [r0, 0x6] - b _080A9090 - .align 2, 0 - .pool -_080A9034: - ldr r6, =0x03005e00 - lsls r0, r4, 2 - mov r12, r0 - mov r8, r6 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r6 -_080A9042: - lsls r0, r1, 2 - adds r0, r1 - lsls r5, r0, 3 - mov r7, r8 - adds r3, r5, r7 - ldrb r0, [r2, 0x7] - ldrb r7, [r3, 0x7] - cmp r0, r7 - bcs _080A9074 - ldrb r0, [r3, 0x5] - strb r0, [r2, 0x5] - strb r1, [r2, 0x6] - ldrb r0, [r3, 0x5] - cmp r0, 0xFE - beq _080A906C - adds r1, r0, 0 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - add r0, r8 - strb r4, [r0, 0x6] -_080A906C: - strb r4, [r3, 0x5] - b _080A9090 - .align 2, 0 - .pool -_080A9074: - ldrb r0, [r3, 0x6] - cmp r0, 0xFF - beq _080A907E - adds r1, r0, 0 - b _080A9042 -_080A907E: - mov r2, r12 - adds r0, r2, r4 - lsls r0, 3 - adds r0, r6 - strb r1, [r0, 0x5] - adds r2, r5, r6 - ldrb r1, [r2, 0x6] - strb r1, [r0, 0x6] - strb r4, [r2, 0x6] -_080A9090: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end insert_task_in_order_by_priority - - thumb_func_start remove_task -remove_task: @ 80A909C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, =0x03005e00 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r2, r1, r4 - ldrb r0, [r2, 0x4] - cmp r0, 0 - beq _080A9106 - movs r0, 0 - strb r0, [r2, 0x4] - ldrb r3, [r2, 0x5] - cmp r3, 0xFE - bne _080A90D4 - ldrb r0, [r2, 0x6] - cmp r0, 0xFF - beq _080A9106 - adds r1, r0, 0 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - strb r3, [r0, 0x5] - b _080A9106 - .align 2, 0 - .pool -_080A90D4: - ldrb r3, [r2, 0x6] - adds r0, r3, 0 - cmp r0, 0xFF - bne _080A90EC - ldrb r0, [r2, 0x5] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - movs r0, 0xFF - strb r0, [r1, 0x6] - b _080A9106 -_080A90EC: - ldrb r1, [r2, 0x5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - strb r3, [r0, 0x6] - ldrb r1, [r2, 0x6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldrb r1, [r2, 0x5] - strb r1, [r0, 0x5] -_080A9106: - pop {r4} - pop {r0} - bx r0 - thumb_func_end remove_task - - thumb_func_start run_active_tasks -run_active_tasks: @ 80A910C - push {r4,r5,lr} - bl get_first_active_task - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x10 - beq _080A9130 - ldr r5, =0x03005e00 -_080A911C: - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r5 - ldr r1, [r4] - bl _call_via_r1 - ldrb r0, [r4, 0x6] - cmp r0, 0xFF - bne _080A911C -_080A9130: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end run_active_tasks - - thumb_func_start get_first_active_task -get_first_active_task: @ 80A913C - push {lr} - movs r2, 0 - ldr r0, =0x03005e00 - ldrb r1, [r0, 0x4] - adds r3, r0, 0 - cmp r1, 0x1 - bne _080A9150 - ldrb r0, [r3, 0x5] - cmp r0, 0xFE - beq _080A916E -_080A9150: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bhi _080A916E - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r3 - ldrb r0, [r1, 0x4] - cmp r0, 0x1 - bne _080A9150 - ldrb r0, [r1, 0x5] - cmp r0, 0xFE - bne _080A9150 -_080A916E: - adds r0, r2, 0 - pop {r1} - bx r1 - .align 2, 0 - .pool - thumb_func_end get_first_active_task - - thumb_func_start nullsub_4 -nullsub_4: @ 80A9178 - bx lr - thumb_func_end nullsub_4 - - thumb_func_start set_task_function_and_args_14_15 -set_task_function_and_args_14_15: @ 80A917C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, =0x03005e00 - lsls r3, r0, 2 - adds r3, r0 - lsls r3, 3 - adds r0, r3, 0 - adds r0, 0x1C - adds r4, r5, 0 - adds r4, 0x8 - adds r0, r4 - strh r2, [r0] - adds r0, r3, 0 - adds r0, 0x1E - adds r0, r4 - lsrs r2, 16 - strh r2, [r0] - adds r3, r5 - str r1, [r3] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end set_task_function_and_args_14_15 - - thumb_func_start set_task_function_to_args_14_15 -set_task_function_to_args_14_15: @ 80A91B0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, =0x03005e00 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r3 - adds r0, r1, 0 - adds r0, 0x1C - adds r3, 0x8 - adds r0, r3 - ldrh r2, [r0] - adds r1, 0x1E - adds r1, r3 - movs r3, 0 - ldrsh r0, [r1, r3] - lsls r0, 16 - orrs r2, r0 - str r2, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end set_task_function_to_args_14_15 - - thumb_func_start is_function_an_active_task -is_function_an_active_task: @ 80A91E4 - push {r4,lr} - adds r3, r0, 0 - movs r2, 0 - ldr r4, =0x03005e00 -_080A91EC: - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r4 - ldrb r0, [r1, 0x4] - cmp r0, 0x1 - bne _080A9208 - ldr r0, [r1] - cmp r0, r3 - bne _080A9208 - movs r0, 0x1 - b _080A9214 - .align 2, 0 - .pool -_080A9208: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _080A91EC - movs r0, 0 -_080A9214: - pop {r4} - pop {r1} - bx r1 - thumb_func_end is_function_an_active_task - - thumb_func_start get_task_id_by_function -get_task_id_by_function: @ 80A921C - push {lr} - adds r3, r0, 0 - movs r2, 0 - ldr r1, =0x03005e00 -_080A9224: - ldrb r0, [r1, 0x4] - cmp r0, 0x1 - bne _080A923C - ldr r0, [r1] - cmp r0, r3 - bne _080A923C - lsls r0, r2, 24 - lsrs r0, 24 - b _080A9246 - .align 2, 0 - .pool -_080A923C: - adds r1, 0x28 - adds r2, 0x1 - cmp r2, 0xF - ble _080A9224 - movs r0, 0xFF -_080A9246: - pop {r1} - bx r1 - thumb_func_end get_task_id_by_function - - thumb_func_start sub_80A924C -sub_80A924C: @ 80A924C - push {lr} - movs r2, 0 - movs r1, 0 - ldr r3, =0x03005e00 -_080A9254: - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0, 0x4] - cmp r0, 0x1 - bne _080A9268 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_080A9268: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080A9254 - adds r0, r2, 0 - pop {r1} - bx r1 - .align 2, 0 - .pool - thumb_func_end sub_80A924C - - thumb_func_start set_word_task_arg -set_word_task_arg: @ 80A927C - push {r4,r5,lr} - adds r5, r2, 0 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - cmp r3, 0xE - bhi _080A92AA - ldr r2, =0x03005e00 - lsls r0, r3, 1 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r0, r1 - adds r2, 0x8 - adds r0, r2 - strh r5, [r0] - adds r0, r3, 0x1 - lsls r0, 1 - adds r0, r1 - adds r0, r2 - lsrs r1, r5, 16 - strh r1, [r0] -_080A92AA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 - .pool - thumb_func_end set_word_task_arg - - thumb_func_start get_word_task_arg -get_word_task_arg: @ 80A92B4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0xE - bls _080A92C6 - movs r0, 0 - b _080A92E8 -_080A92C6: - ldr r3, =0x03005e00 - lsls r0, r1, 1 - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 3 - adds r0, r2 - adds r3, 0x8 - adds r0, r3 - ldrh r0, [r0] - adds r1, 0x1 - lsls r1, 1 - adds r1, r2 - adds r1, r3 - movs r2, 0 - ldrsh r1, [r1, r2] - lsls r1, 16 - orrs r0, r1 -_080A92E8: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 - .pool - thumb_func_end get_word_task_arg + .include "task.s" thumb_func_start nullsub_35 nullsub_35: @ 80A92F4 diff --git a/asm/task.s b/asm/task.s new file mode 100644 index 000000000..a5cdeac41 --- /dev/null +++ b/asm/task.s @@ -0,0 +1,526 @@ + thumb_func_start clear_tasks +clear_tasks: @ 80A8F50 + push {r4-r7,lr} + movs r4, 0 + ldr r6, =0x03005e00 + adds r7, r6, 0 + adds r7, 0x8 +_080A8F5A: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r6 + movs r1, 0 + strb r1, [r2, 0x4] + ldr r1, =nullsub_4 + 1 + str r1, [r2] + strb r4, [r2, 0x5] + adds r4, 0x1 + strb r4, [r2, 0x6] + movs r1, 0x1 + negs r1, r1 + adds r5, r1, 0 + movs r1, 0xFF + strb r1, [r2, 0x7] + adds r0, r7 + movs r1, 0 + movs r2, 0x20 + bl memset + lsls r4, 24 + lsrs r4, 24 + cmp r4, 0xF + bls _080A8F5A + ldr r0, =0x03005e00 + movs r1, 0xFE + strb r1, [r0, 0x5] + ldr r1, =0x0000025e + adds r0, r1 + ldrb r1, [r0] + orrs r1, r5 + strb r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 + .pool + thumb_func_end clear_tasks + + thumb_func_start AddTask +AddTask: @ 80A8FB0 + push {r4-r7,lr} + adds r2, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r6, 0 + ldr r7, =0x03005e00 +_080A8FBC: + lsls r0, r6, 2 + adds r0, r6 + lsls r5, r0, 3 + adds r4, r5, r7 + ldrb r0, [r4, 0x4] + cmp r0, 0 + bne _080A8FF0 + str r2, [r4] + strb r1, [r4, 0x7] + adds r0, r6, 0 + bl insert_task_in_order_by_priority + adds r0, r7, 0 + adds r0, 0x8 + adds r0, r5, r0 + movs r1, 0 + movs r2, 0x20 + bl memset + movs r0, 0x1 + strb r0, [r4, 0x4] + adds r0, r6, 0 + b _080A8FFC + .align 2, 0 + .pool +_080A8FF0: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xF + bls _080A8FBC + movs r0, 0 +_080A8FFC: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end AddTask + + thumb_func_start insert_task_in_order_by_priority +insert_task_in_order_by_priority: @ 80A9004 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r4, r0, 24 + bl get_first_active_task + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x10 + bne _080A9034 + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0xFE + strb r1, [r0, 0x5] + movs r1, 0xFF + strb r1, [r0, 0x6] + b _080A9090 + .align 2, 0 + .pool +_080A9034: + ldr r6, =0x03005e00 + lsls r0, r4, 2 + mov r12, r0 + mov r8, r6 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r6 +_080A9042: + lsls r0, r1, 2 + adds r0, r1 + lsls r5, r0, 3 + mov r7, r8 + adds r3, r5, r7 + ldrb r0, [r2, 0x7] + ldrb r7, [r3, 0x7] + cmp r0, r7 + bcs _080A9074 + ldrb r0, [r3, 0x5] + strb r0, [r2, 0x5] + strb r1, [r2, 0x6] + ldrb r0, [r3, 0x5] + cmp r0, 0xFE + beq _080A906C + adds r1, r0, 0 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + add r0, r8 + strb r4, [r0, 0x6] +_080A906C: + strb r4, [r3, 0x5] + b _080A9090 + .align 2, 0 + .pool +_080A9074: + ldrb r0, [r3, 0x6] + cmp r0, 0xFF + beq _080A907E + adds r1, r0, 0 + b _080A9042 +_080A907E: + mov r2, r12 + adds r0, r2, r4 + lsls r0, 3 + adds r0, r6 + strb r1, [r0, 0x5] + adds r2, r5, r6 + ldrb r1, [r2, 0x6] + strb r1, [r0, 0x6] + strb r4, [r2, 0x6] +_080A9090: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end insert_task_in_order_by_priority + + thumb_func_start remove_task +remove_task: @ 80A909C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r2, r1, r4 + ldrb r0, [r2, 0x4] + cmp r0, 0 + beq _080A9106 + movs r0, 0 + strb r0, [r2, 0x4] + ldrb r3, [r2, 0x5] + cmp r3, 0xFE + bne _080A90D4 + ldrb r0, [r2, 0x6] + cmp r0, 0xFF + beq _080A9106 + adds r1, r0, 0 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + strb r3, [r0, 0x5] + b _080A9106 + .align 2, 0 + .pool +_080A90D4: + ldrb r3, [r2, 0x6] + adds r0, r3, 0 + cmp r0, 0xFF + bne _080A90EC + ldrb r0, [r2, 0x5] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + movs r0, 0xFF + strb r0, [r1, 0x6] + b _080A9106 +_080A90EC: + ldrb r1, [r2, 0x5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + strb r3, [r0, 0x6] + ldrb r1, [r2, 0x6] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldrb r1, [r2, 0x5] + strb r1, [r0, 0x5] +_080A9106: + pop {r4} + pop {r0} + bx r0 + thumb_func_end remove_task + + thumb_func_start run_active_tasks +run_active_tasks: @ 80A910C + push {r4,r5,lr} + bl get_first_active_task + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x10 + beq _080A9130 + ldr r5, =0x03005e00 +_080A911C: + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r5 + ldr r1, [r4] + bl _call_via_r1 + ldrb r0, [r4, 0x6] + cmp r0, 0xFF + bne _080A911C +_080A9130: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 + .pool + thumb_func_end run_active_tasks + + thumb_func_start get_first_active_task +get_first_active_task: @ 80A913C + push {lr} + movs r2, 0 + ldr r0, =0x03005e00 + ldrb r1, [r0, 0x4] + adds r3, r0, 0 + cmp r1, 0x1 + bne _080A9150 + ldrb r0, [r3, 0x5] + cmp r0, 0xFE + beq _080A916E +_080A9150: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xF + bhi _080A916E + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r3 + ldrb r0, [r1, 0x4] + cmp r0, 0x1 + bne _080A9150 + ldrb r0, [r1, 0x5] + cmp r0, 0xFE + bne _080A9150 +_080A916E: + adds r0, r2, 0 + pop {r1} + bx r1 + .align 2, 0 + .pool + thumb_func_end get_first_active_task + + thumb_func_start nullsub_4 +nullsub_4: @ 80A9178 + bx lr + thumb_func_end nullsub_4 + + thumb_func_start set_task_function_and_args_14_15 +set_task_function_and_args_14_15: @ 80A917C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, =0x03005e00 + lsls r3, r0, 2 + adds r3, r0 + lsls r3, 3 + adds r0, r3, 0 + adds r0, 0x1C + adds r4, r5, 0 + adds r4, 0x8 + adds r0, r4 + strh r2, [r0] + adds r0, r3, 0 + adds r0, 0x1E + adds r0, r4 + lsrs r2, 16 + strh r2, [r0] + adds r3, r5 + str r1, [r3] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 + .pool + thumb_func_end set_task_function_and_args_14_15 + + thumb_func_start set_task_function_to_args_14_15 +set_task_function_to_args_14_15: @ 80A91B0 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r3 + adds r0, r1, 0 + adds r0, 0x1C + adds r3, 0x8 + adds r0, r3 + ldrh r2, [r0] + adds r1, 0x1E + adds r1, r3 + movs r3, 0 + ldrsh r0, [r1, r3] + lsls r0, 16 + orrs r2, r0 + str r2, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + .pool + thumb_func_end set_task_function_to_args_14_15 + + thumb_func_start is_function_an_active_task +is_function_an_active_task: @ 80A91E4 + push {r4,lr} + adds r3, r0, 0 + movs r2, 0 + ldr r4, =0x03005e00 +_080A91EC: + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r4 + ldrb r0, [r1, 0x4] + cmp r0, 0x1 + bne _080A9208 + ldr r0, [r1] + cmp r0, r3 + bne _080A9208 + movs r0, 0x1 + b _080A9214 + .align 2, 0 + .pool +_080A9208: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xF + bls _080A91EC + movs r0, 0 +_080A9214: + pop {r4} + pop {r1} + bx r1 + thumb_func_end is_function_an_active_task + + thumb_func_start get_task_id_by_function +get_task_id_by_function: @ 80A921C + push {lr} + adds r3, r0, 0 + movs r2, 0 + ldr r1, =0x03005e00 +_080A9224: + ldrb r0, [r1, 0x4] + cmp r0, 0x1 + bne _080A923C + ldr r0, [r1] + cmp r0, r3 + bne _080A923C + lsls r0, r2, 24 + lsrs r0, 24 + b _080A9246 + .align 2, 0 + .pool +_080A923C: + adds r1, 0x28 + adds r2, 0x1 + cmp r2, 0xF + ble _080A9224 + movs r0, 0xFF +_080A9246: + pop {r1} + bx r1 + thumb_func_end get_task_id_by_function + + thumb_func_start sub_80A924C +sub_80A924C: @ 80A924C + push {lr} + movs r2, 0 + movs r1, 0 + ldr r3, =0x03005e00 +_080A9254: + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + ldrb r0, [r0, 0x4] + cmp r0, 0x1 + bne _080A9268 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 +_080A9268: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _080A9254 + adds r0, r2, 0 + pop {r1} + bx r1 + .align 2, 0 + .pool + thumb_func_end sub_80A924C + + thumb_func_start set_word_task_arg +set_word_task_arg: @ 80A927C + push {r4,r5,lr} + adds r5, r2, 0 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + cmp r3, 0xE + bhi _080A92AA + ldr r2, =0x03005e00 + lsls r0, r3, 1 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r0, r1 + adds r2, 0x8 + adds r0, r2 + strh r5, [r0] + adds r0, r3, 0x1 + lsls r0, 1 + adds r0, r1 + adds r0, r2 + lsrs r1, r5, 16 + strh r1, [r0] +_080A92AA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 + .pool + thumb_func_end set_word_task_arg + + thumb_func_start get_word_task_arg +get_word_task_arg: @ 80A92B4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0xE + bls _080A92C6 + movs r0, 0 + b _080A92E8 +_080A92C6: + ldr r3, =0x03005e00 + lsls r0, r1, 1 + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 3 + adds r0, r2 + adds r3, 0x8 + adds r0, r3 + ldrh r0, [r0] + adds r1, 0x1 + lsls r1, 1 + adds r1, r2 + adds r1, r3 + movs r2, 0 + ldrsh r1, [r1, r2] + lsls r1, 16 + orrs r0, r1 +_080A92E8: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 + .pool + thumb_func_end get_word_task_arg |