📄 osd.s
字号:
L76:
.dbline 24
movw R30,R22
ld R16,Z+
movw R22,R30
rcall _iic_send
L77:
.dbline 23
inc R20
L79:
.dbline 23
cpi R20,36
brlo L76
.dbline 25
rcall _iic_stop
.dbline 26
wdr
.dbline -2
.dbline 27
L75:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r x 22 pc
.dbsym r j 20 c
.dbend
.dbfunc e OSD_init _OSD_init fV
.even
_OSD_init::
.dbline -1
.dbline 32
.dbline 33
rcall _iic_init
.dbline 34
rcall _iic_start
.dbline 35
ldi R16,122
rcall _iic_send
.dbline 36
ldi R16,143
rcall _iic_send
.dbline 37
ldi R16,17
rcall _iic_send
.dbline 38
ldi R16,251
rcall _iic_send
.dbline 39
.dbline -2
.dbline 40
L80:
.dbline 0 ; func end
rjmp _iic_stop
.dbend
.area lit(rom, con, rel)
L82:
.byte 'z,143
.byte 64,10
.byte 5,193
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,16
.byte 10,0
.byte 36,0
.byte 145,209
.byte 0,0
.byte 0,0
.area text(rom, con, rel)
.dbfile C:\_项目\7寸液晶电视\软件\osd.c
.dbfunc e OSD_window _OSD_window fV
; osd_init_code -> y+0
; i -> R20
; x -> R20
.even
_OSD_window::
rcall push_gset1
mov R20,R16
sbiw R28,26
.dbline -1
.dbline 48
.dbline 50
ldi R24,<L82
ldi R25,>L82
movw R30,R28
ldi R16,26
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
rcall asgncblk
.dbline 54
clr R21
cpi R20,0
cpc R20,R21
breq L86
X72:
cpi R20,1
ldi R30,0
cpc R21,R30
breq L91
cpi R20,2
ldi R30,0
cpc R21,R30
breq L96
rjmp L83
X73:
.dbline 55
L86:
.dbline 57
clr R2
std y+3,R2
.dbline 58
ldi R24,72
std y+5,R24
.dbline 59
ldi R24,9
std y+15,R24
.dbline 60
ldi R24,44
std y+16,R24
.dbline 61
rjmp L84
L91:
.dbline 63
ldi R24,6
std y+3,R24
.dbline 64
ldi R24,112
std y+5,R24
.dbline 65
ldi R24,24
std y+15,R24
.dbline 66
ldi R24,31
std y+16,R24
.dbline 67
rjmp L84
L96:
.dbline 69
clr R2
std y+3,R2
.dbline 70
ldi R24,120
std y+5,R24
.dbline 71
ldi R24,58
std y+15,R24
.dbline 72
ldi R24,32
std y+16,R24
.dbline 73
L83:
L84:
.dbline 76
rcall _OSD_init
.dbline 77
rcall _iic_init
.dbline 78
rcall _iic_start
.dbline 79
clr R20
rjmp L104
L101:
.dbline 80
.dbline 81
movw R24,R28
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R16,z+0
rcall _iic_send
.dbline 82
L102:
.dbline 79
inc R20
L104:
.dbline 79
cpi R20,26
brlo L101
.dbline 83
rcall _iic_stop
.dbline -2
.dbline 84
L81:
adiw R28,26
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym l osd_init_code 0 A[26:26]c
.dbsym r i 20 c
.dbsym r x 20 c
.dbend
.dbfunc e OSD_out_1row _OSD_out_1row fc
; mid -> R20
; j -> R22
; string -> R10,R11
; size -> y+12
; extent -> R12
; col -> R14
; row -> R22
.even
_OSD_out_1row::
rcall push_gset5
mov R14,R18
mov R22,R16
ldd R12,y+10
ldd R10,y+14
ldd R11,y+15
.dbline -1
.dbline 94
.dbline 97
ldd R20,y+12
subi R20,255 ; addi 1
.dbline 98
mov R16,R12
ldd R17,y+12
rcall lsl8
mov R12,R16
.dbline 99
rcall _iic_init
.dbline 100
rcall _iic_start
tst R16
brne L106
.dbline 101
clr R16
rjmp L105
L106:
.dbline 102
ldi R16,122
rcall _iic_send
tst R16
brne L108
.dbline 103
clr R16
rjmp L105
L108:
.dbline 104
mov R16,R22
subi R16,128 ; addi 128
rcall _iic_send
tst R16
brne L110
.dbline 105
clr R16
rjmp L105
L110:
.dbline 106
ldi R16,30
rcall _iic_send
tst R16
brne L112
.dbline 107
clr R16
rjmp L105
L112:
.dbline 108
ldi R24,3
ldd R0,y+12
mul R24,R0
mov R16,R0
rcall _iic_send
tst R16
brne L114
.dbline 109
clr R16
rjmp L105
L114:
.dbline 110
rcall _iic_stop
.dbline 111
rcall _iic_start
tst R16
brne L116
.dbline 112
clr R16
rjmp L105
L116:
.dbline 113
ldi R16,122
rcall _iic_send
tst R16
brne L118
.dbline 114
clr R16
rjmp L105
L118:
.dbline 115
mov R16,R22
subi R16,128 ; addi 128
rcall _iic_send
tst R16
brne L120
.dbline 116
clr R16
rjmp L105
L120:
.dbline 117
clr R22
rjmp L125
L122:
.dbline 118
.dbline 119
mov R17,R20
mov R16,R22
rcall div8u
ldi R24,2
mul R24,R16
movw R30,R0
add R30,R10
adc R31,R11
ldd R18,z+0
ldd R19,z+1
mov R18,R19
clr R19
ldi R16,32
ldi R17,0
rcall empy16s
movw R2,R16
mov R4,R14
clr R5
mov R16,R22
clr R17
add R16,R4
adc R17,R5
add R16,R2
adc R17,R3
rcall _iic_send
tst R16
brne L126
.dbline 120
clr R16
rjmp L105
L126:
.dbline 121
mov R17,R20
mov R16,R22
rcall div8u
ldi R24,2
mul R24,R16
movw R30,R0
add R30,R10
adc R31,R11
ldd R16,z+0
rcall _iic_send
tst R16
brne L128
.dbline 122
clr R16
rjmp L105
L128:
.dbline 123
L123:
.dbline 117
inc R22
L125:
.dbline 117
cp R22,R12
brlo L122
.dbline 124
rcall _iic_stop
.dbline 126
ldi R16,255
.dbline -2
L105:
rcall pop_gset5
.dbline 0 ; func end
ret
.dbsym r mid 20 c
.dbsym r j 22 c
.dbsym r string 10 pi
.dbsym l size 12 c
.dbsym r extent 12 c
.dbsym r col 14 c
.dbsym r row 22 c
.dbend
.dbfunc e OSD_out_num _OSD_out_num fc
; size -> y+8
; value -> R20
; col -> R22
; row -> R10
.even
_OSD_out_num::
rcall push_gset3
mov R22,R18
mov R10,R16
ldd R20,y+6
.dbline -1
.dbline 136
.dbline 137
rcall _iic_init
.dbline 138
rcall _iic_start
tst R16
brne L131
.dbline 139
clr R16
rjmp L130
L131:
.dbline 140
ldi R16,122
rcall _iic_send
tst R16
brne L133
.dbline 141
clr R16
rjmp L130
L133:
.dbline 142
mov R16,R10
subi R16,128 ; addi 128
rcall _iic_send
tst R16
brne L135
.dbline 143
clr R16
rjmp L130
L135:
.dbline 144
ldi R16,30
rcall _iic_send
tst R16
brne L137
.dbline 145
clr R16
rjmp L130
L137:
.dbline 146
ldi R24,3
ldd R0,y+8
mul R24,R0
mov R16,R0
rcall _iic_send
tst R16
brne L139
.dbline 147
clr R16
rjmp L130
L139:
.dbline 148
rcall _iic_stop
.dbline 149
rcall _iic_start
tst R16
brne L141
.dbline 150
clr R16
rjmp L130
L141:
.dbline 151
ldi R16,122
rcall _iic_send
tst R16
brne L143
.dbline 152
clr R16
rjmp L130
L143:
.dbline 153
mov R16,R10
subi R16,128 ; addi 128
rcall _iic_send
tst R16
brne L145
.dbline 154
clr R16
rjmp L130
L145:
.dbline 155
mov R16,R22
subi R16,192 ; addi 64
rcall _iic_send
tst R16
brne L147
.dbline 156
clr R16
rjmp L130
L147:
.dbline 157
ldi R17,10
mov R16,R20
rcall div8u
rcall _conversion_char
rcall _iic_send
tst R16
brne L149
.dbline 158
clr R16
rjmp L130
L149:
.dbline 159
ldd R0,y+8
tst R0
breq L151
.dbline 160
.dbline 161
ldi R17,10
mov R16,R20
rcall div8u
rcall _conversion_char
rcall _iic_send
tst R16
brne L153
.dbline 162
clr R16
rjmp L130
L153:
.dbline 163
L151:
.dbline 164
ldi R17,10
mov R16,R20
rcall mod8u
rcall _conversion_char
rcall _iic_send
tst R16
brne L155
.dbline 165
clr R16
rjmp L130
L155:
.dbline 166
ldd R0,y+8
tst R0
breq L157
.dbline 167
.dbline 168
ldi R17,10
mov R16,R20
rcall mod8u
rcall _conversion_char
rcall _iic_send
tst R16
brne L159
.dbline 169
clr R16
rjmp L130
L159:
.dbline 170
L157:
.dbline 171
rcall _iic_stop
.dbline 173
ldi R16,255
.dbline -2
L130:
rcall pop_gset3
.dbline 0 ; func end
ret
.dbsym l size 8 c
.dbsym r value 20 c
.dbsym r col 22 c
.dbsym r row 10 c
.dbend
.area lit(rom, con, rel)
L162:
.byte 'z,133
.byte 'B
.byte 0,0,0,0,0,0,0,0,0,0
.area text(rom, con, rel)
.dbfile C:\_项目\7寸液晶电视\软件\osd.c
.dbfunc e gauge_num _gauge_num fc
; x -> y+13
; tmpbuf -> y+0
; j -> R10
; value -> y+23
.even
_gauge_num::
rcall push_arg4
rcall push_gset3
sbiw R28,17
.dbline -1
.dbline 183
.dbline 185
ldi R24,<L162
ldi R25,>L162
movw R30,R28
ldi R16,13
ldi R17,0
st -y,R31
st -y,R30
st -y,R25
st -y,R24
rcall asgncblk
.dbline 187
movw R30,R28
ldd R2,z+23
ldd R3,z+24
ldd R4,z+25
ldd R5,z+26
ldi R20,113
ldi R21,2
ldi R22,0
ldi R23,0
st -y,R5
st -y,R4
st -y,R3
st -y,R2
movw R16,R20
movw R18,R22
rcall empy32u
movw R30,R28
std z+13,R16
std z+14,R17
std z+15,R18
std z+16,R19
.dbline 188
clr R10
rjmp L166
L163:
.dbline 189
.dbline 190
mov R2,R10
clr R3
ldi R30,11
ldi R31,0
sub R30,R2
sbc R31,R3
movw R24,R28
add R30,R24
adc R31,R25
ldi R20,10
ldi R21,0
ldi R22,0
ldi R23,0
movw R26,R28
adiw R26,13
ld R2,x+
ld R3,x+
ld R4,x+
ld R5,x
st -y,R23
st -y,R22
st -y,R21
st -y,R20
movw R16,R2
movw R18,R4
rcall mod32u
std z+0,R16
.dbline 191
ldi R20,10
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+13
ldd R3,z+14
ldd R4,z+15
ldd R5,z+16
st -y,R23
st -y,R22
st -y,R21
st -y,R20
movw R16,R2
movw R18,R4
rcall div32u
movw R30,R28
std z+13,R16
std z+14,R17
std z+15,R18
std z+16,R19
.dbline 192
L164:
.dbline 188
inc R10
L166:
.dbline 188
mov R24,R10
cpi R24,8
brsh X74
rjmp L163
X74:
.dbline 193
ldi R24,3
mov R10,R24
rjmp L170
L167:
.dbline 194
.dbline 195
movw R24,R28
adiw R24,1
mov R30,R10
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
movw R24,R28
mov R30,R10
clr R31
add R30,R24
adc R31,R25
std z+0,R2
.dbline 196
L168:
.dbline 193
inc R10
L170:
.dbline 193
mov R24,R10
cpi R24,7
brlo L167
.dbline 197
ldi R24,3
mov R10,R24
rjmp L175
L172:
.dbline 198
.dbline 199
movw R24,R28
mov R2,R10
clr R3
add R2,R24
adc R3,R25
movw R30,R2
ldd R16,z+0
push R30
push R31
rcall _conversion_char
pop R31
pop R30
std z+0,R16
.dbline 200
L173:
.dbline 197
inc R10
L175:
.dbline 197
mov R24,R10
cpi R24,12
brlo L172
.dbline 201
ldi R24,243
std y+7,R24
.dbline 202
ldi R24,23
std y+11,R24
.dbline 203
ldi R24,132
std y+12,R24
.dbline 204
rcall _iic_init
.dbline 205
rcall _iic_start
tst R16
brne L179
.dbline 206
clr R16
rjmp L161
L179:
.dbline 207
clr R10
rjmp L184
L181:
.dbline 208
.dbline 209
movw R24,R28
mov R30,R10
clr R31
add R30,R24
adc R31,R25
ldd R16,z+0
rcall _iic_send
tst R16
brne L185
.dbline 210
clr R16
rjmp L161
L185:
.dbline 211
L182:
.dbline 207
inc R10
L184:
.dbline 207
mov R24,R10
cpi R24,13
brlo L181
.dbline 212
rcall _iic_stop
.dbline 214
ldi R16,255
.dbline -2
L161:
adiw R28,17
rcall pop_gset3
adiw R28,4
.dbline 0 ; func end
ret
.dbsym l x 13 l
.dbsym l tmpbuf 0 A[13:13]c
.dbsym r j 10 c
.dbsym l value 23 l
.dbend
.dbfunc e OSD_attrib_1row _OSD_attrib_1row fc
; j -> R20
; bg_color -> R22
; fg_color -> R10
; extent -> R12
; col -> R14
; row -> y+10
.even
_OSD_attrib_1row::
rcall push_arg4
rcall push_gset5
mov R14,R18
ldd R12,y+14
ldd R10,y+16
ldd R22,y+18
.dbline -1
.dbline 225
.dbline 226
clr R20
.dbline 227
rcall _iic_init
.dbline 228
rcall _iic_start
tst R16
brne L188
.dbline 229
clr R16
rjmp L187
L188:
.dbline 230
ldi R16,122
rcall _iic_send
tst R16
brne L190
.dbline 231
clr R16
rjmp L187
L190:
.dbline 232
ldd R16,y+10
subi R16,96 ; addi 160
rcall _iic_send
tst R16
brne L192
.dbline 233
clr R16
rjmp L187
L192:
.dbline 234
mov R16,R14
subi R16,192 ; addi 64
rcall _iic_send
tst R16
brne L194
.dbline 235
clr R16
rjmp L187
L194:
.dbline 236
clr R20
rjmp L199
L196:
.dbline 237
.dbline 238
mov R24,R22
andi R24,#0x0F
swap R24
mov R16,R10
add R16,R24
rcall _iic_send
tst R16
brne L200
.dbline 239
clr R16
rjmp L187
L200:
.dbline 240
L197:
.dbline 236
inc R20
L199:
.dbline 236
cp R20,R12
brlo L196
.dbline 241
rcall _iic_stop
.dbline 242
ldi R16,255
.dbline -2
L187:
rcall pop_gset5
adiw R28,4
.dbline 0 ; func end
ret
.dbsym r j 20 c
.dbsym r bg_color 22 c
.dbsym r fg_color 10 c
.dbsym r extent 12 c
.dbsym r col 14 c
.dbsym l row 10 c
.dbend
.dbfunc e OSD_off _OSD_off fV
.even
_OSD_off::
.dbline -1
.dbline 248
.dbline 249
rcall _iic_start
.dbline 250
ldi R16,122
rcall _iic_send
.dbline 251
ldi R16,143
rcall _iic_send
.dbline 252
ldi R16,17
rcall _iic_send
.dbline 253
ldi R16,123
rcall _iic_send
.dbline 254
.dbline -2
.dbline 255
L202:
.dbline 0 ; func end
rjmp _iic_stop
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -