📄 playedit.s
字号:
movw R24,R28
adiw R24,10
mov R30,R10
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,32
mul R24,R2
add R22,R0
adc R23,R1
.dbline 109
; EEPROMWriteBytes(point,&FILE[active[day+2]],sizeof(FILE[0]));
clr R25
std y+1,R25
std y+0,R24
movw R24,R28
adiw R24,10
mov R30,R10
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,32
mul R24,R2
movw R18,R0
movw R24,R28
adiw R24,16
add R18,R24
adc R19,R25
movw R16,R22
xcall _EEPROMWriteBytes
.dbline 110
; break;
xjmp L2
L82:
.dbline 111
movw R24,R28
adiw R24,11
mov R30,R10
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,44
add R30,R24
adc R31,R25
ldi R24,255
std z+0,R24
.dbline 112
movw R24,R28
adiw R24,11
mov R30,R10
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,32
mul R24,R2
add R22,R0
adc R23,R1
.dbline 113
clr R25
std y+1,R25
std y+0,R24
movw R24,R28
adiw R24,11
mov R30,R10
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,32
mul R24,R2
movw R18,R0
movw R24,R28
adiw R24,16
add R18,R24
adc R19,R25
movw R16,R22
xcall _EEPROMWriteBytes
.dbline 114
.dbline 116
xjmp L2
L15:
.dbline 53
xjmp L14
L16:
.dbline -2
L1:
adiw R28,63
adiw R28,63
adiw R28,63
adiw R28,63
adiw R28,23 ; offset = 275
xcall pop_gset5
.dbline 0 ; func end
ret
.dbsym r move 14 c
.dbsym r point 22 i
.dbsym l temp 272 c
.dbsym l FILE 16 A[256:8]X
.dbsym l active 8 A[8:8]c
.dbsym r day 10 c
.dbsym r data 20 c
.dbend
.dbfunc e Play_Edit _Play_Edit fV
; point -> y+272
; move -> R14
; FILE -> y+16
; temp -> R20
; active -> y+8
; day -> R22
; data -> R20
.even
_Play_Edit::
xcall push_gset5
mov R20,R16
sbiw R28,63
sbiw R28,63
sbiw R28,63
sbiw R28,63
sbiw R28,22 ; offset = 274
.dbline -1
.dbline 125
; case 3:FILE[active[day+3]].active = 0xff;
; point += active[day+3]*sizeof(FILE[0]);
; EEPROMWriteBytes(point,&FILE[active[day+3]],sizeof(FILE[0]));
; break;
; }
; goto RELOAD;
;
; }
;
; }
; /*
; 编辑
; */
; void Play_Edit(uchar data)
; {
.dbline 134
; uchar day;
; uchar temp;
; uchar active[8];
; uchar move;
; struct fileinfor FILE[8];
; uint point;
; //检查空间
;
; point = 0;
clr R0
clr R1
movw R30,R28
subi R30,240 ; addi 272
sbci R31,254
std z+1,R1
std z+0,R0
.dbline 135
; point += 8*data*sizeof(FILE[0]);
ldi R24,8
mul R24,R20
ldi R24,32
mul R24,R0
movw R30,R28
subi R30,240 ; addi 272
sbci R31,254
ldd R16,z+0
ldd R17,z+1
add R16,R0
adc R17,R1
movw R30,R28
subi R30,240 ; addi 272
sbci R31,254
std z+1,R17
std z+0,R16
.dbline 137
;
; for(day=0; day<8; day++)
clr R22
xjmp L91
L88:
.dbline 138
.dbline 139
movw R30,R28
subi R30,240 ; addi 272
sbci R31,254
ldd R24,z+0
ldd R25,z+1
adiw R24,32
movw R30,R28
subi R30,240 ; addi 272
sbci R31,254
std z+1,R25
std z+0,R24
.dbline 140
ldi R24,32
ldi R25,0
std y+1,R25
std y+0,R24
mul R24,R22
movw R18,R0
movw R24,R28
adiw R24,16
add R18,R24
adc R19,R25
movw R30,R28
subi R30,240 ; addi 272
sbci R31,254
ldd R16,z+0
ldd R17,z+1
xcall _EEPROMReadBytes
.dbline 141
L89:
.dbline 137
inc R22
L91:
.dbline 137
cpi R22,8
brlo L88
.dbline 142
; {
; point += sizeof(FILE[day]);
; EEPROMReadBytes(point,&FILE[day],sizeof(FILE[day]));
; }
; day = 0;
clr R22
.dbline 143
; for(temp=0; temp<8; temp++)
clr R20
xjmp L95
L92:
.dbline 144
; {
.dbline 145
; if(FILE[temp].active == 0x55) {active[day] = temp;day++;}
ldi R24,32
mul R24,R20
movw R30,R0
movw R24,R28
adiw R24,44
add R30,R24
adc R31,R25
ldd R24,z+0
cpi R24,85
brne L96
.dbline 145
.dbline 145
movw R24,R28
adiw R24,8
mov R30,R22
clr R31
add R30,R24
adc R31,R25
std z+0,R20
.dbline 145
inc R22
.dbline 145
L96:
.dbline 146
L93:
.dbline 143
inc R20
L95:
.dbline 143
cpi R20,8
brlo L92
.dbline 147
; }
; active[day] = 0xff;
movw R24,R28
adiw R24,8
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldi R24,255
std z+0,R24
.dbline 148
; Print_val(day);
mov R16,R22
clr R17
xcall _Print_val
.dbline 149
; day = 0;
clr R22
.dbline 150
; temp = 0;
clr R20
xjmp L100
L99:
.dbline 151
; while(1){ //显示出来
.dbline 152
; show_clear();
xcall _show_clear
.dbline 153
; show_lcd(0, 0, 192, 2, &show_main[0],0);
clr R2
clr R3
std y+7,R3
std y+6,R2
ldi R24,<_show_main
ldi R25,>_show_main
std y+5,R25
std y+4,R24
ldi R24,2
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
clr R16
clr R17
xcall _show_lcd
.dbline 154
; move = 0;
clr R14
.dbline 155
; if(active[day] == 0xff) goto NEXT;
movw R24,R28
adiw R24,8
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldd R24,z+0
cpi R24,255
brne L102
.dbline 155
xjmp L104
L102:
.dbline 156
; if(active[day] != 0xff){move += 1;
movw R24,R28
adiw R24,8
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldd R24,z+0
cpi R24,255
breq L105
.dbline 156
.dbline 156
inc R14
.dbline 157
; show_name(&FILE[active[day]],2,0);
clr R2
clr R3
std y+1,R3
std y+0,R2
ldi R18,2
ldi R19,0
movw R24,R28
adiw R24,8
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 _show_name
.dbline 158
; }
L105:
.dbline 159
; if(active[day+1] == 0xff) goto NEXT;
movw R24,R28
adiw R24,9
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldd R24,z+0
cpi R24,255
brne L107
.dbline 159
xjmp L104
L107:
.dbline 160
; if(active[day+1] != 0xff) {move += 1;
movw R24,R28
adiw R24,9
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldd R24,z+0
cpi R24,255
breq L110
.dbline 160
.dbline 160
inc R14
.dbline 161
; show_name(&FILE[active[day+1]],4,0);
clr R2
clr R3
std y+1,R3
std y+0,R2
ldi R18,4
ldi R19,0
movw R24,R28
adiw R24,9
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 _show_name
.dbline 162
; }
L110:
.dbline 163
; if(active[day+2] == 0xff) goto NEXT;
movw R24,R28
adiw R24,10
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldd R24,z+0
cpi R24,255
brne L114
.dbline 163
xjmp L104
L114:
.dbline 164
; if(active[day+2] != 0xff) {move += 1;
movw R24,R28
adiw R24,10
mov R30,R22
clr R31
add R30,R24
adc R31,R25
ldd R24,z+0
cpi R24,255
breq L117
.dbline 164
.dbline 164
inc R14
.dbline 165
; show_name(&FILE[active[day+2]],6,0);
clr R2
clr R3
std y+1,R3
std y+0,R2
ldi R18,6
ldi R19,0
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 _show_name
.dbline 166
; }
L117:
L104:
.dbline 168
; NEXT:
; if(move != 0){
tst R14
brne X13
xjmp L121
X13:
.dbline 168
.dbline 169
mov R12,R20
clr R13
tst R12
brne X9
tst R13
breq L126
X9:
movw R24,R12
cpi R24,1
ldi R30,0
cpc R25,R30
breq L127
cpi R24,2
ldi R30,0
cpc R25,R30
brne X14
xjmp L129
X14:
xjmp L123
X10:
.dbline 169
; switch(temp){
L126:
.dbline 170
; case 0:show_name(&FILE[active[day]],2,1);break;
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,2
ldi R19,0
movw R24,R28
adiw R24,8
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 _show_name
.dbline 170
xjmp L124
L127:
.dbline 171
; case 1:show_name(&FILE[active[day+1]],4,1);break;
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,4
ldi R19,0
movw R24,R28
adiw R24,9
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 _show_name
.dbline 171
xjmp L124
L129:
.dbline 172
; case 2:show_name(&FILE[active[day+2]],6,1);break;
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,6
ldi R19,0
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 _show_name
.dbline 172
L123:
L124:
.dbline 174
; }
; }
L121:
.dbline 175
; KEYBUF_NULL;
clr R2
sts _keybuf,R2
.dbline 175
L131:
.dbline 176
L132:
.dbline 176
; while(keybuf == NULL);
lds R2,_keybuf
tst R2
breq L131
.dbline 177
; if(keybuf == K_UP){
mov R24,R2
cpi R24,3
brne L134
.dbline 177
.dbline 178
; if(--temp == 255){
mov R24,R20
subi R24,1
mov R20,R24
cpi R20,255
brne L136
.dbline 178
.dbline 179
; temp = 0;
clr R20
.dbline 180
; if(day != 0) {day -= 3;temp=2;}
tst R22
breq L138
.dbline 180
.dbline 180
subi R22,3
.dbline 180
ldi R20,2
.dbline 180
L138:
.dbline 181
; }
L136:
.dbline 182
; }
L134:
.dbline 183
; if(keybuf == K_DOWN){
lds R24,_keybuf
cpi R24,1
brne L140
.dbline 183
.dbline 184
; if(move !=0){
tst R14
breq L142
.dbline 184
.dbline 185
; if(++temp == move){
mov R24,R20
subi R24,255 ; addi 1
mov R20,R24
cp R24,R14
brne L144
.dbline 185
.dbline 186
; temp = 0;
clr R20
.dbline 187
; if(move == 3) day += 3;
mov R24,R14
cpi R24,3
brne L146
.dbline 187
subi R22,253 ; addi 3
L146:
.dbline 188
L144:
.dbline 188
; } }
L142:
.dbline 189
; }
L140:
.dbline 190
; if(keybuf == K_ESC) break;
lds R24,_keybuf
cpi R24,5
brne L148
.dbline 190
xjmp L101
L148:
.dbline 191
; if(keybuf != K_ENTER) continue;
lds R24,_keybuf
cpi R24,4
breq L150
.dbline 191
xjmp L100
L150:
.dbline 193
mov R10,R20
clr R11
tst R10
brne X11
tst R11
breq L155
X11:
movw R24,R10
cpi R24,1
ldi R30,0
cpc R25,R30
brne X15
xjmp L158
X15:
cpi R24,2
ldi R30,0
cpc R25,R30
brne X16
xjmp L163
X16:
cpi R24,3
ldi R30,0
cpc R25,R30
brne X17
xjmp L168
X17:
xjmp L152
X12:
.dbline 193
;
; switch(temp){
L155:
.dbline 194
; case 0:if(FILE[active[day]].filename[0] == 0x5c)
movw R24,R28
adiw R24,8
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
breq X18
xjmp L153
X18:
.dbline 195
; mp3_play(&FILE[active[day]].filename[0],0);
clr R18
clr R19
movw R24,R28
adiw R24,8
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 196
; break;
xjmp L153
L158:
.dbline 197
; case 1:if(FILE[active[day+1]].filename[0] == 0x5c)
movw R24,R28
adiw R24,9
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
breq X19
xjmp L153
X19:
.dbline 198
; mp3_play(&FILE[active[day+1]].filename[0],0);
clr R18
clr R19
movw R24,R28
adiw R24,9
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 199
; break;
xjmp L153
L163:
.dbline 200
; case 2:if(FILE[active[day+2]].filename[0] == 0x5c)
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 R30,R0
movw R24,R28
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -