📄 playedit.s
字号:
adiw R24,16
add R30,R24
adc R31,R25
ldd R24,z+0
cpi R24,92
breq X20
xjmp L153
X20:
.dbline 201
; mp3_play(&FILE[active[day+2]].filename[0],0);
clr R18
clr R19
movw R24,R28
adiw R24,10
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,32
mul R24,R2
movw R16,R0
movw R24,R28
adiw R24,16
add R16,R24
adc R17,R25
xcall _mp3_play
.dbline 202
; break;
xjmp L153
L168:
.dbline 203
; case 3:if(FILE[active[day+3]].filename[0] == 0x5c)
movw R24,R28
adiw R24,11
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,32
mul R24,R2
movw R30,R0
movw R24,R28
adiw R24,16
add R30,R24
adc R31,R25
ldd R24,z+0
cpi R24,92
brne L153
.dbline 204
; mp3_play(&FILE[active[day+3]].filename[0],0);
clr R18
clr R19
movw R24,R28
adiw R24,11
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,32
mul R24,R2
movw R16,R0
movw R24,R28
adiw R24,16
add R16,R24
adc R17,R25
xcall _mp3_play
.dbline 205
; break;
L152:
L153:
.dbline 209
L100:
.dbline 151
xjmp L99
L101:
.dbline -2
L87:
adiw R28,63
adiw R28,63
adiw R28,63
adiw R28,63
adiw R28,22 ; offset = 274
xcall pop_gset5
.dbline 0 ; func end
ret
.dbsym l point 272 i
.dbsym r move 14 c
.dbsym l FILE 16 A[256:8]X
.dbsym r temp 20 c
.dbsym l active 8 A[8:8]c
.dbsym r day 22 c
.dbsym r data 20 c
.dbend
.dbfunc e show_name _show_name fV
; ps -> R20,R21
; ii -> R22
; temp -> R10,R11
; type -> R12
; page -> R14
; pt -> y+18
.even
_show_name::
xcall push_arg4
xcall push_gset5
mov R14,R18
sbiw R28,8
ldd R12,y+22
.dbline -1
.dbline 213
; }
;
;
; }
;
; }
; void show_name(struct fileinfor *pt,uchar page,uchar type)
; {
.dbline 217
; uchar *ps;
; uchar ii;
; uint temp;
; ii=0;
clr R22
.dbline 218
; ps = &pt->filename[0];
ldd R20,y+18
ldd R21,y+19
xjmp L175
L174:
.dbline 219
.dbline 220
movw R30,R20
ld R10,Z+
movw R20,R30
clr R11
.dbline 221
movw R24,R10
sbiw R24,32
.dbline 222
ldi R16,16
ldi R17,0
movw R18,R24
xcall empy16s
movw R10,R16
.dbline 223
mov R2,R12
clr R3
std y+7,R3
std y+6,R2
ldi R24,<_nAsciiDot
ldi R25,>_nAsciiDot
movw R2,R10
add R2,R24
adc R3,R25
std y+5,R3
std y+4,R2
ldi R24,2
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,8
std y+1,R25
std y+0,R24
mov R18,R22
clr R19
mov R16,R14
clr R17
xcall _show_lcd
.dbline 224
subi R22,248 ; addi 8
.dbline 225
L175:
.dbline 219
; while(*ps != 0){
movw R30,R20
ldd R2,z+0
tst R2
brne L174
.dbline 226
; temp = *ps++;
; temp -= 32;
; temp *= 16;
; show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
; ii += 8;
; }
; ii = 129;
ldi R22,129
.dbline 227
; temp = pt->hour;
ldd R30,y+18
ldd R31,y+19
ldd R10,z+29
clr R11
.dbline 228
; temp >>= 4;
movw R2,R10
lsr R3
ror R2
lsr R3
ror R2
lsr R3
ror R2
lsr R3
ror R2
.dbline 229
; temp &= 0x000f;
movw R24,R2
andi R24,15
andi R25,0
.dbline 230
; temp += '0';
adiw R24,48
.dbline 231
; temp -= 32;
sbiw R24,32
.dbline 232
; temp *= 16;
ldi R16,16
ldi R17,0
movw R18,R24
xcall empy16s
movw R10,R16
.dbline 233
; show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
mov R2,R12
clr R3
std y+7,R3
std y+6,R2
ldi R24,<_nAsciiDot
ldi R25,>_nAsciiDot
movw R2,R10
add R2,R24
adc R3,R25
std y+5,R3
std y+4,R2
ldi R24,2
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,8
std y+1,R25
std y+0,R24
mov R18,R22
clr R19
mov R16,R14
clr R17
xcall _show_lcd
.dbline 234
; ii += 8;
subi R22,248 ; addi 8
.dbline 236
;
; temp = pt->hour;
ldd R30,y+18
ldd R31,y+19
ldd R10,z+29
clr R11
.dbline 237
; temp &= 0x000f;
movw R24,R10
andi R24,15
andi R25,0
.dbline 238
; temp += '0';
adiw R24,48
.dbline 239
; temp -= 32;
sbiw R24,32
.dbline 240
; temp *= 16;
ldi R16,16
ldi R17,0
movw R18,R24
xcall empy16s
movw R10,R16
.dbline 241
; show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
mov R2,R12
clr R3
std y+7,R3
std y+6,R2
ldi R24,<_nAsciiDot
ldi R25,>_nAsciiDot
movw R2,R10
add R2,R24
adc R3,R25
std y+5,R3
std y+4,R2
ldi R24,2
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,8
std y+1,R25
std y+0,R24
mov R18,R22
clr R19
mov R16,R14
clr R17
xcall _show_lcd
.dbline 242
; ii += 8;
subi R22,248 ; addi 8
.dbline 244
;
; temp = ':';
ldi R24,58
ldi R25,0
.dbline 245
; temp -= 32;
sbiw R24,32
.dbline 246
; temp *= 16;
ldi R16,16
ldi R17,0
movw R18,R24
xcall empy16s
movw R10,R16
.dbline 247
; show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
mov R2,R12
clr R3
std y+7,R3
std y+6,R2
ldi R24,<_nAsciiDot
ldi R25,>_nAsciiDot
movw R2,R10
add R2,R24
adc R3,R25
std y+5,R3
std y+4,R2
ldi R24,2
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,8
std y+1,R25
std y+0,R24
mov R18,R22
clr R19
mov R16,R14
clr R17
xcall _show_lcd
.dbline 248
; ii += 8;
subi R22,248 ; addi 8
.dbline 250
;
; temp = pt->min;
ldd R30,y+18
ldd R31,y+19
ldd R10,z+30
clr R11
.dbline 251
; temp >>= 4;
movw R2,R10
lsr R3
ror R2
lsr R3
ror R2
lsr R3
ror R2
lsr R3
ror R2
.dbline 252
; temp &= 0x000f;
movw R24,R2
andi R24,15
andi R25,0
.dbline 253
; temp += '0';
adiw R24,48
.dbline 254
; temp -= 32;
sbiw R24,32
.dbline 255
; temp *= 16;
ldi R16,16
ldi R17,0
movw R18,R24
xcall empy16s
movw R10,R16
.dbline 256
; show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
mov R2,R12
clr R3
std y+7,R3
std y+6,R2
ldi R24,<_nAsciiDot
ldi R25,>_nAsciiDot
movw R2,R10
add R2,R24
adc R3,R25
std y+5,R3
std y+4,R2
ldi R24,2
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,8
std y+1,R25
std y+0,R24
mov R18,R22
clr R19
mov R16,R14
clr R17
xcall _show_lcd
.dbline 257
; ii += 8;
subi R22,248 ; addi 8
.dbline 259
;
; temp = pt->min;
ldd R30,y+18
ldd R31,y+19
ldd R10,z+30
clr R11
.dbline 260
; temp &= 0x000f;
movw R24,R10
andi R24,15
andi R25,0
.dbline 261
; temp += '0';
adiw R24,48
.dbline 262
; temp -= 32;
sbiw R24,32
.dbline 263
; temp *= 16;
ldi R16,16
ldi R17,0
movw R18,R24
xcall empy16s
movw R10,R16
.dbline 264
; show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
mov R2,R12
clr R3
std y+7,R3
std y+6,R2
ldi R24,<_nAsciiDot
ldi R25,>_nAsciiDot
movw R2,R10
add R2,R24
adc R3,R25
std y+5,R3
std y+4,R2
ldi R24,2
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,8
std y+1,R25
std y+0,R24
mov R18,R22
clr R19
mov R16,R14
clr R17
xcall _show_lcd
.dbline 265
; ii += 8;
subi R22,248 ; addi 8
.dbline 267
;
; temp = ':';
ldi R24,58
ldi R25,0
.dbline 268
; temp -= 32;
sbiw R24,32
.dbline 269
; temp *= 16;
ldi R16,16
ldi R17,0
movw R18,R24
xcall empy16s
movw R10,R16
.dbline 270
; show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
mov R2,R12
clr R3
std y+7,R3
std y+6,R2
ldi R24,<_nAsciiDot
ldi R25,>_nAsciiDot
movw R2,R10
add R2,R24
adc R3,R25
std y+5,R3
std y+4,R2
ldi R24,2
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,8
std y+1,R25
std y+0,R24
mov R18,R22
clr R19
mov R16,R14
clr R17
xcall _show_lcd
.dbline 271
; ii += 8;
subi R22,248 ; addi 8
.dbline 273
;
; temp = pt->sec;
ldd R30,y+18
ldd R31,y+19
ldd R10,z+31
clr R11
.dbline 274
; temp >>= 4;
movw R2,R10
lsr R3
ror R2
lsr R3
ror R2
lsr R3
ror R2
lsr R3
ror R2
.dbline 275
; temp &= 0x000f;
movw R24,R2
andi R24,15
andi R25,0
.dbline 276
; temp += '0';
adiw R24,48
.dbline 277
; temp -= 32;
sbiw R24,32
.dbline 278
; temp *= 16;
ldi R16,16
ldi R17,0
movw R18,R24
xcall empy16s
movw R10,R16
.dbline 279
; show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
mov R2,R12
clr R3
std y+7,R3
std y+6,R2
ldi R24,<_nAsciiDot
ldi R25,>_nAsciiDot
movw R2,R10
add R2,R24
adc R3,R25
std y+5,R3
std y+4,R2
ldi R24,2
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,8
std y+1,R25
std y+0,R24
mov R18,R22
clr R19
mov R16,R14
clr R17
xcall _show_lcd
.dbline 280
; ii += 8;
subi R22,248 ; addi 8
.dbline 282
;
; temp = pt->sec;
ldd R30,y+18
ldd R31,y+19
ldd R10,z+31
clr R11
.dbline 283
; temp &= 0x000f;
movw R24,R10
andi R24,15
andi R25,0
.dbline 284
; temp += '0';
adiw R24,48
.dbline 285
; temp -= 32;
sbiw R24,32
.dbline 286
; temp *= 16;
ldi R16,16
ldi R17,0
movw R18,R24
xcall empy16s
movw R10,R16
.dbline 287
; show_lcd(page, ii, 8, 2, &nAsciiDot[temp],type);
mov R2,R12
clr R3
std y+7,R3
std y+6,R2
ldi R24,<_nAsciiDot
ldi R25,>_nAsciiDot
movw R2,R10
add R2,R24
adc R3,R25
std y+5,R3
std y+4,R2
ldi R24,2
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,8
std y+1,R25
std y+0,R24
mov R18,R22
clr R19
mov R16,R14
clr R17
xcall _show_lcd
.dbline 288
; ii = 112;
ldi R22,112
.dbline -2
L173:
adiw R28,8
xcall pop_gset5
adiw R28,4
.dbline 0 ; func end
ret
.dbsym r ps 20 pc
.dbsym r ii 22 c
.dbsym r temp 10 i
.dbsym r type 12 c
.dbsym r page 14 c
.dbsym l pt 18 pX
.dbend
.dbfunc e Edit_add _Edit_add fV
; playtime -> y+50
; path -> y+40
; point -> R20,R21
; day -> R22
; FILE -> y+8
; data -> R22
.even
_Edit_add::
xcall push_gset2
mov R22,R16
sbiw R28,53
.dbline -1
.dbline 296
; }
;
; /*
; *添加一条新的记录
; */
; extern uchar Filename[40]; //保持选择的文件名称
; void Edit_add(uchar data)
; {
.dbline 303
; struct time playtime;
; struct fileinfor FILE;
; uchar path[10];
; uint point;
; uchar day;
; //检查空间
; point = 0;
clr R20
clr R21
.dbline 304
; point += 8*data*sizeof(FILE);
ldi R24,8
mul R24,R22
ldi R24,32
mul R24,R0
add R20,R0
adc R21,R1
.dbline 305
; day = 0;
clr R22
xjmp L179
X21:
.dbline 306
; while(1){
L181:
.dbline 307
; while(1){
.dbline 308
; get_sys_path(&path[0]);
movw R16,R28
subi R16,216 ; offset = 40
sbci R17,255
xcall _get_sys_path
.dbline 309
; Print_str("选择工作目录=");
ldi R16,<L184
ldi R17,>L184
xcall _Print_str
.dbline 310
; Print_str(&path[0]);
movw R16,R28
subi R16,216 ; offset = 40
sbci R17,255
xcall _Print_str
.dbline 311
; Print_str("\r\n");
ldi R16,<L185
ldi R17,>L185
xcall _Print_str
.dbline 312
; if(path[0] == 0x00) {return;}
ldd R2,y+40
tst R2
brne L186
.dbline 312
.dbline 312
xjmp L177
L186:
.dbline 313
; if(keybuf == K_ESC) return;
lds R24,_keybuf
cpi R24,5
brne L188
.dbline 313
xjmp L177
L188:
.dbline 314
; if(keybuf == K_ENTER) break;
lds R24,_keybuf
cpi R24,4
brne L190
.dbline 314
xjmp L193
L190:
.dbline 315
L182:
.dbline 307
xjmp L181
X22:
.dbline 317
; }
; while(1)
; {
.dbline 318
; for(;day<8; day++)
L195:
.dbline 319
; {
.dbline 320
; point += sizeof(FILE); //下一个
subi R20,224 ; offset = 32
sbci R21,255
.dbline 321
; EEPROMReadBytes(point,&FILE,sizeof(FILE));
ldi R24,32
ldi R25,0
std y+1,R25
std y+0,R24
movw R18,R28
subi R18,248 ; offset = 8
sbci R19,255
movw R16,R20
xcall _EEPROMReadBytes
.dbline 322
; if(FILE.active != 0x55) {day++; break;}
ldd R24,y+36
cpi R24,85
breq L199
.dbline 322
.dbline 322
inc R22
.dbline 322
xjmp L197
L199:
.dbline 323
L196:
.dbline 318
inc R22
L198:
.dbline 318
cpi R22,8
brlo L195
L197:
.dbline 324
; }
; if(day == 8){
cpi R22,8
brne L202
.dbline 324
.dbline 325
; show_lcd(2, 0, 192, 4, &full[0],0);
clr R2
clr R3
std y+7,R3
std y+6,R2
ldi R24,<_full
ldi R25,>_full
std y+5,R25
std y+4,R24
ldi R24,4
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,192
std y+1,R25
std y+0,R24
clr R18
clr R19
ldi R16,2
ldi R17,0
xcall _show_lcd
.dbline 326
; delay_1s();
xcall _delay_1s
.dbline 327
; delay_1s();
xcall _delay_1s
.dbline 328
; break;//无空间了
xjmp L194
L202:
.dbline 330
; }
; playtime.hour = 0x01;
ldi R24,1
std y+52,R24
.dbline 331
; playtime.min = 0x01;
std y+51,R24
.dbline 332
; playtime.sec = 0x01;
std y+50,R24
xjmp L207
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -