diff options
Diffstat (limited to 'asm/libagbbackup.s')
-rw-r--r-- | asm/libagbbackup.s | 1079 |
1 files changed, 0 insertions, 1079 deletions
diff --git a/asm/libagbbackup.s b/asm/libagbbackup.s deleted file mode 100644 index 940e3addf..000000000 --- a/asm/libagbbackup.s +++ /dev/null @@ -1,1079 +0,0 @@ - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start SwitchFlashBank -SwitchFlashBank: @ 82E185C - lsls r0, 24 - lsrs r0, 24 - ldr r3, =0x0e005555 - movs r1, 0xAA - strb r1, [r3] - ldr r2, =0x0e002aaa - movs r1, 0x55 - strb r1, [r2] - movs r1, 0xB0 - strb r1, [r3] - movs r1, 0xE0 - lsls r1, 20 - strb r0, [r1] - bx lr - .pool - thumb_func_end SwitchFlashBank - - thumb_func_start ReadFlashID -@ u16 ReadFlashID() -ReadFlashID: @ 82E1880 - push {r4,r5,lr} - sub sp, 0x44 - mov r0, sp - bl SetReadFlash1 - mov r5, sp - adds r5, 0x1 - ldr r2, =0x0e005555 - movs r0, 0xAA - strb r0, [r2] - ldr r1, =0x0e002aaa - movs r0, 0x55 - strb r0, [r1] - movs r0, 0x90 - strb r0, [r2] - add r1, sp, 0x40 - ldr r2, =0x00004e20 - adds r0, r2, 0 - b _082E18B8 - .pool -_082E18B4: - ldrh r0, [r1] - subs r0, 0x1 -_082E18B8: - strh r0, [r1] - ldrh r0, [r1] - cmp r0, 0 - bne _082E18B4 - ldr r0, =0x0e000001 - bl _call_via_r5 - lsls r0, 24 - lsrs r4, r0, 16 - movs r0, 0xE0 - lsls r0, 20 - bl _call_via_r5 - lsls r0, 24 - lsrs r0, 24 - orrs r4, r0 - ldr r1, =0x0e005555 - movs r0, 0xAA - strb r0, [r1] - ldr r2, =0x0e002aaa - movs r0, 0x55 - strb r0, [r2] - movs r0, 0xF0 - strb r0, [r1] - strb r0, [r1] - add r1, sp, 0x40 - ldr r2, =0x00004e20 - adds r0, r2, 0 - b _082E1908 - .pool -_082E1904: - ldrh r0, [r1] - subs r0, 0x1 -_082E1908: - strh r0, [r1] - ldrh r0, [r1] - cmp r0, 0 - bne _082E1904 - adds r0, r4, 0 - add sp, 0x44 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end ReadFlashID - - thumb_func_start FlashTimerIntr -@ void FlashTimerIntr() -FlashTimerIntr: @ 82E191C - push {lr} - ldr r1, =gUnknown_03001A72 - ldrh r0, [r1] - cmp r0, 0 - beq _082E1938 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bne _082E1938 - ldr r1, =gUnknown_03007840 - movs r0, 0x1 - strb r0, [r1] -_082E1938: - pop {r0} - bx r0 - .pool - thumb_func_end FlashTimerIntr - - thumb_func_start SetFlashTimerIntr -@ void SetFlashTimerIntr(u8 timer_id, void ( **irq_timer_func)()) -SetFlashTimerIntr: @ 82E1944 - push {lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bhi _082E1978 - ldr r0, =gUnknown_03001A70 - strb r1, [r0] - ldr r1, =gUnknown_03001A74 - ldrb r0, [r0] - lsls r0, 2 - ldr r3, =0x04000100 - adds r0, r3 - str r0, [r1] - ldr r0, =FlashTimerIntr - str r0, [r2] - movs r0, 0 - b _082E197A - .pool -_082E1978: - movs r0, 0x1 -_082E197A: - pop {r1} - bx r1 - thumb_func_end SetFlashTimerIntr - - thumb_func_start StartFlashTimer -StartFlashTimer: @ 82E1980 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_03007864 - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 1 - ldr r0, [r1] - adds r2, r0 - ldr r1, =gUnknown_03001A78 - ldr r0, =0x04000208 - mov r9, r0 - ldrh r0, [r0] - strh r0, [r1] - movs r3, 0 - mov r1, r9 - strh r3, [r1] - ldr r0, =gUnknown_03001A74 - mov r8, r0 - ldr r4, [r0] - strh r3, [r4, 0x2] - ldr r6, =0x04000200 - ldr r1, =gUnknown_03001A70 - mov r10, r1 - ldrb r1, [r1] - movs r5, 0x8 - adds r0, r5, 0 - lsls r0, r1 - adds r1, r0, 0 - ldrh r0, [r6] - orrs r0, r1 - strh r0, [r6] - ldr r0, =gUnknown_03007840 - strb r3, [r0] - ldr r1, =gUnknown_03001A72 - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - ldrh r0, [r2] - strh r0, [r4] - adds r0, r4, 0x2 - mov r1, r8 - str r0, [r1] - ldrh r0, [r2, 0x2] - strh r0, [r4, 0x2] - str r4, [r1] - ldr r1, =0x04000202 - mov r2, r10 - ldrb r0, [r2] - lsls r5, r0 - strh r5, [r1] - movs r0, 0x1 - mov r3, r9 - strh r0, [r3] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end StartFlashTimer - - thumb_func_start StopFlashTimer -StopFlashTimer: @ 82E1A28 - ldr r3, =0x04000208 - movs r1, 0 - strh r1, [r3] - ldr r2, =gUnknown_03001A74 - ldr r0, [r2] - strh r1, [r0] - adds r0, 0x2 - str r0, [r2] - strh r1, [r0] - subs r0, 0x2 - str r0, [r2] - ldr r2, =0x04000200 - ldr r0, =gUnknown_03001A70 - ldrb r0, [r0] - movs r1, 0x8 - lsls r1, r0 - ldrh r0, [r2] - bics r0, r1 - strh r0, [r2] - ldr r0, =gUnknown_03001A78 - ldrh r0, [r0] - strh r0, [r3] - bx lr - .pool - thumb_func_end StopFlashTimer - - thumb_func_start ReadFlash1 -@ u8 ReadFlash1(int address) -ReadFlash1: @ 82E1A6C - ldrb r0, [r0] - bx lr - thumb_func_end ReadFlash1 - - thumb_func_start SetReadFlash1 -@ void SetReadFlash1(u8 ( *target_func)(int address)) -SetReadFlash1: @ 82E1A70 - push {lr} - adds r2, r0, 0 - ldr r1, =gUnknown_03007844 - adds r0, r2, 0x1 - str r0, [r1] - ldr r3, =ReadFlash1 - movs r0, 0x1 - eors r3, r0 - ldr r0, =SetReadFlash1 - ldr r1, =ReadFlash1 - subs r0, r1 - lsls r0, 15 - b _082E1AA4 - .pool -_082E1A98: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r0, r1, 0x1 - lsls r0, 16 -_082E1AA4: - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E1A98 - pop {r0} - bx r0 - thumb_func_end SetReadFlash1 - - thumb_func_start ReadFlash_Core -ReadFlash_Core: @ 82E1AB0 - push {r4,lr} - adds r4, r0, 0 - subs r3, r2, 0x1 - cmp r2, 0 - beq _082E1ACC - movs r2, 0x1 - negs r2, r2 -_082E1ABE: - ldrb r0, [r4] - strb r0, [r1] - adds r4, 0x1 - adds r1, 0x1 - subs r3, 0x1 - cmp r3, r2 - bne _082E1ABE -_082E1ACC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ReadFlash_Core - - thumb_func_start ReadFlash -ReadFlash: @ 82E1AD4 - push {r4-r7,lr} - sub sp, 0x80 - adds r5, r1, 0 - adds r6, r2, 0 - adds r7, r3, 0 - lsls r3, r0, 16 - lsrs r4, r3, 16 - ldr r2, =0x04000204 - ldrh r0, [r2] - ldr r1, =0x0000fffc - ands r0, r1 - movs r1, 0x3 - orrs r0, r1 - strh r0, [r2] - ldr r0, =gUnknown_03007850 - ldr r0, [r0] - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 10 - cmp r1, r0 - bne _082E1B0C - lsrs r0, r3, 20 - lsls r0, 24 - lsrs r0, 24 - bl SwitchFlashBank - movs r0, 0xF - ands r4, r0 -_082E1B0C: - ldr r3, =ReadFlash_Core - movs r0, 0x1 - eors r3, r0 - mov r2, sp - ldr r0, =ReadFlash - ldr r1, =ReadFlash_Core - subs r0, r1 - lsls r0, 15 - b _082E1B40 - .pool -_082E1B34: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r0, r1, 0x1 - lsls r0, 16 -_082E1B40: - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E1B34 - mov r3, sp - adds r3, 0x1 - ldr r0, =gUnknown_03007850 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - lsls r4, r0 - adds r0, r4, 0 - movs r2, 0xE0 - lsls r2, 20 - adds r1, r5, r2 - adds r0, r1 - adds r1, r6, 0 - adds r2, r7, 0 - bl _call_via_r3 - add sp, 0x80 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ReadFlash - - thumb_func_start VerifyFlashSector_Core -VerifyFlashSector_Core: @ 82E1B70 - push {r4,r5,lr} - adds r5, r0, 0 - adds r3, r1, 0 - subs r4, r2, 0x1 - cmp r2, 0 - beq _082E1B96 - movs r2, 0x1 - negs r2, r2 -_082E1B80: - ldrb r1, [r3] - ldrb r0, [r5] - adds r5, 0x1 - adds r3, 0x1 - cmp r1, r0 - beq _082E1B90 - subs r0, r3, 0x1 - b _082E1B98 -_082E1B90: - subs r4, 0x1 - cmp r4, r2 - bne _082E1B80 -_082E1B96: - movs r0, 0 -_082E1B98: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end VerifyFlashSector_Core - - thumb_func_start VerifyFlashSector -VerifyFlashSector: @ 82E1BA0 - push {r4,r5,lr} - sub sp, 0x100 - adds r5, r1, 0 - lsls r3, r0, 16 - lsrs r4, r3, 16 - ldr r2, =0x04000204 - ldrh r0, [r2] - ldr r1, =0x0000fffc - ands r0, r1 - movs r1, 0x3 - orrs r0, r1 - strh r0, [r2] - ldr r0, =gUnknown_03007850 - ldr r0, [r0] - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 10 - cmp r1, r0 - bne _082E1BD4 - lsrs r0, r3, 20 - lsls r0, 24 - lsrs r0, 24 - bl SwitchFlashBank - movs r0, 0xF - ands r4, r0 -_082E1BD4: - ldr r3, =VerifyFlashSector_Core - movs r0, 0x1 - eors r3, r0 - mov r2, sp - ldr r0, =VerifyFlashSector - ldr r1, =VerifyFlashSector_Core - subs r0, r1 - lsls r0, 15 - b _082E1C08 - .pool -_082E1BFC: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r0, r1, 0x1 - lsls r0, 16 -_082E1C08: - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E1BFC - mov r3, sp - adds r3, 0x1 - ldr r0, =gUnknown_03007850 - ldr r0, [r0] - ldrb r1, [r0, 0x8] - lsls r4, r1 - adds r1, r4, 0 - movs r2, 0xE0 - lsls r2, 20 - adds r1, r2 - ldrh r2, [r0, 0x4] - adds r0, r5, 0 - bl _call_via_r3 - add sp, 0x100 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end VerifyFlashSector - - thumb_func_start VerifyFlashSectorFirstNBytes -VerifyFlashSectorFirstNBytes: @ 82E1C38 - push {r4-r6,lr} - sub sp, 0x100 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r2, r0, 16 - lsrs r4, r2, 16 - ldr r0, =gUnknown_03007850 - ldr r0, [r0] - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 10 - cmp r1, r0 - bne _082E1C60 - lsrs r0, r2, 20 - lsls r0, 24 - lsrs r0, 24 - bl SwitchFlashBank - movs r0, 0xF - ands r4, r0 -_082E1C60: - ldr r2, =0x04000204 - ldrh r0, [r2] - ldr r1, =0x0000fffc - ands r0, r1 - movs r1, 0x3 - orrs r0, r1 - strh r0, [r2] - ldr r3, =VerifyFlashSector_Core - movs r0, 0x1 - eors r3, r0 - mov r2, sp - ldr r0, =VerifyFlashSector - ldr r1, =VerifyFlashSector_Core - subs r0, r1 - lsls r0, 15 - b _082E1CA0 - .pool -_082E1C94: - ldrh r0, [r3] - strh r0, [r2] - adds r3, 0x2 - adds r2, 0x2 - subs r0, r1, 0x1 - lsls r0, 16 -_082E1CA0: - lsrs r1, r0, 16 - cmp r1, 0 - bne _082E1C94 - mov r3, sp - adds r3, 0x1 - ldr r0, =gUnknown_03007850 - ldr r0, [r0] - ldrb r1, [r0, 0x8] - lsls r4, r1 - adds r1, r4, 0 - movs r0, 0xE0 - lsls r0, 20 - adds r1, r0 - adds r0, r5, 0 - adds r2, r6, 0 - bl _call_via_r3 - add sp, 0x100 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end VerifyFlashSectorFirstNBytes - - thumb_func_start ProgramFlashSectorsAndVerify -ProgramFlashSectorsAndVerify: @ 82E1CD0 - push {r4-r6,lr} - adds r5, r1, 0 - lsls r0, 16 - lsrs r4, r0, 16 - movs r6, 0 - b _082E1CE2 -_082E1CDC: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_082E1CE2: - cmp r6, 0x2 - bhi _082E1D08 - ldr r0, =gUnknown_0300784C - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl _call_via_r2 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - bne _082E1CDC - adds r0, r4, 0 - adds r1, r5, 0 - bl VerifyFlashSector - adds r2, r0, 0 - cmp r2, 0 - bne _082E1CDC -_082E1D08: - adds r0, r2, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end ProgramFlashSectorsAndVerify - - thumb_func_start ProgramFlashSectorsVerifyFirstNBytes -ProgramFlashSectorsVerifyFirstNBytes: @ 82E1D14 - push {r4-r7,lr} - adds r5, r1, 0 - adds r7, r2, 0 - lsls r0, 16 - lsrs r4, r0, 16 - movs r6, 0 - b _082E1D28 -_082E1D22: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_082E1D28: - cmp r6, 0x2 - bhi _082E1D50 - ldr r0, =gUnknown_0300784C - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl _call_via_r2 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - bne _082E1D22 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r7, 0 - bl VerifyFlashSectorFirstNBytes - adds r3, r0, 0 - cmp r3, 0 - bne _082E1D22 -_082E1D50: - adds r0, r3, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end ProgramFlashSectorsVerifyFirstNBytes - - thumb_func_start IdentifyFlash -@ _BOOL2 IdentifyFlash() -IdentifyFlash: @ 82E1D5C - push {r4,lr} - ldr r2, =0x04000204 - ldrh r0, [r2] - ldr r1, =0x0000fffc - ands r0, r1 - movs r1, 0x3 - orrs r0, r1 - strh r0, [r2] - bl ReadFlashID - lsls r0, 16 - lsrs r3, r0, 16 - ldr r2, =gUnknown_089A30D0 - movs r4, 0x1 - b _082E1D8A - .pool -_082E1D88: - adds r2, 0x4 -_082E1D8A: - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0x2C - ldrb r0, [r0] - cmp r0, 0 - beq _082E1D9E - ldrh r0, [r1, 0x2C] - cmp r3, r0 - bne _082E1D88 - movs r4, 0 -_082E1D9E: - ldr r1, =gUnknown_03007854 - ldr r0, [r2] - ldr r0, [r0] - str r0, [r1] - ldr r1, =gUnknown_0300784C - ldr r0, [r2] - ldr r0, [r0, 0x4] - str r0, [r1] - ldr r1, =gUnknown_0300785C - ldr r0, [r2] - ldr r0, [r0, 0x8] - str r0, [r1] - ldr r1, =gUnknown_03007860 - ldr r0, [r2] - ldr r0, [r0, 0xC] - str r0, [r1] - ldr r1, =gUnknown_03007848 - ldr r0, [r2] - ldr r0, [r0, 0x10] - str r0, [r1] - ldr r1, =gUnknown_03007864 - ldr r0, [r2] - ldr r0, [r0, 0x14] - str r0, [r1] - ldr r1, =gUnknown_03007850 - ldr r0, [r2] - adds r0, 0x18 - str r0, [r1] - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end IdentifyFlash - - thumb_func_start PollingSR_COMMON -PollingSR_COMMON: @ 82E1DFC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r2, 24 - lsrs r5, r2, 24 - movs r0, 0 - mov r8, r0 - adds r0, r7, 0 - bl StartFlashTimer - ldr r6, =gUnknown_03007844 - ldr r1, =0x0e005555 - mov r9, r1 - b _082E1E60 - .pool -_082E1E28: - movs r0, 0xF0 - mov r1, r9 - strb r0, [r1] - movs r0, 0xA0 - lsls r0, 8 - b _082E1E56 -_082E1E34: - ldr r0, =gUnknown_03007840 - ldrb r0, [r0] - cmp r0, 0 - beq _082E1E60 - ldr r1, [r6] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - beq _082E1E88 - movs r0, 0xF0 - mov r1, r9 - strb r0, [r1] - movs r0, 0xC0 - lsls r0, 8 -_082E1E56: - orrs r7, r0 - mov r8, r7 - b _082E1E88 - .pool -_082E1E60: - ldr r1, [r6] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r5 - beq _082E1E88 - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _082E1E34 - ldr r1, [r6] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - bne _082E1E28 -_082E1E88: - bl StopFlashTimer - mov r0, r8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end PollingSR_COMMON - - thumb_func_start EraseFlashChip -EraseFlashChip: @ 82E1E9C - push {r4-r6,lr} - sub sp, 0x40 - ldr r5, =0x04000204 - ldrh r1, [r5] - ldr r6, =0x0000fffc - ands r1, r6 - ldr r0, =gUnknown_03007850 - ldr r0, [r0] - ldrh r0, [r0, 0x10] - orrs r1, r0 - strh r1, [r5] - ldr r1, =0x0e005555 - movs r4, 0xAA - strb r4, [r1] - ldr r3, =0x0e002aaa - movs r2, 0x55 - strb r2, [r3] - movs r0, 0x80 - strb r0, [r1] - strb r4, [r1] - strb r2, [r3] - movs r0, 0x10 - strb r0, [r1] - mov r0, sp - bl SetReadFlash1 - ldr r0, =gUnknown_03007848 - movs r1, 0xE0 - lsls r1, 20 - ldr r3, [r0] - movs r0, 0x3 - movs r2, 0xFF - bl _call_via_r3 - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r5] - ands r1, r6 - movs r2, 0x3 - orrs r1, r2 - strh r1, [r5] - add sp, 0x40 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end EraseFlashChip - - thumb_func_start EraseFlashSector -EraseFlashSector: @ 82E1F10 - push {r4-r7,lr} - sub sp, 0x40 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =gUnknown_03007850 - ldr r0, [r0] - ldrh r0, [r0, 0xA] - cmp r6, r0 - bcc _082E1F30 - ldr r0, =0x000080ff - b _082E1FD0 - .pool -_082E1F30: - lsrs r0, r6, 4 - lsls r0, 24 - lsrs r0, 24 - bl SwitchFlashBank - movs r0, 0xF - ands r6, r0 - movs r7, 0 -_082E1F40: - ldr r3, =0x04000204 - ldrh r1, [r3] - ldr r0, =0x0000fffc - ands r1, r0 - ldr r0, =gUnknown_03007850 - ldr r2, [r0] - ldrh r0, [r2, 0x10] - orrs r1, r0 - strh r1, [r3] - ldrb r4, [r2, 0x8] - adds r0, r6, 0 - lsls r0, r4 - adds r4, r0, 0 - movs r0, 0xE0 - lsls r0, 20 - adds r4, r0 - ldr r1, =0x0e005555 - movs r5, 0xAA - strb r5, [r1] - ldr r3, =0x0e002aaa - movs r2, 0x55 - strb r2, [r3] - movs r0, 0x80 - strb r0, [r1] - strb r5, [r1] - strb r2, [r3] - movs r0, 0x30 - strb r0, [r4] - mov r0, sp - bl SetReadFlash1 - ldr r0, =gUnknown_03007848 - ldr r3, [r0] - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0xFF - bl _call_via_r3 - lsls r0, 16 - lsrs r3, r0, 16 - movs r0, 0xA0 - lsls r0, 8 - ands r0, r3 - cmp r0, 0 - beq _082E1FC0 - cmp r7, 0x3 - bhi _082E1FC0 - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - b _082E1F40 - .pool -_082E1FC0: - ldr r2, =0x04000204 - ldrh r0, [r2] - ldr r1, =0x0000fffc - ands r0, r1 - movs r1, 0x3 - orrs r0, r1 - strh r0, [r2] - adds r0, r3, 0 -_082E1FD0: - add sp, 0x40 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end EraseFlashSector - - thumb_func_start ProgramFlashByte -ProgramFlashByte: @ 82E1FE0 - push {r4-r7,lr} - sub sp, 0x40 - adds r6, r1, 0 - lsls r1, r0, 16 - lsrs r4, r1, 16 - lsls r2, 24 - lsrs r7, r2, 24 - ldr r5, =gUnknown_03007850 - ldr r0, [r5] - ldr r0, [r0, 0x4] - cmp r6, r0 - bcs _082E2068 - lsrs r0, r1, 20 - lsls r0, 24 - lsrs r0, 24 - bl SwitchFlashBank - movs r0, 0xF - ldr r1, [r5] - ands r4, r0 - ldrb r1, [r1, 0x8] - lsls r4, r1 - movs r1, 0xE0 - lsls r1, 20 - adds r0, r6, r1 - adds r4, r0 - mov r0, sp - bl SetReadFlash1 - ldr r2, =0x04000204 - ldrh r0, [r2] - ldr r1, =0x0000fffc - ands r0, r1 - ldr r1, [r5] - ldrh r1, [r1, 0x10] - orrs r0, r1 - strh r0, [r2] - ldr r2, =0x0e005555 - movs r0, 0xAA - strb r0, [r2] - ldr r1, =0x0e002aaa - movs r0, 0x55 - strb r0, [r1] - movs r0, 0xA0 - strb r0, [r2] - strb r7, [r4] - ldr r0, =gUnknown_03007848 - ldr r3, [r0] - movs r0, 0x1 - adds r1, r4, 0 - adds r2, r7, 0 - bl _call_via_r3 - lsls r0, 16 - lsrs r0, 16 - b _082E206C - .pool -_082E2068: - movs r0, 0x80 - lsls r0, 8 -_082E206C: - add sp, 0x40 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ProgramFlashByte - - thumb_func_start ProgramFlashByteInternal -ProgramFlashByteInternal: @ 82E2074 - push {r4,lr} - ldr r4, =0x0e005555 - movs r2, 0xAA - strb r2, [r4] - ldr r3, =0x0e002aaa - movs r2, 0x55 - strb r2, [r3] - movs r2, 0xA0 - strb r2, [r4] - ldrb r2, [r0] - strb r2, [r1] - ldr r3, =gUnknown_03007848 - ldrb r2, [r0] - ldr r3, [r3] - movs r0, 0x1 - bl _call_via_r3 - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end ProgramFlashByteInternal - - thumb_func_start ProgramFlashSector -ProgramFlashSector: @ 82E20AC - push {r4-r7,lr} - sub sp, 0x40 - adds r7, r1, 0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =gUnknown_03007850 - ldr r0, [r0] - ldrh r0, [r0, 0xA] - cmp r4, r0 - bcc _082E20CC - ldr r0, =0x000080ff - b _082E2146 - .pool -_082E20CC: - adds r0, r4, 0 - bl EraseFlashSector - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - bne _082E2144 - lsrs r0, r4, 4 - lsls r0, 24 - lsrs r0, 24 - bl SwitchFlashBank - movs r0, 0xF - ands r4, r0 - mov r0, sp - bl SetReadFlash1 - ldr r3, =0x04000204 - ldrh r1, [r3] - ldr r0, =0x0000fffc - ands r1, r0 - ldr r0, =gUnknown_03007850 - ldr r2, [r0] - ldrh r0, [r2, 0x10] - orrs r1, r0 - strh r1, [r3] - ldr r1, =gUnknown_03007858 - ldr r0, [r2, 0x4] - strh r0, [r1] - ldrb r0, [r2, 0x8] - lsls r4, r0 - movs r0, 0xE0 - lsls r0, 20 - adds r4, r0 - adds r6, r1, 0 - b _082E212E - .pool -_082E2124: - ldrh r0, [r6] - subs r0, 0x1 - strh r0, [r6] - adds r7, 0x1 - adds r4, 0x1 -_082E212E: - ldrh r0, [r6] - cmp r0, 0 - beq _082E2144 - adds r0, r7, 0 - adds r1, r4, 0 - bl ProgramFlashByteInternal - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _082E2124 -_082E2144: - adds r0, r5, 0 -_082E2146: - add sp, 0x40 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ProgramFlashSector - - .align 2, 0 @ Don't pad with nop. |