pokeemerald/asm/librtc.s
2015-11-27 19:38:13 -08:00

1153 lines
18 KiB
ArmAsm

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, =GPIOPortReadWrite
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, =GPIOPortReadWrite
movs r1, 0
strh r1, [r0]
pop {r7}
pop {r0}
bx r0
.pool
thumb_func_end RTC_SetReadOnlyInternal