mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-25 15:46:18 -05:00
split flash.s
This commit is contained in:
parent
1941beb0cd
commit
b297f50310
327946
asm/code_800B540.s
327946
asm/code_800B540.s
File diff suppressed because it is too large
Load Diff
327744
asm/code_800D090.s
Normal file
327744
asm/code_800D090.s
Normal file
File diff suppressed because it is too large
Load Diff
218
asm/flash.s
Normal file
218
asm/flash.s
Normal file
|
|
@ -0,0 +1,218 @@
|
|||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_800CF0C
|
||||
sub_800CF0C:
|
||||
push {lr}
|
||||
bl IdentifyFlash
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
bne _0800CF32
|
||||
movs r0, 0x3
|
||||
bl sub_800B6E8
|
||||
adds r1, r0, 0
|
||||
movs r0, 0x2
|
||||
bl SetFlashTimerIntr
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
bne _0800CF32
|
||||
ldr r1, _0800CF38
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
_0800CF32:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0800CF38: .4byte gUnknown_203B0B4
|
||||
thumb_func_end sub_800CF0C
|
||||
|
||||
thumb_func_start sub_800CF3C
|
||||
sub_800CF3C:
|
||||
push {lr}
|
||||
ldr r0, _0800CF54
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0800CF4E
|
||||
ldr r0, _0800CF58
|
||||
ldr r0, [r0]
|
||||
bl _call_via_r0
|
||||
_0800CF4E:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0800CF54: .4byte gUnknown_203B0B4
|
||||
_0800CF58: .4byte EraseFlashChip
|
||||
thumb_func_end sub_800CF3C
|
||||
|
||||
thumb_func_start sub_800CF5C
|
||||
sub_800CF5C:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r6, r0, 0
|
||||
adds r5, r2, 0
|
||||
ldr r0, _0800CFAC
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0800CFB4
|
||||
adds r4, r1, 0
|
||||
ldr r0, _0800CFB0
|
||||
cmp r5, r0
|
||||
ble _0800CF94
|
||||
movs r7, 0x80
|
||||
lsls r7, 5
|
||||
mov r8, r0
|
||||
_0800CF7C:
|
||||
lsls r0, r6, 16
|
||||
lsrs r0, 16
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
adds r3, r7, 0
|
||||
bl ReadFlash
|
||||
adds r6, 0x1
|
||||
adds r4, r7
|
||||
subs r5, r7
|
||||
cmp r5, r8
|
||||
bgt _0800CF7C
|
||||
_0800CF94:
|
||||
cmp r5, 0
|
||||
ble _0800CFA6
|
||||
lsls r0, r6, 16
|
||||
lsrs r0, 16
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
adds r3, r5, 0
|
||||
bl ReadFlash
|
||||
_0800CFA6:
|
||||
movs r0, 0
|
||||
b _0800CFB6
|
||||
.align 2, 0
|
||||
_0800CFAC: .4byte gUnknown_203B0B4
|
||||
_0800CFB0: .4byte 0x00000fff
|
||||
_0800CFB4:
|
||||
movs r0, 0x3
|
||||
_0800CFB6:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_800CF5C
|
||||
|
||||
thumb_func_start sub_800CFC0
|
||||
sub_800CFC0:
|
||||
push {r4-r6,lr}
|
||||
ldr r4, _0800CFD8
|
||||
add sp, r4
|
||||
adds r6, r0, 0
|
||||
adds r5, r2, 0
|
||||
ldr r0, _0800CFDC
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0800D03C
|
||||
movs r2, 0x1
|
||||
adds r4, r1, 0
|
||||
b _0800CFEC
|
||||
.align 2, 0
|
||||
_0800CFD8: .4byte 0xfffff000
|
||||
_0800CFDC: .4byte gUnknown_203B0B4
|
||||
_0800CFE0:
|
||||
adds r6, 0x1
|
||||
movs r0, 0x80
|
||||
lsls r0, 5
|
||||
adds r4, r0
|
||||
ldr r0, _0800D034
|
||||
adds r5, r0
|
||||
_0800CFEC:
|
||||
ldr r0, _0800D038
|
||||
cmp r5, r0
|
||||
ble _0800D002
|
||||
adds r0, r6, 0
|
||||
adds r1, r4, 0
|
||||
bl sub_800D04C
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
cmp r2, 0
|
||||
bne _0800CFE0
|
||||
_0800D002:
|
||||
cmp r2, 0
|
||||
beq _0800D03C
|
||||
cmp r5, 0
|
||||
ble _0800D02C
|
||||
movs r2, 0x80
|
||||
lsls r2, 5
|
||||
mov r0, sp
|
||||
movs r1, 0xFF
|
||||
bl MemoryFill8
|
||||
mov r0, sp
|
||||
adds r1, r4, 0
|
||||
adds r2, r5, 0
|
||||
bl MemoryCopy8
|
||||
adds r0, r6, 0
|
||||
mov r1, sp
|
||||
bl sub_800D04C
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
_0800D02C:
|
||||
cmp r2, 0
|
||||
beq _0800D03C
|
||||
movs r0, 0
|
||||
b _0800D03E
|
||||
.align 2, 0
|
||||
_0800D034: .4byte 0xfffff000
|
||||
_0800D038: .4byte 0x00000fff
|
||||
_0800D03C:
|
||||
movs r0, 0x3
|
||||
_0800D03E:
|
||||
movs r3, 0x80
|
||||
lsls r3, 5
|
||||
add sp, r3
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_800CFC0
|
||||
|
||||
thumb_func_start sub_800D04C
|
||||
sub_800D04C:
|
||||
push {r4-r7,lr}
|
||||
adds r5, r1, 0
|
||||
movs r6, 0x3
|
||||
ldr r7, _0800D07C
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
_0800D058:
|
||||
ldr r2, [r7]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl _call_via_r2
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
bne _0800D080
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x80
|
||||
lsls r2, 5
|
||||
bl VerifyFlashSectorNBytes
|
||||
cmp r0, 0
|
||||
bne _0800D080
|
||||
movs r0, 0x1
|
||||
b _0800D08A
|
||||
.align 2, 0
|
||||
_0800D07C: .4byte ProgramFlashSector
|
||||
_0800D080:
|
||||
adds r0, r6, 0
|
||||
subs r6, 0x1
|
||||
cmp r0, 0
|
||||
bgt _0800D058
|
||||
movs r0, 0
|
||||
_0800D08A:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_800D04C
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
|
|
@ -50,6 +50,8 @@ SECTIONS {
|
|||
asm/code_800AAA0.o(.text);
|
||||
src/main.o(.text);
|
||||
asm/code_800B540.o(.text);
|
||||
asm/flash.o(.text);
|
||||
asm/code_800D090.o(.text);
|
||||
asm/m4a.o(.text);
|
||||
asm/syscall.o(.text);
|
||||
src/agb_flash.o(.text);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user