📄 playedit.lis
字号:
.module playedit.c
.area text(rom, con, rel)
0000 .dbfile E:\software\MP3程序\PlayEdit\playedit.c
0000 .dbfunc e Del_Edit _Del_Edit fV
0000 ; move -> R14
0000 ; point -> R22,R23
0000 ; temp -> y+272
0000 ; FILE -> y+16
0000 ; active -> y+8
0000 ; day -> R10
0000 ; data -> R20
.even
0000 _Del_Edit::
0000 0E940000 xcall push_gset5
0004 402F mov R20,R16
0006 EF97 sbiw R28,63
0008 EF97 sbiw R28,63
000A EF97 sbiw R28,63
000C EF97 sbiw R28,63
000E 6797 sbiw R28,23 ; offset = 275
0010 .dbline -1
0010 .dbline 27
0010 ; #include <iom64v.h>
0010 ; #include <macros.h>
0010 ; #include <string.h>
0010 ; #include <stdio.h>
0010 ; #include "../Vs1003/vs1003.h"
0010 ; #include "../Ch375b/375interface.h"
0010 ; #include "../Keyboard/key.h"
0010 ; #include "../Ds1302/ds1302.h"
0010 ; #include <eeprom.h>
0010 ; extern uchar keybuf;
0010 ; extern uchar const nAsciiDot[];
0010 ; extern uchar const please_time[];
0010 ; extern unsigned char const full[];
0010 ; extern unsigned char const show_main[];
0010 ;
0010 ; typedef struct fileinfor{ //当前时间的数据结构
0010 ; uchar filename[28]; //文件名
0010 ; uchar active; //有效标志
0010 ; uchar hour; /*时*/
0010 ; uchar min; /*分*/
0010 ; uchar sec; /*秒*/
0010 ; };
0010 ; /*
0010 ; 删除文件
0010 ; */
0010 ; void Del_Edit(uchar data)
0010 ; {
0010 L2:
0010 .dbline 36
0010 ; uchar day;
0010 ; uchar temp;
0010 ; uchar active[8];
0010 ; uchar move;
0010 ; struct fileinfor FILE[8];
0010 ; uint point;
0010 ; //检查空间
0010 ; RELOAD:
0010 ; point = 0;
0010 6627 clr R22
0012 7727 clr R23
0014 .dbline 37
0014 ; point += 8*data*sizeof(FILE[0]);
0014 88E0 ldi R24,8
0016 849F mul R24,R20
0018 80E2 ldi R24,32
001A 809D mul R24,R0
001C 600D add R22,R0
001E 711D adc R23,R1
0020 .dbline 39
0020 ;
0020 ; for(day=0; day<8; day++)
0020 AA24 clr R10
0022 10C0 xjmp L6
0024 L3:
0024 .dbline 40
0024 .dbline 41
0024 605E subi R22,224 ; offset = 32
0026 7F4F sbci R23,255
0028 .dbline 42
0028 80E2 ldi R24,32
002A 90E0 ldi R25,0
002C 9983 std y+1,R25
002E 8883 std y+0,R24
0030 8A9D mul R24,R10
0032 9001 movw R18,R0
0034 CE01 movw R24,R28
0036 4096 adiw R24,16
0038 280F add R18,R24
003A 391F adc R19,R25
003C 8B01 movw R16,R22
003E 0E940000 xcall _EEPROMReadBytes
0042 .dbline 43
0042 L4:
0042 .dbline 39
0042 A394 inc R10
0044 L6:
0044 .dbline 39
0044 8A2D mov R24,R10
0046 8830 cpi R24,8
0048 68F3 brlo L3
004A .dbline 44
004A ; {
004A ; point += sizeof(FILE[day]);
004A ; EEPROMReadBytes(point,&FILE[day],sizeof(FILE[day]));
004A ; }
004A ; day = 0;
004A AA24 clr R10
004C .dbline 45
004C ; for(temp=0; temp<8; temp++)
004C 0024 clr R0
004E FE01 movw R30,R28
0050 E05F subi R30,240 ; addi 272
0052 FE4F sbci R31,254
0054 0082 std z+0,R0
0056 23C0 xjmp L10
0058 L7:
0058 .dbline 46
0058 ; {
0058 .dbline 47
0058 ; if(FILE[temp].active == 0x55) {active[day] = temp;day++;}
0058 80E2 ldi R24,32
005A FE01 movw R30,R28
005C E05F subi R30,240 ; addi 272
005E FE4F sbci R31,254
0060 0080 ldd R0,z+0
0062 809D mul R24,R0
0064 F001 movw R30,R0
0066 CE01 movw R24,R28
0068 8C96 adiw R24,44
006A E80F add R30,R24
006C F91F adc R31,R25
006E 8081 ldd R24,z+0
0070 8535 cpi R24,85
0072 61F4 brne L11
0074 .dbline 47
0074 .dbline 47
0074 CE01 movw R24,R28
0076 0896 adiw R24,8
0078 EA2D mov R30,R10
007A FF27 clr R31
007C E80F add R30,R24
007E F91F adc R31,R25
0080 DE01 movw R26,R28
0082 A05F subi R26,240 ; addi 272
0084 BE4F sbci R27,254
0086 0C90 ld R0,x
0088 0082 std z+0,R0
008A .dbline 47
008A A394 inc R10
008C .dbline 47
008C L11:
008C .dbline 48
008C L8:
008C .dbline 45
008C FE01 movw R30,R28
008E E05F subi R30,240 ; addi 272
0090 FE4F sbci R31,254
0092 0080 ldd R0,z+0
0094 0394 inc R0
0096 FE01 movw R30,R28
0098 E05F subi R30,240 ; addi 272
009A FE4F sbci R31,254
009C 0082 std z+0,R0
009E L10:
009E .dbline 45
009E FE01 movw R30,R28
00A0 E05F subi R30,240 ; addi 272
00A2 FE4F sbci R31,254
00A4 8081 ldd R24,z+0
00A6 8830 cpi R24,8
00A8 B8F2 brlo L7
00AA .dbline 49
00AA ; }
00AA ; active[day] = 0xff;
00AA CE01 movw R24,R28
00AC 0896 adiw R24,8
00AE EA2D mov R30,R10
00B0 FF27 clr R31
00B2 E80F add R30,R24
00B4 F91F adc R31,R25
00B6 8FEF ldi R24,255
00B8 8083 std z+0,R24
00BA .dbline 50
00BA ; Print_val(day);
00BA 0A2D mov R16,R10
00BC 1127 clr R17
00BE 0E940000 xcall _Print_val
00C2 .dbline 51
00C2 ; day = 0;
00C2 AA24 clr R10
00C4 .dbline 52
00C4 ; temp = 0;
00C4 0024 clr R0
00C6 FE01 movw R30,R28
00C8 E05F subi R30,240 ; addi 272
00CA FE4F sbci R31,254
00CC 0082 std z+0,R0
00CE 25C2 xjmp L15
00D0 L14:
00D0 .dbline 53
00D0 ; while(1){ //显示出来
00D0 .dbline 54
00D0 ; show_clear();
00D0 0E940000 xcall _show_clear
00D4 .dbline 55
00D4 ; show_lcd(0, 0, 192, 2, &show_main[0],0);
00D4 2224 clr R2
00D6 3324 clr R3
00D8 3F82 std y+7,R3
00DA 2E82 std y+6,R2
00DC 80E0 ldi R24,<_show_main
00DE 90E0 ldi R25,>_show_main
00E0 9D83 std y+5,R25
00E2 8C83 std y+4,R24
00E4 82E0 ldi R24,2
00E6 90E0 ldi R25,0
00E8 9B83 std y+3,R25
00EA 8A83 std y+2,R24
00EC 80EC ldi R24,192
00EE 9983 std y+1,R25
00F0 8883 std y+0,R24
00F2 2227 clr R18
00F4 3327 clr R19
00F6 0027 clr R16
00F8 1127 clr R17
00FA 0E940000 xcall _show_lcd
00FE .dbline 56
00FE ; move = 0;
00FE EE24 clr R14
0100 .dbline 57
0100 ; if(active[day] == 0xff) goto NEXT;
0100 CE01 movw R24,R28
0102 0896 adiw R24,8
0104 EA2D mov R30,R10
0106 FF27 clr R31
0108 E80F add R30,R24
010A F91F adc R31,R25
010C 8081 ldd R24,z+0
010E 8F3F cpi R24,255
0110 09F4 brne L17
0112 .dbline 57
0112 71C0 xjmp L19
0114 L17:
0114 .dbline 58
0114 ; if(active[day] != 0xff){move += 1;
0114 CE01 movw R24,R28
0116 0896 adiw R24,8
0118 EA2D mov R30,R10
011A FF27 clr R31
011C E80F add R30,R24
011E F91F adc R31,R25
0120 8081 ldd R24,z+0
0122 8F3F cpi R24,255
0124 B1F0 breq L20
0126 .dbline 58
0126 .dbline 58
0126 E394 inc R14
0128 .dbline 59
0128 ; show_name(&FILE[active[day]],2,0);
0128 2224 clr R2
012A 3324 clr R3
012C 3982 std y+1,R3
012E 2882 std y+0,R2
0130 22E0 ldi R18,2
0132 30E0 ldi R19,0
0134 CE01 movw R24,R28
0136 0896 adiw R24,8
0138 EA2D mov R30,R10
013A FF27 clr R31
013C E80F add R30,R24
013E F91F adc R31,R25
0140 2080 ldd R2,z+0
0142 80E2 ldi R24,32
0144 829D mul R24,R2
0146 8001 movw R16,R0
0148 CE01 movw R24,R28
014A 4096 adiw R24,16
014C 080F add R16,R24
014E 191F adc R17,R25
0150 1CD4 xcall _show_name
0152 .dbline 60
0152 ; }
0152 L20:
0152 .dbline 61
0152 ; if(active[day+1] == 0xff) goto NEXT;
0152 CE01 movw R24,R28
0154 0996 adiw R24,9
0156 EA2D mov R30,R10
0158 FF27 clr R31
015A E80F add R30,R24
015C F91F adc R31,R25
015E 8081 ldd R24,z+0
0160 8F3F cpi R24,255
0162 09F4 brne L22
0164 .dbline 61
0164 48C0 xjmp L19
0166 L22:
0166 .dbline 62
0166 ; if(active[day+1] != 0xff) {move += 1;
0166 CE01 movw R24,R28
0168 0996 adiw R24,9
016A EA2D mov R30,R10
016C FF27 clr R31
016E E80F add R30,R24
0170 F91F adc R31,R25
0172 8081 ldd R24,z+0
0174 8F3F cpi R24,255
0176 B1F0 breq L25
0178 .dbline 62
0178 .dbline 62
0178 E394 inc R14
017A .dbline 63
017A ; show_name(&FILE[active[day+1]],4,0);
017A 2224 clr R2
017C 3324 clr R3
017E 3982 std y+1,R3
0180 2882 std y+0,R2
0182 24E0 ldi R18,4
0184 30E0 ldi R19,0
0186 CE01 movw R24,R28
0188 0996 adiw R24,9
018A EA2D mov R30,R10
018C FF27 clr R31
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -