pokeemerald/asm/librtc.s
2016-09-03 02:20:49 -07:00

1161 lines
18 KiB
ArmAsm

.include "asm/macros.s"
.syntax unified
.text
thumb_func_start RTC_SetReadWrite
@ void RTC_SetReadWrite()
RTC_SetReadWrite: @ 82E2150
push {r7,lr}
mov r7, sp
bl RTC_SetReadWriteInternal
ldr r0, =0x03001a7e
movs r1, 0
strb r1, [r0]
pop {r7}
pop {r0}
bx r0
.pool
thumb_func_end RTC_SetReadWrite
thumb_func_start RTC_SetReadOnly
@ void RTC_SetReadOnly()
RTC_SetReadOnly: @ 82E2168
push {r7,lr}
mov r7, sp
bl RTC_SetReadOnlyInternal
ldr r0, =0x03001a7e
movs r1, 0x1
strb r1, [r0]
pop {r7}
pop {r0}
bx r0
.pool
thumb_func_end RTC_SetReadOnly
thumb_func_start RTC_Init
@ u8 RTC_Init()
RTC_Init: @ 82E2180
push {r7,lr}
sub sp, 0x10
mov r7, sp
adds r1, r7, 0x4
adds r0, r1, 0
bl RTC_GetControlReg
lsls r1, r0, 24
lsrs r0, r1, 24
cmp r0, 0
bne _082E219A
movs r0, 0
b _082E224E
_082E219A:
adds r0, r7, 0
movs r1, 0
strb r1, [r0]
adds r0, r7, 0x4
ldrb r1, [r0, 0x7]
movs r2, 0xC0
adds r0, r1, 0
ands r0, r2
adds r2, r0, 0
lsls r1, r2, 24
lsrs r0, r1, 24
cmp r0, 0x80
beq _082E21CA
adds r0, r7, 0x4
ldrb r1, [r0, 0x7]
movs r2, 0xC0
adds r0, r1, 0
ands r0, r2
adds r2, r0, 0
lsls r1, r2, 24
lsrs r0, r1, 24
cmp r0, 0
bne _082E21E8
b _082E21CA
_082E21CA:
bl RTC_Reset
lsls r1, r0, 24
lsrs r0, r1, 24
cmp r0, 0
bne _082E21DA
movs r0, 0
b _082E224E
_082E21DA:
adds r1, r7, 0
adds r0, r7, 0
adds r1, r7, 0
ldrb r2, [r1]
adds r1, r2, 0x1
adds r2, r1, 0
strb r2, [r0]
_082E21E8:
adds r1, r7, 0x4
adds r0, r1, 0
bl RTC_GetTime
adds r0, r7, 0x4
ldrb r1, [r0, 0x6]
movs r2, 0x80
adds r0, r1, 0
ands r0, r2
adds r2, r0, 0
lsls r1, r2, 24
lsrs r0, r1, 24
cmp r0, 0
beq _082E2236
bl RTC_Reset
lsls r1, r0, 24
lsrs r0, r1, 24
cmp r0, 0
bne _082E2228
adds r0, r7, 0
ldrb r1, [r0]
lsls r0, r1, 4
adds r1, r0, 0
movs r2, 0xF
adds r0, r1, 0
bics r0, r2
adds r1, r0, 0
lsls r0, r1, 24
lsrs r1, r0, 24
adds r0, r1, 0
b _082E224E
_082E2228:
adds r1, r7, 0
adds r0, r7, 0
adds r1, r7, 0
ldrb r2, [r1]
adds r1, r2, 0x1
adds r2, r1, 0
strb r2, [r0]
_082E2236:
adds r0, r7, 0
ldrb r1, [r0]
lsls r0, r1, 4
adds r1, r0, 0
movs r2, 0x1
adds r0, r1, 0
orrs r0, r2
adds r1, r0, 0
lsls r0, r1, 24
lsrs r1, r0, 24
adds r0, r1, 0
b _082E224E
_082E224E:
add sp, 0x10
pop {r7}
pop {r1}
bx r1
thumb_func_end RTC_Init
thumb_func_start RTC_Reset
@ u8 RTC_Reset()
RTC_Reset: @ 82E2258
push {r7,lr}
sub sp, 0x10
mov r7, sp
ldr r0, =0x03001a7e
ldrb r1, [r0]
cmp r1, 0x1
bne _082E2270
movs r0, 0
b _082E22D4
.pool
_082E2270:
ldr r0, =0x03001a7e
movs r1, 0x1
strb r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x5
strh r1, [r0]
ldr r0, =GPIOPortDirection
movs r1, 0x7
strh r1, [r0]
movs r0, 0x60
bl RTC_WriteByte
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =0x03001a7e
movs r1, 0
strb r1, [r0]
adds r0, r7, 0x4
ldrb r1, [r0, 0x7]
movs r2, 0
ands r1, r2
adds r2, r1, 0
movs r3, 0x40
adds r1, r2, 0
orrs r1, r3
adds r2, r1, 0
strb r2, [r0, 0x7]
adds r1, r7, 0x4
adds r0, r1, 0
bl RTC_SetControlReg
adds r1, r7, 0
strb r0, [r1]
adds r0, r7, 0
ldrb r1, [r0]
adds r0, r1, 0
b _082E22D4
.pool
_082E22D4:
add sp, 0x10
pop {r7}
pop {r1}
bx r1
thumb_func_end RTC_Reset
thumb_func_start RTC_GetControlReg
@ u8 RTC_GetControlReg(struct RTCInfo *rtc)
RTC_GetControlReg: @ 82E22DC
push {r4,r7,lr}
sub sp, 0x8
mov r7, sp
str r0, [r7]
ldr r0, =0x03001a7e
ldrb r1, [r0]
cmp r1, 0x1
bne _082E22F4
movs r0, 0
b _082E23A0
.pool
_082E22F4:
ldr r0, =0x03001a7e
movs r1, 0x1
strb r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x5
strh r1, [r0]
ldr r0, =GPIOPortDirection
movs r1, 0x7
strh r1, [r0]
movs r0, 0x63
bl RTC_WriteByte
ldr r0, =GPIOPortDirection
movs r1, 0x5
strh r1, [r0]
bl RTC_ReadByte
adds r1, r7, 0x4
strb r0, [r1]
ldr r0, [r7]
adds r1, r7, 0x4
ldrb r2, [r1]
movs r3, 0xC0
adds r1, r2, 0
ands r1, r3
adds r2, r7, 0x4
ldrb r3, [r2]
movs r4, 0x20
adds r2, r3, 0
ands r2, r4
adds r4, r2, 0
lsls r3, r4, 24
lsrs r2, r3, 24
lsrs r3, r2, 3
adds r2, r3, 0
orrs r1, r2
adds r2, r7, 0x4
ldrb r3, [r2]
movs r4, 0x8
adds r2, r3, 0
ands r2, r4
adds r4, r2, 0
lsls r3, r4, 24
lsrs r2, r3, 24
lsrs r3, r2, 2
adds r2, r3, 0
orrs r1, r2
adds r2, r7, 0x4
ldrb r3, [r2]
movs r4, 0x2
adds r2, r3, 0
ands r2, r4
adds r4, r2, 0
lsls r3, r4, 24
lsrs r2, r3, 24
lsrs r3, r2, 1
adds r2, r3, 0
orrs r1, r2
ldrb r2, [r0, 0x7]
movs r3, 0
ands r2, r3
adds r3, r2, 0
adds r2, r3, 0
orrs r2, r1
adds r1, r2, 0
strb r1, [r0, 0x7]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =0x03001a7e
movs r1, 0
strb r1, [r0]
movs r0, 0x1
b _082E23A0
.pool
_082E23A0:
add sp, 0x8
pop {r4,r7}
pop {r1}
bx r1
thumb_func_end RTC_GetControlReg
thumb_func_start RTC_SetControlReg
@ u8 RTC_SetControlReg(struct RTCInfo *rtc)
RTC_SetControlReg: @ 82E23A8
push {r4,r7,lr}
sub sp, 0x8
mov r7, sp
str r0, [r7]
ldr r0, =0x03001a7e
ldrb r1, [r0]
cmp r1, 0x1
bne _082E23C0
movs r0, 0
b _082E2448
.pool
_082E23C0:
ldr r0, =0x03001a7e
movs r1, 0x1
strb r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x5
strh r1, [r0]
adds r0, r7, 0x4
ldr r1, [r7]
ldrb r2, [r1, 0x7]
movs r3, 0x4
adds r1, r2, 0
ands r1, r3
adds r2, r1, 0
lsls r1, r2, 3
ldr r2, [r7]
ldrb r3, [r2, 0x7]
movs r4, 0x2
adds r2, r3, 0
ands r2, r4
adds r3, r2, 0
lsls r2, r3, 2
adds r3, r2, 0
movs r4, 0x40
adds r2, r3, 0
orrs r2, r4
orrs r1, r2
ldr r2, [r7]
ldrb r3, [r2, 0x7]
movs r4, 0x1
adds r2, r3, 0
ands r2, r4
adds r3, r2, 0
lsls r2, r3, 1
orrs r1, r2
adds r2, r1, 0
strb r2, [r0]
ldr r0, =GPIOPortDirection
movs r1, 0x7
strh r1, [r0]
movs r0, 0x62
bl RTC_WriteByte
adds r0, r7, 0x4
ldrb r1, [r0]
adds r0, r1, 0
bl RTC_WriteByteReversed
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =0x03001a7e
movs r1, 0
strb r1, [r0]
movs r0, 0x1
b _082E2448
.pool
_082E2448:
add sp, 0x8
pop {r4,r7}
pop {r1}
bx r1
thumb_func_end RTC_SetControlReg
thumb_func_start RTC_GetDateTime
@ u8 RTC_GetDateTime(u8 *rtcDateTime)
RTC_GetDateTime: @ 82E2450
push {r7,lr}
sub sp, 0x8
mov r7, sp
str r0, [r7]
ldr r0, =0x03001a7e
ldrb r1, [r0]
cmp r1, 0x1
bne _082E2468
movs r0, 0
b _082E24F8
.pool
_082E2468:
ldr r0, =0x03001a7e
movs r1, 0x1
strb r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x5
strh r1, [r0]
ldr r0, =GPIOPortDirection
movs r1, 0x7
strh r1, [r0]
movs r0, 0x65
bl RTC_WriteByte
ldr r0, =GPIOPortDirection
movs r1, 0x5
strh r1, [r0]
adds r0, r7, 0x4
movs r1, 0
strb r1, [r0]
_082E2492:
adds r0, r7, 0x4
ldrb r1, [r0]
cmp r1, 0x6
bls _082E24A8
b _082E24C6
.pool
_082E24A8:
bl RTC_ReadByte
adds r1, r7, 0x4
ldrb r2, [r1]
ldr r3, [r7]
adds r1, r2, r3
strb r0, [r1]
adds r1, r7, 0x4
adds r0, r7, 0x4
adds r1, r7, 0x4
ldrb r2, [r1]
adds r1, r2, 0x1
adds r2, r1, 0
strb r2, [r0]
b _082E2492
_082E24C6:
ldr r1, [r7]
adds r0, r1, 0x4
ldr r2, [r7]
adds r1, r2, 0x4
ldrb r2, [r1]
movs r3, 0x7F
adds r1, r2, 0
ands r1, r3
adds r2, r1, 0
strb r2, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =0x03001a7e
movs r1, 0
strb r1, [r0]
movs r0, 0x1
b _082E24F8
.pool
_082E24F8:
add sp, 0x8
pop {r7}
pop {r1}
bx r1
thumb_func_end RTC_GetDateTime
thumb_func_start RTC_SetDateTime
@ u8 RTC_SetDateTime(u8 *rtcDateTime)
RTC_SetDateTime: @ 82E2500
push {r7,lr}
sub sp, 0x8
mov r7, sp
str r0, [r7]
ldr r0, =0x03001a7e
ldrb r1, [r0]
cmp r1, 0x1
bne _082E2518
movs r0, 0
b _082E2594
.pool
_082E2518:
ldr r0, =0x03001a7e
movs r1, 0x1
strb r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x5
strh r1, [r0]
ldr r0, =GPIOPortDirection
movs r1, 0x7
strh r1, [r0]
movs r0, 0x64
bl RTC_WriteByte
adds r0, r7, 0x4
movs r1, 0
strb r1, [r0]
_082E253C:
adds r0, r7, 0x4
ldrb r1, [r0]
cmp r1, 0x6
bls _082E2554
b _082E2574
.pool
_082E2554:
adds r0, r7, 0x4
ldrb r1, [r0]
ldr r2, [r7]
adds r0, r1, r2
ldrb r1, [r0]
adds r0, r1, 0
bl RTC_WriteByteReversed
adds r1, r7, 0x4
adds r0, r7, 0x4
adds r1, r7, 0x4
ldrb r2, [r1]
adds r1, r2, 0x1
adds r2, r1, 0
strb r2, [r0]
b _082E253C
_082E2574:
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =0x03001a7e
movs r1, 0
strb r1, [r0]
movs r0, 0x1
b _082E2594
.pool
_082E2594:
add sp, 0x8
pop {r7}
pop {r1}
bx r1
thumb_func_end RTC_SetDateTime
thumb_func_start RTC_GetTime
@ u8 RTC_GetTime(u8 *rtcTime)
RTC_GetTime: @ 82E259C
push {r7,lr}
sub sp, 0x8
mov r7, sp
str r0, [r7]
ldr r0, =0x03001a7e
ldrb r1, [r0]
cmp r1, 0x1
bne _082E25B4
movs r0, 0
b _082E2648
.pool
_082E25B4:
ldr r0, =0x03001a7e
movs r1, 0x1
strb r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x5
strh r1, [r0]
ldr r0, =GPIOPortDirection
movs r1, 0x7
strh r1, [r0]
movs r0, 0x67
bl RTC_WriteByte
ldr r0, =GPIOPortDirection
movs r1, 0x5
strh r1, [r0]
adds r0, r7, 0x4
movs r1, 0
strb r1, [r0]
_082E25DE:
adds r0, r7, 0x4
ldrb r1, [r0]
cmp r1, 0x2
bls _082E25F4
b _082E2614
.pool
_082E25F4:
bl RTC_ReadByte
adds r1, r7, 0x4
ldrb r2, [r1]
ldr r3, [r7]
adds r1, r2, r3
adds r2, r1, 0x4
strb r0, [r2]
adds r1, r7, 0x4
adds r0, r7, 0x4
adds r1, r7, 0x4
ldrb r2, [r1]
adds r1, r2, 0x1
adds r2, r1, 0
strb r2, [r0]
b _082E25DE
_082E2614:
ldr r1, [r7]
adds r0, r1, 0x4
ldr r2, [r7]
adds r1, r2, 0x4
ldrb r2, [r1]
movs r3, 0x7F
adds r1, r2, 0
ands r1, r3
adds r2, r1, 0
strb r2, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =0x03001a7e
movs r1, 0
strb r1, [r0]
movs r0, 0x1
b _082E2648
.pool
_082E2648:
add sp, 0x8
pop {r7}
pop {r1}
bx r1
thumb_func_end RTC_GetTime
thumb_func_start RTC_SetTime
@ u8 RTC_SetTime(u8 *rtcTime)
RTC_SetTime: @ 82E2650
push {r7,lr}
sub sp, 0x8
mov r7, sp
str r0, [r7]
ldr r0, =0x03001a7e
ldrb r1, [r0]
cmp r1, 0x1
bne _082E2668
movs r0, 0
b _082E26E4
.pool
_082E2668:
ldr r0, =0x03001a7e
movs r1, 0x1
strb r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x5
strh r1, [r0]
ldr r0, =GPIOPortDirection
movs r1, 0x7
strh r1, [r0]
movs r0, 0x66
bl RTC_WriteByte
adds r0, r7, 0x4
movs r1, 0
strb r1, [r0]
_082E268C:
adds r0, r7, 0x4
ldrb r1, [r0]
cmp r1, 0x2
bls _082E26A4
b _082E26C6
.pool
_082E26A4:
adds r0, r7, 0x4
ldrb r1, [r0]
ldr r2, [r7]
adds r0, r1, r2
adds r1, r0, 0x4
ldrb r2, [r1]
adds r0, r2, 0
bl RTC_WriteByteReversed
adds r1, r7, 0x4
adds r0, r7, 0x4
adds r1, r7, 0x4
ldrb r2, [r1]
adds r1, r2, 0x1
adds r2, r1, 0
strb r2, [r0]
b _082E268C
_082E26C6:
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =0x03001a7e
movs r1, 0
strb r1, [r0]
movs r0, 0x1
b _082E26E4
.pool
_082E26E4:
add sp, 0x8
pop {r7}
pop {r1}
bx r1
thumb_func_end RTC_SetTime
thumb_func_start RTC_SetUnknownData
@ u8 RTC_SetUnknownData(struct RTCInfo *rtc)
RTC_SetUnknownData: @ 82E26EC
push {r4,r7,lr}
sub sp, 0xC
mov r7, sp
str r0, [r7]
ldr r0, =0x03001a7e
ldrb r1, [r0]
cmp r1, 0x1
bne _082E2704
movs r0, 0
b _082E2818
.pool
_082E2704:
ldr r0, =0x03001a7e
movs r1, 0x1
strb r1, [r0]
adds r0, r7, 0
adds r0, 0x8
ldr r1, [r7]
ldrb r2, [r1, 0x8]
movs r3, 0xF
adds r1, r2, 0
ands r1, r3
ldr r2, [r7]
ldrb r3, [r2, 0x8]
lsrs r2, r3, 4
adds r3, r2, 0
movs r4, 0xF
adds r2, r3, 0
ands r2, r4
adds r4, r2, 0
lsls r3, r4, 24
lsrs r2, r3, 24
adds r4, r2, 0
lsls r3, r4, 2
adds r3, r2
lsls r2, r3, 1
adds r1, r2
ldrb r2, [r0]
movs r3, 0
ands r2, r3
adds r3, r2, 0
adds r2, r3, 0
orrs r2, r1
adds r1, r2, 0
strb r1, [r0]
adds r0, r7, 0
adds r0, 0x8
ldrb r1, [r0]
cmp r1, 0xB
bhi _082E2770
adds r0, r7, 0
adds r0, 0x8
ldr r1, [r7]
ldrb r2, [r0]
movs r3, 0
ands r2, r3
adds r3, r2, 0
ldrb r1, [r1, 0x8]
adds r2, r3, 0
orrs r2, r1
adds r1, r2, 0
strb r1, [r0]
b _082E278E
.pool
_082E2770:
adds r0, r7, 0
adds r0, 0x8
ldr r1, [r7]
ldrb r2, [r1, 0x8]
movs r3, 0x80
adds r1, r2, 0
orrs r1, r3
ldrb r2, [r0]
movs r3, 0
ands r2, r3
adds r3, r2, 0
adds r2, r3, 0
orrs r2, r1
adds r1, r2, 0
strb r1, [r0]
_082E278E:
adds r0, r7, 0
adds r0, 0x8
ldr r1, [r7]
ldrb r2, [r0, 0x1]
movs r3, 0
ands r2, r3
adds r3, r2, 0
ldrb r1, [r1, 0x9]
adds r2, r3, 0
orrs r2, r1
adds r1, r2, 0
strb r1, [r0, 0x1]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x5
strh r1, [r0]
ldr r0, =GPIOPortDirection
movs r1, 0x7
strh r1, [r0]
movs r0, 0x68
bl RTC_WriteByte
adds r0, r7, 0x4
movs r1, 0
strb r1, [r0]
_082E27C4:
adds r0, r7, 0x4
ldrb r1, [r0]
cmp r1, 0x1
bls _082E27D8
b _082E27FA
.pool
_082E27D8:
adds r0, r7, 0
adds r0, 0x8
adds r1, r7, 0x4
ldrb r2, [r1]
adds r0, r2
ldrb r1, [r0]
adds r0, r1, 0
bl RTC_WriteByteReversed
adds r1, r7, 0x4
adds r0, r7, 0x4
adds r1, r7, 0x4
ldrb r2, [r1]
adds r1, r2, 0x1
adds r2, r1, 0
strb r2, [r0]
b _082E27C4
_082E27FA:
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x1
strh r1, [r0]
ldr r0, =0x03001a7e
movs r1, 0
strb r1, [r0]
movs r0, 0x1
b _082E2818
.pool
_082E2818:
add sp, 0xC
pop {r4,r7}
pop {r1}
bx r1
thumb_func_end RTC_SetUnknownData
thumb_func_start RTC_WriteByte
@ u8 RTC_WriteByte(u8 value)
RTC_WriteByte: @ 82E2820
push {r4,r5,r7,lr}
sub sp, 0x4
mov r7, sp
adds r1, r0, 0
adds r2, r7, 0
strb r1, [r2]
adds r1, r7, 0x1
movs r2, 0
strb r2, [r1]
_082E2832:
adds r1, r7, 0x1
ldrb r2, [r1]
cmp r2, 0x7
bls _082E283C
b _082E28BC
_082E283C:
adds r1, r7, 0x2
adds r3, r7, 0
ldrb r2, [r3]
adds r3, r7, 0x1
ldrb r4, [r3]
movs r5, 0x7
subs r3, r5, r4
asrs r2, r3
adds r3, r2, 0
movs r4, 0x1
adds r2, r3, 0
ands r2, r4
adds r3, r2, 0
strb r3, [r1]
ldr r1, =GPIOPortData
adds r2, r7, 0x2
ldrb r3, [r2]
adds r2, r3, 0
lsls r3, r2, 1
adds r2, r3, 0
movs r3, 0x4
orrs r2, r3
adds r3, r2, 0
strh r3, [r1]
ldr r1, =GPIOPortData
adds r2, r7, 0x2
ldrb r3, [r2]
adds r2, r3, 0
lsls r3, r2, 1
adds r2, r3, 0
movs r3, 0x4
orrs r2, r3
adds r3, r2, 0
strh r3, [r1]
ldr r1, =GPIOPortData
adds r2, r7, 0x2
ldrb r3, [r2]
adds r2, r3, 0
lsls r3, r2, 1
adds r2, r3, 0
movs r3, 0x4
orrs r2, r3
adds r3, r2, 0
strh r3, [r1]
ldr r1, =GPIOPortData
adds r2, r7, 0x2
ldrb r3, [r2]
adds r2, r3, 0
lsls r3, r2, 1
adds r2, r3, 0
movs r3, 0x5
orrs r2, r3
adds r3, r2, 0
strh r3, [r1]
adds r2, r7, 0x1
adds r1, r7, 0x1
adds r2, r7, 0x1
ldrb r3, [r2]
adds r2, r3, 0x1
adds r3, r2, 0
strb r3, [r1]
b _082E2832
.pool
_082E28BC:
add sp, 0x4
pop {r4,r5,r7}
pop {r1}
bx r1
thumb_func_end RTC_WriteByte
thumb_func_start RTC_WriteByteReversed
@ u8 RTC_WriteByteReversed(u8 value)
RTC_WriteByteReversed: @ 82E28C4
push {r4,r7,lr}
sub sp, 0x4
mov r7, sp
adds r1, r0, 0
adds r2, r7, 0
strb r1, [r2]
adds r1, r7, 0x1
movs r2, 0
strb r2, [r1]
_082E28D6:
adds r1, r7, 0x1
ldrb r2, [r1]
cmp r2, 0x7
bls _082E28E0
b _082E295C
_082E28E0:
adds r1, r7, 0x2
adds r3, r7, 0
ldrb r2, [r3]
adds r3, r7, 0x1
ldrb r4, [r3]
asrs r2, r4
adds r3, r2, 0
movs r4, 0x1
adds r2, r3, 0
ands r2, r4
adds r3, r2, 0
strb r3, [r1]
ldr r1, =GPIOPortData
adds r2, r7, 0x2
ldrb r3, [r2]
adds r2, r3, 0
lsls r3, r2, 1
adds r2, r3, 0
movs r3, 0x4
orrs r2, r3
adds r3, r2, 0
strh r3, [r1]
ldr r1, =GPIOPortData
adds r2, r7, 0x2
ldrb r3, [r2]
adds r2, r3, 0
lsls r3, r2, 1
adds r2, r3, 0
movs r3, 0x4
orrs r2, r3
adds r3, r2, 0
strh r3, [r1]
ldr r1, =GPIOPortData
adds r2, r7, 0x2
ldrb r3, [r2]
adds r2, r3, 0
lsls r3, r2, 1
adds r2, r3, 0
movs r3, 0x4
orrs r2, r3
adds r3, r2, 0
strh r3, [r1]
ldr r1, =GPIOPortData
adds r2, r7, 0x2
ldrb r3, [r2]
adds r2, r3, 0
lsls r3, r2, 1
adds r2, r3, 0
movs r3, 0x5
orrs r2, r3
adds r3, r2, 0
strh r3, [r1]
adds r2, r7, 0x1
adds r1, r7, 0x1
adds r2, r7, 0x1
ldrb r3, [r2]
adds r2, r3, 0x1
adds r3, r2, 0
strb r3, [r1]
b _082E28D6
.pool
_082E295C:
add sp, 0x4
pop {r4,r7}
pop {r1}
bx r1
thumb_func_end RTC_WriteByteReversed
thumb_func_start RTC_ReadByte
@ u8 RTC_ReadByte()
RTC_ReadByte: @ 82E2964
push {r7,lr}
sub sp, 0x4
mov r7, sp
adds r0, r7, 0
movs r1, 0
strb r1, [r0]
_082E2970:
adds r0, r7, 0
ldrb r1, [r0]
cmp r1, 0x7
bls _082E297A
b _082E29E0
_082E297A:
ldr r0, =GPIOPortData
movs r1, 0x4
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x4
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x4
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x4
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x4
strh r1, [r0]
ldr r0, =GPIOPortData
movs r1, 0x5
strh r1, [r0]
adds r0, r7, 0x1
ldr r1, =GPIOPortData
ldrh r2, [r1]
movs r3, 0x2
adds r1, r2, 0
ands r1, r3
adds r3, r1, 0
lsls r2, r3, 16
lsrs r1, r2, 16
lsrs r2, r1, 1
adds r1, r2, 0
strb r1, [r0]
adds r0, r7, 0x2
adds r1, r7, 0x2
ldrb r2, [r1]
lsrs r1, r2, 1
adds r2, r7, 0x1
ldrb r3, [r2]
lsls r2, r3, 7
orrs r1, r2
adds r2, r1, 0
strb r2, [r0]
adds r1, r7, 0
adds r0, r7, 0
adds r1, r7, 0
ldrb r2, [r1]
adds r1, r2, 0x1
adds r2, r1, 0
strb r2, [r0]
b _082E2970
.pool
_082E29E0:
adds r0, r7, 0x2
ldrb r1, [r0]
adds r0, r1, 0
b _082E29E8
_082E29E8:
add sp, 0x4
pop {r7}
pop {r1}
bx r1
thumb_func_end RTC_ReadByte
thumb_func_start RTC_SetReadWriteInternal
@ void RTC_SetReadWriteInternal()
RTC_SetReadWriteInternal: @ 82E29F0
push {r7,lr}
mov r7, sp
ldr r0, =GPIOPortReadEnable
movs r1, 0x1
strh r1, [r0]
pop {r7}
pop {r0}
bx r0
.pool
thumb_func_end RTC_SetReadWriteInternal
thumb_func_start RTC_SetReadOnlyInternal
@ void RTC_SetReadOnlyInternal()
RTC_SetReadOnlyInternal: @ 82E2A04
push {r7,lr}
mov r7, sp
ldr r0, =GPIOPortReadEnable
movs r1, 0
strh r1, [r0]
pop {r7}
pop {r0}
bx r0
.pool
thumb_func_end RTC_SetReadOnlyInternal
.align 2, 0 @ Don't pad with nop.