📄 rtc.asm
字号:
; {
DBG81:
; int i;
; int days;
; days = rtc.day + 6;
DBG82:
mov.b &_rtc+0x3,r12
add #0x6,r12
DBG83:
; for (i = 1; i < rtc.month; i++)
mov #0x1,r13
mov.b &_rtc+0x5,r14
cmp r14,r13
jge weekday_L1
weekday_L2:
; days += month_lengths[i];
DBG84:
mov.b _month_lengths(r13),r14
sxt r14
add r14,r12
add #0x1,r13
mov.b &_rtc+0x5,r14
cmp r14,r13
jl weekday_L2
weekday_L1:
; if ((rtc.year & 0x03) == 0 && rtc.month <= 2)
DBG85:
bit.b #0x3,&_rtc+0x6
jne weekday_L3
mov.b #0x2,r13
cmp.b &_rtc+0x5,r13
jnc weekday_L3
DBG86:
; days--;
sub #0x1,r12
DBG87:
weekday_L3:
; days += rtc.year;
mov.b &_rtc+0x6,r13
add r13,r12
DBG88:
; days += (rtc.year >> 2);
mov.b &_rtc+0x6,r13
clrc
rrc r13
rra r13
add r13,r12
DBG89:
; days %= 7;
mov #0x7,r13
DBG92:
call #__sdiv16
DBG90:
DBG93:
; return days;
mov r13,r12
DBG94:
DBG91:
; EXIT
ret
.dbgseg dbg_syms
.long 0x0
.long DBG17
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG18
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x0
.long 0x0
.long 0x10002
DBG2:
.long 0x62622e
.long 0x0
.long DBG83
.long 0x0
.long 0x1640001
.long 0x0
.long 0xb
.long 0x0
.long DBG95
.long 0x0
.long 0x73796164
.long 0x0
.long 0xc0102
.long 0x4
.long 0x4ffff
DBG95:
.long 0x62622e
.long 0x0
.long DBG84
.long 0x0
.long 0x1640001
.long 0x0
.long 0xc
.long 0x0
.long DBG96
.long 0x0
.long 0x69
.long 0x0
.long 0xd0102
.long 0x4
.long 0x4ffff
.long 0x62652e
.long 0x0
.long DBG86
.long 0x0
.long 0x1640001
.long 0x0
.long 0xf
.long 0x0
.long 0x0
.long 0x0
DBG96:
.long 0x62622e
.long 0x0
.long DBG92
.long 0x0
.long 0x1640001
.long 0x0
.long 0x15
.long 0x0
.long DBG97
.long 0x0
.long 0x0
.long DBG98
.long 0x0
.long 0x0
.long 0x10002
.long 0x62652e
.long 0x0
.long DBG93
.long 0x0
.long 0x1640001
.long 0x0
.long 0x15
.long 0x0
.long 0x0
.long 0x0
.long 0x62652e
.long 0x0
.long DBG90
.long 0x0
.long 0x1640001
.long 0x0
.long 0x15
.long 0x0
.long 0x0
.long 0x0
DBG97:
.long 0x62622e
.long 0x0
.long DBG90
.long 0x0
.long 0x1640001
.long 0x0
.long 0x15
.long 0x0
.long DBG99
.long 0x0
.long 0x73796164
.long 0x0
.long 0xd0102
.long 0x4
.long 0x4ffff
.long 0x62652e
.long 0x0
.long DBG91
.long 0x0
.long 0x1640001
.long 0x0
.long 0x16
.long 0x0
.long 0x0
.long 0x0
.long 0x66652e
.long 0x0
.long DBG94
.long 0x0
.long 0x1650001
.long 0x0
.long 0x79
.long 0x0
.long 0x0
.long 0x0
.pseg rtc_code
DBG76:
.dbgseg dbg_syms
.long 0x6b656577
.long 0x796164
.long DBG76
.long 0x0
.long 0xff0001
; }
; void rtc_bumper(void)
DBG75:
.long 0x0
.long DBG104
.long _rtc_bumper
.long 0x40
.long 0x1020001
.long DBG79
.long DBG101-DBG102
.long DBG103
.long DBG100
.long 0x0
.pseg rtc_code
DBG102:
.dbgseg dbg_syms
DBG79:
.long 0x66622e
.long 0x0
.long DBG102
.long 0x0
.long 0x1650001
.long 0x0
.long 0x7b
.long 0x0
.long DBG105
.long 0x0
.dbgseg dbg_line
DBG103:
.long DBG75
.long 0x0
.long _rtc_bumper
.long 0x1
.long DBG107
.long 0x2
.long DBG108
.long 0x5
.long DBG109
.long 0x28
.pseg rtc_code
.global _rtc_bumper
_rtc_bumper:
; ENTRY
DBG106:
; i in reg size 2
; {
DBG107:
; int i;
; i = bump_rtc();
DBG108:
call #_bump_rtc
DBG110:
DBG109:
; EXIT
ret
.dbgseg dbg_syms
.long 0x0
.long DBG17
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG18
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x0
.long 0x0
.long 0x10002
.long 0x66652e
.long 0x0
.long DBG110
.long 0x0
.long 0x1650001
.long 0x0
.long 0xa2
.long 0x0
.long 0x0
.long 0x0
.pseg rtc_code
DBG101:
.dbgseg dbg_syms
.long 0x0
.long DBG104
.long DBG101
.long 0x0
.long 0xff0001
; }
; void correct_rtc(void)
DBG100:
.long 0x0
.long DBG115
.long _correct_rtc
.long 0x40
.long 0x1020001
.long DBG105
.long DBG112-DBG113
.long DBG114
.long DBG111
.long 0x0
.pseg rtc_code
DBG113:
.dbgseg dbg_syms
DBG105:
.long 0x66622e
.long 0x0
.long DBG113
.long 0x0
.long 0x1650001
.long 0x0
.long 0xa3
.long 0x0
.long DBG116
.long 0x0
.dbgseg dbg_line
DBG114:
.long DBG100
.long 0x0
.long _correct_rtc
.long 0x1
.long DBG118
.long 0x2
.long DBG119
.long 0x3
.long DBG120
.long 0x4
.long DBG121
.long 0x5
.long DBG122
.long 0x6
.long DBG123
.long 0x8
.long DBG124
.long 0x9
.long DBG125
.long 0xa
.long DBG126
.long 0xe
.long DBG127
.long 0xf
.long DBG128
.long 0x10
.long DBG129
.long 0x11
.long DBG130
.long 0x12
.long DBG131
.long 0x13
.long DBG132
.long 0x14
.long DBG133
.long 0x16
.long DBG134
.long 0x17
.long DBG135
.long 0x18
.long DBG137
.long 0x19
.long DBG138
.long 0x1a
.long DBG139
.long 0x1b
.long DBG140
.long 0x1c
.long DBG141
.long 0x1d
.long DBG142
.long 0x1e
.long DBG143
.long 0x20
.long DBG144
.long 0x21
.long DBG145
.long 0x22
.long DBG147
.long 0x23
.pseg rtc_code
.global _correct_rtc
_correct_rtc:
; ENTRY
DBG117:
; temp in reg size 4
; {
DBG118:
; int32 temp =0;
DBG119:
; temp = emeter.i_temperature - emeter.ul_TempSampleOffset;
DBG120:
mov &_emeter+0x10,r13
sub &_emeter+0x5c,r13
mov #0x0,r12
DBG148:
DBG121:
; temp = ((((float)temp)/32768.0) * 640.0 - 343.349)/1.257 + 0.5 ;
call #__l_to_s
DBG149:
mov #0x0,r15
mov #0x4700,r14
DBG150:
call #__s_div
DBG151:
mov #0x0,r15
mov #0x4420,r14
DBG152:
call #__s_mul
DBG153:
mov #0xacac,r15
mov #0x43ab,r14
DBG154:
call #__s_sub
DBG155:
mov #0xe560,r15
mov #0x3fa0,r14
DBG156:
call #__s_div
DBG157:
mov #0x0,r15
mov #0x3f00,r14
DBG158:
call #__s_add
DBG159:
call #__s_to_l
DBG122:
DBG160:
; emeter.i_last_temperature = (int16)temp;
mov r13,&_emeter+0xe
DBG123:
; temp -= 25;
sub #0x19,r13
subc #0x0,r12
DBG124:
; temp = temp*temp*35* 5 ;
mov r13,r15
mov r12,r14
DBG161:
call #__smult32
DBG162:
mov #0xaf,r15
mov #0x0,r14
DBG163:
call #__smult32
DBG125:
DBG164:
; temp = -temp;
mov #0x0,r15
mov #0x0,r14
sub r13,r15
subc r12,r14
DBG126:
; temp += 0 ;
add #0x0,r14
DBG127:
; if (rtc_correction >= 0)
cmp #0x0,&_rtc_correction+0x2
jl correct_rtc_L1
DBG129:
DBG128:
; {
; rtc_correction += temp;
add r15,&_rtc_correction
addc r14,&_rtc_correction+0x2
mov &_rtc_correction,r13
mov &_rtc_correction+0x2,r12
DBG130:
; if (rtc_correction >= 1000000000)
mov #0xca00,r14
mov #0x3b9a,r15
sub r14,r13
subc r15,r12
jl correct_rtc_L3
DBG132:
DBG131:
; {
; rtc_correction -= 1000000000;
sub r14,&_rtc_correction
subc r15,&_rtc_correction+0x2
DBG133:
; emeter.ui_meter_status |= (0x0001) ;
bis #0x1,&_emeter
DBG135:
DBG134:
; }
correct_rtc_L2:
DBG136:
; }
DBG137:
jmp correct_rtc_LL2
correct_rtc_L1:
; else
; {
DBG138:
; rtc_correction += temp;
DBG139:
add r15,&_rtc_correction
addc r14,&_rtc_correction+0x2
mov &_rtc_correction,r15
mov &_rtc_correction+0x2,r13
DBG140:
; if (rtc_correction <= -1000000000)
mov #0x3600,r14
mov #-0x3b9b,r12
sub r15,r14
subc r13,r12
jl correct_rtc_L4
DBG142:
DBG141:
; {
; rtc_correction += 1000000000;
add #0xca00,&_rtc_correction
addc #0x3b9a,&_rtc_correction+0x2
DBG143:
; rtc_bumper();
call #_rtc_bumper
DBG145:
DBG144:
; }
correct_rtc_L4:
DBG146:
correct_rtc_L3:
; }
DBG147:
correct_rtc_LL2:
; EXIT
DBG165:
ret
.dbgseg dbg_syms
.long 0x0
.long DBG17
.long 0x0
.long 0x0
.long 0x10002
.long 0x0
.long DBG18
.long 0x2
.long 0x0
.long 0x10002
.long 0x504e5f5f
.long 0x534d5241
.long 0x0
.long 0x0
.long 0x10002
DBG99:
.long 0x62622e
.long 0x0
.long DBG121
.long 0x0
.long 0x1640001
.long 0x0
.long 0x5
.long 0x0
.long DBG166
.long 0x0
.long 0x706d6574
.long 0x0
.long 0x200
.long 0x5
.long 0x204ffff
.long 0x706d6574
.long 0x0
.long 0xc0102
.long 0x5
.long 0x104ffff
.long 0x706d6574
.long 0x0
.long 0xd0102
.long 0x5
.long 0x4ffff
DBG166:
.long 0x62622e
.long 0x0
.long DBG148
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long DBG167
.long 0x0
.long 0x0
.long DBG98
.long 0x0
.long 0x0
.long 0x10002
.long 0x62652e
.long 0x0
.long DBG149
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long 0x0
.long 0x0
DBG167:
.long 0x62622e
.long 0x0
.long DBG150
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long DBG168
.long 0x0
.long 0x0
.long DBG98
.long 0x0
.long 0x0
.long 0x10002
.long 0x62652e
.long 0x0
.long DBG151
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long 0x0
.long 0x0
DBG168:
.long 0x62622e
.long 0x0
.long DBG152
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long DBG169
.long 0x0
.long 0x0
.long DBG98
.long 0x0
.long 0x0
.long 0x10002
.long 0x62652e
.long 0x0
.long DBG153
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long 0x0
.long 0x0
DBG169:
.long 0x62622e
.long 0x0
.long DBG154
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long DBG170
.long 0x0
.long 0x0
.long DBG98
.long 0x0
.long 0x0
.long 0x10002
.long 0x62652e
.long 0x0
.long DBG155
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long 0x0
.long 0x0
DBG170:
.long 0x62622e
.long 0x0
.long DBG156
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long DBG171
.long 0x0
.long 0x0
.long DBG98
.long 0x0
.long 0x0
.long 0x10002
.long 0x62652e
.long 0x0
.long DBG157
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long 0x0
.long 0x0
DBG171:
.long 0x62622e
.long 0x0
.long DBG158
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long DBG172
.long 0x0
.long 0x0
.long DBG98
.long 0x0
.long 0x0
.long 0x10002
.long 0x62652e
.long 0x0
.long DBG159
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long 0x0
.long 0x0
DBG172:
.long 0x62622e
.long 0x0
.long DBG159
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long DBG173
.long 0x0
.long 0x0
.long DBG98
.long 0x0
.long 0x0
.long 0x10002
.long 0x62652e
.long 0x0
.long DBG160
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long 0x0
.long 0x0
.long 0x62652e
.long 0x0
.long DBG122
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long 0x0
.long 0x0
DBG173:
.long 0x62622e
.long 0x0
.long DBG122
.long 0x0
.long 0x1640001
.long 0x0
.long 0x6
.long 0x0
.long DBG174
.long 0x0
.long 0x706d6574
.long 0x0
.long 0x200
.long 0x5
.long 0x204ffff
.long 0x706d6574
.long 0x0
.long 0xc0102
.long 0x5
.long 0x104ffff
.long 0x706d6574
.long 0x0
.long 0xd0102
.long 0x5
.long 0x4ffff
DBG174:
.long 0x62622e
.long 0x0
.long DBG124
.long 0x0
.long 0x1640001
.long 0x0
.long 0x9
.long 0x0
.long DBG175
.long 0x0
.long 0x706d6574
.long 0x0
.long 0x200
.long 0x5
.long 0x204ffff
.long 0x706d6574
.long 0x0
.long 0xc0102
.long 0x5
.long 0x104ffff
.long 0x706d6574
.long 0x0
.long 0xd0102
.long 0x5
.long 0x4ffff
DBG175:
.long 0x62622e
.long 0x0
.long DBG161
.long 0x0
.long 0x1640001
.long 0x0
.long 0xa
.long 0x0
.long DBG176
.long 0x0
.long 0x0
.long DBG98
.long 0x0
.long 0x0
.long 0x10002
.long 0x62652e
.long 0x0
.long DBG162
.long 0x0
.long 0x1640001
.long 0x0
.long 0xa
.long 0x0
.long 0x0
.long 0x0
DBG176:
.long 0x62622e
.long 0x0
.long DBG163
.long 0x0
.long 0x1640001
.long 0x0
.long 0xa
.long 0x0
.long DBG177
.long 0x0
.long 0x0
.long DBG98
.long 0x0
.long 0x0
.long 0x10002
.long 0x62652e
.long 0x0
.long DBG164
.long 0x0
.long 0x1640001
.long 0x0
.long 0xa
.long 0x0
.long 0x0
.long 0x0
.long 0x62652e
.long 0x0
.long DBG125
.long 0x0
.long 0x1640001
.long 0x0
.long 0xa
.long 0x0
.long 0x0
.long 0x0
.long 0x62652e
.long 0x0
.long DBG125
.long 0x0
.long 0x1640001
.long 0x0
.long 0xa
.long 0x0
.long 0x0
.long 0x0
DBG177:
.long 0x62622e
.long 0x0
.long DBG125
.long 0x0
.long 0x1640001
.long 0x0
.long 0xa
.long 0x0
.long DBG178
.long 0x0
.long 0x706d6574
.long 0x0
.long 0x200
.long 0x5
.long 0x204ffff
.long 0x706d6574
.long 0x0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -